Browse Source

Merge remote-tracking branch 'origin/dev_thirdplatform' into dev

dev_shibei_match
zxc 5 years ago
parent
commit
81dc683e61
  1. 33
      epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java
  2. 18
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeAuditRecordFormDTO.java
  3. 14
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MiniInfoFormDTO.java
  4. 14
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PaInfoFormDTO.java
  5. 4
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CreateAgencyResultDTO.java
  6. 5
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerUserResultDTO.java
  7. 22
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PublicCustomerResultDTO.java
  8. 12
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java
  9. 6
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java
  10. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java
  11. 4
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/PaConstant.java
  12. 12
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerMpController.java
  13. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java
  14. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java
  15. 65
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java
  16. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java
  17. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java
  18. 41
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
  19. 22
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java
  20. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java
  21. 11
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java
  22. 16
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java
  23. 8
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java
  24. 18
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml
  25. 14
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml
  26. 14
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml
  27. 14
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaInfoDao.xml
  28. 6
      epmet-module/resi-guide/resi-guide-client/src/main/java/com/epmet/dto/form/PublicCustomerGridListFormDTO.java
  29. 6
      epmet-module/resi-guide/resi-guide-server/pom.xml
  30. 15
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java

33
epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java

@ -12,6 +12,7 @@ import com.epmet.constant.PublicUserLoginConstant;
import com.epmet.constant.SmsTemplateConstant; import com.epmet.constant.SmsTemplateConstant;
import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.PaUserDTO; import com.epmet.dto.PaUserDTO;
import com.epmet.dto.PaUserWechatDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO;
@ -77,7 +78,9 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
//3.获取用户token //3.获取用户token
String token = this.generateGovWxmpToken(resultDTO.getUserId()); String token = this.generateGovWxmpToken(resultDTO.getUserId());
//4.保存到redis //4.保存到redis
this.saveLatestGovTokenDto(resultDTO, wxMpUser, token); String openid = wxMpUser.getOpenId();
String unionId = (null == wxMpUser.getUnionId() ? "" : wxMpUser.getUnionId());
this.saveLatestGovTokenDto("", resultDTO.getUserId(), openid, unionId, token);
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO(); UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(token); userTokenResultDTO.setToken(token);
return userTokenResultDTO; return userTokenResultDTO;
@ -118,17 +121,17 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
} }
//保存tokenDto到redis //保存tokenDto到redis
private void saveLatestGovTokenDto(SaveUserResultDTO resultDTO, WxMpUser wxMpUser, String token) { private void saveLatestGovTokenDto(String customerId, String userId, String openId, String unionId, String token) {
TokenDto tokenDTO = new TokenDto(); TokenDto tokenDTO = new TokenDto();
int expire = jwtTokenProperties.getExpire(); int expire = jwtTokenProperties.getExpire();
tokenDTO.setApp(LoginConstant.APP_PUBLIC); tokenDTO.setApp(LoginConstant.APP_PUBLIC);
tokenDTO.setClient(LoginConstant.CLIENT_MP); tokenDTO.setClient(LoginConstant.CLIENT_MP);
tokenDTO.setOpenId(wxMpUser.getOpenId()); tokenDTO.setOpenId(openId);
tokenDTO.setUnionId(null == wxMpUser.getUnionId() ? "" : wxMpUser.getUnionId()); tokenDTO.setUnionId(unionId);
tokenDTO.setToken(token); tokenDTO.setToken(token);
//首次初始化时还没有客户 //首次初始化时还没有客户
tokenDTO.setCustomerId(""); tokenDTO.setCustomerId(customerId);
tokenDTO.setUserId(resultDTO.getUserId()); tokenDTO.setUserId(userId);
tokenDTO.setExpireTime(jwtTokenUtils.getExpiration(token).getTime()); tokenDTO.setExpireTime(jwtTokenUtils.getExpiration(token).getTime());
tokenDTO.setUpdateTime(System.currentTimeMillis()); tokenDTO.setUpdateTime(System.currentTimeMillis());
cpUserDetailRedis.set(tokenDTO, expire); cpUserDetailRedis.set(tokenDTO, expire);
@ -206,19 +209,27 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
logger.error(String.format("验证码错误code[%s],msg[%s]", EpmetErrorCode.MOBILE_CODE_ERROR.getCode(), EpmetErrorCode.MOBILE_CODE_ERROR.getMsg())); logger.error(String.format("验证码错误code[%s],msg[%s]", EpmetErrorCode.MOBILE_CODE_ERROR.getCode(), EpmetErrorCode.MOBILE_CODE_ERROR.getMsg()));
throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode()); throw new RenException(EpmetErrorCode.MOBILE_CODE_ERROR.getCode());
} }
//获取缓存中的token //获取缓存中的token
TokenDto redisTokenDTO = cpUserDetailRedis.get(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, userDTO.getId(), TokenDto.class); TokenDto redisTokenDTO = cpUserDetailRedis.get(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, userDTO.getId(), TokenDto.class);
if (redisTokenDTO == null) { if (redisTokenDTO == null) {
return null; return null;
} }
//4.判断是否存在客户信息,是否需要生成新的token //4.直接生成一个新的token放入缓存中(不管缓存中是否存在旧的token,都重新生成)
//4-1.生成token
String token = this.generateGovWxmpToken(userDTO.getId());
//4-2.判断是否存在信息,给customerId赋值
PaCustomerDTO customerDTO = resultDTO.getPaCustomerResult(); PaCustomerDTO customerDTO = resultDTO.getPaCustomerResult();
String customerId = "";
if (null != customerDTO && !StringUtils.isBlank(customerDTO.getId())) { if (null != customerDTO && !StringUtils.isBlank(customerDTO.getId())) {
redisTokenDTO.setCustomerId(customerDTO.getId()); customerId = customerDTO.getId();
int expire = jwtTokenProperties.getExpire();
cpUserDetailRedis.set(redisTokenDTO, expire);
} }
//4-3.token存入redis
PaUserWechatDTO wechatDTO = resultDTO.getPaUserWechatResult();
String openid = wechatDTO.getWxOpenId();
String unionId = (null == wechatDTO.getUnionId() ? "" : wechatDTO.getUnionId());
this.saveLatestGovTokenDto(customerId, userDTO.getId(), openid, unionId, token);
//5.登陆成功,访问记录表新增访问记录(访问记录新增失败不应影响用户登陆) //5.登陆成功,访问记录表新增访问记录(访问记录新增失败不应影响用户登陆)
SaveUserVisitedFormDTO visited = new SaveUserVisitedFormDTO(); SaveUserVisitedFormDTO visited = new SaveUserVisitedFormDTO();
@ -232,7 +243,7 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
//6.返回token //6.返回token
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO(); UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(redisTokenDTO.getToken()); userTokenResultDTO.setToken(token);
return userTokenResultDTO; return userTokenResultDTO;
} }

18
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeAuditRecordFormDTO.java

@ -42,12 +42,12 @@ public class CodeAuditRecordFormDTO implements Serializable {
/** /**
* 小程序的原始 ID * 小程序的原始 ID
*/ */
private String toUserName; private String ToUserName;
/** /**
* 发送方帐号一个 OpenID此时发送方是系统帐号 * 发送方帐号一个 OpenID此时发送方是系统帐号
*/ */
private String fromUserName; private String FromUserName;
/** /**
* 消息创建时间 整型时间戳 * 消息创建时间 整型时间戳
@ -57,7 +57,7 @@ public class CodeAuditRecordFormDTO implements Serializable {
/** /**
* 消息类型 event * 消息类型 event
*/ */
private String msgType; private String MsgType;
/** /**
* 事件类型 * 事件类型
@ -65,32 +65,32 @@ public class CodeAuditRecordFormDTO implements Serializable {
weapp_audit_fail审核不通过 weapp_audit_fail审核不通过
weapp_audit_delay审核延后 weapp_audit_delay审核延后
*/ */
private String event; private String Event;
/** /**
* 审核成功时的时间戳 * 审核成功时的时间戳
*/ */
private Date succTime; private Date SuccTime;
/** /**
* 审核不通过的时间戳 * 审核不通过的时间戳
*/ */
private Date failTime; private Date FailTime;
/** /**
* 审核延后时的时间戳 * 审核延后时的时间戳
*/ */
private Date delayTime; private Date DelayTime;
/** /**
* 审核不通过的原因 * 审核不通过的原因
*/ */
private String reason; private String Reason;
/** /**
* 审核不通过的截图示例 | 分隔的 media_id 的列表可通过获取永久素材接口拉取截图内容 * 审核不通过的截图示例 | 分隔的 media_id 的列表可通过获取永久素材接口拉取截图内容
*/ */
private String screenShot; private String ScreenShot;
/** /**
* 删除状态 * 删除状态

14
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MiniInfoFormDTO.java

@ -28,32 +28,32 @@ public class MiniInfoFormDTO implements Serializable {
/** /**
* 昵称 * 昵称
*/ */
private String nickName; private String nick_name;
/** /**
* 头像 * 头像
*/ */
private String headImg; private String head_img;
/** /**
* 小程序类型 默认为 0 * 小程序类型 默认为 0
*/ */
private String serviceTypeInfo; private String service_type_info;
/** /**
* 小程序认证类型 小程序认证类型 * 小程序认证类型 小程序认证类型
*/ */
private String verifyTypeInfo; private String verify_type_info;
/** /**
* 原始 ID * 原始 ID
*/ */
private String userName; private String user_name;
/** /**
* 主体名称 * 主体名称
*/ */
private String principalName; private String principal_name;
/** /**
* 账号介绍 * 账号介绍
@ -63,7 +63,7 @@ public class MiniInfoFormDTO implements Serializable {
/** /**
* 二维码图片的 URL * 二维码图片的 URL
*/ */
private String qrcodeUrl; private String qrcode_url;
private Integer delFlag = 0; private Integer delFlag = 0;

14
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PaInfoFormDTO.java

@ -28,19 +28,19 @@ public class PaInfoFormDTO implements Serializable {
/** /**
* 昵称 * 昵称
*/ */
private String nickName; private String nick_name;
/** /**
* 头像 * 头像
*/ */
private String headImg; private String head_img;
/** /**
* 公众号类型 0订阅号 * 公众号类型 0订阅号
1由历史老帐号升级后的订阅号 1由历史老帐号升级后的订阅号
2服务号 2服务号
*/ */
private String serviceTypeInfo; private String service_type_info;
/** /**
* 公众号认证类型 -1未认证 * 公众号认证类型 -1未认证
@ -51,17 +51,17 @@ public class PaInfoFormDTO implements Serializable {
4已资质认证通过还未通过名称认证但通过了新浪微博认证 4已资质认证通过还未通过名称认证但通过了新浪微博认证
5已资质认证通过还未通过名称认证但通过了腾讯微博认证 5已资质认证通过还未通过名称认证但通过了腾讯微博认证
*/ */
private String verifyTypeInfo; private String verify_type_info;
/** /**
* 原始ID * 原始ID
*/ */
private String userName; private String user_name;
/** /**
* 主体名称 * 主体名称
*/ */
private String principalName; private String principal_name;
/** /**
* 公众号所设置的微信号可能为空 公众号所设置的微信号可能为空 * 公众号所设置的微信号可能为空 公众号所设置的微信号可能为空
@ -71,7 +71,7 @@ public class PaInfoFormDTO implements Serializable {
/** /**
* 二维码图片的 URL * 二维码图片的 URL
*/ */
private String qrcodeUrl; private String qrcode_url;
/** /**
* 删除状态 0正常1删除 * 删除状态 0正常1删除

4
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CreateAgencyResultDTO.java

@ -19,9 +19,5 @@ public class CreateAgencyResultDTO implements Serializable {
* 新增客户Id * 新增客户Id
*/ */
private String customerId; private String customerId;
/**
* 包含customerId的token
*/
private String token;
} }

5
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerUserResultDTO.java

@ -2,6 +2,7 @@ package com.epmet.dto.result;
import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.PaUserDTO; import com.epmet.dto.PaUserDTO;
import com.epmet.dto.PaUserWechatDTO;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -22,4 +23,8 @@ public class CustomerUserResultDTO implements Serializable {
* 用户对应的客户信息 * 用户对应的客户信息
*/ */
private PaCustomerDTO paCustomerResult; private PaCustomerDTO paCustomerResult;
/**
* 用户对应的微信基本信息
*/
private PaUserWechatDTO paUserWechatResult;
} }

22
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PublicCustomerResultDTO.java

@ -0,0 +1,22 @@
package com.epmet.dto.result;
import com.epmet.dto.PaCustomerDTO;
import lombok.Data;
import java.io.Serializable;
/**
* 根据appid查询公众号注册的客户信息
* @Author sun
*/
@Data
public class PublicCustomerResultDTO implements Serializable {
private static final long serialVersionUID = 4642988014737245076L;
/**
* 客户信息
*/
private PaCustomerDTO customer;
}

12
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java

@ -7,6 +7,7 @@ import com.epmet.dto.form.SaveUserVisitedFormDTO;
import com.epmet.dto.form.WxLoginFormDTO; import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.InitCustomerResultDTO; import com.epmet.dto.result.InitCustomerResultDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO;
import com.epmet.feign.fallback.EpmetThirdFeignClientFallback; import com.epmet.feign.fallback.EpmetThirdFeignClientFallback;
import me.chanjar.weixin.mp.bean.result.WxMpUser; import me.chanjar.weixin.mp.bean.result.WxMpUser;
@ -94,5 +95,14 @@ public interface EpmetThirdFeignClient {
* @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息 * @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息
**/ **/
@PostMapping(value = "third/customermp/resiandworklogin") @PostMapping(value = "third/customermp/resiandworklogin")
Result<UserWechatDTO> resiAndWorkLogin(WxLoginFormDTO formDTO); Result<UserWechatDTO> resiAndWorkLogin(@RequestBody WxLoginFormDTO formDTO);
/**
* @param appId
* @return
* @Author sun
* @Description 根据appId查询公众号注册的客户信息
**/
@PostMapping(value = "third/customermp/getcustomermsg")
Result<PublicCustomerResultDTO> getCustomerMsg(@PathVariable("appId") String appId);
} }

6
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java

@ -8,6 +8,7 @@ import com.epmet.dto.form.SaveUserVisitedFormDTO;
import com.epmet.dto.form.WxLoginFormDTO; import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.CustomerUserResultDTO; import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.InitCustomerResultDTO; import com.epmet.dto.result.InitCustomerResultDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.dto.result.SaveUserResultDTO; import com.epmet.dto.result.SaveUserResultDTO;
import com.epmet.feign.EpmetThirdFeignClient; import com.epmet.feign.EpmetThirdFeignClient;
import me.chanjar.weixin.mp.bean.result.WxMpUser; import me.chanjar.weixin.mp.bean.result.WxMpUser;
@ -59,4 +60,9 @@ public class EpmetThirdFeignClientFallback implements EpmetThirdFeignClient {
public Result<UserWechatDTO> resiAndWorkLogin(WxLoginFormDTO formDTO) { public Result<UserWechatDTO> resiAndWorkLogin(WxLoginFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "resiAndWorkLogin", formDTO); return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "resiAndWorkLogin", formDTO);
} }
@Override
public Result<PublicCustomerResultDTO> getCustomerMsg(String appId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "getCustomerMsg", appId);
}
} }

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java

@ -41,6 +41,7 @@ public interface ModuleConstant {
//使用授权码获取授权信息 如下 //使用授权码获取授权信息 如下
String AUTHORIZATION_CODE = "authorization_code"; String AUTHORIZATION_CODE = "authorization_code";
String AUTHORIZATION_INFO = "authorization_info"; String AUTHORIZATION_INFO = "authorization_info";
String ID = "id";
//获取/刷新接口调用令牌 如下 //获取/刷新接口调用令牌 如下
String AUTHORIZER_APPID = "authorizer_appid"; String AUTHORIZER_APPID = "authorizer_appid";
@ -77,6 +78,8 @@ public interface ModuleConstant {
String DELAY = "delay"; String DELAY = "delay";
String AUDIT_SUCCESS = "audit_success"; String AUDIT_SUCCESS = "audit_success";
String AUDIT_FAILED = "audit_failed"; String AUDIT_FAILED = "audit_failed";
String XML = "xml";
String CREATE_TIME = "CreateTime";
int FORTY_THOUSAND_AND_THIRTEEN = 40013; int FORTY_THOUSAND_AND_THIRTEEN = 40013;
int EIGHTY_NINE_THOUSAND = 89000; int EIGHTY_NINE_THOUSAND = 89000;

4
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/PaConstant.java

@ -62,4 +62,8 @@ public interface PaConstant {
* 获取缓存中token信息失败 * 获取缓存中token信息失败
*/ */
String TOKEN_EXCEPTION = "token已过期"; String TOKEN_EXCEPTION = "token已过期";
/**
* 获取客户信息失败
*/
String SELECT_CUSTOMER_EXCEPTION = "获取客户信息失败";
} }

12
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerMpController.java

@ -28,6 +28,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.CustomerMpDTO; import com.epmet.dto.CustomerMpDTO;
import com.epmet.dto.UserWechatDTO; import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.WxLoginFormDTO; import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.excel.CustomerMpExcel; import com.epmet.excel.CustomerMpExcel;
import com.epmet.service.CustomerMpService; import com.epmet.service.CustomerMpService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -104,4 +105,15 @@ public class CustomerMpController {
return new Result<UserWechatDTO>().ok(customerMpService.resiAndWorkLogin(formDTO)); return new Result<UserWechatDTO>().ok(customerMpService.resiAndWorkLogin(formDTO));
} }
/**
* @param appId
* @return
* @Author sun
* @Description 根据appId查询公众号注册的客户信息
**/
@PostMapping("getcustomermsg")
public Result<PublicCustomerResultDTO> getCustomerMsg(@PathVariable("appId") String appId) {
return new Result<PublicCustomerResultDTO>().ok(customerMpService.getCustomerMsg(appId));
}
} }

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java

@ -1,6 +1,6 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.exception.AesException; import com.epmet.mpaes.AesException;
import com.epmet.service.WarrantService; import com.epmet.service.WarrantService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dom4j.DocumentException; import org.dom4j.DocumentException;

9
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java

@ -19,6 +19,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CustomerMpDTO; import com.epmet.dto.CustomerMpDTO;
import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.form.AuthCodeFormDTO; import com.epmet.dto.form.AuthCodeFormDTO;
import com.epmet.entity.CustomerMpEntity; import com.epmet.entity.CustomerMpEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -98,4 +99,12 @@ public interface CustomerMpDao extends BaseDao<CustomerMpEntity> {
* @Description 根据appId查询小程序信息 * @Description 根据appId查询小程序信息
**/ **/
CustomerMpDTO selectByAppId(@Param("appId") String appId); CustomerMpDTO selectByAppId(@Param("appId") String appId);
/**
* @param appId
* @return
* @Author sun
* @Description 根据appId查询客户信息
**/
PaCustomerDTO selectCustomerByAppId(@Param("appId") String appId);
} }

65
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java

@ -1,65 +0,0 @@
package com.epmet.exception;
/**
* @Author zxc
* @CreateTime 2020/7/6 10:03
*/
@SuppressWarnings("serial")
public class AesException extends Exception {
/*public final static int OK = 0;
public final static int ValidateSignatureError = -40001;
public final static int ParseXmlError = -40002;
public final static int ComputeSignatureError = -40003;
public final static int IllegalAesKey = -40004;
public final static int ValidateCorpidError = -40005;
public final static int EncryptAESError = -40006;
public final static int DecryptAESError = -40007;
public final static int IllegalBuffer = -40008;
public final static int EncodeBase64Error = -40009;
public final static int DecodeBase64Error = -40010;
public final static int GenReturnXmlError = -40011;
private int code;
private static String getMessage(int code) {
switch (code) {
case ValidateSignatureError:
return "签名验证错误";
case ParseXmlError:
return "xml解析失败";
case ComputeSignatureError:
return "sha加密生成签名失败";
case IllegalAesKey:
return "SymmetricKey非法";
case ValidateCorpidError:
return "corpid校验失败";
case EncryptAESError:
return "aes加密失败";
case DecryptAESError:
return "aes解密失败";
case IllegalBuffer:
return "解密后得到的buffer非法";
case EncodeBase64Error:
return "base64加密错误";
case DecodeBase64Error:
return "base64解密错误";
case GenReturnXmlError:
return "xml生成失败";
default:
return null; // cannot be
}
}
public int getCode() {
return code;
}
public AesException(int code) {
super(getMessage(code));
this.code = code;
}
*/
}

9
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java

@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.CustomerMpDTO; import com.epmet.dto.CustomerMpDTO;
import com.epmet.dto.UserWechatDTO; import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.WxLoginFormDTO; import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.entity.CustomerMpEntity; import com.epmet.entity.CustomerMpEntity;
import java.util.List; import java.util.List;
@ -112,4 +113,12 @@ public interface CustomerMpService extends BaseService<CustomerMpEntity> {
* @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息 * @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息
**/ **/
UserWechatDTO resiAndWorkLogin(WxLoginFormDTO formDTO); UserWechatDTO resiAndWorkLogin(WxLoginFormDTO formDTO);
/**
* @param appId
* @return
* @Author sun
* @Description 根据appId查询公众号注册的客户信息
**/
PublicCustomerResultDTO getCustomerMsg(String appId);
} }

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/WarrantService.java

@ -1,8 +1,7 @@
package com.epmet.service; package com.epmet.service;
import com.epmet.exception.AesException; import com.epmet.mpaes.AesException;
import org.dom4j.DocumentException; import org.dom4j.DocumentException;
import org.springframework.web.bind.annotation.PathVariable;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;

41
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.constant.ModuleConstant; import com.epmet.constant.ModuleConstant;
import com.epmet.constant.ThirdRedisKeyConstant;
import com.epmet.constant.ThirdRunTimeInfoConstant; import com.epmet.constant.ThirdRunTimeInfoConstant;
import com.epmet.dao.*; import com.epmet.dao.*;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
@ -263,13 +264,14 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
HashMap<String,Map> hashMap = JSON.parseObject(authInfo, HashMap.class); HashMap<String,Map> hashMap = JSON.parseObject(authInfo, HashMap.class);
Map map = hashMap.get(ModuleConstant.AUTHORIZATION_INFO); Map map = hashMap.get(ModuleConstant.AUTHORIZATION_INFO);
authorizationInfoResultDTO = mapToEntity(map, AuthorizationInfoResultDTO.class); authorizationInfoResultDTO = mapToEntity(map, AuthorizationInfoResultDTO.class);
String authAppId = authorizationInfoResultDTO.getAuthorizer_appid();
log.info("授权信息:"+map); log.info("授权信息:"+map);
String expiresIn = authorizationInfoResultDTO.getExpires_in(); String expiresIn = authorizationInfoResultDTO.getExpires_in();
Date expiresInTime = this.countExpirationTime(expiresIn); Date expiresInTime = this.countExpirationTime(expiresIn);
//授权信息分为两张表,基础信息authorization_info,授权列表func_info //授权信息分为两张表,基础信息authorization_info,授权列表func_info
// 1. 基础信息 // 1. 基础信息
AuthorizationInfoFormDTO authInfoDTO = new AuthorizationInfoFormDTO(); AuthorizationInfoFormDTO authInfoDTO = new AuthorizationInfoFormDTO();
authInfoDTO.setAuthorizerAppid(authorizationInfoResultDTO.getAuthorizer_appid()); authInfoDTO.setAuthorizerAppid(authAppId);
authInfoDTO.setAuthorizerAccessToken(authorizationInfoResultDTO.getAuthorizer_access_token()); authInfoDTO.setAuthorizerAccessToken(authorizationInfoResultDTO.getAuthorizer_access_token());
authInfoDTO.setAuthorizerRefreshToken(authorizationInfoResultDTO.getAuthorizer_refresh_token()); authInfoDTO.setAuthorizerRefreshToken(authorizationInfoResultDTO.getAuthorizer_refresh_token());
authInfoDTO.setExpiresInTime(expiresInTime); authInfoDTO.setExpiresInTime(expiresInTime);
@ -283,20 +285,19 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
List<FuncInfoFormDTO> funcInfos = new ArrayList<>(); List<FuncInfoFormDTO> funcInfos = new ArrayList<>();
List<Map> func_info = authorizationInfoResultDTO.getFunc_info(); List<Map> func_info = authorizationInfoResultDTO.getFunc_info();
log.info("权限列表信息:"+func_info); log.info("权限列表信息:"+func_info);
for (Map map1 : func_info) { func_info.forEach(func -> {
List key = (List)map1.keySet(); func.forEach((key,value) -> {
FuncInfoFormDTO fu = new FuncInfoFormDTO(); FuncInfoFormDTO fu = new FuncInfoFormDTO();
String funcscopeCategory = key.get(NumConstant.ZERO).toString(); fu.setFuncscopeCategory((String) key);
fu.setFuncscopeCategory(funcscopeCategory); Map funcScope = (Map) value;
Map funcscope = (Map) map1.get(funcscopeCategory); fu.setFuncscopeId(funcScope.get(ModuleConstant.ID).toString());
String funcscopeId = funcscope.get("id").toString(); fu.setAuthorizationInfoAppid(authAppId);
fu.setFuncscopeId(funcscopeId); fu.setCustomerId(customerId);
fu.setAuthorizationInfoAppid(authorizationInfoResultDTO.getAuthorizer_appid()); funcInfos.add(fu);
fu.setCustomerId(customerId); });
funcInfos.add(fu); });
}
//先逻辑删除,在插入 //先逻辑删除,在插入
funcInfoDao.updateOldFuncInfo(customerId,authorizationInfoResultDTO.getAuthorizer_appid()); funcInfoDao.updateOldFuncInfo(customerId,authAppId);
funcInfoDao.insertFuncInfo(funcInfos); funcInfoDao.insertFuncInfo(funcInfos);
// 授权信息放入缓存 // 授权信息放入缓存
redisThird.setAuthInfo(authorizationInfoResultDTO,customerId,clientType); redisThird.setAuthInfo(authorizationInfoResultDTO,customerId,clientType);
@ -328,7 +329,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
//第三方平台AppId //第三方平台AppId
jsonObject.put(ModuleConstant.COMPONENT_APPID,componentAppId); jsonObject.put(ModuleConstant.COMPONENT_APPID,componentAppId);
jsonObject.put(ModuleConstant.AUTHORIZER_REFRESH_TOKEN,willOverDueDTO.getAuthorizerRefreshToken()); jsonObject.put(ModuleConstant.AUTHORIZER_REFRESH_TOKEN,willOverDueDTO.getAuthorizerRefreshToken());
String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_AUTHORIZER_TOKEN_URL, JSON.toJSONString(jsonObject)).getData(); String componentAccessToken = redisThird.getComponentAccessToken();
String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_AUTHORIZER_TOKEN_URL + componentAccessToken, JSON.toJSONString(jsonObject)).getData();
Map map = JSON.parseObject(data, HashMap.class); Map map = JSON.parseObject(data, HashMap.class);
//authorizer_access_token //authorizer_access_token
String authorizerAccessToken = map.get(ModuleConstant.AUTHORIZER_ACCESS_TOKEN).toString(); String authorizerAccessToken = map.get(ModuleConstant.AUTHORIZER_ACCESS_TOKEN).toString();
@ -408,7 +410,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put(ModuleConstant.COMPONENT_APP_ID,componentAppId); jsonObject.put(ModuleConstant.COMPONENT_APP_ID,componentAppId);
jsonObject.put(ModuleConstant.AUTHORIZER_APP_ID,authAppId); jsonObject.put(ModuleConstant.AUTHORIZER_APP_ID,authAppId);
String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_GET_AUTHORIZER_INFO, JSON.toJSONString(jsonObject)).getData(); String componentAccessToken = redisThird.getComponentAccessToken();
String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_GET_AUTHORIZER_INFO + componentAccessToken , JSON.toJSONString(jsonObject)).getData();
Map<String,Map> map = JSON.parseObject(data, Map.class); Map<String,Map> map = JSON.parseObject(data, Map.class);
Map authorizerInfo = map.get(ModuleConstant.AUTHORIZER_INFO); Map authorizerInfo = map.get(ModuleConstant.AUTHORIZER_INFO);
log.info("授权信息:"+authorizerInfo); log.info("授权信息:"+authorizerInfo);
@ -498,12 +501,14 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
log.info("开始创建开放平台账号并绑定"); log.info("开始创建开放平台账号并绑定");
Integer authCount = customerMpDao.selectAuthCount(customerId); Integer authCount = customerMpDao.selectAuthCount(customerId);
String openPlatformId = null; String openPlatformId = null;
String authorizerRefreshToken = redisThird.getAuthorizerRefreshToken(customerId + ThirdRedisKeyConstant.COLON + clientType);
if (authCount==NumConstant.ZERO){ if (authCount==NumConstant.ZERO){
log.info("未查询到该客户授权信息,先创建开放平台账号,再绑定"); log.info("未查询到该客户授权信息,先创建开放平台账号,再绑定");
//没有任何一个小程序/公众号授权,【先创建,再绑定】 //没有任何一个小程序/公众号授权,【先创建,再绑定】
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put(ModuleConstant.APP_ID,authAppId); jsonObject.put(ModuleConstant.APP_ID,authAppId);
String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_CREATE_OPEN, JSON.toJSONString(jsonObject)).getData(); // 此处的 access_token 为 【authorizer_access_token】
String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_CREATE_OPEN + authorizerRefreshToken, JSON.toJSONString(jsonObject)).getData();
Map<String,String> map = JSON.parseObject(data, Map.class); Map<String,String> map = JSON.parseObject(data, Map.class);
CreateOpenResultDTO createOpen = new CreateOpenResultDTO(); CreateOpenResultDTO createOpen = new CreateOpenResultDTO();
createOpen.setErrCode(Integer.valueOf(map.get(ModuleConstant.ERR_CODE))); createOpen.setErrCode(Integer.valueOf(map.get(ModuleConstant.ERR_CODE)));
@ -532,7 +537,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put(ModuleConstant.LOW_APP_ID,componentAppId); jsonObject.put(ModuleConstant.LOW_APP_ID,componentAppId);
jsonObject.put(ModuleConstant.OPEN_APP_ID,openAppId); jsonObject.put(ModuleConstant.OPEN_APP_ID,openAppId);
String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_BIND_OPEN, JSON.toJSONString(jsonObject)).getData(); String data = HttpClientManager.getInstance().sendPostByJSON(WxMaCodeConstant.API_BIND_OPEN + authorizerRefreshToken, JSON.toJSONString(jsonObject)).getData();
Map<String,String> map = JSON.parseObject(data, Map.class); Map<String,String> map = JSON.parseObject(data, Map.class);
CreateOpenResultDTO createOpen = new CreateOpenResultDTO(); CreateOpenResultDTO createOpen = new CreateOpenResultDTO();
createOpen.setErrCode(Integer.valueOf(map.get(ModuleConstant.ERR_CODE))); createOpen.setErrCode(Integer.valueOf(map.get(ModuleConstant.ERR_CODE)));

22
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java

@ -26,10 +26,13 @@ import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.PaConstant;
import com.epmet.dao.CustomerMpDao; import com.epmet.dao.CustomerMpDao;
import com.epmet.dto.CustomerMpDTO; import com.epmet.dto.CustomerMpDTO;
import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.UserWechatDTO; import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.WxLoginFormDTO; import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.entity.CustomerMpEntity; import com.epmet.entity.CustomerMpEntity;
import com.epmet.redis.CustomerMpRedis; import com.epmet.redis.CustomerMpRedis;
import com.epmet.service.CustomerMpService; import com.epmet.service.CustomerMpService;
@ -142,4 +145,23 @@ public class CustomerMpServiceImpl extends BaseServiceImpl<CustomerMpDao, Custom
return resultMap; return resultMap;
} }
/**
* @param appId
* @return
* @Author sun
* @Description 根据appId查询公众号注册的客户信息
**/
@Override
public PublicCustomerResultDTO getCustomerMsg(String appId) {
PublicCustomerResultDTO resultDTO = new PublicCustomerResultDTO();
//1.根据appid查询客户信息
PaCustomerDTO paCustomerDTO = baseDao.selectCustomerByAppId(appId);
if(null==paCustomerDTO){
throw new RenException(PaConstant.SELECT_CUSTOMER_EXCEPTION);
}
resultDTO.setCustomer(paCustomerDTO);
return resultDTO;
}
} }

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java

@ -289,11 +289,11 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
//获取key的剩余过期时间 //获取key的剩余过期时间
String key = RedisKeys.getCpUserKey(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, tokenDTO.getUserId()); String key = RedisKeys.getCpUserKey(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, tokenDTO.getUserId());
long expire = redisUtils.getExpire(key); long expire = redisUtils.getExpire(key);
//存入redis
cpUserDetailRedis.set(redisTokenDTO, expire); cpUserDetailRedis.set(redisTokenDTO, expire);
//6.接口返参 //6.接口返参
CreateAgencyResultDTO resultDTO = new CreateAgencyResultDTO(); CreateAgencyResultDTO resultDTO = new CreateAgencyResultDTO();
resultDTO.setCustomerId(entity.getId()); resultDTO.setCustomerId(entity.getId());
resultDTO.setToken(redisTokenDTO.getToken());
return resultDTO; return resultDTO;
} }

11
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaUserServiceImpl.java

@ -26,6 +26,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.PaCustomerDao; import com.epmet.dao.PaCustomerDao;
import com.epmet.dao.PaUserDao; import com.epmet.dao.PaUserDao;
import com.epmet.dao.PaUserWechatDao;
import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.PaUserDTO; import com.epmet.dto.PaUserDTO;
import com.epmet.dto.PaUserWechatDTO; import com.epmet.dto.PaUserWechatDTO;
@ -61,6 +62,8 @@ public class PaUserServiceImpl extends BaseServiceImpl<PaUserDao, PaUserEntity>
private PaUserWechatService paUserWechatService; private PaUserWechatService paUserWechatService;
@Autowired @Autowired
private PaCustomerDao paCustomerDao; private PaCustomerDao paCustomerDao;
@Autowired
private PaUserWechatDao paUserWechatDao;
@Override @Override
public PageData<PaUserDTO> page(Map<String, Object> params) { public PageData<PaUserDTO> page(Map<String, Object> params) {
@ -175,17 +178,25 @@ public class PaUserServiceImpl extends BaseServiceImpl<PaUserDao, PaUserEntity>
@Override @Override
public CustomerUserResultDTO checkPaUser(String phone) { public CustomerUserResultDTO checkPaUser(String phone) {
CustomerUserResultDTO resultDTO = new CustomerUserResultDTO(); CustomerUserResultDTO resultDTO = new CustomerUserResultDTO();
//1.根据手机号查询用户信息
List<PaUserDTO> userList = baseDao.selectUserByPhone(phone); List<PaUserDTO> userList = baseDao.selectUserByPhone(phone);
if (null == userList || userList.size() < NumConstant.ONE) { if (null == userList || userList.size() < NumConstant.ONE) {
resultDTO.setPaUserResult(null); resultDTO.setPaUserResult(null);
resultDTO.setPaCustomerResult(null); resultDTO.setPaCustomerResult(null);
resultDTO.setPaUserWechatResult(null);
return resultDTO; return resultDTO;
} }
PaUserDTO dto = userList.get(NumConstant.ZERO); PaUserDTO dto = userList.get(NumConstant.ZERO);
//2.根据用户Id查询对应的客户信息
List<PaCustomerDTO> customerList = paCustomerDao.selectCustomerByUserId(dto.getId()); List<PaCustomerDTO> customerList = paCustomerDao.selectCustomerByUserId(dto.getId());
//3.根据用户Id查询对应的微信基本信息
PaUserWechatDTO wechatDTO = new PaUserWechatDTO();
wechatDTO.setUserId(dto.getId());
PaUserWechatEntity wechatEntity = paUserWechatDao.selectWechatByUserId(wechatDTO);
resultDTO.setPaUserResult(dto); resultDTO.setPaUserResult(dto);
resultDTO.setPaCustomerResult(customerList.size() > NumConstant.ZERO ? customerList.get(NumConstant.ZERO) : null); resultDTO.setPaCustomerResult(customerList.size() > NumConstant.ZERO ? customerList.get(NumConstant.ZERO) : null);
resultDTO.setPaUserWechatResult(ConvertUtils.sourceToTarget(wechatEntity, PaUserWechatDTO.class));
return resultDTO; return resultDTO;
} }

16
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java

@ -10,7 +10,7 @@ import com.epmet.dao.MiniInfoDao;
import com.epmet.dto.form.CodeAuditRecordFormDTO; import com.epmet.dto.form.CodeAuditRecordFormDTO;
import com.epmet.dto.result.CustomerIdAndClientResultDTO; import com.epmet.dto.result.CustomerIdAndClientResultDTO;
import com.epmet.dto.result.TemplateAndAppIdResultDTO; import com.epmet.dto.result.TemplateAndAppIdResultDTO;
import com.epmet.exception.AesException; import com.epmet.mpaes.AesException;
import com.epmet.mpaes.WXBizMsgCrypt; import com.epmet.mpaes.WXBizMsgCrypt;
import com.epmet.mpaes.WXXmlToMapUtil; import com.epmet.mpaes.WXXmlToMapUtil;
import com.epmet.service.WarrantService; import com.epmet.service.WarrantService;
@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.Date;
import java.util.Map; import java.util.Map;
/** /**
@ -58,15 +59,14 @@ public class WarrantServiceImpl implements WarrantService {
/** /**
* @Description 1.保存代码审核结果 2.更新代码上传结果 * @Description 1.保存代码审核结果 2.更新代码上传结果
* @param request * @param request
* @param appid * @param appId
* @param response * @param response
* @author zxc * @author zxc
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void acceptMessageAndEvent(HttpServletRequest request, String appid, HttpServletResponse response)throws IOException, DocumentException, AesException { public void acceptMessageAndEvent(HttpServletRequest request, String appId, HttpServletResponse response)throws IOException, DocumentException, AesException {
log.info("request:"+request); log.info("appId:"+ appId);
log.info("appId:"+ appid);
request.setCharacterEncoding(ModuleConstant.UTF8); request.setCharacterEncoding(ModuleConstant.UTF8);
String msgSignature = request.getParameter(ModuleConstant.MSG_SIGNATURE); String msgSignature = request.getParameter(ModuleConstant.MSG_SIGNATURE);
String timeStamp = request.getParameter(ModuleConstant.TIMESTAMP); String timeStamp = request.getParameter(ModuleConstant.TIMESTAMP);
@ -83,14 +83,16 @@ public class WarrantServiceImpl implements WarrantService {
try { try {
wxBizMsgCrypt = new WXBizMsgCrypt(token,aesKey,componentAppId); wxBizMsgCrypt = new WXBizMsgCrypt(token,aesKey,componentAppId);
msg = wxBizMsgCrypt.decryptMsg(msgSignature, timeStamp, nonce, postData); msg = wxBizMsgCrypt.decryptMsg(msgSignature, timeStamp, nonce, postData);
} catch (com.epmet.mpaes.AesException e) { } catch (AesException e) {
e.printStackTrace(); e.printStackTrace();
} }
log.info(String.format(ThirdRunTimeInfoConstant.MSG,msg)); log.info(String.format(ThirdRunTimeInfoConstant.MSG,msg));
// 将xml转为map // 将xml转为map
Map<String, Object> result = WXXmlToMapUtil.multilayerXmlToMap(msg); Map<String, Object> result = WXXmlToMapUtil.multilayerXmlToMap(msg);
Map<String,Object> xml = (Map<String, Object>) result.get("xml"); Map<String,Object> xml = (Map<String, Object>) result.get(ModuleConstant.XML);
Long createTime = Long.valueOf(xml.get(ModuleConstant.CREATE_TIME).toString());
CodeAuditRecordFormDTO codeAuditRecord = componentVerifyTicketService.mapToEntity(xml, CodeAuditRecordFormDTO.class); CodeAuditRecordFormDTO codeAuditRecord = componentVerifyTicketService.mapToEntity(xml, CodeAuditRecordFormDTO.class);
codeAuditRecord.setWechatCreateTime(new Date(createTime));
String toUserName = codeAuditRecord.getToUserName();//小程序原始ID String toUserName = codeAuditRecord.getToUserName();//小程序原始ID
CustomerIdAndClientResultDTO customerIdAndClientResultDTO = miniInfoDao.selectCustomerIdAndClientByToUserName(toUserName); CustomerIdAndClientResultDTO customerIdAndClientResultDTO = miniInfoDao.selectCustomerIdAndClientByToUserName(toUserName);
String clientType = customerIdAndClientResultDTO.getClientType(); String clientType = customerIdAndClientResultDTO.getClientType();

8
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java

@ -23,7 +23,7 @@ public interface WxMaCodeConstant {
*/ */
String API_COMPONENT_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_component_token"; String API_COMPONENT_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_component_token";
String API_AUTHORIZER_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token"; String API_AUTHORIZER_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token=";
/** /**
* 授权回调url * 授权回调url
@ -48,17 +48,17 @@ public interface WxMaCodeConstant {
/** /**
* 创建开放平台帐号并绑定公众号/小程序 * 创建开放平台帐号并绑定公众号/小程序
*/ */
String API_CREATE_OPEN = "https://api.weixin.qq.com/cgi-bin/open/create"; String API_CREATE_OPEN = "https://api.weixin.qq.com/cgi-bin/open/create?access_token=";
/** /**
* 公众号/小程序绑定到开放平台帐号下 * 公众号/小程序绑定到开放平台帐号下
*/ */
String API_BIND_OPEN = "https://api.weixin.qq.com/cgi-bin/open/bind?"; String API_BIND_OPEN = "https://api.weixin.qq.com/cgi-bin/open/bind?access_token=";
/** /**
* 获取授权方的帐号基本信息 * 获取授权方的帐号基本信息
*/ */
String API_GET_AUTHORIZER_INFO = "https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info"; String API_GET_AUTHORIZER_INFO = "https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token=";
/** /**
* 为授权的小程序帐号上传小程序代码. * 为授权的小程序帐号上传小程序代码.

18
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml

@ -14,16 +14,16 @@
#{templateId}, #{templateId},
#{clientType}, #{clientType},
#{authAppId}, #{authAppId},
#{toUserName}, #{ToUserName},
#{fromUserName}, #{FromUserName},
#{wechatCreateTime}, #{wechatCreateTime},
#{msgType}, #{MsgType},
#{event}, #{Event},
IFNULL(#{succTime},NULL), IFNULL(#{SuccTime},NULL),
IFNULL(#{failTime},NULL), IFNULL(#{FailTime},NULL),
IFNULL(#{delayTime},NULL), IFNULL(#{DelayTime},NULL),
IFNULL(#{reason},NULL), IFNULL(#{Reason},NULL),
IFNULL(#{screenShot},NULL), IFNULL(#{ScreenShot},NULL),
#{delFlag}, #{delFlag},
#{revision}, #{revision},
#{createdBy}, #{createdBy},

14
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml

@ -99,4 +99,18 @@
AND app_id = #{appId} AND app_id = #{appId}
</select> </select>
<select id="selectCustomerByAppId" resultType="com.epmet.dto.PaCustomerDTO">
SELECT
pc.id,
pc.customer_name,
pc.is_initialize
FROM
customer_mp cm
INNER JOIN pa_customer pc ON cm.customer_id = pc.id
WHERE
cm.del_flag = '0'
AND pc.del_flag = '0'
AND cm.app_id = #{appId}
</select>
</mapper> </mapper>

14
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml

@ -15,14 +15,14 @@
REPLACE ( UUID(), '-', '' ), REPLACE ( UUID(), '-', '' ),
#{customerId}, #{customerId},
#{clientType}, #{clientType},
#{nickName}, #{nick_name},
#{headImg}, #{head_img},
#{serviceTypeInfo}, #{service_type_info},
#{verifyTypeInfo}, #{verify_type_info},
#{userName}, #{user_name},
#{principalName}, #{principal_name},
#{signature}, #{signature},
#{qrcodeUrl}, #{qrcode_url},
#{delFlag}, #{delFlag},
#{revision}, #{revision},
#{createdBy}, #{createdBy},

14
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaInfoDao.xml

@ -15,14 +15,14 @@
REPLACE ( UUID(), '-', '' ), REPLACE ( UUID(), '-', '' ),
#{customerId}, #{customerId},
#{clientType}, #{clientType},
#{nickName}, #{nick_name},
#{headImg}, #{head_img},
#{serviceTypeInfo}, #{service_type_info},
#{verifyTypeInfo}, #{verify_type_info},
#{userName}, #{user_name},
#{principalName}, #{principal_name},
#{alias}, #{alias},
#{qrcodeUrl}, #{qrcode_url},
#{delFlag}, #{delFlag},
#{revision}, #{revision},
#{createdBy}, #{createdBy},

6
epmet-module/resi-guide/resi-guide-client/src/main/java/com/epmet/dto/form/PublicCustomerGridListFormDTO.java

@ -22,10 +22,10 @@ public class PublicCustomerGridListFormDTO implements Serializable {
} }
/** /**
* 客户Id * 小程序appId
* */ * */
@NotBlank(message = "客户Id不能为空", groups = {AddUserShowGroup.class}) @NotBlank(message = "小程序appId不能为空", groups = {AddUserShowGroup.class})
private String customerId; private String appId;
/** /**
* 当前页 * 当前页
* */ * */

6
epmet-module/resi-guide/resi-guide-server/pom.xml

@ -81,6 +81,12 @@
<artifactId>snakeyaml</artifactId> <artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version> <version>${snakeyaml.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-third-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

15
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/StrangerAccessRecordServiceImpl.java

@ -14,12 +14,15 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.StrangerResiGuideConstant; import com.epmet.constant.StrangerResiGuideConstant;
import com.epmet.dao.StrangerAccessRecordDao; import com.epmet.dao.StrangerAccessRecordDao;
import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.StrangerAccessRecordDTO; import com.epmet.dto.StrangerAccessRecordDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.CustomerGridForStrangerResultDTO; import com.epmet.dto.result.CustomerGridForStrangerResultDTO;
import com.epmet.dto.result.HomeDesignByCustomerResultDTO; import com.epmet.dto.result.HomeDesignByCustomerResultDTO;
import com.epmet.dto.result.PublicCustomerGridForStrangerResultDTO; import com.epmet.dto.result.PublicCustomerGridForStrangerResultDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.entity.StrangerAccessRecordEntity; import com.epmet.entity.StrangerAccessRecordEntity;
import com.epmet.feign.EpmetThirdFeignClient;
import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.GovOrgFeignClient; import com.epmet.feign.GovOrgFeignClient;
import com.epmet.feign.OperCustomizeFeignClient; import com.epmet.feign.OperCustomizeFeignClient;
@ -52,6 +55,8 @@ public class StrangerAccessRecordServiceImpl extends BaseServiceImpl<StrangerAcc
private EpmetUserFeignClient epmetUserFeignClient; private EpmetUserFeignClient epmetUserFeignClient;
@Autowired @Autowired
private OperCustomizeFeignClient operCustomizeFeignClient; private OperCustomizeFeignClient operCustomizeFeignClient;
@Autowired
private EpmetThirdFeignClient epmetThirdFeignClient;
/** /**
* 查询陌生人访问记录 * 查询陌生人访问记录
@ -249,8 +254,16 @@ public class StrangerAccessRecordServiceImpl extends BaseServiceImpl<StrangerAcc
@Override @Override
public Result<List<PublicCustomerGridForStrangerResultDTO>> thirdCustomerGridList(PublicCustomerGridListFormDTO formDTO) { public Result<List<PublicCustomerGridForStrangerResultDTO>> thirdCustomerGridList(PublicCustomerGridListFormDTO formDTO) {
//0.调用epmet-third服务,根据appId查询客户信息
Result<PublicCustomerResultDTO> result = epmetThirdFeignClient.getCustomerMsg(formDTO.getAppId());
if(!result.success()){
throw new RenException(result.getCode());
}
PublicCustomerResultDTO resultDTO = result.getData();
PaCustomerDTO customer = resultDTO.getCustomer();
ThirdCustomerGridListFormDTO third = new ThirdCustomerGridListFormDTO(); ThirdCustomerGridListFormDTO third = new ThirdCustomerGridListFormDTO();
third.setCustomerId(formDTO.getCustomerId()); third.setCustomerId(customer.getId());
//1.参数设置 //1.参数设置
//根据是自动定位还是手动定位获取地区编码值 //根据是自动定位还是手动定位获取地区编码值
third.setAreaCode(ModuleConstant.NOT_POSITION_AUTHORIZED == formDTO.getIsAuthorized() ? third.setAreaCode(ModuleConstant.NOT_POSITION_AUTHORIZED == formDTO.getIsAuthorized() ?

Loading…
Cancel
Save