Browse Source

Merge branch 'dev' into release

# Conflicts:
#	epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml
feature/evaluate
wxz 5 years ago
parent
commit
e2a1a07490
  1. 2
      epmet-auth/deploy/docker-compose-dev.yml
  2. 2
      epmet-auth/pom.xml
  3. 49
      epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java
  4. 28
      epmet-auth/src/main/java/com/epmet/dto/form/LoginFormDTO.java
  5. 27
      epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java
  6. 38
      epmet-auth/src/main/java/com/epmet/service/impl/PublicUserLoginServiceImpl.java
  7. 350
      epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java
  8. 8
      epmet-commons/epmet-commons-tools/pom.xml
  9. 6
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  10. 27
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java
  11. 53
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/MultipartFileToFileUtils.java
  12. 2
      epmet-gateway/deploy/docker-compose-dev.yml
  13. 2
      epmet-gateway/pom.xml
  14. 6
      epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java
  15. 2
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml
  16. 2
      epmet-module/data-statistical/data-statistical-server/pom.xml
  17. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/crm/CustomerDao.java
  18. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerDepartmentDao.java
  19. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java
  20. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java
  21. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java
  22. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java
  23. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimDepartmentDao.java
  24. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java
  25. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/CustomerService.java
  26. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerServiceImpl.java
  27. 129
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java
  28. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java
  29. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerDepartmentService.java
  30. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java
  31. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java
  32. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerDepartmentServiceImpl.java
  33. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java
  34. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java
  35. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerService.java
  36. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimDepartmentService.java
  37. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java
  38. 22
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java
  39. 22
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java
  40. 22
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimDepartmentServiceImpl.java
  41. 16
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java
  42. 23
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/crm/CustomerDao.xml
  43. 20
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerDepartmentDao.xml
  44. 21
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml
  45. 25
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml
  46. 21
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml
  47. 15
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml
  48. 17
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimDepartmentDao.xml
  49. 17
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml
  50. 2
      epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml
  51. 7
      epmet-module/epmet-job/epmet-job-server/pom.xml
  52. 13
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/ComponentAccessTokenService.java
  53. 13
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/RefreshAuthAccessTokenService.java
  54. 25
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ComponentAccessTokenServiceImpl.java
  55. 23
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/RefreshAuthAccessTokenServiceImpl.java
  56. 34
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ComponentAccessTokenTask.java
  57. 32
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/RefreshAuthAccessTokenTask.java
  58. 6
      epmet-module/epmet-third/epmet-third-client/pom.xml
  59. 91
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeExtDTO.java
  60. 2
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeOperationHistoryDTO.java
  61. 7
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PaCustomerAgencyDTO.java
  62. 30
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AuthCodeAndTimeFromDTO.java
  63. 18
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeAuditRecordFormDTO.java
  64. 2
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java
  65. 19
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MediaUploadFormDTO.java
  66. 14
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MiniInfoFormDTO.java
  67. 26
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MyInfoFormDTO.java
  68. 14
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PaInfoFormDTO.java
  69. 44
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterByAuthFormDTO.java
  70. 27
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WxLoginFormDTO.java
  71. 2
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/AuthorizationInfoResultDTO.java
  72. 34
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeHistoryResultDTO.java
  73. 4
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CreateAgencyResultDTO.java
  74. 5
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerUserResultDTO.java
  75. 32
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/InitCustomerResultDTO.java
  76. 17
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/MediaUploadResultDTO.java
  77. 22
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PublicCustomerResultDTO.java
  78. 22
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/QrCodeResultDTO.java
  79. 26
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java
  80. 26
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/RegisterByAuthResultDTO.java
  81. 2
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java
  82. 57
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java
  83. 34
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java
  84. 2
      epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml
  85. 2
      epmet-module/epmet-third/epmet-third-server/pom.xml
  86. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java
  87. 10
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java
  88. 8
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/PaConstant.java
  89. 59
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdApiConstant.java
  90. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdRedisKeyConstant.java
  91. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdRunTimeInfoConstant.java
  92. 14
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/AuthRedirectController.java
  93. 133
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java
  94. 84
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeExtController.java
  95. 32
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeOperationHistoryController.java
  96. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java
  97. 27
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerMpController.java
  98. 53
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java
  99. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WarrantController.java
  100. 4
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WeChatNotifyController.java

2
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.43
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.44
ports:
- "8081:8081"
network_mode: host # 使用现有网络

2
epmet-auth/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.43</version>
<version>0.3.44</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-cloud</artifactId>

49
epmet-auth/src/main/java/com/epmet/controller/ThirdLoginController.java

@ -0,0 +1,49 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.LoginFormDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.service.ThirdLoginService;
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;
/**
* @Description 第三方-居民端政府端登陆服务
* @author sun
*/
@RestController
@RequestMapping("thirdlogin")
public class ThirdLoginController {
@Autowired
private ThirdLoginService thirdLoginService;
/**
* @param formDTO
* @return
* @Author sun
* @Description 单客户-居民端微信小程序登录
**/
@PostMapping("resilogin")
public Result<UserTokenResultDTO> resiLogin(@RequestBody LoginFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<UserTokenResultDTO>().ok(thirdLoginService.resiLogin(formDTO));
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 单客户-政府端微信小程序登录
**/
@PostMapping("worklogin")
public Result<UserTokenResultDTO> workLogin(@RequestBody LoginFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<UserTokenResultDTO>().ok(thirdLoginService.workLogin(formDTO));
}
}

28
epmet-auth/src/main/java/com/epmet/dto/form/LoginFormDTO.java

@ -0,0 +1,28 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 单客户-居民端微信小程序登录
* @Author sun
*/
@Data
public class LoginFormDTO extends LoginCommonFormDTO implements Serializable {
private static final long serialVersionUID = 7950477424010655108L;
/**
* 小程序appId
*/
@NotBlank(message = "appId不能为空",groups = {AddUserInternalGroup.class})
private String appId;
/**
* 用户微信code
*/
@NotBlank(message = "wxCode不能为空",groups = {AddUserInternalGroup.class})
private String wxCode;
}

27
epmet-auth/src/main/java/com/epmet/service/ThirdLoginService.java

@ -0,0 +1,27 @@
package com.epmet.service;
import com.epmet.dto.form.LoginFormDTO;
import com.epmet.dto.result.UserTokenResultDTO;
/**
* @Description 第三方-居民端政府端登陆服务
* @author sun
*/
public interface ThirdLoginService {
/**
* @param formDTO
* @return
* @Author sun
* @Description 单客户-居民端微信小程序登录
**/
UserTokenResultDTO resiLogin(LoginFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author sun
* @Description 单客户-政府端微信小程序登录
**/
UserTokenResultDTO workLogin(LoginFormDTO formDTO);
}

38
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.dto.PaCustomerDTO;
import com.epmet.dto.PaUserDTO;
import com.epmet.dto.PaUserWechatDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.SaveUserResultDTO;
@ -77,7 +78,9 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
//3.获取用户token
String token = this.generateGovWxmpToken(resultDTO.getUserId());
//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.setToken(token);
return userTokenResultDTO;
@ -118,17 +121,17 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
}
//保存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();
int expire = jwtTokenProperties.getExpire();
tokenDTO.setApp(LoginConstant.APP_PUBLIC);
tokenDTO.setClient(LoginConstant.CLIENT_MP);
tokenDTO.setOpenId(wxMpUser.getOpenId());
tokenDTO.setUnionId(null == wxMpUser.getUnionId() ? "" : wxMpUser.getUnionId());
tokenDTO.setOpenId(openId);
tokenDTO.setUnionId(unionId);
tokenDTO.setToken(token);
//首次初始化时还没有客户
tokenDTO.setCustomerId("");
tokenDTO.setUserId(resultDTO.getUserId());
tokenDTO.setCustomerId(customerId);
tokenDTO.setUserId(userId);
tokenDTO.setExpireTime(jwtTokenUtils.getExpiration(token).getTime());
tokenDTO.setUpdateTime(System.currentTimeMillis());
cpUserDetailRedis.set(tokenDTO, expire);
@ -206,19 +209,22 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
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());
}
//获取缓存中的token
TokenDto redisTokenDTO = cpUserDetailRedis.get(LoginConstant.APP_PUBLIC, LoginConstant.CLIENT_MP, userDTO.getId(), TokenDto.class);
if (redisTokenDTO == null) {
return null;
}
//4.判断是否存在客户信息,是否需要生成新的token
//生成的token是根据登陆手机号对应的user生成的token,访问记录表记录的是那个user根据自己或他人的手机号登陆的
//4.直接生成一个新的token放入缓存中(不管缓存中是否存在旧的token,都重新生成)
//4-1.生成token
String token = this.generateGovWxmpToken(userDTO.getId());
//4-2.判断是否存在信息,给customerId赋值
PaCustomerDTO customerDTO = resultDTO.getPaCustomerResult();
String customerId = "";
if (null != customerDTO && !StringUtils.isBlank(customerDTO.getId())) {
redisTokenDTO.setCustomerId(customerDTO.getId());
int expire = jwtTokenProperties.getExpire();
cpUserDetailRedis.set(redisTokenDTO, expire);
customerId = customerDTO.getId();
}
//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.登陆成功,访问记录表新增访问记录(访问记录新增失败不应影响用户登陆)
SaveUserVisitedFormDTO visited = new SaveUserVisitedFormDTO();
@ -232,7 +238,7 @@ public class PublicUserLoginServiceImpl implements PublicUserLoginService {
//6.返回token
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(redisTokenDTO.getToken());
userTokenResultDTO.setToken(token);
return userTokenResultDTO;
}

350
epmet-auth/src/main/java/com/epmet/service/impl/ThirdLoginServiceImpl.java

@ -0,0 +1,350 @@
package com.epmet.service.impl;
import com.epmet.common.token.constant.LoginConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
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.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.dto.CustomerAgencyDTO;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.DepartmentListResultDTO;
import com.epmet.dto.result.GridByStaffResultDTO;
import com.epmet.dto.result.StaffLatestAgencyResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.feign.EpmetThirdFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.jwt.JwtTokenProperties;
import com.epmet.jwt.JwtTokenUtils;
import com.epmet.service.ThirdLoginService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author sun
* @Description 第三方-居民端政府端登陆服务
*/
@Slf4j
@Service
public class ThirdLoginServiceImpl implements ThirdLoginService {
private static final Logger logger = LoggerFactory.getLogger(ThirdLoginServiceImpl.class);
@Autowired
private JwtTokenUtils jwtTokenUtils;
@Autowired
private JwtTokenProperties jwtTokenProperties;
@Autowired
private CpUserDetailRedis cpUserDetailRedis;
@Autowired
private EpmetThirdFeignClient epmetThirdFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
/**
* @param formDTO
* @return
* @Author sun
* @Description 单客户-居民端微信小程序登录
**/
@Override
public UserTokenResultDTO resiLogin(LoginFormDTO formDTO) {
//1.调用epmet_third服务,校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息
WxLoginFormDTO resiLoginFormDTO = new WxLoginFormDTO();
resiLoginFormDTO.setAppId(formDTO.getAppId());
resiLoginFormDTO.setWxCode(formDTO.getWxCode());
Result<UserWechatDTO> result = epmetThirdFeignClient.resiAndWorkLogin(resiLoginFormDTO);
if (!result.success()) {
logger.error("居民端小程序登陆,调用epmet_third服务获取数据失败");
throw new RenException(result.getCode());
}
UserWechatDTO userWechatDTO = result.getData();
//2.调用epmet-user服务,新增用户信息(先判断用户是否存在,不存在则新增存在则更新)
WxUserFormDTO wxUserFormDTO = new WxUserFormDTO();
wxUserFormDTO.setWechatDTO(userWechatDTO);
wxUserFormDTO.setApp(formDTO.getApp());
Result<UserDTO> userResult = epmetUserOpenFeignClient.saveWxUser(wxUserFormDTO);
if (!userResult.success()) {
throw new RenException(result.getCode());
}
UserDTO userDTO = userResult.getData();
//3.生成业务token
String userId = userDTO.getId();
String token = this.generateToken(formDTO, userId);
//4.存放Redis
this.saveTokenDto(formDTO, userId, userWechatDTO, token);
//5.接口返参
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(token);
return userTokenResultDTO;
}
/**
* @Description 居民端登陆生成业务token的key
**/
private String generateToken(LoginCommonFormDTO formDTO, String userId) {
Map<String, Object> map = new HashMap<>();
map.put("app", formDTO.getApp());
map.put("client", formDTO.getClient());
map.put("userId", userId);
String token = jwtTokenUtils.createToken(map);
logger.info("app:" + formDTO.getApp() + ";client:" + formDTO.getClient() + ";userId:" + userId + ";生成token[" + token + "]");
return token;
}
/**
* @Description 将token存入redis
**/
private String saveTokenDto(LoginCommonFormDTO formDTO, String userId, UserWechatDTO userWechatDTO, String token) {
int expire = jwtTokenProperties.getExpire();
TokenDto tokenDto = new TokenDto();
tokenDto.setApp(formDTO.getApp());
tokenDto.setClient(formDTO.getClient());
tokenDto.setUserId(userId);
tokenDto.setOpenId(userWechatDTO.getWxOpenId());
tokenDto.setSessionKey(userWechatDTO.getSessionKey());
tokenDto.setUnionId(userWechatDTO.getUnionId());
tokenDto.setToken(token);
tokenDto.setUpdateTime(System.currentTimeMillis());
tokenDto.setExpireTime(jwtTokenUtils.getExpiration(token).getTime());
cpUserDetailRedis.set(tokenDto, expire);
logger.info("截止时间:" + DateUtils.format(jwtTokenUtils.getExpiration(token), "yyyy-MM-dd HH:mm:ss"));
return token;
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 单客户-政府端微信小程序登录
**/
@Override
public UserTokenResultDTO workLogin(LoginFormDTO formDTO) {
//1.调用epmet_third服务,校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息
WxLoginFormDTO resiLoginFormDTO = new WxLoginFormDTO();
resiLoginFormDTO.setAppId(formDTO.getAppId());
resiLoginFormDTO.setWxCode(formDTO.getWxCode());
Result<UserWechatDTO> result = epmetThirdFeignClient.resiAndWorkLogin(resiLoginFormDTO);
if (!result.success()) {
logger.error("工作端小程序登陆,调用epmet_third服务获取数据失败");
throw new RenException(result.getCode());
}
UserWechatDTO userWechatDTO = result.getData();
//2.根据openid查询用户是否存在历史登陆信息
Result<StaffLatestAgencyResultDTO> latestStaffWechat = epmetUserOpenFeignClient.getLatestStaffWechatLoginRecord(userWechatDTO.getWxOpenId());
if (!latestStaffWechat.success() || null == latestStaffWechat.getData()) {
logger.error(String.format("没有获取到用户最近一次登录账户信息,code[%s],msg[%s]", EpmetErrorCode.PLEASE_LOGIN.getCode(), EpmetErrorCode.PLEASE_LOGIN.getMsg()));
throw new RenException(EpmetErrorCode.PLEASE_LOGIN.getCode());
}
StaffLatestAgencyResultDTO staffLatestAgencyResultDTO = latestStaffWechat.getData();
//3.记录staff_wechat
this.savestaffwechat(staffLatestAgencyResultDTO.getStaffId(), userWechatDTO.getWxOpenId());
//4.记录登录日志
this.saveStaffLoginRecord(staffLatestAgencyResultDTO);
//5.获取用户token
String token = this.generateGovWxmpToken(staffLatestAgencyResultDTO.getStaffId());
//6.保存到redis
this.saveLatestGovTokenDto(staffLatestAgencyResultDTO, userWechatDTO, token);
UserTokenResultDTO userTokenResultDTO = new UserTokenResultDTO();
userTokenResultDTO.setToken(token);
return userTokenResultDTO;
}
/**
* @param userId openid
* @return
* @Author sun
* @Description 保存微信和当前登录用户关系
**/
private Result savestaffwechat(String userId, String openid) {
StaffWechatFormDTO staffWechatFormDTO = new StaffWechatFormDTO();
staffWechatFormDTO.setUserId(userId);
staffWechatFormDTO.setWxOpenId(openid);
return epmetUserOpenFeignClient.saveStaffWechat(staffWechatFormDTO);
}
/**
* @param latestStaffWechatLoginDTO
* @return
* @Author sun
* @Description 保存登录日志
**/
private Result saveStaffLoginRecord(StaffLatestAgencyResultDTO latestStaffWechatLoginDTO) {
StaffLoginAgencyRecordFormDTO staffLoginAgencyRecordFormDTO = new StaffLoginAgencyRecordFormDTO();
staffLoginAgencyRecordFormDTO.setCustomerId(latestStaffWechatLoginDTO.getCustomerId());
staffLoginAgencyRecordFormDTO.setStaffId(latestStaffWechatLoginDTO.getStaffId());
staffLoginAgencyRecordFormDTO.setWxOpenId(latestStaffWechatLoginDTO.getWxOpenId());
staffLoginAgencyRecordFormDTO.setMobile(latestStaffWechatLoginDTO.getMobile());
staffLoginAgencyRecordFormDTO.setAgencyId(latestStaffWechatLoginDTO.getAgencyId());
Result staffLoginRecordResult = epmetUserOpenFeignClient.saveStaffLoginRecord(staffLoginAgencyRecordFormDTO);
return staffLoginRecordResult;
}
/**
* @Description 生成政府端小程序业务token Key
* @Author sun
**/
private String generateGovWxmpToken(String staffId) {
Map<String, Object> map = new HashMap<>();
map.put("app", LoginConstant.APP_GOV);
map.put("client", LoginConstant.CLIENT_WXMP);
map.put("userId", staffId);
String token = jwtTokenUtils.createToken(map);
logger.info("app:" + LoginConstant.APP_GOV + ";client:" + LoginConstant.CLIENT_WXMP + ";userId:" + staffId + ";生成token[" + token + "]");
return token;
}
/**
* @Description 保存tokenDto到redis
* @Author sun
**/
private void saveLatestGovTokenDto(StaffLatestAgencyResultDTO staffLatestAgency, UserWechatDTO userWechatDTO, String token) {
int expire = jwtTokenProperties.getExpire();
GovTokenDto govTokenDto = new GovTokenDto();
govTokenDto.setApp(LoginConstant.APP_GOV);
govTokenDto.setClient(LoginConstant.CLIENT_WXMP);
govTokenDto.setUserId(staffLatestAgency.getStaffId());
govTokenDto.setOpenId(userWechatDTO.getWxOpenId());
govTokenDto.setSessionKey(userWechatDTO.getSessionKey());
govTokenDto.setUnionId(userWechatDTO.getUnionId());
govTokenDto.setToken(token);
govTokenDto.setUpdateTime(System.currentTimeMillis());
govTokenDto.setExpireTime(jwtTokenUtils.getExpiration(token).getTime());
govTokenDto.setRootAgencyId(staffLatestAgency.getAgencyId());
govTokenDto.setCustomerId(staffLatestAgency.getCustomerId());
//设置部门,网格,角色列表
govTokenDto.setDeptIdList(getDeptartmentIdList(staffLatestAgency.getStaffId()));
govTokenDto.setGridIdList(getGridIdList(staffLatestAgency.getStaffId()));
CustomerAgencyDTO agency = getAgencyByStaffId(staffLatestAgency.getStaffId());
if (agency != null) {
govTokenDto.setAgencyId(agency.getId());
govTokenDto.setRoleList(queryGovStaffRoles(staffLatestAgency.getStaffId(), agency.getId()));
}
govTokenDto.setOrgIdPath(getOrgIdPath(staffLatestAgency.getStaffId()));
cpUserDetailRedis.set(govTokenDto, expire);
logger.info("截止时间:" + DateUtils.format(jwtTokenUtils.getExpiration(token), "yyyy-MM-dd HH:mm:ss"));
}
public Set<String> getDeptartmentIdList(String staffId) {
try {
Result<List<DepartmentListResultDTO>> deptListResult = govOrgOpenFeignClient.getDepartmentListByStaffId(staffId);
if (deptListResult.success()) {
if (!CollectionUtils.isEmpty(deptListResult.getData())) {
Set<String> deptIdLists = deptListResult.getData().stream().map(dept -> dept.getDepartmentId()).collect(Collectors.toSet());
return deptIdLists;
}
} else {
logger.error("登录:查询部门列表,远程调用返回错误:{}", deptListResult.getMsg());
}
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error("登录:查询部门列表异常:{}", errorStackTrace);
}
return null;
}
/**
* 根据工作人员ID查询网格ID列表
*
* @param staffId
* @return
*/
public Set<String> getGridIdList(String staffId) {
Result<List<GridByStaffResultDTO>> result = govOrgOpenFeignClient.listGridsbystaffid(staffId);
if (!result.success()) {
logger.error("登录:查询网格列表,远程调用返回错误:{}", result.getMsg());
return null;
} else {
List<GridByStaffResultDTO> grids = result.getData();
return grids.stream().map(grid -> grid.getGridId()).collect(Collectors.toSet());
}
}
/**
* 根据staffId查询所属的组织机构
*
* @param staffId
*/
public CustomerAgencyDTO getAgencyByStaffId(String staffId) {
Result<CustomerAgencyDTO> result = govOrgOpenFeignClient.getAgencyByStaff(staffId);
if (!result.success()) {
logger.error("登录:查询登录人所属的机关OrgIdPath失败:{}", result.getMsg());
return null;
}
return result.getData();
}
/**
* 查询人员在某机关单位下的角色列表
*
* @param staffId orgId
*/
public List<GovTokenDto.Role> queryGovStaffRoles(String staffId, String orgId) {
StaffRoleFormDTO formDTO = new StaffRoleFormDTO();
formDTO.setStaffId(staffId);
formDTO.setOrgId(orgId);
Result<List<GovStaffRoleDTO>> gridResult = epmetUserOpenFeignClient.getRolesOfStaff(formDTO);
if (!CollectionUtils.isEmpty(gridResult.getData())) {
//return gridResult.getData().stream().map(role -> role.getId()).collect(Collectors.toSet());
return ConvertUtils.sourceToTarget(gridResult.getData(), GovTokenDto.Role.class);
}
return null;
}
/**
* 查询工作人员的OrgIdPath
*
* @param staffId
* @return
*/
public String getOrgIdPath(String staffId) {
Result<CustomerAgencyDTO> result = govOrgOpenFeignClient.getAgencyByStaff(staffId);
if (!result.success()) {
logger.error("登录:查询登录人所属的机关OrgIdPath失败:{}", result.getMsg());
return null;
}
CustomerAgencyDTO agency = result.getData();
if (agency != null) {
if ("0".equals(agency.getPid())) {
// 顶级
return agency.getId();
} else {
return agency.getPids().concat(":").concat(agency.getId());
}
}
return null;
}
}

8
epmet-commons/epmet-commons-tools/pom.xml

@ -129,6 +129,14 @@
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>
</dependencies>
<build>

6
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -85,7 +85,11 @@ public enum EpmetErrorCode {
CUSTOMER_VALIDATE_ERROR(8999, "内部数据校验异常"),
//公众号 865..开头的码
PUBLIC_NOT_EXISTS(8651,"手机号未注册,请先完成信息注册");
PUBLIC_NOT_EXISTS(8651,"手机号未注册,请先完成信息注册"),
SELECT_CUSTOMER_ERROR(8652,"未查询到注册客户信息"),
SELECT_AGENCY_ERROR(8653,"根据客户信息未查询到注册客户组织信息"),
SELECT_USER_ERROR(8654,"根据客户信息未查询到注册客户管理员信息"),
UPDATE_CUSTOMER_ERROR(8655,"更新注册客户信息为已完成初始化失败");
private int code;

27
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/HttpClientManager.java

@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
@ -20,6 +21,8 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.StringEntity;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
@ -124,6 +127,30 @@ public class HttpClientManager {
}
/**
* 上传临时素材
* @author zhaoqifeng
* @date 2020/7/17 14:33
* @param url
* @param file
* @return com.epmet.commons.tools.utils.Result<java.lang.String>
*/
public Result<String> uploadWxMedia(String url, File file) {
try {
HttpPost httppost = new HttpPost(url);
httppost.setConfig(requestConfig);
httppost.addHeader("Content-Type", "application/json; charset=utf-8");
FileBody fileBody = new FileBody(file);
HttpEntity reqEntity = MultipartEntityBuilder.create()
.addPart("media", fileBody).build();
httppost.setEntity(reqEntity);
return execute(httppost);
} catch (Exception e) {
log.error("send exception", e);
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
}
}
/**
* desc: 发送钉钉群消息 简版
* param: url,jsonStrParam

53
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/MultipartFileToFileUtils.java

@ -0,0 +1,53 @@
package com.epmet.commons.tools.utils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/17 14:01
*/
public class MultipartFileToFileUtils {
/**
* MultipartFile File
*
* @param file
* @throws Exception
*/
public static File multipartFileToFile(MultipartFile file) throws Exception {
File toFile = null;
if (("").equals(file) || file.getSize() <= 0) {
file = null;
} else {
InputStream ins = null;
ins = file.getInputStream();
toFile = new File(file.getOriginalFilename());
toFile = inputStreamToFile(ins, toFile);
ins.close();
}
return toFile;
}
private static File inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
return file;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

2
epmet-gateway/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-gateway-server:
container_name: epmet-gateway-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.26
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-gateway:0.3.27
ports:
- "8080:8080"
network_mode: host # 使用现有网络

2
epmet-gateway/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.26</version>
<version>0.3.27</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-cloud</artifactId>

6
epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java

@ -134,8 +134,10 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory<CpA
.header(AppClientConstant.CLIENT,baseTokenDto.getClient())
.header(AppClientConstant.USER_ID,baseTokenDto.getUserId())
;
if(StringUtils.equals(baseTokenDto.getApp(),"gov")){
exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID,customerId);
if (StringUtils.equals(baseTokenDto.getApp(), "gov")) {//工作端
exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
} else if (StringUtils.equals(baseTokenDto.getApp(), "public")) {//公众号端
exchange.getRequest().mutate().header(AppClientConstant.CUSTOMER_ID, customerId);
}
ServerHttpRequest build = exchange.getRequest().mutate().build();
return chain.filter(exchange.mutate().request(build).build());

2
epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-statistical-server:
container_name: data-statistical-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.39
image: 192.168.1.130:10080/epmet-cloud-dev/data-statistical-server:0.3.40
ports:
- "8108:8108"
network_mode: host # 使用现有网络

2
epmet-module/data-statistical/data-statistical-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.39</version>
<version>0.3.40</version>
<parent>
<artifactId>data-statistical</artifactId>
<groupId>com.epmet</groupId>

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/crm/CustomerDao.java

@ -43,4 +43,6 @@ public interface CustomerDao extends BaseDao<CustomerEntity> {
List<CustomerEntity> listValidCustomersByCreateTime(
@Param("createTimeFrom") Date createTimeFrom,
@Param("createTimeTo") Date createTimeTo);
List<CustomerEntity> listValidCustomersByUpdateTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
}

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerDepartmentDao.java

@ -38,4 +38,5 @@ public interface CustomerDepartmentDao extends BaseDao<CustomerDepartmentEntity>
@Param("createdTimeFrom") Date createdTimeFrom,
@Param("createdTimeTo") Date createdTimeTo);
List<CustomerDepartmentEntity> listDepartmentsByUpdatedTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
}

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java

@ -59,4 +59,12 @@ public interface CustomerGridDao extends BaseDao<CustomerGridEntity> {
* @author zxc
*/
List<GridIdListByCustomerResultDTO> getCustomerGridIdList(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* 根据更新时间查询列表
* @param startTime
* @param endTime
* @return
*/
List<CustomerGridEntity> listUpdatedGridsByUpdateTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/StatsCustomerAgencyDao.java

@ -20,4 +20,6 @@ public interface StatsCustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
List<AgencySubTreeDto> selectAllAgency();
List<AgencySubTreeDto> selectSubAgencyByPid(@Param("pid")String pid);
List<CustomerAgencyEntity> listAgenciesByUpdatedTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java

@ -124,4 +124,6 @@ public interface DimAgencyDao extends BaseDao<DimAgencyEntity> {
String getPidByAgencyId(@Param("agencyId") String agencyId);
DimAgencyEntity getLatestCreatedAgencyDimEntity();
DimAgencyEntity getLatestUpdatedAgencyDimEntity();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerDao.java

@ -47,4 +47,6 @@ public interface DimCustomerDao extends BaseDao<DimCustomerEntity> {
void insertOne(DimCustomerEntity dim);
DimCustomerEntity getLatestCreatedDimEntity();
DimCustomerEntity getLatestUpdatedDimEntity();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimDepartmentDao.java

@ -42,4 +42,6 @@ public interface DimDepartmentDao extends BaseDao<DimDepartmentEntity> {
List<DimDepartmentEntity> getDepartmentListByCustomerId(@Param("customerId") String customerId);
DimDepartmentEntity getLatestCreatedDimEntity();
DimDepartmentEntity getLatestUpdatedDimEntity();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java

@ -58,4 +58,6 @@ public interface DimGridDao extends BaseDao<DimGridEntity> {
* @author zxc
*/
List<SubAgencyIdResultDTO> selectSubAgencyId(@Param("formDTO")List<AgencyDTO> formDTO);
DimGridEntity getLastUpdatedGridDim();
}

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/CustomerService.java

@ -9,4 +9,5 @@ public interface CustomerService {
List<CustomerEntity> listValidCustomersByCreateTime(Date createTimeFrom, Date createTimeTo);
List<CustomerEntity> listValidCustomersByUpdatedTime(Date updatedTime, Date initTime);
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/crm/impl/CustomerServiceImpl.java

@ -22,4 +22,9 @@ public class CustomerServiceImpl implements CustomerService {
public List<CustomerEntity> listValidCustomersByCreateTime(Date createTimeFrom, Date createTimeTo) {
return customerDao.listValidCustomersByCreateTime(createTimeFrom, createTimeTo);
}
@Override
public List<CustomerEntity> listValidCustomersByUpdatedTime(Date startTime, Date endTime) {
return customerDao.listValidCustomersByUpdateTime(startTime, endTime);
}
}

129
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsDimServiceImpl.java

@ -1,8 +1,6 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.RobotConstant;
import com.epmet.constant.StatsSubject;
import com.epmet.entity.crm.CustomerEntity;
import com.epmet.entity.org.CustomerAgencyEntity;
import com.epmet.entity.org.CustomerDepartmentEntity;
@ -18,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -54,6 +53,17 @@ public class StatsDimServiceImpl implements StatsDimService {
@Override
public void initGridDim() {
List<DimGridEntity> newDimGrids = getNewDimGrids();
List<DimGridEntity> changedGrids = getChangedGrids();
dimGridService.initGridDims(newDimGrids, changedGrids);
}
/**
* 初始化新建网格
* @return
*/
public List<DimGridEntity> getNewDimGrids() {
DimGridEntity lastDimEntity = dimGridService.getLastCreatedGridDim();
List<CustomerGridEntity> grids;
Date now = new Date();
@ -65,10 +75,36 @@ public class StatsDimServiceImpl implements StatsDimService {
grids = customerGridService.listGridsByCreateTime(lastInitTime, now);
}
List<DimGridEntity> gridDims = convertCustomerGrid2GridDim(grids, now);
if (!CollectionUtils.isEmpty(gridDims)) {
dimGridService.initGridDims(gridDims);
return convertCustomerGrid2GridDim(grids, now);
}
/**
* 初始化变更的网格
* @return
*/
public List<DimGridEntity> getChangedGrids() {
DimGridEntity lastUpdatedGridDim = dimGridService.getLastUpdatedGridDim();
List<CustomerGridEntity> updatedGrids;
Date now = new Date();
if (lastUpdatedGridDim != null) {
Date lastInitTime = lastUpdatedGridDim.getUpdatedTime();
updatedGrids = customerGridService.listUpdatedGridsByUpdateTime(lastInitTime, now);
ArrayList<DimGridEntity> dimGrids = new ArrayList<>();
for (CustomerGridEntity updatedGrid : updatedGrids) {
DimGridEntity dimGrid = dimGridService.selectById(updatedGrid.getId());
if (dimGrid != null) {
dimGrid.setGridName(updatedGrid.getGridName());
dimGrid.setUpdatedTime(now);
dimGrid.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
dimGrids.add(dimGrid);
}
}
return dimGrids;
}
return new ArrayList<>();
}
/**
@ -98,19 +134,41 @@ public class StatsDimServiceImpl implements StatsDimService {
*/
@Override
public void initAgencyDim() {
Date now = new Date();
List<CustomerAgencyEntity> agencies2Add = listAgencies2Add(now);
List<CustomerAgencyEntity> agencies2Update = listAgencies2Update(now);
dimAgencyService.initAgencyDims(agencies2Add, agencies2Update, now);
}
/**
* 查询需要添加的机关ç
* @return
*/
public List<CustomerAgencyEntity> listAgencies2Add(Date endDate) {
DimAgencyEntity latestCreatedAgencyDim = dimAgencyService.getLatestCreatedAgencyDimEntity();
Date now = new Date();
Date lastInitTime = null;
if (latestCreatedAgencyDim != null) {
lastInitTime = latestCreatedAgencyDim.getCreatedTime();
}
List<CustomerAgencyEntity> agencies = customerAgencyService.listAgenciesByCreateTime(lastInitTime, now);
if (!CollectionUtils.isEmpty(agencies)) {
dimAgencyService.initAgencyDims(agencies, now);
return customerAgencyService.listAgenciesByCreateTime(lastInitTime, endDate);
}
/**
* 查询需要更新的机关
* @return
*/
public List<CustomerAgencyEntity> listAgencies2Update(Date endDate) {
DimAgencyEntity latestUpdatedAgencyDim = dimAgencyService.getLatestUpdatedAgencyDimEntity();
if (latestUpdatedAgencyDim != null) {
// 不是首次初始化,可以更新
Date updatedTime = latestUpdatedAgencyDim.getUpdatedTime();
return customerAgencyService.listAgenciesByUpdatedTime(updatedTime, endDate);
}
return new ArrayList<>();
}
/**
@ -118,24 +176,59 @@ public class StatsDimServiceImpl implements StatsDimService {
*/
@Override
public void initCustomerDim() {
Date now = new Date();
List<CustomerEntity> newCustomers = listNewCustomers(now);
List<CustomerEntity> updatedCustomers = listUpdatedCustomers(now);
// System.out.println(666);
dimCustomerService.initCustomerDims(newCustomers, updatedCustomers, now);
}
/**
* 查询新增的客户列表
* @param initTime
* @return
*/
public List<CustomerEntity> listNewCustomers(Date initTime) {
DimCustomerEntity lastCreateDim = dimCustomerService.getLatestCreatedDimEntity();
Date now = new Date();
Date lastInitTime = null;
if (lastCreateDim != null) {
lastInitTime = lastCreateDim.getCreatedTime();
}
List<CustomerEntity> customers = customerService.listValidCustomersByCreateTime(lastInitTime, now);
if (!CollectionUtils.isEmpty(customers)) {
dimCustomerService.initCustomerDims(customers, now);
List<CustomerEntity> customers = customerService.listValidCustomersByCreateTime(lastInitTime, initTime);
return customers;
}
/**
* 查询更新的客户列表
* @param initTime
* @return
*/
public List<CustomerEntity> listUpdatedCustomers(Date initTime) {
DimCustomerEntity lastCreatedDim = dimCustomerService.getLatestUpdatedDimEntity();
if (lastCreatedDim != null) {
// 说明不是首次初始化
List<CustomerEntity> customers = customerService.listValidCustomersByUpdatedTime(lastCreatedDim.getUpdatedTime(), initTime);
return customers;
}
return new ArrayList<>();
}
/**
* 初始化部门维度
*/
@Override
public void initDepartmentDim() {
Date now = new Date();
List<CustomerDepartmentEntity> newDepartments = listNewDepartments(now);
List<CustomerDepartmentEntity> updatedDepartments = listUpdatedDepartments(now);
dimDepartmentService.initDepartmentDims(newDepartments, updatedDepartments, now);
}
public List<CustomerDepartmentEntity> listNewDepartments(Date initTime) {
DimDepartmentEntity lastCreatedDeptDim = dimDepartmentService.getLatestCreatedDimEntity();
Date now = new Date();
@ -144,10 +237,14 @@ public class StatsDimServiceImpl implements StatsDimService {
if (lastCreatedDeptDim != null) {
lastInitTime = lastCreatedDeptDim.getCreatedTime();
}
return departmentService.listDepartmentsByCreatedTime(lastInitTime, now);
}
List<CustomerDepartmentEntity> departments = departmentService.listDepartmentsByCreatedTime(lastInitTime, now);
if (!CollectionUtils.isEmpty(departments)) {
dimDepartmentService.initDepartmentDims(departments, now);
public List<CustomerDepartmentEntity> listUpdatedDepartments(Date initTime) {
DimDepartmentEntity lastUpdatedDeptDim = dimDepartmentService.getLatestUpdatedDimEntity();
if (lastUpdatedDeptDim != null) {
return departmentService.listDepartmentsByUpdatedTime(lastUpdatedDeptDim.getCreatedTime(), initTime);
}
return new ArrayList<>();
}
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerAgencyService.java

@ -7,4 +7,6 @@ import java.util.List;
public interface CustomerAgencyService {
List<CustomerAgencyEntity> listAgenciesByCreateTime(Date statsStartTime, Date statsEndTime);
List<CustomerAgencyEntity> listAgenciesByUpdatedTime(Date updatedTime, Date now);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerDepartmentService.java

@ -8,4 +8,6 @@ import java.util.List;
public interface CustomerDepartmentService {
List<CustomerDepartmentEntity> listDepartmentsByCreatedTime(Date createdTimeFrom, Date createdTimeTo);
List<CustomerDepartmentEntity> listDepartmentsByUpdatedTime(Date createdTime, Date initTime);
}

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java

@ -32,4 +32,12 @@ public interface CustomerGridService {
* @author zxc
*/
List<GridIdListByCustomerResultDTO> getCustomerGridIdList(String customerId, String dateId);
/**
* 根据更新时间查询变更过的网格列表
* @param lastInitTime
* @param now
* @return
*/
List<CustomerGridEntity> listUpdatedGridsByUpdateTime(Date lastInitTime, Date now);
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerAgencyServiceImpl.java

@ -22,4 +22,9 @@ public class CustomerAgencyServiceImpl implements CustomerAgencyService {
public List<CustomerAgencyEntity> listAgenciesByCreateTime(Date statsStartTime, Date statsEndTime) {
return customerAgencyDao.listAgenciesByCreateTime(statsStartTime, statsEndTime);
}
@Override
public List<CustomerAgencyEntity> listAgenciesByUpdatedTime(Date startTime, Date endTime) {
return customerAgencyDao.listAgenciesByUpdatedTime(startTime, endTime);
}
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerDepartmentServiceImpl.java

@ -28,4 +28,9 @@ public class CustomerDepartmentServiceImpl implements CustomerDepartmentService
public List<CustomerDepartmentEntity> listDepartmentsByCreatedTime(Date createdTimeFrom, Date createdTimeTo) {
return departmentDao.listDepartmentsByCreatedTime(createdTimeFrom, createdTimeTo);
}
@Override
public List<CustomerDepartmentEntity> listDepartmentsByUpdatedTime(Date startTime, Date endTime) {
return departmentDao.listDepartmentsByUpdatedTime(startTime, endTime);
}
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java

@ -46,4 +46,9 @@ public class CustomerGridServiceImpl implements CustomerGridService {
public List<GridIdListByCustomerResultDTO> getCustomerGridIdList(String customerId, String dateId) {
return customerGridDao.getCustomerGridIdList(customerId, dateId);
}
@Override
public List<CustomerGridEntity> listUpdatedGridsByUpdateTime(Date lastInitTime, Date now) {
return customerGridDao.listUpdatedGridsByUpdateTime(lastInitTime, now);
}
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java

@ -107,9 +107,8 @@ public interface DimAgencyService extends BaseService<DimAgencyEntity> {
/**
* 初始化机关维度
* @param agencies
*/
void initAgencyDims(List<CustomerAgencyEntity> agencies, Date initTime);
void initAgencyDims(List<CustomerAgencyEntity> agencies2Add, List<CustomerAgencyEntity> agencies2Update, Date initTime);
/**
* @Description 查询所有机关以及它下级机关的信息
@ -175,4 +174,6 @@ public interface DimAgencyService extends BaseService<DimAgencyEntity> {
String getPidByAgencyId(String agencyId);
DimAgencyEntity getLatestCreatedAgencyDimEntity();
DimAgencyEntity getLatestUpdatedAgencyDimEntity();
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerService.java

@ -110,9 +110,10 @@ public interface DimCustomerService extends BaseService<DimCustomerEntity> {
/**
* 添加客户维度
* @param customers
*/
void initCustomerDims(List<CustomerEntity> customers, Date initTime);
void initCustomerDims(List<CustomerEntity> newCustomers, List<CustomerEntity> updatedCustomers, Date initTime);
DimCustomerEntity getLatestCreatedDimEntity();
DimCustomerEntity getLatestUpdatedDimEntity();
}

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimDepartmentService.java

@ -95,7 +95,7 @@ public interface DimDepartmentService extends BaseService<DimDepartmentEntity> {
*/
void delete(String[] ids);
void initDepartmentDims(List<CustomerDepartmentEntity> departments, Date initTime);
void initDepartmentDims(List<CustomerDepartmentEntity> newDepartments, List<CustomerDepartmentEntity> updatedDepartments, Date initTime);
/**
* desc: 根据客户Id获取 部门数据
@ -108,4 +108,6 @@ public interface DimDepartmentService extends BaseService<DimDepartmentEntity> {
List<DimDepartmentEntity> getDepartmentListByCustomerId(String customerId);
DimDepartmentEntity getLatestCreatedDimEntity();
DimDepartmentEntity getLatestUpdatedDimEntity();
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java

@ -101,9 +101,8 @@ public interface DimGridService extends BaseService<DimGridEntity> {
/**
* 初始化网格维度
* @param gridDims
*/
void initGridDims(List<DimGridEntity> gridDims);
void initGridDims(List<DimGridEntity> newDimGrids, List<DimGridEntity> changedGrids);
/**
* desc: 根据客户Id获取 该客户下所有的网格数据
@ -128,4 +127,6 @@ public interface DimGridService extends BaseService<DimGridEntity> {
* @author zxc
*/
List<SubAgencyIdResultDTO> selectSubAgencyId(List<AgencyDTO> formDTO);
DimGridEntity getLastUpdatedGridDim();
}

22
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java

@ -123,12 +123,25 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
@Transactional(rollbackFor = Exception.class)
@Override
public void initAgencyDims(List<CustomerAgencyEntity> agencies, Date initTime) {
for (CustomerAgencyEntity agency : agencies) {
public void initAgencyDims(List<CustomerAgencyEntity> agencies2Add, List<CustomerAgencyEntity> agencies2Update, Date initTime) {
// 添加新增的机关维度
for (CustomerAgencyEntity agency : agencies2Add) {
initAgencyAllDim(agency, initTime);
initAgencySelfDim(agency, initTime);
}
// 更新变更过的机关维度
for (CustomerAgencyEntity agency : agencies2Update) {
DimAgencyEntity existsDimAgency = baseDao.selectById(agency.getId());
if (existsDimAgency != null) {
//说明是已存在的,不是新增的
existsDimAgency.setAgencyName(agency.getOrganizationName());
existsDimAgency.setUpdatedTime(initTime);
existsDimAgency.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
baseDao.updateById(existsDimAgency);
}
}
lastExecRecordDao.updateExecTimeBySubject(new Date(), StatsSubject.DIM_AGENCY);
}
@ -255,4 +268,9 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
return baseDao.getLatestCreatedAgencyDimEntity();
}
@Override
public DimAgencyEntity getLatestUpdatedAgencyDimEntity() {
return baseDao.getLatestUpdatedAgencyDimEntity();
}
}

22
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerServiceImpl.java

@ -120,8 +120,9 @@ public class DimCustomerServiceImpl extends BaseServiceImpl<DimCustomerDao, DimC
@Transactional(rollbackFor = Exception.class)
@Override
public void initCustomerDims(List<CustomerEntity> customers, Date initTime) {
for (CustomerEntity customer : customers) {
public void initCustomerDims(List<CustomerEntity> newCustomers, List<CustomerEntity> updatedCustomers, Date initTime) {
// 添加新增的客户维度
for (CustomerEntity customer : newCustomers) {
DimCustomerEntity dim = new DimCustomerEntity();
dim.setCustomerName(customer.getCustomerName());
dim.setCreatedBy(RobotConstant.DIMENSION_ROBOT);
@ -131,6 +132,18 @@ public class DimCustomerServiceImpl extends BaseServiceImpl<DimCustomerDao, DimC
dim.setUpdatedTime(initTime);
baseDao.insert(dim);
}
// 更新已存在的客户维度
for (CustomerEntity updatedCustomer : updatedCustomers) {
DimCustomerEntity existsCustomerDim = baseDao.selectById(updatedCustomer.getId());
if (existsCustomerDim != null) {
existsCustomerDim.setCustomerName(updatedCustomer.getCustomerName());
existsCustomerDim.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
existsCustomerDim.setUpdatedTime(initTime);
baseDao.updateById(existsCustomerDim);
}
}
lastExecRecordDao.updateExecTimeBySubject(new Date(), StatsSubject.DIM_CUSTOMER);
}
@ -138,4 +151,9 @@ public class DimCustomerServiceImpl extends BaseServiceImpl<DimCustomerDao, DimC
public DimCustomerEntity getLatestCreatedDimEntity() {
return baseDao.getLatestCreatedDimEntity();
}
@Override
public DimCustomerEntity getLatestUpdatedDimEntity() {
return baseDao.getLatestUpdatedDimEntity();
}
}

22
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimDepartmentServiceImpl.java

@ -109,8 +109,9 @@ public class DimDepartmentServiceImpl extends BaseServiceImpl<DimDepartmentDao,
@Transactional(rollbackFor = Exception.class)
@Override
public void initDepartmentDims(List<CustomerDepartmentEntity> departments, Date initTime) {
for (CustomerDepartmentEntity department : departments) {
public void initDepartmentDims(List<CustomerDepartmentEntity> newDepartments, List<CustomerDepartmentEntity> updatedDepartments, Date initTime) {
// 新增科室初始化
for (CustomerDepartmentEntity department : newDepartments) {
DimDepartmentEntity dim = new DimDepartmentEntity();
dim.setAgencyId(department.getAgencyId());
dim.setCustomerId(department.getCustomerId());
@ -122,6 +123,18 @@ public class DimDepartmentServiceImpl extends BaseServiceImpl<DimDepartmentDao,
dim.setUpdatedTime(initTime);
baseDao.insert(dim);
}
// 修改科室初始化
for (CustomerDepartmentEntity updatedDepartment : updatedDepartments) {
DimDepartmentEntity dimDepartment = baseDao.selectById(updatedDepartment.getId());
if (dimDepartment != null) {
dimDepartment.setDepartmentName(updatedDepartment.getDepartmentName());
dimDepartment.setUpdatedBy(RobotConstant.DIMENSION_ROBOT);
dimDepartment.setUpdatedTime(initTime);
baseDao.updateById(dimDepartment);
}
}
lastExecRecordDao.updateExecTimeBySubject(new Date(), StatsSubject.DIM_DEPARTMENT);
}
@ -137,4 +150,9 @@ public class DimDepartmentServiceImpl extends BaseServiceImpl<DimDepartmentDao,
public DimDepartmentEntity getLatestCreatedDimEntity() {
return baseDao.getLatestCreatedDimEntity();
}
@Override
public DimDepartmentEntity getLatestUpdatedDimEntity() {
return baseDao.getLatestUpdatedDimEntity();
}
}

16
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java

@ -117,13 +117,16 @@ public class DimGridServiceImpl extends BaseServiceImpl<DimGridDao, DimGridEntit
/**
* 初始化网格维度
* @param gridDims
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void initGridDims(List<DimGridEntity> gridDims) {
for (DimGridEntity gridDim : gridDims) {
baseDao.insert(gridDim);
public void initGridDims(List<DimGridEntity> newDimGrids, List<DimGridEntity> changedGrids) {
for (DimGridEntity newGridDim : newDimGrids) {
baseDao.insert(newGridDim);
}
for (DimGridEntity updatedGridDim : changedGrids) {
baseDao.updateById(updatedGridDim);
}
lastExecRecordDao.updateExecTimeBySubject(new Date(), StatsSubject.DIM_GRID);
@ -156,4 +159,9 @@ public class DimGridServiceImpl extends BaseServiceImpl<DimGridDao, DimGridEntit
public List<SubAgencyIdResultDTO> selectSubAgencyId(List<AgencyDTO> formDTO) {
return baseDao.selectSubAgencyId(formDTO);
}
@Override
public DimGridEntity getLastUpdatedGridDim() {
return baseDao.getLastUpdatedGridDim();
}
}

23
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/crm/CustomerDao.xml

@ -41,4 +41,27 @@
CONVERT ( c.CUSTOMER_NAME USING gbk ) ASC
</select>
<select id="listValidCustomersByUpdateTime" resultType="com.epmet.entity.crm.CustomerEntity">
select id,
customer_name,
title,
organization_number,
organization_img,
validity_time,
customer_admin,
customer_password,
organization_levels,
logo,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time,
organization_level
from customer
where UPDATED_TIME >= #{startTime}
and UPDATED_TIME <![CDATA[<]]> #{endTime}
</select>
</mapper>

20
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerDepartmentDao.xml

@ -16,4 +16,24 @@
</if>
</where>
</select>
<select id="listDepartmentsByUpdatedTime" resultType="com.epmet.entity.org.CustomerDepartmentEntity">
select
id,
customer_id,
agency_id,
department_name,
department_duty,
total_user,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
from customer_department
where UPDATED_TIME > #{startTime}
and UPDATED_TIME <![CDATA[<=]]> #{endTime}
</select>
</mapper>

21
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml

@ -47,4 +47,25 @@
AND customer_id = #{customerId}
AND DATE_FORMAT( created_time, '%Y%m%d' ) <![CDATA[ <= ]]> #{dateId}
</select>
<select id="listUpdatedGridsByUpdateTime" resultType="com.epmet.entity.org.CustomerGridEntity">
SELECT id,
customer_id,
grid_name,
longitude,
latitude,
area_code,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time,
manage_district,
total_user,
pid,
pids
FROM customer_grid
WHERE UPDATED_TIME >= #{startTime}
AND UPDATED_TIME <![CDATA[<]]> #{endTime}
</select>
</mapper>

25
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/StatsCustomerAgencyDao.xml

@ -75,4 +75,29 @@
grid.ID
</select>
<select id="listAgenciesByUpdatedTime" resultType="com.epmet.entity.org.CustomerAgencyEntity">
select
id,
customer_id,
pid,
pids,
all_parent_name,
organization_name,
level,
area_code,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time,
total_user,
province,
city,
district
from customer_agency
where UPDATED_TIME >= #{startTime}
and UPDATED_TIME <![CDATA[<=]]> #{endTime}
</select>
</mapper>

21
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml

@ -277,4 +277,25 @@
LIMIT 1
</select>
<!-- 最后一次更新的时间-->
<select id="getLatestUpdatedAgencyDimEntity" resultType="com.epmet.entity.stats.DimAgencyEntity">
select id,
agency_name,
customer_id,
pid,
pids,
all_parent_name,
level,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time,
agency_dim_type
from dim_agency
order by UPDATED_TIME desc
limit 1
</select>
</mapper>

15
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerDao.xml

@ -25,4 +25,19 @@
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
<select id="getLatestUpdatedDimEntity" resultType="com.epmet.entity.stats.DimCustomerEntity">
select
id,
customer_name,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
from dim_customer
order by UPDATED_TIME desc
limit 1;
</select>
</mapper>

17
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimDepartmentDao.xml

@ -35,4 +35,21 @@
ORDER BY CREATED_TIME DESC
LIMIT 1
</select>
<select id="getLatestUpdatedDimEntity" resultType="com.epmet.entity.stats.DimDepartmentEntity">
select
id,
department_name,
agency_id,
customer_id,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
from dim_department
order by UPDATED_TIME desc
limit 1
</select>
</mapper>

17
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml

@ -52,4 +52,21 @@
</foreach>
</select>
<select id="getLastUpdatedGridDim" resultType="com.epmet.entity.stats.DimGridEntity">
select id,
grid_name,
customer_id,
agency_id,
area_code,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
from dim_grid
order by UPDATED_TIME desc
limit 1;
</select>
</mapper>

2
epmet-module/epmet-job/epmet-job-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-job-server:
container_name: epmet-job-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-job-server:0.3.22
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-job-server:0.3.23
ports:
- "8084:8084"
network_mode: host # 使用现有网络

7
epmet-module/epmet-job/epmet-job-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.22</version>
<version>0.3.23</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-job</artifactId>
@ -33,6 +33,11 @@
<artifactId>data-statistical-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-third-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>

13
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/ComponentAccessTokenService.java

@ -0,0 +1,13 @@
package com.epmet.service;
import com.epmet.commons.tools.utils.Result;
/**
* @Author zxc
* @CreateTime 2020/7/20 10:21
*/
public interface ComponentAccessTokenService {
Result componentAccessTokenJob();
}

13
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/RefreshAuthAccessTokenService.java

@ -0,0 +1,13 @@
package com.epmet.service;
import com.epmet.commons.tools.utils.Result;
/**
* @Author zxc
* @CreateTime 2020/7/20 10:44
*/
public interface RefreshAuthAccessTokenService {
Result refreshAuthorizerAccessTokenJob();
}

25
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/ComponentAccessTokenServiceImpl.java

@ -0,0 +1,25 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.EpmetThirdFeignClient;
import com.epmet.service.ComponentAccessTokenService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author zxc
* @CreateTime 2020/7/20 10:22
*/
@Slf4j
@Service
public class ComponentAccessTokenServiceImpl implements ComponentAccessTokenService {
@Autowired
private EpmetThirdFeignClient epmetThirdFeignClient;
@Override
public Result componentAccessTokenJob() {
return epmetThirdFeignClient.getComponentAccessTokenJob();
}
}

23
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/RefreshAuthAccessTokenServiceImpl.java

@ -0,0 +1,23 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.EpmetThirdFeignClient;
import com.epmet.service.RefreshAuthAccessTokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author zxc
* @CreateTime 2020/7/20 10:44
*/
@Service
public class RefreshAuthAccessTokenServiceImpl implements RefreshAuthAccessTokenService {
@Autowired
private EpmetThirdFeignClient epmetThirdFeignClient;
@Override
public Result refreshAuthorizerAccessTokenJob() {
return epmetThirdFeignClient.refreshAuthorizerAccessTokenJob();
}
}

34
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/ComponentAccessTokenTask.java

@ -0,0 +1,34 @@
package com.epmet.task;
import com.epmet.commons.tools.utils.Result;
import com.epmet.service.ComponentAccessTokenService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author zxc
* @CreateTime 2020/7/20 10:28
*/
@Component("componentAccessToken")
public class ComponentAccessTokenTask implements ITask{
@Autowired
private ComponentAccessTokenService componentAccessTokenService;
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
public void run(String params) {
logger.info("ComponentAccessTokenTask正在执行定时任务,参数为{}",params);
Result result = componentAccessTokenService.componentAccessTokenJob();
if (result.success()){
logger.info("ComponentAccessTokenTask定时任务执行成功");
}else {
logger.error("ComponentAccessTokenTask定时任务执行失败:" + result.getMsg());
}
}
}

32
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/RefreshAuthAccessTokenTask.java

@ -0,0 +1,32 @@
package com.epmet.task;
import com.epmet.commons.tools.utils.Result;
import com.epmet.service.RefreshAuthAccessTokenService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author zxc
* @CreateTime 2020/7/20 10:46
*/
@Component("refreshAuthAccessTokenTask")
public class RefreshAuthAccessTokenTask implements ITask {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private RefreshAuthAccessTokenService refreshAuthAccessTokenService;
@Override
public void run(String params) {
logger.info("RefreshAuthAccessTokenTask正在执行定时任务,参数为{}",params);
Result result = refreshAuthAccessTokenService.refreshAuthorizerAccessTokenJob();
if (result.success()){
logger.info("RefreshAuthAccessTokenTask定时任务执行成功");
}else {
logger.error("RefreshAuthAccessTokenTask定时任务执行失败:" + result.getMsg());
}
}
}

6
epmet-module/epmet-third/epmet-third-client/pom.xml

@ -26,6 +26,12 @@
<version>3.6.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-user-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

91
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeExtDTO.java

@ -0,0 +1,91 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 代码第三方配置
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-07-17
*/
@Data
public class CodeExtDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 所属端 居民的resi,工作端work
*/
private String clientType;
/**
* APPID
*/
private String appId;
/**
* 自定义配置
*/
private String extJson;
/**
* 乐观锁
*/
private Integer revision;
/**
* 是否删除
*/
private String delFlag;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

2
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CustomerCodeOperationHistoryDTO.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeOperationHistoryDTO.java

@ -29,7 +29,7 @@ import lombok.Data;
* @since v1.0.0 2020-07-09
*/
@Data
public class CustomerCodeOperationHistoryDTO implements Serializable {
public class CodeOperationHistoryDTO implements Serializable {
private static final long serialVersionUID = 1L;

7
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PaCustomerAgencyDTO.java

@ -19,6 +19,8 @@ package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
@ -52,6 +54,11 @@ public class PaCustomerAgencyDTO implements Serializable {
* 级别
*/
private String level;
/**
* 级别(0.省级1市级2.区县级3.乡镇街道级 4.社区级 5无)
*/
@JsonIgnore
private String levelNum;
/**
* 地区编码

30
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AuthCodeAndTimeFromDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/7/21 14:36
*/
@Data
public class AuthCodeAndTimeFromDTO implements Serializable {
private static final long serialVersionUID = 7149257227563083044L;
/**
* 授权码 auth_code
*/
private String authCode;
/**
* 过期时间
*/
private String expiresIn;
/**
* 客户端类型 resi居民端work工作端
*/
private String clientType;
}

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
*/
private String toUserName;
private String ToUserName;
/**
* 发送方帐号一个 OpenID此时发送方是系统帐号
*/
private String fromUserName;
private String FromUserName;
/**
* 消息创建时间 整型时间戳
@ -57,7 +57,7 @@ public class CodeAuditRecordFormDTO implements Serializable {
/**
* 消息类型 event
*/
private String msgType;
private String MsgType;
/**
* 事件类型
@ -65,32 +65,32 @@ public class CodeAuditRecordFormDTO implements Serializable {
weapp_audit_fail审核不通过
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 的列表可通过获取永久素材接口拉取截图内容
*/
private String screenShot;
private String ScreenShot;
/**
* 删除状态

2
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java

@ -20,4 +20,6 @@ public class CodeCommonFormDTO implements Serializable {
* 代码ID
*/
private String codeId;
private Integer page;
private Integer limit;
}

19
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MediaUploadFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/17 11:15
*/
@Data
public class MediaUploadFormDTO implements Serializable {
private static final long serialVersionUID = -7342624180676221309L;
private String codeId;
private String type;
private MultipartFile media;
}

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
*/
private String serviceTypeInfo;
private String service_type_info;
/**
* 小程序认证类型 小程序认证类型
*/
private String verifyTypeInfo;
private String verify_type_info;
/**
* 原始 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
*/
private String qrcodeUrl;
private String qrcode_url;
private Integer delFlag = 0;

26
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MyInfoFormDTO.java

@ -1,26 +0,0 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author sun
* @Description 公众号-查询我的信息-接口入参
*/
@Data
public class MyInfoFormDTO implements Serializable {
private static final long serialVersionUID = -6547893374373422628L;
public interface AddUserInternalGroup {
}
/**
* 客户Id
*/
//@NotBlank(message = "客户Id不能为空", groups = {MyInfoFormDTO.AddUserInternalGroup.class})
private String customerId;
}

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订阅号
1由历史老帐号升级后的订阅号
2服务号
*/
private String serviceTypeInfo;
private String service_type_info;
/**
* 公众号认证类型 -1未认证
@ -51,17 +51,17 @@ public class PaInfoFormDTO implements Serializable {
4已资质认证通过还未通过名称认证但通过了新浪微博认证
5已资质认证通过还未通过名称认证但通过了腾讯微博认证
*/
private String verifyTypeInfo;
private String verify_type_info;
/**
* 原始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
*/
private String qrcodeUrl;
private String qrcode_url;
/**
* 删除状态 0正常1删除

44
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/RegisterByAuthFormDTO.java

@ -0,0 +1,44 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author sun
* @Description 运营端-根据授权状态和初始化状态获取客户列表不分页-接口入参
*/
@Data
public class RegisterByAuthFormDTO implements Serializable {
private static final long serialVersionUID = -6547893374373422628L;
public interface AddUserInternalGroup {
}
/**
* 居民端是否授权(0未授权1已授权)
* */
@NotNull(message = "居民端是否授权不能为空", groups = { AddUserInternalGroup.class })
private Integer resiAuth;
/**
* 工作端是否授权(0未授权1已授权)
* */
@NotNull(message = "工作端是否授权不能为空", groups = { AddUserInternalGroup.class })
private Integer workAuth;
/**
* 初始化状态0:已初始化1:未初始化
* */
@NotNull(message = "初始化状态不能为空", groups = { AddUserInternalGroup.class })
private Integer initState;
/**
* 所属端 resi:居民端 work:工作端
*/
private String client;
}

27
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WxLoginFormDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author sun
* @Description 小程序居民端登陆-接口入参
*/
@Data
public class WxLoginFormDTO implements Serializable {
private static final long serialVersionUID = -6163303184086480522L;
/**
* 小程序AppId
*/
private String appId;
/**
* 用户微信code
*/
private String wxCode;
}

2
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/AuthorizationInfoResultDTO.java

@ -29,7 +29,7 @@ public class AuthorizationInfoResultDTO implements Serializable {
/**
* authorizer_access_token 的有效期在授权的公众号/小程序具备API权限时才有此返回值单位
*/
private String expires_in;
private Integer expires_in;
/**
* 刷新令牌在授权的公众号具备API权限时才有此返回值刷新令牌主要用于第三方平台获取和刷新已授权用户的 authorizer_access_token

34
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeHistoryResultDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/16 9:53
*/
@NoArgsConstructor
@Data
public class CodeHistoryResultDTO implements Serializable {
private static final long serialVersionUID = 6030280825893585115L;
/**
* 操作时间
*/
private String operationTime;
/**
* 版本
*/
private String version;
/**
* 操作 上传upload审核audit撤回undo发布release
*/
private String operation;
/**
* 描述
*/
private String describe;
}

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

32
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/InitCustomerResultDTO.java

@ -0,0 +1,32 @@
package com.epmet.dto.result;
import com.epmet.dto.PaCustomerAgencyDTO;
import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.PaUserDTO;
import lombok.Data;
import java.io.Serializable;
/**
* @Author sun
* @Description 运营端初始化客户信息-查询客户各项注册信息-接口返参
*/
@Data
public class InitCustomerResultDTO implements Serializable {
private static final long serialVersionUID = 3253989119352850315L;
/**
* 注册客户信息
*/
private PaCustomerDTO paCustomer;
/**
* 注册客户组织信息
*/
private PaCustomerAgencyDTO paAgency;
/**
* 注册客户管理员信息
*/
private PaUserDTO paUser;
}

17
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/MediaUploadResultDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/17 11:17
*/
@Data
public class MediaUploadResultDTO implements Serializable {
private static final long serialVersionUID = -8462768939270515547L;
private String id;
private String name;
}

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;
}

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

@ -0,0 +1,22 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/16 9:46
*/
@NoArgsConstructor
@Data
public class QrCodeResultDTO implements Serializable {
private static final long serialVersionUID = -1145375851106140589L;
/**
* 二维码
*/
private Object qrcode;
}

26
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/16 9:28
*/
@NoArgsConstructor
@Data
public class ReasonResultDTO implements Serializable {
private static final long serialVersionUID = -1905907350492787127L;
/**
* 失败原因
*/
private String reason;
/**
* 失败的小程序截图url
*/
private List<String> screenshotUrl;
}

26
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/RegisterByAuthResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author sun
* @Description 运营端-根据授权状态和初始化状态获取客户列表不分页-接口返参
*/
@Data
public class RegisterByAuthResultDTO implements Serializable {
private static final long serialVersionUID = 4642988014737245076L;
/**
* 客户Id
*/
private String customerId;
/**
* 客户名称
*/
private String customerName;
}

2
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java

@ -18,7 +18,7 @@ public class TemplateListResultDTO implements Serializable {
/**
* 模板 id
*/
private String templateId;
private String id;
/**
* 模板描述
*/

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

@ -2,8 +2,12 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.SaveUserVisitedFormDTO;
import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.InitCustomerResultDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.dto.result.SaveUserResultDTO;
import com.epmet.feign.fallback.EpmetThirdFeignClientFallback;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
@ -18,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestBody;
*
* @Author zxc
* @CreateTime 2020/7/5 14:45
* ,url="localhost:8110"
*/
@FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdFeignClientFallback.class)
@ -49,4 +54,56 @@ public interface EpmetThirdFeignClient {
**/
@PostMapping(value = "third/pauservisited/saveuservisited")
Result saveUserVisited(@RequestBody SaveUserVisitedFormDTO visited);
/**
* @param customerId
* @return
* @Author sun
* @Description 根据客户Id查询各项注册信息
**/
@PostMapping(value = "third/pacustomer/getcustomeragencyuser/{customerId}")
Result<InitCustomerResultDTO> getCustomerAgencyUser(@PathVariable("customerId") String customerId);
/**
* @param customerId
* @return
* @Author sun
* @Description 修改客户数据状态为已完成初始化
**/
@PostMapping(value = "third/pacustomer/updatecustomer/{customerId}")
Result updateCustomer(@PathVariable("customerId") String customerId);
/**
* @Description 获取component_access_token的定时任务 10min/
* @param
* @author zxc
*/
@PostMapping(value = "third/wechatthird/componentaccesstoken")
Result getComponentAccessTokenJob();
/**
* @Description 获取/刷新接口调用令牌 10min/
* @param
* @author zxc
*/
@PostMapping(value = "third/wechatthird/refreshtoken")
Result refreshAuthorizerAccessTokenJob();
/**
* @param formDTO
* @return
* @Author sun
* @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息
**/
@PostMapping(value = "third/customermp/resiandworklogin")
Result<UserWechatDTO> resiAndWorkLogin(@RequestBody WxLoginFormDTO formDTO);
/**
* @param appId
* @return
* @Author sun
* @Description 根据appId查询公众号注册的客户信息
**/
@PostMapping(value = "third/customermp/getcustomermsg/{appId}")
Result<PublicCustomerResultDTO> getCustomerMsg(@PathVariable("appId") String appId);
}

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

@ -3,8 +3,12 @@ package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.SaveUserVisitedFormDTO;
import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.CustomerUserResultDTO;
import com.epmet.dto.result.InitCustomerResultDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.dto.result.SaveUserResultDTO;
import com.epmet.feign.EpmetThirdFeignClient;
import me.chanjar.weixin.mp.bean.result.WxMpUser;
@ -31,4 +35,34 @@ public class EpmetThirdFeignClientFallback implements EpmetThirdFeignClient {
public Result saveUserVisited(SaveUserVisitedFormDTO visited) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "saveUserVisited", visited);
}
@Override
public Result<InitCustomerResultDTO> getCustomerAgencyUser(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "getCustomerAgencyUser", customerId);
}
@Override
public Result updateCustomer(String customerId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "updateCustomer", customerId);
}
@Override
public Result getComponentAccessTokenJob() {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "getComponentAccessTokenJob");
}
@Override
public Result refreshAuthorizerAccessTokenJob() {
return ModuleUtils.feignConError(ServiceConstant.EPMET_THIRD_SERVER, "refreshAuthorizerAccessTokenJob");
}
@Override
public Result<UserWechatDTO> resiAndWorkLogin(WxLoginFormDTO 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);
}
}

2
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.14
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.40
ports:
- "8110:8110"
network_mode: host # 使用现有网络

2
epmet-module/epmet-third/epmet-third-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.0.14</version>
<version>0.0.40</version>
<parent>
<groupId>com.epmet</groupId>

5
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java

@ -46,4 +46,9 @@ public interface CodeConstant {
* 发布失败
*/
String RELEASE_FAILED = "release_failed";
String OPER_UPLOAD = "上传代码";
String OPER_SUBMIT = "提交审核";
String OPER_UNDO = "审核撤回";
String OPER_RELEASE = "发布";
}

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

@ -11,8 +11,10 @@ public interface ModuleConstant {
//获得授权事件的票据 如下
String UTF8 = "UTF-8";
String MSG_SIGNATURE = "msg_signature";
String SIGNATURE = "signature";
String TIMESTAMP = "timestamp";
String NONCE = "nonce";
String ENCRYPT_TYPE = "encrypt_type";
String INFO_TYPE = "InfoType";
String TICKET_UNDERLINE_KEY = "component_verify_ticket";
String TICKET_KEY = "ComponentVerifyTicket";
@ -29,6 +31,9 @@ public interface ModuleConstant {
String COMPONENT_APPSECRET = "component_appsecret";
String COMPONENT_ACCESS_TOKEN = "component_access_token";
String EXPIRES_IN = "expires_in";
String ACCOUNT_TOKEN_FLAG_ONE = "FIRST";
String ACCOUNT_TOKEN_FLAG_TWO = "JOB";
//获取预授权码 如下
String PRE_AUTH_CODE = "pre_auth_code";
@ -36,6 +41,7 @@ public interface ModuleConstant {
//使用授权码获取授权信息 如下
String AUTHORIZATION_CODE = "authorization_code";
String AUTHORIZATION_INFO = "authorization_info";
String ID = "id";
//获取/刷新接口调用令牌 如下
String AUTHORIZER_APPID = "authorizer_appid";
@ -59,7 +65,7 @@ public interface ModuleConstant {
String COMPONENT_APP_ID = "component_appid";
String AUTHORIZER_APP_ID = "authorizer_appid";
String AUTHORIZER_INFO = "authorizer_info";
String MINI_PROGRAM_INFO = "miniprograminfo";
String MINI_PROGRAM_INFO = "MiniProgramInfo";
String BUSINESS_INFO = "business_info";
String CATEGORIES = "categories";
String NETWORK = "network";
@ -72,6 +78,8 @@ public interface ModuleConstant {
String DELAY = "delay";
String AUDIT_SUCCESS = "audit_success";
String AUDIT_FAILED = "audit_failed";
String XML = "xml";
String CREATE_TIME = "CreateTime";
int FORTY_THOUSAND_AND_THIRTEEN = 40013;
int EIGHTY_NINE_THOUSAND = 89000;

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

@ -29,7 +29,9 @@ public interface PaConstant {
String PROVINCE_KEY = "province";
String PROVINCE_NAME = "省级";
String CITY_KEY = "city";
String CITY_NAME = "区县级";
String CITY_NAME = "市级";
String DISTRICT_KEY = "district";
String DISTRICT_NAME = "区县级";
String STREET_KEY = "street";
String STREET_NAME = "乡(镇、街道)级";
String COMMUNITY_KEY = "community";
@ -60,4 +62,8 @@ public interface PaConstant {
* 获取缓存中token信息失败
*/
String TOKEN_EXCEPTION = "token已过期";
/**
* 获取客户信息失败
*/
String SELECT_CUSTOMER_EXCEPTION = "获取客户信息失败";
}

59
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdApiConstant.java

@ -1,59 +0,0 @@
package com.epmet.constant;
/**
* @Author zxc
* @CreateTime 2020/7/8 17:59
*/
public interface ThirdApiConstant {
/**
* 获取预授权码
*/
String API_CREATE_PREAUTHCODE_URL = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode";
/**
* 使用授权码获取授权信息请求地址
*/
String API_QUERY_AUTH_URL = "https://api.weixin.qq.com/cgi-bin/component/api_query_auth";
/**
* 获取令牌请求地址
*/
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";
/**
* 授权回调url
*/
String API_REDIRECT_URL = "https://epmet-dev.elinkservice.cn/api/third/redirectauthcode";
/**
* 反参授权回调url
*/
String API_RETURN_REDIRECT_URL = "https://epmet-dev.elinkservice.cn/api/third/redirectauthcode?client=%s&customerId=%s";
/**
* 授权注册页面扫码授权
* component_appid:第三方AppId
* pre_auth_code预授权码
* redirect_uri回调url获取授权码
*/
String API_AUTH_REGISTER_URL = "https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=%s&pre_auth_code=%s&redirect_uri=%s";
/**
* 创建开放平台帐号并绑定公众号/小程序
*/
String API_CREATE_OPEN = "https://api.weixin.qq.com/cgi-bin/open/create";
/**
* 公众号/小程序绑定到开放平台帐号下
*/
String API_BIND_OPEN = "https://api.weixin.qq.com/cgi-bin/open/bind?";
/**
* 获取授权方的帐号基本信息
*/
String API_GET_AUTHORIZER_INFO = "https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info";
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdRedisKeyConstant.java

@ -34,7 +34,7 @@ public interface ThirdRedisKeyConstant {
/**
* 第三方 授权方交互使用的
*/
String AUTHORIZER_REFRESH_TOKEN_REDIS_KEY = "epmet:wechartthird:authorizerrefreshtoken";
String AUTHORIZER_REFRESH_TOKEN_REDIS_KEY = "epmet:wechartthird:authorizerrefreshtoken:";
/**
* auth_code 授权码

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdRunTimeInfoConstant.java

@ -80,4 +80,6 @@ public interface ThirdRunTimeInfoConstant {
*/
String TO_LIMIT = "该开放平台帐号所绑定的公众号/小程序已达上限(100 个)";
String VERIFY_TICKET = "msgSignature = %s, timeStamp = %s, nonce = %s, encryptType = %s, signature = %s";
}

14
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/AuthRedirectController.java

@ -1,14 +1,16 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.AuthCodeAndTimeFromDTO;
import com.epmet.service.ComponentVerifyTicketService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @Author zxc
@ -26,9 +28,9 @@ public class AuthRedirectController {
* @param
* @author zxc
*/
@GetMapping("redirect")
public Result redirectUri(HttpServletRequest request, HttpServletResponse response){
componentVerifyTicketService.redirectUri(request,response);
@PostMapping("redirect")
public Result redirectUri(@LoginUser TokenDto tokenDto, @RequestBody AuthCodeAndTimeFromDTO fromDTO){
componentVerifyTicketService.redirectUri(tokenDto,fromDTO);
return new Result();
}

133
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java

@ -1,13 +1,13 @@
package com.epmet.controller;
import com.baomidou.mybatisplus.extension.api.R;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.CodeCommonFormDTO;
import com.epmet.dto.form.CodeUploadFormDTO;
import com.epmet.dto.form.SubmitAuditFormDTO;
import com.epmet.dto.form.UploadListFormDTO;
import com.epmet.dto.result.TemplateListResultDTO;
import com.epmet.dto.result.UploadListResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.CodeService;
import oracle.jdbc.proxy.annotation.Post;
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;
@ -24,62 +24,159 @@ import java.util.List;
@RequestMapping("code")
public class CodeController {
@Autowired
private CodeService codeService;
/**
* 获取代码模板列表
*
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/7/14 15:10
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("templatelist")
public Result<List<TemplateListResultDTO>> templateList() {
return null;
List<TemplateListResultDTO> list = codeService.templateList();
return new Result<List<TemplateListResultDTO>>().ok(list);
}
/**
* 获取客户第三方配置
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.lang.String>
* @author zhaoqifeng
* @date 2020/7/17 16:22
*/
@PostMapping("getextjson")
public Result<String> getExtJson(CodeUploadFormDTO formDTO) {
String extJson = codeService.getExtJson(formDTO);
return new Result<String>().ok(extJson);
}
/**
* 代码上传
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/7/9 14:23
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("upload")
public Result upload(@RequestBody CodeUploadFormDTO formDTO) {
codeService.upload(formDTO);
return new Result<>();
}
/**
* 已上传代码列表
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.UploadListResultDTO>>
* @author zhaoqifeng
* @date 2020/7/14 16:30
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.result.UploadListResultDTO>>
*/
@PostMapping("uploadlist")
public Result<List<UploadListResultDTO>> uploadList(@RequestBody UploadListFormDTO formDTO) {
return new Result<>();
public Result<PageData> uploadList(@RequestBody UploadListFormDTO formDTO) {
PageData pageData = codeService.uploadList(formDTO);
return new Result<PageData>().ok(pageData);
}
/**
* 提交审核
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/7/14 16:40
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("audit")
public Result submitAudit(@RequestBody SubmitAuditFormDTO formDTO) {
codeService.submitAudit(formDTO);
return new Result<>();
}
/**
* 审核撤回
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/7/14 17:52
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("undo")
public Result undo(@RequestBody CodeCommonFormDTO formDTO) {
codeService.undo(formDTO);
return new Result<>();
}
/**
* 发布
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/7/14 17:52
*/
@PostMapping("release")
public Result release(@RequestBody CodeCommonFormDTO formDTO) {
codeService.release(formDTO);
return new Result<>();
}
/**
* 审核失败原因
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/7/14 17:52
*/
@PostMapping("reason")
public Result<ReasonResultDTO> reason(@RequestBody CodeCommonFormDTO formDTO) {
ReasonResultDTO resultDTO = codeService.reason(formDTO);
return new Result<ReasonResultDTO>().ok(resultDTO);
}
/**
* 获取体验版二维码
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/7/14 17:52
*/
@PostMapping("qrcode")
public Result<QrCodeResultDTO> qrCode(@RequestBody CodeCommonFormDTO formDTO) {
QrCodeResultDTO resultDTO = codeService.qrCode(formDTO);
return new Result<QrCodeResultDTO>().ok(resultDTO);
}
/**
* 操作历史
*
* @param formDTO 参数
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.CodeHistoryResultDTO>
* @author zhaoqifeng
* @date 2020/7/16 10:16
*/
@PostMapping("history")
public Result<PageData> history(@RequestBody CodeCommonFormDTO formDTO) {
PageData result = codeService.history(formDTO);
return new Result<PageData>().ok(result);
}
/**
* 上传临时素材
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.result.MediaUploadResultDTO>>
* @author zhaoqifeng
* @date 2020/7/17 11:20
*/
@PostMapping("mediaupload")
public Result<String> mediaUpload(@RequestBody MediaUploadFormDTO formDTO) {
String result = codeService.mediaUpload(formDTO);
return new Result<String>().ok(result);
}
}

84
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeExtController.java

@ -0,0 +1,84 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
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.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.CodeExtDTO;
import com.epmet.service.CodeExtService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 代码第三方配置
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-07-17
*/
@RestController
@RequestMapping("codeext")
public class CodeExtController {
@Autowired
private CodeExtService codeExtService;
@GetMapping("page")
public Result<PageData<CodeExtDTO>> page(@RequestParam Map<String, Object> params){
PageData<CodeExtDTO> page = codeExtService.page(params);
return new Result<PageData<CodeExtDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<CodeExtDTO> get(@PathVariable("id") String id){
CodeExtDTO data = codeExtService.get(id);
return new Result<CodeExtDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody CodeExtDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
codeExtService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody CodeExtDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
codeExtService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
codeExtService.delete(ids);
return new Result();
}
}

32
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerCodeOperationHistoryController.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeOperationHistoryController.java

@ -24,8 +24,8 @@ 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.dto.CustomerCodeOperationHistoryDTO;
import com.epmet.service.CustomerCodeOperationHistoryService;
import com.epmet.dto.CodeOperationHistoryDTO;
import com.epmet.service.CodeOperationHistoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -39,37 +39,37 @@ import java.util.Map;
* @since v1.0.0 2020-07-09
*/
@RestController
@RequestMapping("customercodeoperationhistory")
public class CustomerCodeOperationHistoryController {
@RequestMapping("codeoperationhistory")
public class CodeOperationHistoryController {
@Autowired
private CustomerCodeOperationHistoryService customerCodeOperationHistoryService;
private CodeOperationHistoryService codeOperationHistoryService;
@GetMapping("page")
public Result<PageData<CustomerCodeOperationHistoryDTO>> page(@RequestParam Map<String, Object> params){
PageData<CustomerCodeOperationHistoryDTO> page = customerCodeOperationHistoryService.page(params);
return new Result<PageData<CustomerCodeOperationHistoryDTO>>().ok(page);
public Result<PageData<CodeOperationHistoryDTO>> page(@RequestParam Map<String, Object> params){
PageData<CodeOperationHistoryDTO> page = codeOperationHistoryService.page(params);
return new Result<PageData<CodeOperationHistoryDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<CustomerCodeOperationHistoryDTO> get(@PathVariable("id") String id){
CustomerCodeOperationHistoryDTO data = customerCodeOperationHistoryService.get(id);
return new Result<CustomerCodeOperationHistoryDTO>().ok(data);
public Result<CodeOperationHistoryDTO> get(@PathVariable("id") String id){
CodeOperationHistoryDTO data = codeOperationHistoryService.get(id);
return new Result<CodeOperationHistoryDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody CustomerCodeOperationHistoryDTO dto){
public Result save(@RequestBody CodeOperationHistoryDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
customerCodeOperationHistoryService.save(dto);
codeOperationHistoryService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody CustomerCodeOperationHistoryDTO dto){
public Result update(@RequestBody CodeOperationHistoryDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
customerCodeOperationHistoryService.update(dto);
codeOperationHistoryService.update(dto);
return new Result();
}
@ -77,7 +77,7 @@ public class CustomerCodeOperationHistoryController {
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
customerCodeOperationHistoryService.delete(ids);
codeOperationHistoryService.delete(ids);
return new Result();
}

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

@ -22,7 +22,7 @@ public class ComponentVerifyTicketController {
private ComponentVerifyTicketService componentVerifyTicketService;
/**
* @Description 获取验证票据3
* @Description 获取验证票据
* @author zxc
*/
@PostMapping(value = "/callback")

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

@ -23,9 +23,12 @@ 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.CustomerMpDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.WxLoginFormDTO;
import com.epmet.dto.result.PublicCustomerResultDTO;
import com.epmet.excel.CustomerMpExcel;
import com.epmet.service.CustomerMpService;
import org.springframework.beans.factory.annotation.Autowired;
@ -91,4 +94,26 @@ public class CustomerMpController {
ExcelUtils.exportExcelToTarget(response, null, list, CustomerMpExcel.class);
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 校验appId是否有效以及是否授权,校验通过的调用微信API获取用户基本信息
**/
@PostMapping("resiandworklogin")
public Result<UserWechatDTO> resiAndWorkLogin(@RequestBody WxLoginFormDTO formDTO) {
return new Result<UserWechatDTO>().ok(customerMpService.resiAndWorkLogin(formDTO));
}
/**
* @param appId
* @return
* @Author sun
* @Description 根据appId查询公众号注册的客户信息
**/
@PostMapping("getcustomermsg/{appId}")
public Result<PublicCustomerResultDTO> getCustomerMsg(@PathVariable("appId") String appId) {
return new Result<PublicCustomerResultDTO>().ok(customerMpService.getCustomerMsg(appId));
}
}

53
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java

@ -7,18 +7,13 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.form.CreateAgencyFormDTO;
import com.epmet.dto.form.MyInfoFormDTO;
import com.epmet.dto.form.RegisterByAuthFormDTO;
import com.epmet.dto.form.RegisterFormDTO;
import com.epmet.dto.form.RegisterInfoFormDTO;
import com.epmet.dto.result.AgencyLevelListResultDTO;
import com.epmet.dto.result.CreateAgencyResultDTO;
import com.epmet.dto.result.MyInfoResultDTO;
import com.epmet.dto.result.*;
import com.epmet.service.*;
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.web.bind.annotation.*;
import java.util.List;
@ -80,16 +75,14 @@ public class PaCustomerController {
}
/**
* @param formDTO
* @param tokenDTO
* @return
* @Author sun
* @Description 公众号-查询我的信息
**/
@PostMapping("myinfo")
public Result<MyInfoResultDTO> myInfo(@LoginUser TokenDto tokenDTO, @RequestBody MyInfoFormDTO formDTO) {
//ValidatorUtils.validateEntity(formDTO, MyInfoFormDTO.AddUserInternalGroup.class);
ValidatorUtils.validateEntity(formDTO);
return new Result<MyInfoResultDTO>().ok(paCustomerService.myInfo(tokenDTO, formDTO));
public Result<MyInfoResultDTO> myInfo(@LoginUser TokenDto tokenDTO) {
return new Result<MyInfoResultDTO>().ok(paCustomerService.myInfo(tokenDTO));
}
/**
@ -104,5 +97,39 @@ public class PaCustomerController {
return new Result<PageData>().ok(paCustomerService.registerInfo(formDTO));
}
/**
* @param customerId
* @return
* @Author sun
* @Description 根据客户Id查询各项注册信息
**/
@PostMapping(value = "getcustomeragencyuser/{customerId}")
public Result<InitCustomerResultDTO> getCustomerAgencyUser(@PathVariable("customerId") String customerId) {
return new Result<InitCustomerResultDTO>().ok(paCustomerService.getCustomerAgencyUser(customerId));
}
/**
* @param customerId
* @return
* @Author sun
* @Description 修改客户数据状态为已完成初始化
**/
@PostMapping(value = "updatecustomer/{customerId}")
public Result updateCustomer(@PathVariable("customerId") String customerId) {
paCustomerService.updateCustomer(customerId);
return new Result();
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 根据授权状态和初始化状态获取客户列表不分页
**/
@PostMapping(value = "registerbyauth")
public Result<List<RegisterByAuthResultDTO>> registerByAuth(@LoginUser TokenDto tokenDTO, @RequestBody RegisterByAuthFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, RegisterByAuthFormDTO.AddUserInternalGroup.class);
return new Result<List<RegisterByAuthResultDTO>>().ok( paCustomerService.registerByAuth(formDTO));
}
}

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

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

4
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/WeChatNotifyController.java

@ -1,6 +1,7 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ModuleConstant;
import com.epmet.service.ComponentVerifyTicketService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -27,7 +28,8 @@ public class WeChatNotifyController {
@PostMapping("componentaccesstoken")
public Result getComponentAccessToken() {
log.info("开始获取【component_access_token】......");
componentVerifyTicketService.getComponentAccessToken();
String accessTokenCountFlag = ModuleConstant.ACCOUNT_TOKEN_FLAG_TWO;
componentVerifyTicketService.getComponentAccessToken(accessTokenCountFlag);
log.info("已成功获取到【component_access_token】......");
return new Result();
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save