diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java
new file mode 100644
index 000000000..7b2772ae2
--- /dev/null
+++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java
@@ -0,0 +1,167 @@
+package com.elink.esua.epdc.commons.tools.utils;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.util.Date;
+
+/**
+ * 身份证号工具
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 13:11
+ */
+public class IdentityNoUtils {
+
+ /**
+ * 15位身份证号
+ */
+ private static final Integer FIFTEEN_ID_CARD = 15;
+ /**
+ * 18位身份证号
+ */
+ private static final Integer EIGHTEEN_ID_CARD = 18;
+
+ /**
+ * 根据身份证号获取性别
+ * 0女;1男
+ *
+ * @param IDCard
+ * @return
+ */
+ public static Integer getSex(String IDCard) {
+ if (StringUtils.isNotBlank(IDCard)) {
+ if (IDCard.length() == FIFTEEN_ID_CARD) {
+ if (Integer.parseInt(IDCard.substring(14, 15)) % 2 == 0) {
+ return 0;
+ } else {
+ return 1;
+ }
+ } else if (IDCard.length() == EIGHTEEN_ID_CARD) {
+ if (Integer.parseInt(IDCard.substring(16).substring(0, 1)) % 2 == 0) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 根据身份证号获取年龄
+ *
+ * @param IDCard
+ * @return
+ */
+ public static Integer getAge(String IDCard) {
+ int age;
+ LocalDate now = LocalDate.now();
+ int nowYear = now.getYear();
+ int nowMonth = now.getMonthValue();
+ int cardYear = 0;
+ int cardMonth = 0;
+ if (StringUtils.isNotBlank(IDCard) && isValid(IDCard)) {
+ if (IDCard.length() == FIFTEEN_ID_CARD) {
+ // 身份证上的年份(15位身份证为1980年前的)
+ String uyear = "19" + IDCard.substring(6, 8);
+ cardYear = Integer.parseInt(uyear);
+ // 身份证上的月份
+ String uyue = IDCard.substring(8, 10);
+ cardMonth = Integer.parseInt(uyue);
+ } else if (IDCard.length() == EIGHTEEN_ID_CARD) {
+ // 身份证上的年份
+ String year = IDCard.substring(6).substring(0, 4);
+ cardYear = Integer.parseInt(year);
+ // 身份证上的月份
+ String yue = IDCard.substring(10).substring(0, 2);
+ cardMonth = Integer.parseInt(yue);
+ }
+ }
+ // 当前月份大于用户出身的月份表示已过生日
+ if (cardMonth <= nowMonth) {
+ age = nowYear - cardYear + 1;
+ // 当前用户还没过生
+ } else {
+ age = nowYear - cardYear;
+ }
+ return age;
+ }
+
+ /**
+ * 获取出生日期 yyyy-MM-dd
+ *
+ * @param IDCard
+ * @return
+ */
+ public static String getBirthday(String IDCard) {
+ String year = "";
+ String month = "";
+ String day = "";
+ if (StringUtils.isNotBlank(IDCard)) {
+ //15位身份证号
+ if (IDCard.length() == FIFTEEN_ID_CARD) {
+ // 身份证上的年份(15位身份证为1980年前的)
+ year = "19" + IDCard.substring(6, 8);
+ //身份证上的月份
+ month = IDCard.substring(8, 10);
+ //身份证上的日期
+ day = IDCard.substring(10, 12);
+ //18位身份证号
+ } else if (IDCard.length() == EIGHTEEN_ID_CARD) {
+ // 身份证上的年份
+ year = IDCard.substring(6).substring(0, 4);
+ // 身份证上的月份
+ month = IDCard.substring(10).substring(0, 2);
+ //身份证上的日期
+ day = IDCard.substring(12).substring(0, 2);
+ }
+ }
+ return year + "-" + month + "-" + day;
+ }
+
+ /**
+ * 身份证验证是否有效
+ *
+ * @param id 号码内容
+ * @return boolean
+ * @author
+ * @date
+ */
+ public static boolean isValid(String id) {
+ Boolean validResult = true;
+ //校验长度只能为15或18
+ int len = id.length();
+ if (len != FIFTEEN_ID_CARD && len != EIGHTEEN_ID_CARD) {
+ validResult = false;
+ }
+ //校验生日
+ if (!validDate(id)) {
+ validResult = false;
+ }
+ return validResult;
+ }
+
+ /**
+ * 校验生日
+ *
+ * @param id
+ * @return
+ */
+ private static boolean validDate(String id) {
+ try {
+ String birth = id.length() == 15 ? "19" + id.substring(6, 12) : id.substring(6, 14);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ Date birthDate = sdf.parse(birth);
+ if (!birth.equals(sdf.format(birthDate))) {
+ return false;
+ }
+ } catch (ParseException e) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml
index c41c11e02..2750dfa8b 100644
--- a/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml
@@ -13,6 +13,11 @@
jar
+
+ com.esua.epdc
+ epdc-admin-client
+ 1.0.0
+
com.esua.epdc
epdc-commons-tools
@@ -48,6 +53,11 @@
epdc-user-client
1.0.0
+
+ com.esua.epdc
+ epdc-commons-tools-phone
+ ${project.version}
+
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
new file mode 100644
index 000000000..16a715bed
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
@@ -0,0 +1,32 @@
+package com.elink.esua.epdc.controller;
+
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
+import com.elink.esua.epdc.service.AppUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 用户模块
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/6 19:30
+ */
+@RestController
+@RequestMapping("app-user")
+public class ApiAppUserController {
+
+ @Autowired
+ private AppUserService appUserService;
+
+ @PostMapping("user/regist")
+ public Result userRegist(@RequestBody EpdcUserRegistFormDTO formDto){
+ ValidatorUtils.validateEntity(formDto);
+ return appUserService.userRegist(formDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
new file mode 100644
index 000000000..019d9d706
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
@@ -0,0 +1,31 @@
+package com.elink.esua.epdc.feign;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.CompleteDeptDTO;
+import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+
+/**
+ * 管理端接口
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 9:27
+ */
+@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class)
+public interface AdminFeignClient {
+
+ /**
+ * 根据网格ID获取所有上级机构名称和ID
+ *
+ * @param gridId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 09:31
+ */
+ @GetMapping("sys/dept/getCompleteDept/{gridId}")
+ Result getCompleteDept(@PathVariable("gridId") Long gridId);
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
new file mode 100644
index 000000000..8746185c9
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
@@ -0,0 +1,46 @@
+package com.elink.esua.epdc.feign;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.UserDTO;
+import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * appuser端接口
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 9:27
+ */
+@FeignClient(name = ServiceConstant.EPDC_USER_SERVER, fallback = UserFeignClientFallback.class)
+public interface UserFeignClient {
+
+ /**
+ * 获取用户信息
+ *
+ * @param openId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 11:04
+ */
+ @GetMapping("app-user/epdc-app/user/getByOpenId/{openId}")
+ Result getUserInfoByOpenId(@PathVariable("openId") String openId);
+
+ /**
+ * 用户注册
+ *
+ * @param userDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 14:26
+ */
+ @PostMapping(value = "app-user/epdc-app/user/regist", consumes = MediaType.APPLICATION_JSON_VALUE)
+ Result userRegist(@RequestBody UserDTO userDto);
+
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
new file mode 100644
index 000000000..bba5a42f0
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
@@ -0,0 +1,22 @@
+package com.elink.esua.epdc.feign.fallback;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.CompleteDeptDTO;
+import com.elink.esua.epdc.feign.AdminFeignClient;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 9:30
+ */
+@Component
+public class AdminFeignClientFallback implements AdminFeignClient {
+
+ @Override
+ public Result getCompleteDept(Long gridId) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getCompleteDept", gridId);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
new file mode 100644
index 000000000..379ab1685
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
@@ -0,0 +1,27 @@
+package com.elink.esua.epdc.feign.fallback;
+
+import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
+import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.UserDTO;
+import com.elink.esua.epdc.feign.UserFeignClient;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 9:30
+ */
+@Component
+public class UserFeignClientFallback implements UserFeignClient {
+
+ @Override
+ public Result getUserInfoByOpenId(String openId) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserInfoByOpenId", openId);
+ }
+
+ @Override
+ public Result userRegist(UserDTO userDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "userRegist", userDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/redis/AppUserRedis.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/redis/AppUserRedis.java
new file mode 100644
index 000000000..c2786227c
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/redis/AppUserRedis.java
@@ -0,0 +1,36 @@
+package com.elink.esua.epdc.redis;
+
+import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
+import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 10:26
+ */
+@Component
+public class AppUserRedis {
+
+ @Autowired
+ private RedisUtils redisUtils;
+
+ /**
+ * 获取短信验证码
+ *
+ * @param phone 手机号
+ * @return java.lang.String
+ * @author yujintao
+ * @date 2019/9/7 10:29
+ */
+ public String getSmsCode(String phone) {
+ String key = RedisKeys.getPhoneSmsCodeKey(phone);
+ Object smsCode = redisUtils.get(key);
+ if (null != smsCode) {
+ return (String) smsCode;
+ }
+ return null;
+ }
+
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
new file mode 100644
index 000000000..ea5dbb069
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
@@ -0,0 +1,22 @@
+package com.elink.esua.epdc.service;
+
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 9:50
+ */
+public interface AppUserService {
+
+ /**
+ * 移动端用户注册
+ *
+ * @param formDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 09:54
+ */
+ Result userRegist(EpdcUserRegistFormDTO formDto);
+}
diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
new file mode 100644
index 000000000..c82113bbf
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
@@ -0,0 +1,163 @@
+package com.elink.esua.epdc.service.impl;
+
+import com.elink.esua.epdc.commons.tools.constant.NumConstant;
+import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
+import com.elink.esua.epdc.commons.tools.exception.RenException;
+import com.elink.esua.epdc.commons.tools.utils.*;
+import com.elink.esua.epdc.dto.CompleteDeptDTO;
+import com.elink.esua.epdc.dto.UserDTO;
+import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO;
+import com.elink.esua.epdc.enums.AppUserAuditStateEnum;
+import com.elink.esua.epdc.enums.AppUserRegisterSourceEnum;
+import com.elink.esua.epdc.enums.AppUserRegisterWayEnum;
+import com.elink.esua.epdc.feign.AdminFeignClient;
+import com.elink.esua.epdc.feign.UserFeignClient;
+import com.elink.esua.epdc.redis.AppUserRedis;
+import com.elink.esua.epdc.service.AppUserService;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.mp.api.WxMpService;
+import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
+import me.chanjar.weixin.mp.bean.result.WxMpUser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+
+
+/**
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/7 9:50
+ */
+@Slf4j
+@Service
+public class AppUserServiceImpl implements AppUserService {
+
+ @Autowired
+ private AppUserRedis appUserRedis;
+
+ @Autowired
+ private WxMpService wxMpService;
+
+ @Autowired
+ private AdminFeignClient adminFeignClient;
+
+ @Autowired
+ private UserFeignClient userFeignClient;
+
+
+ @Override
+ public Result userRegist(EpdcUserRegistFormDTO formDto) {
+
+ // 校验手机验证码
+ String mobile = formDto.getMobile();
+ String smsCode = appUserRedis.getSmsCode(mobile);
+ if (StringUtils.isBlank(smsCode) || !smsCode.equals(formDto.getSmsCode())) {
+ return new Result().error("手机验证码错误");
+ }
+
+ // 解析微信用户信息
+ WxMpUser wxMpUser = this.getWxMpUser(formDto.getWxCode());
+
+ // 查询当前微信是否已注册用户
+ Result userInfoResult = userFeignClient.getUserInfoByOpenId(wxMpUser.getOpenId());
+ if (!userInfoResult.success()) {
+ return new Result().error("查询用户信息失败");
+ }
+ UserDTO userDto = userInfoResult.getData();
+ if (null != userDto) {
+ if (AppUserAuditStateEnum.UNDER_AUDIT.value().equals(userDto.getState())) {
+ return new Result().error("用户尚在审核中,请耐心等待");
+ }
+ return new Result().error("此微信号已注册用户,请前往登录");
+ }
+
+ // 获取网格机构详情
+ String gridId = formDto.getGridId();
+ Result adminDeptResult = adminFeignClient.getCompleteDept(Long.parseLong(gridId));
+ if (!adminDeptResult.success() || null == adminDeptResult.getData()) {
+ return new Result().error("查询网格信息失败");
+ }
+ CompleteDeptDTO completeDept = adminDeptResult.getData();
+
+ userDto = this.packUserDto(formDto, wxMpUser, completeDept);
+ HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+ userDto.setLastLoginIp(IpUtils.getIpAddr(request));
+
+ return userFeignClient.userRegist(userDto);
+ }
+
+ /**
+ * 组装用户对象
+ *
+ * @param formDto 前端表单提交
+ * @param wxMpUser 用户微信信息
+ * @param completeDept 用户机构信息
+ * @return com.elink.esua.epdc.dto.UserDTO
+ * @author yujintao
+ * @date 2019/9/7 14:13
+ */
+ private UserDTO packUserDto(EpdcUserRegistFormDTO formDto, WxMpUser wxMpUser, CompleteDeptDTO completeDept) {
+ UserDTO user = ConvertUtils.sourceToTarget(formDto, UserDTO.class);
+
+ PhoneDto phoneDto = PhoneUtil.getPhoneDto(formDto.getMobile());
+ if (phoneDto != null) {
+ user.setMobileProvince(phoneDto.getProvinceName());
+ user.setMobileCity(phoneDto.getCityName());
+ user.setMobileCarrier(phoneDto.getCarrier());
+ }
+ user.setSex(String.valueOf(IdentityNoUtils.getSex(formDto.getIdentityNo())));
+ user.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(formDto.getIdentityNo()), DateUtils.DATE_PATTERN));
+ user.setNickname(
+ formDto.getRoad().concat("-").concat(formDto.getRealName().substring(NumConstant.ZERO, NumConstant.ONE))
+ .concat(NumConstant.ZERO_STR.equals(user.getSex()) ? "女士" : "先生")
+ );
+
+ user.setStreet(completeDept.getStreet());
+ user.setStreetId(completeDept.getStreetId());
+ user.setCommunity(completeDept.getCommunity());
+ user.setCommunityId(completeDept.getCommunityId());
+ user.setGrid(completeDept.getGrid());
+ user.setGridId(completeDept.getGridId());
+
+ String address = formDto.getRoad()
+ .concat(StringUtils.isNotBlank(formDto.getVillageName()) ? formDto.getVillageName() : "")
+ .concat(StringUtils.isNotBlank(formDto.getBuildingCode()) ? formDto.getBuildingCode().concat("号楼") : "")
+ .concat(StringUtils.isNotBlank(formDto.getUnitCode()) ? formDto.getUnitCode().concat("单元") : "");
+
+ user.setAddress(address);
+ user.setWxOpenId(wxMpUser.getOpenId());
+ user.setFaceImg(wxMpUser.getHeadImgUrl());
+ user.setRegisterTime(new Date());
+ user.setState(AppUserAuditStateEnum.UNDER_AUDIT.value());
+ user.setPartyFlag(YesOrNoEnum.NO.value());
+ user.setRegisterWay(AppUserRegisterWayEnum.WX.value());
+ user.setRegisterSource(AppUserRegisterSourceEnum.WP.value());
+ return user;
+ }
+
+ /**
+ * 解析微信code获取微信用户信息
+ *
+ * @param wxCode
+ * @return me.chanjar.weixin.mp.bean.result.WxMpUser
+ * @author yujintao
+ * @date 2019/9/7 14:11
+ */
+ private WxMpUser getWxMpUser(String wxCode) {
+ WxMpUser wxMpUser = null;
+ try {
+ WxMpOAuth2AccessToken wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(wxCode);
+ wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);
+ } catch (WxErrorException e) {
+ throw new RenException("解析微信code失败");
+ }
+ if (null == wxMpUser || StringUtils.isBlank(wxMpUser.getOpenId())) {
+ throw new RenException("解析微信用户信息失败");
+ }
+ return wxMpUser;
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java
index 90cd8dce6..835e85e18 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java
@@ -20,6 +20,7 @@ package com.elink.esua.epdc.dto;
import java.io.Serializable;
import java.util.Date;
+
import lombok.Data;
@@ -31,135 +32,269 @@ import lombok.Data;
*/
@Data
public class UserDTO implements Serializable {
- private static final long serialVersionUID = 1L;
-
- private String id;
-
- private String nickname;
-
- private String mobile;
-
- private String password;
-
- private Date registerTime;
-
- private String faceImg;
-
-// @ApiModelProperty(value = "性别(女性-female,男性-male)")
- private String sex;
-
-// @ApiModelProperty(value = "生日")
- private Date birthday;
-
-// @ApiModelProperty(value = "邮箱")
- private String email;
-
-// @ApiModelProperty(value = "电话")
- private String telephone;
-
-// @ApiModelProperty(value = "邮编")
- private String zipCode;
-
-// @ApiModelProperty(value = "职业")
- private String profession;
-
-// @ApiModelProperty(value = "爱好")
- private String hobbies;
-
-// @ApiModelProperty(value = "个性签名")
- private String userSign;
-
-// @ApiModelProperty(value = "邀请码")
- private String invitationCode;
-
-// @ApiModelProperty(value = "最近登录时间")
- private Date lastLoginTime;
-
-// @ApiModelProperty(value = "最近登录IP")
- private String lastLoginIp;
-
-// @ApiModelProperty(value = "最近登录位置经度")
- private String lastLongitude;
-
-// @ApiModelProperty(value = "最近登录位置维度")
- private String lastLatitude;
-
-// @ApiModelProperty(value = "真实姓名")
- private String realName;
-
-// @ApiModelProperty(value = "身份证号")
- private String identityNo;
-
-// @ApiModelProperty(value = "居民住址")
- private String address;
-
-// @ApiModelProperty(value = "微信OPENID")
- private String wxOpenId;
-
-// @ApiModelProperty(value = "是否是党员(0-否,1-是)")
- private String partyFlag;
-
-// @ApiModelProperty(value = "注册方式(wx:微信注册)")
- private String registerWay;
-
-// @ApiModelProperty(value = "用户来源(wp:公众号)")
- private String registerSource;
-
-// @ApiModelProperty(value = "手机号所属省份")
- private String phoneProvince;
-
-// @ApiModelProperty(value = "手机号所属城市")
- private String phoneCity;
-
-// @ApiModelProperty(value = "手机号所属运营商")
- private String phoneCarrier;
-
-// @ApiModelProperty(value = "用户积分")
- private Integer points;
-
-// @ApiModelProperty(value = "邀请人ID")
- private String inviteUserId;
-
-// @ApiModelProperty(value = "乐观锁")
- private Integer revision;
-
-// @ApiModelProperty(value = "网格ID")
- private String gridId;
-
-// @ApiModelProperty(value = "创建人")
- private String createdBy;
-
-// @ApiModelProperty(value = "创建时间")
- private Date createdTime;
-
-// @ApiModelProperty(value = "更新人")
- private String updatedBy;
-
-// @ApiModelProperty(value = "更新时间")
- private Date updatedTime;
-
-// @ApiModelProperty(value = "删除标记")
- private String delFlag;
-
- /**
- * 审核状态
- */
- private Integer state;
-
- private String grid;
-
- private String street;
-
- private String streetId;
-
- private String community;
-
- private String communityId;
- //干部下沉 0不
- private String cadreFlag;
- //是否通过 0不
- private String pass;
- private String tagIds;
+ private static final long serialVersionUID = 915598602233599300L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 昵称
+ */
+ private String nickname;
+
+ /**
+ * 手机号
+ */
+ private String mobile;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 注册时间
+ */
+ private Date registerTime;
+
+ /**
+ * 头像
+ */
+ private String faceImg;
+
+ /**
+ * 性别(女性-female,男性-male)
+ */
+ private String sex;
+
+ /**
+ * 生日
+ */
+ private Date birthday;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 电话
+ */
+ private String telephone;
+
+ /**
+ * 邮编
+ */
+ private String zipCode;
+
+ /**
+ * 职业
+ */
+ private String profession;
+
+ /**
+ * 爱好
+ */
+ private String hobbies;
+
+ /**
+ * 个性签名
+ */
+ private String userSign;
+
+ /**
+ * 邀请码
+ */
+ private String invitationCode;
+
+ /**
+ * 最近登录时间
+ */
+ private Date lastLoginTime;
+
+ /**
+ * 最近登录IP
+ */
+ private String lastLoginIp;
+
+ /**
+ * 最近登录位置经度
+ */
+ private String lastLongitude;
+
+ /**
+ * 最近登录位置维度
+ */
+ private String lastLatitude;
+
+ /**
+ * 真实姓名
+ */
+ private String realName;
+
+ /**
+ * 身份证号
+ */
+ private String identityNo;
+
+ /**
+ * 所在道路(如山东路168号)
+ */
+ private String road;
+
+ /**
+ * 小区名称
+ */
+ private String villageName;
+
+ /**
+ * 所在楼栋号
+ */
+ private String buildingCode;
+
+ /**
+ * 所在单元号
+ */
+ private String unitCode;
+
+ /**
+ * 居民住址
+ */
+ private String address;
+
+ /**
+ * 微信OPENID
+ */
+ private String wxOpenId;
+
+ /**
+ * 是否是党员(0-否,1-是)
+ */
+ private String partyFlag;
+
+ /**
+ * 注册方式(wx:微信注册)
+ */
+ private String registerWay;
+
+ /**
+ * 用户来源(wp:公众号)
+ */
+ private String registerSource;
+
+ /**
+ * 手机号所属省份
+ */
+ private String mobileProvince;
+
+ /**
+ * 手机号所属城市
+ */
+ private String mobileCity;
+
+ /**
+ * 手机号所属运营商
+ */
+ private String mobileCarrier;
+
+ /**
+ * 用户积分
+ */
+ private Integer points;
+
+ /**
+ * 邀请人ID
+ */
+ private String inviteUserId;
+
+ /**
+ * 状态(0-未审核,1-审核通过,2-审核未通过)
+ */
+ private String state;
+
+ /**
+ * 街道
+ */
+ private String street;
+
+ /**
+ * 街道ID
+ */
+ private Long streetId;
+
+ /**
+ * 社区
+ */
+ private String community;
+
+ /**
+ * 社区ID
+ */
+ private Long communityId;
+
+ /**
+ * 网格
+ */
+ private String grid;
+
+ /**
+ * 网格ID
+ */
+ private Long gridId;
+
+ /**
+ * 删除标记
+ */
+ private String delFlag;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 姓
+ */
+ private String lastName;
+
+ /**
+ * 名
+ */
+ private String firstName;
+ /**
+ * 干部下沉 0不
+ */
+ private String cadreFlag;
+ /**
+ * 是否通过 0不
+ */
+ private String pass;
+ /**
+ * 党员标签
+ */
+ private String tagIds;
}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserRegistFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserRegistFormDTO.java
new file mode 100644
index 000000000..917d1e0b3
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserRegistFormDTO.java
@@ -0,0 +1,70 @@
+package com.elink.esua.epdc.dto.epdc.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 移动端用户注册
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/6 20:37
+ */
+@Data
+public class EpdcUserRegistFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -6563961367676230567L;
+
+ /**
+ * 身份证号码
+ */
+ @NotBlank(message = "身份证号码不能为空")
+ private String identityNo;
+ /**
+ * 手机号
+ */
+ @NotBlank(message = "手机号不能为空")
+ private String mobile;
+ /**
+ * 短信验证码
+ */
+ @NotBlank(message = "短信验证码不能为空")
+ private String smsCode;
+ /**
+ * 真实姓名
+ */
+ @NotBlank(message = "真实姓名不能为空")
+ private String realName;
+ /**
+ * 网格Id
+ */
+ @NotBlank(message = "网格Id不能为空")
+ private String gridId;
+ /**
+ * 所在道路
+ */
+ @NotBlank(message = "所在道路不能为空")
+ private String road;
+ /**
+ * 小区名
+ */
+ @NotBlank(message = "小区名不能为空")
+ private String villageName;
+ /**
+ * 楼栋号
+ */
+ @NotBlank(message = "楼栋号不能为空")
+ private String buildingCode;
+ /**
+ * 单元号
+ */
+ @NotBlank(message = "单元号不能为空")
+ private String unitCode;
+ /**
+ * 微信code
+ */
+ @NotBlank(message = "微信code不能为空")
+ private String wxCode;
+}
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml
index 5a89f4f99..6bb59872c 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml
@@ -18,11 +18,6 @@
epdc-user-client
${project.version}
-
- com.esua.epdc
- epdc-commons-tools-phone
- ${project.version}
-
com.esua.epdc
epdc-commons-tools
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
new file mode 100644
index 000000000..65bad00a7
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
@@ -0,0 +1,49 @@
+package com.elink.esua.epdc.controller;
+
+import com.elink.esua.epdc.commons.tools.constant.Constant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dto.UserDTO;
+import com.elink.esua.epdc.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 对移动端开放
+ *
+ * @author yujintao
+ * @email yujintao@elink-cn.com
+ * @date 2019/9/6 20:31
+ */
+@RestController
+@RequestMapping(Constant.EPDC_APP + "user")
+public class EpdcAppUserController {
+
+ @Autowired
+ private UserService userService;
+
+ /**
+ * 根据用户openId获取用户信息(只查询已注册或审核中的用户)
+ *
+ * @param openId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 10:51
+ */
+ @GetMapping("getByOpenId/{openId}")
+ public Result getUserInfoByOpenId(@PathVariable("openId") String openId) {
+ return userService.getUserInfoByOpenId(openId);
+ }
+
+ /**
+ * 移动端用户注册
+ *
+ * @param userDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 14:20
+ */
+ @PostMapping("regist")
+ public Result userRegist(@RequestBody UserDTO userDto) {
+ return userService.userRegist(userDto);
+ }
+}
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java
index ba14ce0b2..9441e1656 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java
@@ -17,9 +17,6 @@
package com.elink.esua.epdc.entity;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
@@ -38,146 +35,223 @@ import java.util.Date;
@EqualsAndHashCode(callSuper=false)
@TableName("epdc_user")
public class UserEntity extends BaseEpdcEntity {
- private static final long serialVersionUID = 1L;
+
+ private static final long serialVersionUID = -6047044658708037479L;
/**
* 昵称
*/
- private String nickname;
+ private String nickname;
+
/**
* 手机号
*/
- private String mobile;
+ private String mobile;
+
/**
* 密码
*/
- private String password;
+ private String password;
+
/**
* 注册时间
*/
- private Date registerTime;
+ private Date registerTime;
+
/**
* 头像
*/
- private String faceImg;
+ private String faceImg;
+
/**
* 性别(女性-female,男性-male)
*/
- private String sex;
+ private String sex;
+
/**
* 生日
*/
- private Date birthday;
+ private Date birthday;
+
/**
* 邮箱
*/
- private String email;
+ private String email;
+
/**
* 电话
*/
- private String telephone;
+ private String telephone;
+
/**
* 邮编
*/
- private String zipCode;
+ private String zipCode;
+
/**
* 职业
*/
- private String profession;
+ private String profession;
+
/**
* 爱好
*/
- private String hobbies;
+ private String hobbies;
+
/**
* 个性签名
*/
- private String userSign;
+ private String userSign;
+
/**
* 邀请码
*/
- private String invitationCode;
+ private String invitationCode;
+
/**
* 最近登录时间
*/
- private Date lastLoginTime;
+ private Date lastLoginTime;
+
/**
* 最近登录IP
*/
- private String lastLoginIp;
+ private String lastLoginIp;
+
/**
* 最近登录位置经度
*/
- private String lastLongitude;
+ private String lastLongitude;
+
/**
* 最近登录位置维度
*/
- private String lastLatitude;
+ private String lastLatitude;
+
/**
* 真实姓名
*/
- private String realName;
+ private String realName;
+
/**
* 身份证号
*/
- private String identityNo;
+ private String identityNo;
+
+ /**
+ * 所在道路(如山东路168号)
+ */
+ private String road;
+
+ /**
+ * 小区名称
+ */
+ private String villageName;
+
+ /**
+ * 所在楼栋号
+ */
+ private String buildingCode;
+
+ /**
+ * 所在单元号
+ */
+ private String unitCode;
+
/**
* 居民住址
*/
- private String address;
+ private String address;
+
/**
* 微信OPENID
*/
- private String wxOpenId;
+ private String wxOpenId;
+
/**
* 是否是党员(0-否,1-是)
*/
- private String partyFlag;
+ private String partyFlag;
+
/**
* 注册方式(wx:微信注册)
*/
- private String registerWay;
+ private String registerWay;
+
/**
* 用户来源(wp:公众号)
*/
- private String registerSource;
+ private String registerSource;
+
/**
* 手机号所属省份
*/
- private String phoneProvince;
+ private String mobileProvince;
+
/**
* 手机号所属城市
*/
- private String phoneCity;
+ private String mobileCity;
+
/**
* 手机号所属运营商
*/
- private String phoneCarrier;
+ private String mobileCarrier;
+
/**
* 用户积分
*/
- private Integer points;
+ private Integer points;
+
/**
* 邀请人ID
*/
- private String inviteUserId;
+ private String inviteUserId;
+
/**
- * 网格ID
+ * 状态(0-未审核,1-审核通过,2-审核未通过)
+ */
+ private String state;
+
+ /**
+ * 街道
+ */
+ private String street;
+
+ /**
+ * 街道ID
+ */
+ private Long streetId;
+
+ /**
+ * 社区
*/
- private String gridId;
+ private String community;
- /**
- * 审核状态
- */
- private Integer state;
+ /**
+ * 社区ID
+ */
+ private Long communityId;
- private String grid;
+ /**
+ * 网格
+ */
+ private String grid;
- private String street;
+ /**
+ * 网格ID
+ */
+ private Long gridId;
- private String streetId;
+ /**
+ * 姓
+ */
+ private String lastName;
- private String community;
+ /**
+ * 名
+ */
+ private String firstName;
- private String communityId;
}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
index 8f5bd2317..d451cd157 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
@@ -19,6 +19,7 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.entity.UserEntity;
@@ -46,4 +47,24 @@ public interface UserService extends BaseService {
void delete(String[] ids);
void audit(UserDTO dto);
+
+ /**
+ * 根据用户openId获取用户信息
+ *
+ * @param openId
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 10:52
+ */
+ Result getUserInfoByOpenId(String openId);
+
+ /**
+ * 移动端用户注册
+ *
+ * @param userDto
+ * @return com.elink.esua.epdc.commons.tools.utils.Result
+ * @author yujintao
+ * @date 2019/9/7 14:20
+ */
+ Result userRegist(UserDTO userDto);
}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
index b63abe334..a1fce3fb6 100644
--- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
+++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
@@ -19,22 +19,19 @@ package com.elink.esua.epdc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.elink.esua.epdc.commons.mybatis.enums.DelFlagEnum;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
-import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
+import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
-import com.elink.esua.epdc.dao.PartyMembersDao;
+import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.UserDao;
import com.elink.esua.epdc.dto.PartyMembersDTO;
-import com.elink.esua.epdc.dto.PartyTagRelationDTO;
import com.elink.esua.epdc.dto.UserDTO;
-import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.entity.UserEntity;
+import com.elink.esua.epdc.enums.AppUserAuditStateEnum;
import com.elink.esua.epdc.redis.UserRedis;
import com.elink.esua.epdc.service.PartyMembersService;
-import com.elink.esua.epdc.service.PartyTagRelationService;
import com.elink.esua.epdc.service.UserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +50,7 @@ import java.util.Map;
*/
@Service
public class UserServiceImpl extends BaseServiceImpl implements UserService {
+
@Autowired
private UserRedis userRedis;
@@ -75,29 +73,29 @@ public class UserServiceImpl extends BaseServiceImpl implem
return ConvertUtils.sourceToTarget(entityList, UserDTO.class);
}
- private QueryWrapper getWrapper(Map params){
- String auditState= (String) params.get("auditState");
- String id = (String)params.get("id");
- String streetId=(String) params.get("streetId");
- String communityId=(String) params.get("communityId");
- String gridId=(String) params.get("gridId");
- String realName=(String) params.get("realName");
- String mobile=(String) params.get("mobile");
- String identityNo=(String) params.get("identityNo");
- String startTime=(String) params.get("startTime");
- String endTime=(String) params.get("endTime");
+ private QueryWrapper getWrapper(Map params) {
+ String auditState = (String) params.get("auditState");
+ String id = (String) params.get("id");
+ String streetId = (String) params.get("streetId");
+ String communityId = (String) params.get("communityId");
+ String gridId = (String) params.get("gridId");
+ String realName = (String) params.get("realName");
+ String mobile = (String) params.get("mobile");
+ String identityNo = (String) params.get("identityNo");
+ String startTime = (String) params.get("startTime");
+ String endTime = (String) params.get("endTime");
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), "ID", id);
- wrapper.eq(StringUtils.isNotBlank(streetId),"STREET_ID",streetId);
- wrapper.eq(StringUtils.isNotBlank(communityId),"COMMUNITY_ID",communityId);
- wrapper.eq(StringUtils.isNotBlank(gridId),"GRID_ID",gridId);
- wrapper.eq(StringUtils.isNotBlank(realName),"REAL_NAME",realName);
- wrapper.eq(StringUtils.isNotBlank(mobile),"MOBILE",mobile);
- wrapper.eq(StringUtils.isNotBlank(identityNo),"IDENTITY_NO",identityNo);
- wrapper.ge(StringUtils.isNotBlank(startTime),"REGISTER_TIME",startTime);
- wrapper.lt(StringUtils.isNotBlank(endTime),"REGISTER_TIME",endTime);
- wrapper.eq(StringUtils.isNotBlank(auditState),"STATE",auditState);
+ wrapper.eq(StringUtils.isNotBlank(streetId), "STREET_ID", streetId);
+ wrapper.eq(StringUtils.isNotBlank(communityId), "COMMUNITY_ID", communityId);
+ wrapper.eq(StringUtils.isNotBlank(gridId), "GRID_ID", gridId);
+ wrapper.eq(StringUtils.isNotBlank(realName), "REAL_NAME", realName);
+ wrapper.eq(StringUtils.isNotBlank(mobile), "MOBILE", mobile);
+ wrapper.eq(StringUtils.isNotBlank(identityNo), "IDENTITY_NO", identityNo);
+ wrapper.ge(StringUtils.isNotBlank(startTime), "REGISTER_TIME", startTime);
+ wrapper.lt(StringUtils.isNotBlank(endTime), "REGISTER_TIME", endTime);
+ wrapper.eq(StringUtils.isNotBlank(auditState), "STATE", auditState);
// wrapper.eq(Constant.DEL_FLAG, DelFlagEnum.NORMAL.value());
return wrapper;
}
@@ -128,10 +126,6 @@ public class UserServiceImpl extends BaseServiceImpl implem
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
- //逻辑删除
- //logicDelete(ids, UserEntity.class);
-
- //物理删除
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@@ -139,8 +133,8 @@ public class UserServiceImpl extends BaseServiceImpl implem
public void audit(UserDTO dto) {
UserEntity entity = ConvertUtils.sourceToTarget(dto, UserEntity.class);
updateById(entity);
- if("1".equals(dto.getPass())){
- PartyMembersDTO partyMembersDTO=ConvertUtils.sourceToTarget(dto, PartyMembersDTO.class);
+ if (YesOrNoEnum.YES.value().equals(dto.getPass())) {
+ PartyMembersDTO partyMembersDTO = ConvertUtils.sourceToTarget(dto, PartyMembersDTO.class);
partyMembersDTO.setStreetName(dto.getStreet());
partyMembersDTO.setCommunityName(dto.getCommunity());
partyMembersDTO.setGridName(dto.getGrid());
@@ -148,4 +142,22 @@ public class UserServiceImpl extends BaseServiceImpl implem
}
}
+ @Override
+ public Result getUserInfoByOpenId(String openId) {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("WX_OPEN_ID", openId)
+ .ne("STATE", AppUserAuditStateEnum.AUDIT_FAILURE.value());
+ UserEntity userEntity = this.baseDao.selectOne(wrapper);
+ if (null != userEntity) {
+ UserDTO dto = ConvertUtils.sourceToTarget(userEntity, UserDTO.class);
+ return new Result().ok(dto);
+ }
+ return new Result().ok(null);
+ }
+
+ @Override
+ public Result userRegist(UserDTO userDto) {
+ this.save(userDto);
+ return new Result().ok("注册成功");
+ }
}
\ No newline at end of file