diff --git a/epmet-auth/deploy/docker-compose-dev.yml b/epmet-auth/deploy/docker-compose-dev.yml index 7ee9697721..a0cb5c97e9 100644 --- a/epmet-auth/deploy/docker-compose-dev.yml +++ b/epmet-auth/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-auth-server: container_name: epmet-auth-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.57 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.58 ports: - "8081:8081" network_mode: host # 使用现有网络 diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index 489c6b5373..9421eca9b1 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.57 + 0.3.58 com.epmet epmet-cloud diff --git a/epmet-auth/src/main/java/com/epmet/constant/AuthHttpUrlConstant.java b/epmet-auth/src/main/java/com/epmet/constant/AuthHttpUrlConstant.java new file mode 100644 index 0000000000..dc3ec4e07d --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/constant/AuthHttpUrlConstant.java @@ -0,0 +1,24 @@ +package com.epmet.constant; + +/** + * @Author zxc + * @CreateTime 2020/7/30 10:05 + */ +public interface AuthHttpUrlConstant { + + /** + * 注册url + */ + String REGISTER_URL = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/register"; + + /** + * 获取客户信息url + */ + String CUSTOMER_MSG_URL = "https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/"; + + /** + * 登录url + */ + String RESI_AND_WORK_LOGIN_URL = "https://epmet-cloud.elinkservice.cn/api/third/customermp/resiandworklogin"; + +} diff --git a/epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java b/epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java new file mode 100644 index 0000000000..80bd70e7b7 --- /dev/null +++ b/epmet-auth/src/main/java/com/epmet/constant/ThirdApiConstant.java @@ -0,0 +1,30 @@ +package com.epmet.constant; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/7/30 10:46 + */ +public interface ThirdApiConstant { + /** + * 根据openId新增或更新用户信息 + */ + String THIRD_PAUSER_SAVEUSER = "https://epmet-cloud.elinkservice.cn/api/third/pauser/saveuser"; + /** + * 根据手机号查询公众号用户基本信息,校验用户是否存在 + */ + String THIRD_PAUSER_CHECKPAUSER = "https://epmet-cloud.elinkservice.cn/api/third/pauser/checkpauser"; + /** + * 用户登陆,新增访问记录数据 + */ + String THIRD_PAUSERVISITED_SAVEUSERVISITED = "https://epmet-cloud.elinkservice.cn/api/third/pauservisited/saveuservisited"; + /** + * 根据客户Id查询各项注册信息 + */ + String THIRD_PACUSTOMER_GETCUSTOMERAGENCYUSER = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/getcustomeragencyuser/"; + /** + * 修改客户数据状态为已完成初始化 + */ + String THIRD_PACUSTOMER_UPDATECUSTOMER = "https://epmet-cloud.elinkservice.cn/api/third/pacustomer/updatecustomer/"; + +} diff --git a/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java b/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java index 85163f625c..8f93ab52fb 100644 --- a/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java +++ b/epmet-auth/src/main/java/com/epmet/controller/PublicUserLoginController.java @@ -1,6 +1,7 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; @@ -12,11 +13,12 @@ import com.epmet.dto.form.PublicSendSmsCodeFormDTO; import com.epmet.dto.form.RegisterFormDTO; import com.epmet.dto.result.UserTokenResultDTO; import com.epmet.service.PublicUserLoginService; +import com.netflix.ribbon.proxy.annotation.Http; 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; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpRequest; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.web.bind.annotation.*; /** * 描述一下 @@ -38,8 +40,10 @@ public class PublicUserLoginController { * @description 解析wxcode获取用户信息并生成token **/ @PostMapping(value = "/wxcodetotoken") - public Result wxCodeToToken(@RequestBody PaWxCodeFormDTO formDTO) { + + public Result wxCodeToToken(@RequestHeader("source") String source, @RequestBody PaWxCodeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, PaWxCodeFormDTO.AddUserInternalGroup.class); + formDTO.setSource(source); return new Result().ok(publicUserLoginService.wxCodeToToken(formDTO)); } @@ -50,11 +54,12 @@ public class PublicUserLoginController { * @Description 公众号登录-发送验证码 **/ @PostMapping(value = "/sendsmscode") - public Result sendSmsCode(@RequestBody PublicSendSmsCodeFormDTO formDTO) { + public Result sendSmsCode(@RequestHeader("source") String source, @RequestBody PublicSendSmsCodeFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO,PublicSendSmsCodeFormDTO.AddUserShowGroup.class); - if(formDTO.getIsLogon()!=true&&formDTO.getIsLogon()!=false){ + if (formDTO.getIsLogon() != true && formDTO.getIsLogon() != false) { throw new RenException(PublicUserLoginConstant.PARAMETER_EXCEPTION); } + formDTO.setSource(source); publicUserLoginService.sendSmsCode(formDTO); return new Result(); } @@ -66,8 +71,9 @@ public class PublicUserLoginController { * @Description 公众号-手机验证码登陆 **/ @PostMapping(value = "/loginbyphone") - public Result loginByPhone(@LoginUser TokenDto tokenDTO, @RequestBody LoginByPhoneFormDTO formDTO) { + public Result loginByPhone(@RequestHeader("source") String source, @LoginUser TokenDto tokenDTO, @RequestBody LoginByPhoneFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, LoginByPhoneFormDTO.AddUserShowGroup.class, LoginByPhoneFormDTO.LoginByPhone.class); + formDTO.setSource(source); return new Result().ok(publicUserLoginService.loginByPhone(tokenDTO, formDTO)); } @@ -78,9 +84,10 @@ public class PublicUserLoginController { * @Description 公众号-手机号注册 **/ @PostMapping(value = "/register") - public Result register(@LoginUser TokenDto tokenDTO, @RequestBody RegisterFormDTO formDTO) { + public Result register(@RequestHeader("source") String source, @LoginUser TokenDto tokenDTO, @RequestBody RegisterFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, RegisterFormDTO.AddUserInternalGroup.class, RegisterFormDTO.AddUserShowGroup.class); formDTO.setUserId(tokenDTO.getUserId()); + formDTO.setSource(source); return new Result().ok(publicUserLoginService.register(formDTO)); } diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java index 8b09d458d9..40a1851c89 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/LoginByPhoneFormDTO.java @@ -34,5 +34,10 @@ public class LoginByPhoneFormDTO implements Serializable { @NotBlank(message="验证码不能为空", groups = {LoginByPhone.class}) private String smsCode; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + } diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java index 33161e90c9..9d21fb8aea 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/PaWxCodeFormDTO.java @@ -20,4 +20,8 @@ public class PaWxCodeFormDTO implements Serializable { */ @NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class}) private String wxCode; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; } diff --git a/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java b/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java index 22b096ca6a..cfedfd3a40 100644 --- a/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java +++ b/epmet-auth/src/main/java/com/epmet/dto/form/PublicSendSmsCodeFormDTO.java @@ -26,8 +26,14 @@ public class PublicSendSmsCodeFormDTO implements Serializable { */ @NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class}) private String phone; + /** * 是否登陆(登陆:true 注册:false) */ private Boolean isLogon; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; } diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java index 524f475671..3c04b206be 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java @@ -1,17 +1,21 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.epmet.common.token.constant.LoginConstant; -import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.*; import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.PhoneValidatorUtils; +import com.epmet.constant.AuthHttpUrlConstant; import com.epmet.constant.PublicUserLoginConstant; import com.epmet.constant.SmsTemplateConstant; +import com.epmet.constant.ThirdApiConstant; import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaUserDTO; import com.epmet.dto.PaUserWechatDTO; @@ -32,10 +36,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -68,13 +70,17 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { public UserTokenResultDTO wxCodeToToken(PaWxCodeFormDTO formDTO) { //1.通过微信code获取用户基本信息 WxMpUser wxMpUser = this.getWxMpUser(formDTO.getWxCode()); + WxCodeToTokenFormDTO dto = new WxCodeToTokenFormDTO(); + dto.setWxMpUser(wxMpUser); + dto.setSource(formDTO.getSource()); //2.将获取的用户基本信息初始化到数据库 - Result result = epmetThirdFeignClient.saveUser(wxMpUser); + String url = ThirdApiConstant.THIRD_PAUSER_SAVEUSER; + Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)); if (!result.success()) { throw new RenException(PublicUserLoginConstant.SAVE_USER_EXCEPTION); } - SaveUserResultDTO resultDTO = result.getData(); + SaveUserResultDTO resultDTO = JSONObject.parseObject(result.getData(), SaveUserResultDTO.class); //3.获取用户token String token = this.generateGovWxmpToken(resultDTO.getUserId()); @@ -156,19 +162,23 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getPhone(), EpmetErrorCode.ERROR_PHONE.getCode(), EpmetErrorCode.ERROR_PHONE.getMsg())); throw new RenException(EpmetErrorCode.ERROR_PHONE.getCode()); } - //2、根据手机号校验用户是否存在 - Result Result = epmetThirdFeignClient.checkPaUser(formDTO.getPhone()); - if (!Result.success()) { - logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getPhone(), Result.getCode(), Result.getMsg())); - throw new RenException(Result.getCode()); + //2、根据数据来源和手机号校验用户是否存在 + CheckPaUserFormDTO dto = new CheckPaUserFormDTO(); + dto.setPhone(formDTO.getPhone()); + dto.setSource(formDTO.getSource()); + String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER; + Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)); + if (!result.success()) { + logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getPhone(), result.getCode(), result.getMsg())); + throw new RenException(result.getCode()); } - CustomerUserResultDTO ResultDTO = Result.getData(); + CustomerUserResultDTO resultDTO = JSONObject.parseObject(result.getData(), CustomerUserResultDTO.class); //登陆 - if (formDTO.getIsLogon() && null == ResultDTO.getPaUserResult()) { + if (formDTO.getIsLogon() && null == resultDTO.getPaUserResult()) { throw new RenException(EpmetErrorCode.PUBLIC_NOT_EXISTS.getCode()); } //注册 - if (!formDTO.getIsLogon() && null != ResultDTO.getPaUserResult()) { + if (!formDTO.getIsLogon() && null != resultDTO.getPaUserResult()) { throw new RenException(EpmetErrorCode.MOBILE_USED.getCode()); } //3、发送短信验证码 @@ -194,13 +204,17 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { **/ @Override public UserTokenResultDTO loginByPhone(TokenDto tokenDTO, LoginByPhoneFormDTO formDTO) { - //1.根据手机号查询到用户、客户信息 - Result result = epmetThirdFeignClient.checkPaUser(formDTO.getPhone()); + //1.根据数据来源和手机号查询用户、客户信息 + CheckPaUserFormDTO dto = new CheckPaUserFormDTO(); + dto.setPhone(formDTO.getPhone()); + dto.setSource(formDTO.getSource()); + String url = ThirdApiConstant.THIRD_PAUSER_CHECKPAUSER; + Result result = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)); if (!result.success()) { logger.error(String.format("手机验证码登录异常,手机号[%s],code[%s],msg[%s]", formDTO.getPhone(), result.getCode(), result.getMsg())); throw new RenException(result.getCode()); } - CustomerUserResultDTO resultDTO = result.getData(); + CustomerUserResultDTO resultDTO = JSONObject.parseObject(result.getData(), CustomerUserResultDTO.class); //2.用户不存在时不允许登陆 PaUserDTO userDTO = resultDTO.getPaUserResult(); @@ -236,7 +250,9 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { visited.setUserId(userDTO.getId()); visited.setLogonUserId(tokenDTO.getUserId()); visited.setPhone(formDTO.getPhone()); - Result visitedResult = epmetThirdFeignClient.saveUserVisited(visited); + visited.setSource(formDTO.getSource()); + String saveUserVisitedUrl = ThirdApiConstant.THIRD_PAUSERVISITED_SAVEUSERVISITED; + Result visitedResult = HttpClientManager.getInstance().sendPostByJSON(saveUserVisitedUrl, JSON.toJSONString(visited)); if(!visitedResult.success()){ logger.error(PublicUserLoginConstant.SAVE_VISITED_EXCEPTION); } @@ -256,12 +272,16 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService { @Override public UserTokenResultDTO register(RegisterFormDTO formDTO) { //1.调用epmet-third服务,完成信息注册 - Result result = epmetThirdFeignClient.register(formDTO); + String data = HttpClientManager.getInstance().sendPostByJSON(AuthHttpUrlConstant.REGISTER_URL, JSON.toJSONString(formDTO)).getData(); + JSONObject toResult = JSON.parseObject(data); + Result result = ConvertUtils.mapToEntity(toResult, Result.class); if (!result.success()) { - logger.error("调用epmet_third服务初始化用户信息失败"); + logger.error(String.format("调用epmet_third服务初始化用户信息失败,数据来源[%s],手机号[%s],userId:[%S]", formDTO.getSource(), formDTO.getPhone(), formDTO.getUserId())); throw new RenException(result.getCode()); } - RegisterResultDTO resultDTO = result.getData(); + Object RegisterResult = result.getData(); + JSONObject jsonObject = JSON.parseObject(RegisterResult.toString()); + RegisterResultDTO resultDTO = ConvertUtils.mapToEntity(jsonObject, RegisterResultDTO.class); //2.直接生成一个新的token放入缓存中(不管缓存中是否存在旧的token,都重新生成) //2-1.生成token diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java index 2bb6c09a7e..9b3c2fc0a7 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java @@ -1,6 +1,8 @@ package com.epmet.service.impl; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.epmet.common.token.constant.LoginConstant; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -9,10 +11,8 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.GovTokenDto; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.password.PasswordUtils; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.CpUserDetailRedis; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.*; +import com.epmet.constant.AuthHttpUrlConstant; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; @@ -70,12 +70,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService { WxLoginFormDTO resiLoginFormDTO = new WxLoginFormDTO(); resiLoginFormDTO.setAppId(formDTO.getAppId()); resiLoginFormDTO.setWxCode(formDTO.getWxCode()); - Result result = epmetThirdFeignClient.resiAndWorkLogin(resiLoginFormDTO); - if (!result.success()) { - logger.error("居民端小程序登陆,调用epmet_third服务获取数据失败"); - throw new RenException(result.getCode()); - } - UserWechatDTO userWechatDTO = result.getData(); + UserWechatDTO userWechatDTO = this.getUserWeChat(resiLoginFormDTO); //2.调用epmet-user服务,新增用户信息(先判断用户是否存在,不存在则新增存在则更新) WxUserFormDTO wxUserFormDTO = new WxUserFormDTO(); @@ -83,7 +78,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService { wxUserFormDTO.setApp(formDTO.getApp()); Result userResult = epmetUserOpenFeignClient.saveWxUser(wxUserFormDTO); if (!userResult.success()) { - throw new RenException(result.getCode()); + throw new RenException(userResult.getCode()); } UserDTO userDTO = userResult.getData(); @@ -147,12 +142,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService { WxLoginFormDTO resiLoginFormDTO = new WxLoginFormDTO(); resiLoginFormDTO.setAppId(formDTO.getAppId()); resiLoginFormDTO.setWxCode(formDTO.getWxCode()); - Result result = epmetThirdFeignClient.resiAndWorkLogin(resiLoginFormDTO); - if (!result.success()) { - logger.error("工作端小程序登陆,调用epmet_third服务获取数据失败"); - throw new RenException(result.getCode()); - } - UserWechatDTO userWechatDTO = result.getData(); + UserWechatDTO userWechatDTO = this.getUserWeChat(resiLoginFormDTO); //2.根据openid查询用户是否存在历史登陆信息 Result latestStaffWechat = epmetUserOpenFeignClient.getLatestStaffWechatLoginRecord(userWechatDTO.getWxOpenId()); @@ -369,12 +359,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService { WxLoginFormDTO resiLoginFormDTO = new WxLoginFormDTO(); resiLoginFormDTO.setAppId(formDTO.getAppId()); resiLoginFormDTO.setWxCode(formDTO.getWxCode()); - Result result = epmetThirdFeignClient.resiAndWorkLogin(resiLoginFormDTO); - if (!result.success()) { - logger.error("工作端小程序登陆,调用epmet_third服务获取数据失败"); - throw new RenException(result.getCode()); - } - UserWechatDTO userWechatDTO = result.getData(); + UserWechatDTO userWechatDTO = this.getUserWeChat(resiLoginFormDTO); WxMaJscode2SessionResult wxMaJscode2SessionResult = new WxMaJscode2SessionResult(); wxMaJscode2SessionResult.setOpenid(userWechatDTO.getWxOpenId()); wxMaJscode2SessionResult.setSessionKey(userWechatDTO.getSessionKey()); @@ -419,12 +404,7 @@ public class ThirdLoginServiceImpl implements ThirdLoginService { throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode()); } //1.根据appId查询对应客户Id - Result resultDTO = epmetThirdFeignClient.getCustomerMsg(formDTO.getAppId()); - if (!resultDTO.success()) { - logger.error(String.format("根据appId查询客户Id失败,对应appId->" + formDTO.getAppId())); - throw new RenException(resultDTO.getMsg()); - } - PaCustomerDTO customer = resultDTO.getData().getCustomer(); + PaCustomerDTO customer = this.getCustomerInfo(formDTO.getAppId()); //7.28 根据appId只能存在一个客户Id,后边的批量操作逻辑 //2.根据手机号查询到用户信息 @@ -461,12 +441,8 @@ public class ThirdLoginServiceImpl implements ThirdLoginService { @Override public List getMyOrgByPassword(ThirdStaffOrgsFormDTO formDTO) { //0.根据appId查询对应客户Id - Result resultDTO = epmetThirdFeignClient.getCustomerMsg(formDTO.getAppId()); - if (!resultDTO.success()) { - logger.error(String.format("根据appId查询客户Id失败,对应appId->" + formDTO.getAppId())); - throw new RenException(resultDTO.getMsg()); - } - PaCustomerDTO customer = resultDTO.getData().getCustomer(); +// Result resultDTO = epmetThirdFeignClient.getCustomerMsg(formDTO.getAppId()); + PaCustomerDTO customer = this.getCustomerInfo(formDTO.getAppId()); //7.28 上边根据appId只能锁定一条客户id,后边的批量循环操作暂不做调整,还是使用之前的代码 sun //1、根据手机号查询到用户信息 ThirdCustomerStaffFormDTO dto = new ThirdCustomerStaffFormDTO(); @@ -526,4 +502,44 @@ public class ThirdLoginServiceImpl implements ThirdLoginService { return new ArrayList<>(); } + /** + * @Description 获取客户信息 + * @param appId + * @author zxc + */ + public PaCustomerDTO getCustomerInfo(String appId){ + JSONObject jsonObject = new JSONObject(); + String data = HttpClientManager.getInstance().sendPostByJSON(AuthHttpUrlConstant.CUSTOMER_MSG_URL + appId, JSON.toJSONString(jsonObject)).getData(); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (!mapToResult.success()) { + logger.error(String.format("根据appId查询客户Id失败,对应appId->" + appId)); + throw new RenException(mapToResult.getMsg()); + } + Object PublicCustomerResultDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); + PublicCustomerResultDTO publicCustomerResultDTO = ConvertUtils.mapToEntity(json, PublicCustomerResultDTO.class); + PaCustomerDTO customer = publicCustomerResultDTO.getCustomer(); + return customer; + } + + /** + * @Description 获取UserWechatDTO + * @param resiLoginFormDTO + * @author zxc + */ + public UserWechatDTO getUserWeChat(WxLoginFormDTO resiLoginFormDTO){ + String data = HttpClientManager.getInstance().sendPostByJSON(AuthHttpUrlConstant.RESI_AND_WORK_LOGIN_URL, JSON.toJSONString(resiLoginFormDTO)).getData(); + JSONObject toResult = JSON.parseObject(data); + Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); + if (!mapToResult.success()) { + logger.error("居民端小程序登陆,调用epmet_third服务获取数据失败"); + throw new RenException(mapToResult.getCode()); + } + Object UserWeChatDTO = mapToResult.getData(); + JSONObject json = JSON.parseObject(UserWeChatDTO.toString()); + UserWechatDTO userWechatDTO = ConvertUtils.mapToEntity(json, UserWechatDTO.class); + return userWechatDTO; + } + } diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ConvertUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ConvertUtils.java index f54c2cbf69..edc8633f02 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ConvertUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ConvertUtils.java @@ -12,9 +12,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; /** * 转换工具类 @@ -58,4 +60,28 @@ public class ConvertUtils { return targetList; } + + public static T mapToEntity(Map map, Class entity) { + T t = null; + try { + t = entity.newInstance(); + for(Field field : entity.getDeclaredFields()) { + if (map.containsKey(field.getName())) { + boolean flag = field.isAccessible(); + field.setAccessible(true); + Object object = map.get(field.getName()); + if (object!= null && field.getType().isAssignableFrom(object.getClass())) { + field.set(t, object); + } + field.setAccessible(flag); + } + } + return t; + } catch (InstantiationException e) { + logger.error("convert error ", e); + } catch (IllegalAccessException e) { + logger.error("convert error ", e); + } + return t; + } } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/UserHistoricalActFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/UserHistoricalActFormDTO.java index 26e2944e35..951b7ce3a6 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/UserHistoricalActFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/work/UserHistoricalActFormDTO.java @@ -19,4 +19,8 @@ public class UserHistoricalActFormDTO implements Serializable { */ @NotBlank(message = "居民端用户id不能为空", groups = {AddUserInternalGroup.class}) private String userId; + + @NotBlank(message = "当前活动id不能为空", groups = {AddUserInternalGroup.class}) + private String currentActId; + } diff --git a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml index 730ba2347b..d746c51e89 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-heart-server: container_name: epmet-heart-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.14 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.16 ports: - "8111:8111" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-heart/epmet-heart-server/pom.xml b/epmet-module/epmet-heart/epmet-heart-server/pom.xml index a481eb29b8..0b946b3626 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/pom.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.14 + 0.0.16 com.epmet epmet-heart diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActUserRelationDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActUserRelationDao.java index 46affbe03e..b60d5f9b4a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActUserRelationDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/ActUserRelationDao.java @@ -119,7 +119,7 @@ public interface ActUserRelationDao extends BaseDao { * @description 根据userId,查询参与活动记录 * @Date 2020/7/23 16:46 **/ - List selectAllByUserId(String userId); + List selectAllByUserId(@Param("userId") String userId,@Param("currentActId") String currentActId); /** * @return java.util.List diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java index 4efe296e17..8ac5edd27a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java @@ -356,13 +356,11 @@ public class WorkActUserServiceImpl implements WorkActUserService { //参与活动统计值 HistoricalActInfo historicalActInfo=getHistoricalActInfo(formDTO.getUserId()); resultDTO.setSignInActNum(historicalActInfo.getSignInActNum()); + //减去当前的 resultDTO.setSignUpActNum(historicalActInfo.getSignUpActNum()); resultDTO.setObtainPointsActNum(historicalActInfo.getObtainPointsActNum()); //历史活动列表 - List actInfoList=actUserRelationDao.selectAllByUserId(formDTO.getUserId()); - for(UserHistoricalActInfoDTO userHistoricalActInfoDTO:actInfoList){ - - } + List actInfoList=actUserRelationDao.selectAllByUserId(formDTO.getUserId(),formDTO.getCurrentActId()); resultDTO.setActInfoList(actInfoList); return resultDTO; } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActUserRelationDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActUserRelationDao.xml index 343f3babd3..7f1b94d77c 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActUserRelationDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActUserRelationDao.xml @@ -121,6 +121,7 @@ act_user_relation acu WHERE DEL_FLAG = '0' + and acu.STATUS !='auditing' AND acu.USER_ID = #{userId} @@ -137,8 +138,8 @@ - + SELECT acr.ACT_ID AS actId, ACR.USER_ID AS userId, ai.TITLE AS title, @@ -169,6 +170,7 @@ WHERE acr.DEL_FLAG = '0' AND acr.USER_ID =#{userId} + and acr.act_id !=#{currentActId} ORDER BY acr.CREATED_TIME DESC diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/constant/HttpUrlConstant.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/constant/HttpUrlConstant.java new file mode 100644 index 0000000000..1ed41a08f2 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/constant/HttpUrlConstant.java @@ -0,0 +1,19 @@ +package com.epmet.constant; + +/** + * @Author zxc + * @CreateTime 2020/7/30 9:47 + */ +public interface HttpUrlConstant { + + /** + * 定时任务 刷新【authorizer_access_token】url + */ + String AUTH_ACCESS_TOKEN_URL = "https://epmet-cloud.elinkservice.cn/api/third/wechatthird/refreshtoken"; + + /** + * 定时任务 刷新【component_access_token】url + */ + String COMPONENT_ACCESS_TOKEN_URL = "https://epmet-cloud.elinkservice.cn/api/third/wechatthird/componentaccesstoken"; + +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ComponentAccessTokenServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ComponentAccessTokenServiceImpl.java index dbf0375a29..c5f112e056 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ComponentAccessTokenServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ComponentAccessTokenServiceImpl.java @@ -1,6 +1,11 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.HttpUrlConstant; import com.epmet.feign.EpmetThirdFeignClient; import com.epmet.service.ComponentAccessTokenService; import lombok.extern.slf4j.Slf4j; @@ -15,11 +20,12 @@ import org.springframework.stereotype.Service; @Service public class ComponentAccessTokenServiceImpl implements ComponentAccessTokenService { - @Autowired - private EpmetThirdFeignClient epmetThirdFeignClient; - @Override public Result componentAccessTokenJob() { - return epmetThirdFeignClient.getComponentAccessTokenJob(); + JSONObject jsonObject = new JSONObject(); + String data = HttpClientManager.getInstance().sendPostByJSON(HttpUrlConstant.COMPONENT_ACCESS_TOKEN_URL, JSON.toJSONString(jsonObject)).getData(); + JSONObject toResult = JSON.parseObject(data); + Result result = ConvertUtils.mapToEntity(toResult, Result.class); + return result; } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/RefreshAuthAccessTokenServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/RefreshAuthAccessTokenServiceImpl.java index 5edb9725a2..8961d7db14 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/RefreshAuthAccessTokenServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/RefreshAuthAccessTokenServiceImpl.java @@ -1,6 +1,11 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.HttpUrlConstant; import com.epmet.feign.EpmetThirdFeignClient; import com.epmet.service.RefreshAuthAccessTokenService; import org.springframework.beans.factory.annotation.Autowired; @@ -13,11 +18,12 @@ import org.springframework.stereotype.Service; @Service public class RefreshAuthAccessTokenServiceImpl implements RefreshAuthAccessTokenService { - @Autowired - private EpmetThirdFeignClient epmetThirdFeignClient; - @Override public Result refreshAuthorizerAccessTokenJob() { - return epmetThirdFeignClient.refreshAuthorizerAccessTokenJob(); + JSONObject jsonObject = new JSONObject(); + String data = HttpClientManager.getInstance().sendPostByJSON(HttpUrlConstant.AUTH_ACCESS_TOKEN_URL, JSON.toJSONString(jsonObject)).getData(); + JSONObject toResult = JSON.parseObject(data); + Result result = ConvertUtils.mapToEntity(toResult, Result.class); + return result; } } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CheckPaUserFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CheckPaUserFormDTO.java new file mode 100644 index 0000000000..c3bf330549 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CheckPaUserFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 公众号-发送短信验证码-接口入参 + * @Author sun + */ +@Data +public class CheckPaUserFormDTO implements Serializable { + + private static final long serialVersionUID = -6163303184086480522L; + + /** + * s手机号 + */ + private String phone; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterByAuthFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterByAuthFormDTO.java index c8c1288c12..c23d1461a6 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterByAuthFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterByAuthFormDTO.java @@ -1,7 +1,9 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.io.Serializable; /** @@ -12,10 +14,20 @@ import java.io.Serializable; public class RegisterByAuthFormDTO implements Serializable { private static final long serialVersionUID = -6547893374373422628L; + public interface AddUserInternalGroup { + } + public interface AddUserShowGroup extends CustomerClientShowGroup { + } /** * 初始化状态(0:已初始化、1:未初始化) * */ private Integer initState; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + @NotBlank(message = "数据来源不能为空", groups = {RegisterByAuthFormDTO.AddUserInternalGroup.class, RegisterByAuthFormDTO.AddUserShowGroup.class}) + private String source; + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java index fe16eaab4c..55c822466a 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterFormDTO.java @@ -51,4 +51,9 @@ public class RegisterFormDTO implements Serializable { */ private String userId; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterInfoFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterInfoFormDTO.java index 7b20804835..e4afc383d5 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterInfoFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterInfoFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import javax.validation.constraints.Min; @@ -17,6 +18,8 @@ public class RegisterInfoFormDTO implements Serializable { public interface AddUserInternalGroup { } + public interface AddUserShowGroup extends CustomerClientShowGroup { + } /** * 当前页 @@ -29,4 +32,10 @@ public class RegisterInfoFormDTO implements Serializable { * */ private Integer pageSize = 20; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + @NotBlank(message = "数据来源不能为空", groups = {RegisterInfoFormDTO.AddUserInternalGroup.class, RegisterInfoFormDTO.AddUserShowGroup.class}) + private String source; + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SaveUserVisitedFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SaveUserVisitedFormDTO.java index eecf8da6d0..d74f56a2a3 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SaveUserVisitedFormDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SaveUserVisitedFormDTO.java @@ -31,4 +31,10 @@ public class SaveUserVisitedFormDTO implements Serializable { */ private String phone; + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WxCodeToTokenFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WxCodeToTokenFormDTO.java new file mode 100644 index 0000000000..fa671d63d5 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WxCodeToTokenFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import lombok.Data; +import me.chanjar.weixin.mp.bean.result.WxMpUser; + +import java.io.Serializable; +import java.util.Date; + +/** + * 公众号-wxcode换取token保存微信用户信息-接口入参 + * @Author sun + */ +@Data +public class WxCodeToTokenFormDTO implements Serializable { + + private static final long serialVersionUID = -6163303184086480522L; + + /** + * 微信用户信息 + */ + private WxMpUser wxMpUser; + + /** + * 数据来源(dev:开发 test:体验 prod:生产) + */ + private String source; + +} diff --git a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml index ae94d96717..8f81520b29 100644 --- a/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-third-server: container_name: epmet-third-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.79 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.80 ports: - "8110:8110" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 42b6661983..c21cbba05b 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.0.79 + 0.0.80 com.epmet diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java index 144b38aace..26ad711e95 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java @@ -61,25 +61,27 @@ public class PaCustomerController { /** * @param formDTO + * @param source 服务端类型 dev:开发 test:体验 prod:生产 * @return * @Author sun * @Description 公众号-创建组织 **/ @PostMapping("createagency") - public Result createAgency(@LoginUser TokenDto tokenDTO, @RequestBody CreateAgencyFormDTO formDTO) { + public Result createAgency(@LoginUser TokenDto tokenDTO, @RequestBody CreateAgencyFormDTO formDTO,@RequestHeader("source")String source) { ValidatorUtils.validateEntity(formDTO, DefaultGroup.class); - return new Result().ok(paCustomerService.createAgency(tokenDTO, formDTO)); + return new Result().ok(paCustomerService.createAgency(tokenDTO, formDTO,source)); } /** * @param tokenDTO + * @param source 服务端类型 dev:开发 test:体验 prod:生产 * @return * @Author sun * @Description 公众号-查询我的信息 **/ @PostMapping("myinfo") - public Result myInfo(@LoginUser TokenDto tokenDTO) { - return new Result().ok(paCustomerService.myInfo(tokenDTO)); + public Result myInfo(@LoginUser TokenDto tokenDTO,@RequestHeader("source")String source) { + return new Result().ok(paCustomerService.myInfo(tokenDTO,source)); } /** diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java index d7c07bc506..a0270dbe4b 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaUserController.java @@ -23,14 +23,15 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; -import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.PaUserDTO; +import com.epmet.dto.form.CheckPaUserFormDTO; +import com.epmet.dto.form.WxCodeToTokenFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.excel.PaUserExcel; import com.epmet.service.PaUserService; -import me.chanjar.weixin.mp.bean.result.WxMpUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -95,25 +96,25 @@ public class PaUserController { } /** - * @param wxMpUser + * @param formDTO * @return * @Author sun * @Description 根据openId新增或更新用户信息 **/ @PostMapping(value = "/saveuser") - public Result saveUser(@RequestBody WxMpUser wxMpUser) { - return new Result().ok(paUserService.saveUser(wxMpUser)); + public Result saveUser(@RequestBody WxCodeToTokenFormDTO formDTO) { + return new Result().ok(paUserService.saveUser(formDTO)); } /** - * @param phone + * @param formDTO * @return * @Author sun * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 **/ @PostMapping(value = "/checkpauser/{phone}") - public Result checkPaUser(@PathVariable("phone") String phone) { - return new Result().ok(paUserService.checkPaUser(phone)); + public Result checkPaUser(@RequestBody CheckPaUserFormDTO formDTO) { + return new Result().ok(paUserService.checkPaUser(formDTO)); } } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java index 3b3a4ee9b8..a3fca59cc8 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java @@ -49,9 +49,9 @@ public interface CustomerMpDao extends BaseDao { * @param * @return * @Author sun - * @Description 查询所有客户小程序的授权信息 + * @Description 根据数据来源查询所有客户小程序的授权信息 **/ - List selectAll(); + List selectAll(@Param("source")String source); /** * @Description 查询授权的数量 diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java index f22a55b563..5d403cb1cf 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java @@ -49,9 +49,9 @@ public interface PaCustomerDao extends BaseDao { * @param * @return * @Author sun - * @Description 查询公众号注册的客户信息列表 + * @Description 根据数据来源查询公众号注册的客户信息列表 **/ - List registerInfo(); + List registerInfo(@Param("source") String source); /** * @param dto diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerUserAgencyDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerUserAgencyDao.java index 123300af1a..2083f9c1e9 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerUserAgencyDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerUserAgencyDao.java @@ -38,5 +38,13 @@ public interface PaCustomerUserAgencyDao extends BaseDao { /** - * @param phone + * @param phone source * @return * @Author sun - * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 + * @Description 根据数据来源和手机号查询公众号用户基本信息,校验用户是否存在 **/ - List selectUserByPhone(@Param("phone") String phone); + List selectUserByPhone(@Param("phone") String phone, @Param("source") String source); /** * @param customerId @@ -49,4 +50,12 @@ public interface PaUserDao extends BaseDao { * @Description 根据客户Id级联查询客户管理员注册信息 **/ PaUserDTO selectPaUser(@Param("customerId") String customerId); + + /** + * @param id source + * @return + * @Author sun + * @Description 根据数据来源和手机号查询公众号用户基本信息,校验用户是否存在 + **/ + PaUserDTO selectUser(@Param("id") String id, @Param("source") String source); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserVisitedDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserVisitedDao.java index 943bb0a132..76c9b34ff6 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserVisitedDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserVisitedDao.java @@ -36,7 +36,7 @@ public interface PaUserVisitedDao extends BaseDao { * @param openId * @return * @Author sun - * @Description 根据openId查询登陆访问记录数据,按时间倒序 + * @Description 根据数据来源和openId查询登陆访问记录数据,按时间倒序 **/ - PaUserVisitedDTO selectByOpenId(@Param("openId") String openId); + PaUserVisitedDTO selectByOpenId(@Param("openId") String openId, @Param("source") String source); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserWechatDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserWechatDao.java index 78d08c42dc..deae68e025 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserWechatDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaUserWechatDao.java @@ -38,9 +38,9 @@ public interface PaUserWechatDao extends BaseDao { * @param openId * @return * @Author sun - * @Description 根据openId查询user_wechat表信息 + * @Description 根据数据来源和openId查询user_wechat表信息 **/ - List selectWechatByOpenId(@Param("openId") String openId); + List selectWechatByOpenId(@Param("openId") String openId, @Param("source") String source); /** * @param dto diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java index a48b2b7d88..829029168f 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java @@ -116,19 +116,21 @@ public interface PaCustomerService extends BaseService { /** * @param formDTO + * @param source 服务端类型 dev:开发 test:体验 prod:生产 * @return * @Author sun * @Description 公众号-创建组织 **/ - CreateAgencyResultDTO createAgency(TokenDto tokenDTO, CreateAgencyFormDTO formDTO); + CreateAgencyResultDTO createAgency(TokenDto tokenDTO, CreateAgencyFormDTO formDTO,String source); /** * @param tokenDTO + * @param source 服务端类型 dev:开发 test:体验 prod:生产 * @return * @Author sun * @Description 公众号-查询我的信息 **/ - MyInfoResultDTO myInfo(TokenDto tokenDTO); + MyInfoResultDTO myInfo(TokenDto tokenDTO,String source); /** * @param formDTO diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java index c9208eef81..52bbd09614 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserService.java @@ -20,10 +20,11 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.PaUserDTO; +import com.epmet.dto.form.CheckPaUserFormDTO; +import com.epmet.dto.form.WxCodeToTokenFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.entity.PaUserEntity; -import me.chanjar.weixin.mp.bean.result.WxMpUser; import java.util.List; import java.util.Map; @@ -97,18 +98,18 @@ public interface PaUserService extends BaseService { void delete(String[] ids); /** - * @param wxMpUser + * @param formDTO * @return * @Author sun * @Description 根据openId新增或更新用户信息 **/ - SaveUserResultDTO saveUser(WxMpUser wxMpUser); + SaveUserResultDTO saveUser(WxCodeToTokenFormDTO formDTO); /** - * @param phone + * @param formDTO * @return * @Author sun - * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 + * @Description 根据数据来源和手机号查询公众号用户基本信息,校验用户是否存在 **/ - CustomerUserResultDTO checkPaUser(String phone); + CustomerUserResultDTO checkPaUser(CheckPaUserFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserWechatService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserWechatService.java index bc873038ac..e47be27016 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserWechatService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaUserWechatService.java @@ -97,7 +97,7 @@ public interface PaUserWechatService extends BaseService { * @param openId * @return * @Author sun - * @Description 根据openId查询user_wechat表信息 + * @Description 根据数据来源和openId查询user_wechat表信息 **/ - List getWechatByOpenId(String openId); + List getWechatByOpenId(String openId, String source); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java index 834866bfd2..dd50366b48 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java @@ -5,12 +5,12 @@ import com.alibaba.fastjson.JSONObject; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.constant.ModuleConstant; import com.epmet.dao.BindingAccountDao; import com.epmet.dao.CustomerMpDao; import com.epmet.dao.OpenPlatformAccountDao; -import com.epmet.dao.PaCustomerAgencyDao; import com.epmet.dto.form.GoToAuthFormDTO; import com.epmet.dto.form.OpenAppIdFormDTO; import com.epmet.dto.form.RemoveBindFormDTO; @@ -35,13 +35,9 @@ import java.util.Map; @Service public class AppLetAuthorizationServiceImpl implements AppLetAuthorizationService { - @Autowired - private PaCustomerAgencyDao paCustomerAgencyDao; @Autowired private ComponentVerifyTicketService componentVerifyTicketService; @Autowired - private ComponentVerifyTicketServiceImpl componentVerifyTicketServiceImpl; - @Autowired private OpenPlatformAccountDao openPlatformAccountDao; @Autowired private CustomerMpDao customerMpDao; @@ -85,7 +81,7 @@ public class AppLetAuthorizationServiceImpl implements AppLetAuthorizationServic //查询appId String authAppId = customerMpDao.getAppId(customerId, clientType); Map authInfo = redisThird.getAuthInfo(customerId, clientType); - AuthorizationInfoResultDTO authorizationInfo = componentVerifyTicketServiceImpl.mapToEntity(authInfo, AuthorizationInfoResultDTO.class); + AuthorizationInfoResultDTO authorizationInfo = ConvertUtils.mapToEntity(authInfo, AuthorizationInfoResultDTO.class); JSONObject jsonObject = new JSONObject(); jsonObject.put(ModuleConstant.LOW_APP_ID,authAppId); jsonObject.put(ModuleConstant.OPEN_APP_ID,openAppId); @@ -110,7 +106,7 @@ public class AppLetAuthorizationServiceImpl implements AppLetAuthorizationServic String clientType = formDTO.getClientType(); String authAppId = customerMpDao.getAppId(customerId, clientType); Map authInfo = redisThird.getAuthInfo(customerId, clientType); - AuthorizationInfoResultDTO authorizationInfo = componentVerifyTicketServiceImpl.mapToEntity(authInfo, AuthorizationInfoResultDTO.class); + AuthorizationInfoResultDTO authorizationInfo = ConvertUtils.mapToEntity(authInfo, AuthorizationInfoResultDTO.class); JSONObject jsonObject = new JSONObject(); jsonObject.put(ModuleConstant.LOW_APP_ID,authAppId); String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.UN_BIND + authorizationInfo.getAuthorizer_access_token(), JSON.toJSONString(jsonObject)).getData(); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java index 0791597950..51dc019d6c 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java @@ -6,6 +6,7 @@ import com.alibaba.nacos.client.config.utils.IOUtils; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.constant.ModuleConstant; import com.epmet.constant.ThirdRedisKeyConstant; @@ -31,7 +32,6 @@ import org.springframework.web.bind.annotation.RequestBody; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; -import java.lang.reflect.Field; import java.util.*; import static com.epmet.constant.ModuleConstant.COMPONENT_ACCESS_TOKEN; @@ -175,7 +175,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe public void disposeAuthResult(Map result){ Map tempMap = result; Map data = tempMap; - AuthResultRecordFormDTO authResultRecord = mapToEntity(data, AuthResultRecordFormDTO.class); + AuthResultRecordFormDTO authResultRecord = ConvertUtils.mapToEntity(data, AuthResultRecordFormDTO.class); authResultRecord.setWechatCreateTime(this.sToDate(result.get(ModuleConstant.CREATE_TIME))); if (result.containsKey(ModuleConstant.AUTHORIZATION_CODE_EXPIRED_TIME)) { authResultRecord.setExpiredTime(this.sToDate(result.get(ModuleConstant.AUTHORIZATION_CODE_EXPIRED_TIME))); @@ -285,7 +285,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe String authInfo = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_QUERY_AUTH_URL + accessToken, JSON.toJSONString(jsonObject)).getData(); HashMap hashMap = JSON.parseObject(authInfo, HashMap.class); Map map = hashMap.get(ModuleConstant.AUTHORIZATION_INFO); - authorizationInfoResultDTO = mapToEntity(map, AuthorizationInfoResultDTO.class); + authorizationInfoResultDTO = ConvertUtils.mapToEntity(map, AuthorizationInfoResultDTO.class); String authAppId = authorizationInfoResultDTO.getAuthorizer_appid(); log.info("授权信息:"+map); String expiresIn = authorizationInfoResultDTO.getExpires_in().toString(); @@ -433,7 +433,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe boolean keyExist = authorizerInfo.containsKey(ModuleConstant.MINI_PROGRAM_INFO); if (keyExist == true){ log.info("授权方为小程序 并 开始插入信息"); - MiniInfoFormDTO miniInfoFormDTO = this.mapToEntity(authorizerInfo, MiniInfoFormDTO.class); + MiniInfoFormDTO miniInfoFormDTO = ConvertUtils.mapToEntity(authorizerInfo, MiniInfoFormDTO.class); miniInfoFormDTO.setCustomerId(customerId); miniInfoFormDTO.setClientType(clientType); //基础信息插入 @@ -485,7 +485,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe } }else { log.info("授权方为公众号 并 开始插入信息"); - PaInfoFormDTO paInfoFormDTO = this.mapToEntity(authorizerInfo, PaInfoFormDTO.class); + PaInfoFormDTO paInfoFormDTO = ConvertUtils.mapToEntity(authorizerInfo, PaInfoFormDTO.class); //公众号基本信息插入 paInfoDao.insertPaInfo(paInfoFormDTO); String primaryId = paInfoFormDTO.getId(); @@ -611,36 +611,6 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe } } - /** - * @Description map 转 Entity - * @param map - * @param entity - * @author zxc - */ - public T mapToEntity(Map map, Class entity) { - T t = null; - try { - t = entity.newInstance(); - for(Field field : entity.getDeclaredFields()) { - if (map.containsKey(field.getName())) { - boolean flag = field.isAccessible(); - field.setAccessible(true); - Object object = map.get(field.getName()); - if (object!= null && field.getType().isAssignableFrom(object.getClass())) { - field.set(t, object); - } - field.setAccessible(flag); - } - } - return t; - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return t; - } - /** * @Description 转换过期时间 * @param expiresIn @@ -660,7 +630,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe * @author zxc */ public String getLoginUserCustomerId(TokenDto tokenDto){ - PaCustomerUserAgencyDTO result = paCustomerUserAgencyDao.selectByUserId(tokenDto.getUserId()); + PaCustomerUserAgencyDTO result = paCustomerUserAgencyDao.selectCustomerIdByUserId(tokenDto.getUserId()); return result.getCustomerId(); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java index df6c581a92..5404602aed 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java @@ -164,21 +164,21 @@ public class PaCustomerServiceImpl extends BaseServiceImpl userList = paUserDao.selectUserByPhone(formDTO.getPhone()); + //1.根据数据来源和手机号查询到用户信息,判断用户是否存 + List userList = paUserDao.selectUserByPhone(formDTO.getPhone(), formDTO.getSource()); if (null != userList && userList.size() > NumConstant.ZERO) { throw new RenException(EpmetErrorCode.MOBILE_USED.getCode()); } - //2.根据token中的userId查询pa_user表数据,根据手机号是否为空判断后续是新增还是更新user数据 - PaUserEntity paUserEntity = paUserDao.selectById(formDTO.getUserId()); - if (null == paUserEntity) { - logger.error("根据token中userId查询pa_user表信息失败,userId->"+formDTO.getUserId()); + //2.根据数据来源和token中的userId查询pa_user表数据,根据手机号是否为空判断后续是新增还是更新user数据 + PaUserDTO paUserDTO= paUserDao.selectUser(formDTO.getUserId(), formDTO.getSource()); + if (null == paUserDTO) { + logger.error("根据数据来源和token中userId查询pa_user表信息失败,数据来源->" + formDTO.getSource() + ",userId->" + formDTO.getUserId()); throw new RenException(PaConstant.SELECT_USER_EXCEPTION); } //3.手机号不为空说明是同一个微信用户用第二个手机号注册,手机为空说明当前微信用户用第一个手机号注册 - if(StringUtils.isNotBlank(paUserEntity.getPhone())){ + if(StringUtils.isNotBlank(paUserDTO.getPhone())){ //手机号不为空说明是同一个微信用户用第二个手机号注册,新增user和user_wechat表数据 //3-1.user表新增数据 PaUserEntity userEntity = new PaUserEntity(); @@ -289,17 +289,19 @@ public class PaCustomerServiceImpl extends BaseServiceImpl list = baseDao.registerInfo(); + List list = baseDao.registerInfo(formDTO.getSource()); //2.查询客户小程序授权信息 - List mpList = customerMpDao.selectAll(); + List mpList = customerMpDao.selectAll(formDTO.getSource()); //3.封装数据 list.forEach(l -> { mpList.forEach(mp -> { diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java index d5acc59fb5..6bd58a8be9 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java @@ -34,12 +34,16 @@ import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaUserDTO; import com.epmet.dto.PaUserVisitedDTO; import com.epmet.dto.PaUserWechatDTO; +import com.epmet.dto.form.CheckPaUserFormDTO; +import com.epmet.dto.form.SaveUserVisitedFormDTO; +import com.epmet.dto.form.WxCodeToTokenFormDTO; import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.entity.PaUserEntity; import com.epmet.entity.PaUserWechatEntity; import com.epmet.redis.PaUserRedis; import com.epmet.service.PaUserService; +import com.epmet.service.PaUserVisitedService; import com.epmet.service.PaUserWechatService; import me.chanjar.weixin.mp.bean.result.WxMpUser; import org.apache.commons.lang3.StringUtils; @@ -72,6 +76,8 @@ public class PaUserServiceImpl extends BaseServiceImpl private PaUserWechatDao paUserWechatDao; @Autowired private PaUserVisitedDao paUserVisitedDao; + @Autowired + private PaUserVisitedService paUserVisitedService; @Override public PageData page(Map params) { @@ -126,22 +132,24 @@ public class PaUserServiceImpl extends BaseServiceImpl } /** - * @param wxMpUser + * @param formDTO * @return * @Author sun * @Description 根据openId新增或更新用户信息 **/ @Override @Transactional(rollbackFor = Exception.class) - public SaveUserResultDTO saveUser(WxMpUser wxMpUser) { + public SaveUserResultDTO saveUser(WxCodeToTokenFormDTO formDTO) { + WxMpUser wxMpUser = formDTO.getWxMpUser(); SaveUserResultDTO resultDTO = new SaveUserResultDTO(); - //1.根据openId查询user_wechat表是否存在用户信息(user表和user_wechat表数据时多对多关系) - List wechatDTO = paUserWechatService.getWechatByOpenId(wxMpUser.getOpenId()); + //1.根据openId查询user_wechat表是否存在用户信息(user表和user_wechat表数据是多对多关系) + List wechatDTO = paUserWechatService.getWechatByOpenId(wxMpUser.getOpenId(), formDTO.getSource()); //2.不存在则新增用户信息,存在则更新user_wechat表信息 if (null == wechatDTO || wechatDTO.size() < NumConstant.ONE) { //2.1、user表新增数据 PaUserEntity userEntity = new PaUserEntity(); + userEntity.setSource(formDTO.getSource()); baseDao.insert(userEntity); //2.2、user_wechat表新增数据 PaUserWechatEntity wechatEntity = new PaUserWechatEntity(); @@ -157,9 +165,16 @@ public class PaUserServiceImpl extends BaseServiceImpl wechatEntity.setLanguage(null == wxMpUser.getLanguage() ? "" : wxMpUser.getLanguage()); paUserWechatService.insert(wechatEntity); + //2.3、pa_user_visited表新增访问记录数据 + SaveUserVisitedFormDTO visited = new SaveUserVisitedFormDTO(); + visited.setUserId(userEntity.getId()); + visited.setLogonUserId(userEntity.getId()); + visited.setSource(formDTO.getSource()); + paUserVisitedService.saveUserVisited(visited); + resultDTO.setUserId(userEntity.getId()); } else { - //2.3、批量更新user_wechat表数据 + //2.4、批量更新user_wechat表数据 List wechatEntity = ConvertUtils.sourceToTarget(wechatDTO, PaUserWechatEntity.class); for(PaUserWechatEntity entity : wechatEntity){ entity.setGender(wxMpUser.getSex().toString()); @@ -172,8 +187,8 @@ public class PaUserServiceImpl extends BaseServiceImpl } paUserWechatService.updateBatchById(wechatEntity); - //2.4、根据openid查询用户登陆访问记录表数据,按登陆时间倒序 - PaUserVisitedDTO visitedDTO = paUserVisitedDao.selectByOpenId(wxMpUser.getOpenId()); + //2.5、根据openid查询用户登陆访问记录表数据,按登陆时间倒序 + PaUserVisitedDTO visitedDTO = paUserVisitedDao.selectByOpenId(wxMpUser.getOpenId(), formDTO.getSource()); if (null == visitedDTO || "".equals(visitedDTO.getUserId())) { logger.error("根据openid查询用户访问记录表数据失败,openid->"+wxMpUser.getOpenId()); throw new RenException(PaConstant.SELECT_VISITED_EXCEPTION); @@ -187,16 +202,16 @@ public class PaUserServiceImpl extends BaseServiceImpl } /** - * @param phone + * @param formDTO * @return * @Author sun * @Description 根据手机号查询公众号用户基本信息,校验用户是否存在 **/ @Override - public CustomerUserResultDTO checkPaUser(String phone) { + public CustomerUserResultDTO checkPaUser(CheckPaUserFormDTO formDTO) { CustomerUserResultDTO resultDTO = new CustomerUserResultDTO(); //1.根据手机号查询用户信息 - List userList = baseDao.selectUserByPhone(phone); + List userList = baseDao.selectUserByPhone(formDTO.getPhone(), formDTO.getSource()); if (null == userList || userList.size() < NumConstant.ONE) { resultDTO.setPaUserResult(null); resultDTO.setPaCustomerResult(null); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java index 2071fde88f..e0c67c9a6b 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserVisitedServiceImpl.java @@ -135,6 +135,7 @@ public class PaUserVisitedServiceImpl extends BaseServiceImpl getWechatByOpenId(String openId) { - return baseDao.selectWechatByOpenId(openId); + public List getWechatByOpenId(String openId, String source) { + return baseDao.selectWechatByOpenId(openId, source); } } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java index 20f75b74fb..956c5c31e6 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.service.impl; import com.alibaba.nacos.client.config.utils.IOUtils; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.ModuleConstant; import com.epmet.constant.ThirdRunTimeInfoConstant; import com.epmet.dao.*; @@ -44,8 +45,6 @@ public class WarrantServiceImpl implements WarrantService { @Value("${third.platform.token}") private String token; @Autowired - private ComponentVerifyTicketServiceImpl componentVerifyTicketService; - @Autowired private CodeAuditRecordDao codeAuditRecordDao; @Autowired private MiniInfoDao miniInfoDao; @@ -96,7 +95,7 @@ public class WarrantServiceImpl implements WarrantService { if (xml.get(ModuleConstant.MSG_TYPE).equals(ModuleConstant.EVENT_LOW)) { // TODO 目前来看,msgType = ‘event’ 的是代码审核结果 Long createTime = Long.valueOf(xml.get(ModuleConstant.CREATE_TIME).toString()); - CodeAuditRecordFormDTO codeAuditRecord = componentVerifyTicketService.mapToEntity(xml, CodeAuditRecordFormDTO.class); + CodeAuditRecordFormDTO codeAuditRecord = ConvertUtils.mapToEntity(xml, CodeAuditRecordFormDTO.class); codeAuditRecord.setWechatCreateTime(componentVerifyTicketServiceImpl.sToDate(createTime.toString())); String toUserName = codeAuditRecord.getToUserName();//小程序原始ID CustomerIdAndClientResultDTO customerIdAndClientResultDTO = miniInfoDao.selectCustomerIdAndClientByToUserName(toUserName); @@ -130,7 +129,7 @@ public class WarrantServiceImpl implements WarrantService { codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult); }else if (xml.get(ModuleConstant.MSG_TYPE).equals(ModuleConstant.TEXT)){ // TODO 公众号回复消息 - MessagePushTextFormDTO messagePushTextFormDTO = componentVerifyTicketService.mapToEntity(xml, MessagePushTextFormDTO.class); + MessagePushTextFormDTO messagePushTextFormDTO = ConvertUtils.mapToEntity(xml, MessagePushTextFormDTO.class); Object createTime = xml.get(ModuleConstant.CREATE_TIME); Date date = componentVerifyTicketServiceImpl.sToDate(createTime.toString()); messagePushTextFormDTO.setWeChatCreateTime(date); diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaCategoryResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaCategoryResult.java index b0d8445e8b..c2787cabff 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaCategoryResult.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaCategoryResult.java @@ -16,26 +16,32 @@ public class WxMaCategoryResult implements Serializable { /** * 一级类目名称 */ + @SerializedName("first_class") private String firstClass; /** * 二级类目名称 */ + @SerializedName("second_class") private String secondClass; /** * 三级类目名称 */ + @SerializedName("third_class") private String thirdClass; /** * 一级类目的ID编号 */ + @SerializedName("first_id") private String firstId; /** * 二级类目的ID编号 */ + @SerializedName("second_id") private String secondId; /** * 三级类目的ID编号 */ + @SerializedName("third_id") private String thirdId; } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml index 20632a7f3c..cf24463139 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml @@ -61,17 +61,21 @@ @@ -64,6 +65,7 @@ pa_customer WHERE del_flag = '0' + AND source = #{source} AND is_initialize = #{initState} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerUserAgencyDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerUserAgencyDao.xml index 36465c774b..93a0b840f0 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerUserAgencyDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerUserAgencyDao.xml @@ -5,15 +5,33 @@ + + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserDao.xml index f97263c5b0..628eefe53f 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserDao.xml @@ -8,12 +8,14 @@ id, phone, real_name, - gender + gender, + source FROM pa_user WHERE del_flag = '0' AND phone = #{phone} + AND source = #{source} + + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml index 76a3d7fee6..2bdeaee6c7 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserVisitedDao.xml @@ -9,11 +9,13 @@ user_id, wx_open_id, open_id, - phone + phone, + source FROM pa_user_visited WHERE del_flag = '0' + AND source = #{source} AND wx_open_id = #{openId} ORDER BY created_time DESC diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserWechatDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserWechatDao.xml index e571713767..9a5a08e973 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserWechatDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaUserWechatDao.xml @@ -5,22 +5,25 @@