From 7a0add13c3d2d0784f6cd5915d030cef55e3c478 Mon Sep 17 00:00:00 2001 From: yujintao Date: Sat, 7 Sep 2019 14:30:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B3=A8=E5=86=8C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=88=E5=88=9D=E7=89=88=E6=9C=AA=E6=B5=8B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/utils/IdentityNoUtils.java | 167 ++++++++ .../epdc-api/epdc-api-client/pom.xml | 10 + .../epdc/controller/ApiAppUserController.java | 32 ++ .../esua/epdc/feign/AdminFeignClient.java | 31 ++ .../esua/epdc/feign/UserFeignClient.java | 46 ++ .../fallback/AdminFeignClientFallback.java | 22 + .../fallback/UserFeignClientFallback.java | 27 ++ .../elink/esua/epdc/redis/AppUserRedis.java | 36 ++ .../esua/epdc/service/AppUserService.java | 22 + .../epdc/service/impl/AppUserServiceImpl.java | 163 ++++++++ .../java/com/elink/esua/epdc/dto/UserDTO.java | 393 ++++++++++++------ .../dto/epdc/form/EpdcUserRegistFormDTO.java | 70 ++++ .../epdc-user/epdc-user-server/pom.xml | 5 - .../controller/EpdcAppUserController.java | 49 +++ .../elink/esua/epdc/entity/UserEntity.java | 164 ++++++-- .../elink/esua/epdc/service/UserService.java | 21 + .../epdc/service/impl/UserServiceImpl.java | 76 ++-- 17 files changed, 1123 insertions(+), 211 deletions(-) create mode 100644 esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/IdentityNoUtils.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/redis/AppUserRedis.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserRegistFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java 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