Browse Source

Merge branches 'dev' and 'dev_heart' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_heart

dev_shibei_match
yinzuomei 5 years ago
parent
commit
a0d4a35939
  1. 8
      epmet-auth/src/main/java/com/epmet/redis/CustomerAppWxServiceUtil.java
  2. 2
      epmet-auth/src/main/resources/bootstrap.yml
  3. 2
      epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml
  4. 2
      epmet-module/epmet-heart/epmet-heart-server/pom.xml
  5. 2
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java
  6. 18
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CustomerClientFormDTO.java
  7. 4
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java
  8. 40
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/SupportVersionResultDTO.java
  9. 2
      epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml
  10. 2
      epmet-module/epmet-third/epmet-third-server/pom.xml
  11. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java
  12. 6
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java
  13. 31
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java
  14. 11
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeAuditResultDao.java
  15. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeOperationHistoryDao.java
  16. 4
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PreAuthTokenDao.java
  17. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeAuditResultEntity.java
  18. 10
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeAuditResultService.java
  19. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeOperationHistoryService.java
  20. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java
  21. 18
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java
  22. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeAuditResultServiceImpl.java
  23. 4
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeOperationHistoryServiceImpl.java
  24. 95
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
  25. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
  26. 50
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java
  27. 19
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java
  28. 19
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxSetWeAppSupportVersionReq.java
  29. 58
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxSupportVersionResult.java
  30. 43
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java
  31. 37
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java
  32. 15
      epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml
  33. 1
      epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.5__thirdUpdate.sql
  34. 7
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml
  35. 11
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeOperationHistoryDao.xml
  36. 8
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PreAuthTokenDao.xml

8
epmet-auth/src/main/java/com/epmet/redis/CustomerAppWxServiceUtil.java

@ -13,6 +13,7 @@ import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerAppDTO;
import com.epmet.dto.CustomerAppRedisDTO;
@ -115,7 +116,12 @@ public class CustomerAppWxServiceUtil implements ApplicationRunner {
maServices = maServicesNew;
if (appSet != null && result != null) {
for (CustomerAppDTO app : result) {
appSet.add(appKey, app);
CustomerAppRedisDTO appRedis = ConvertUtils.sourceToTarget(app, CustomerAppRedisDTO.class);
if(appRedis == null){
logger.warn("init CustomerAppRedis fail,convert return null,appDB:{}",JSON.toJSONString(app));
continue;
}
appSet.add(appKey, appRedis);
}
}
}

2
epmet-auth/src/main/resources/bootstrap.yml

@ -10,7 +10,7 @@ spring:
allow-bean-definition-overriding: true
#环境 dev|test|prod
profiles:
active: dev
active: @spring.profiles.active@
messages:
encoding: UTF-8
basename: i18n/messages_common

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

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-heart-server:
container_name: epmet-heart-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.39
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.40
ports:
- "8111:8111"
network_mode: host # 使用现有网络

2
epmet-module/epmet-heart/epmet-heart-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.0.39</version>
<version>0.0.40</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-heart</artifactId>

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

@ -68,6 +68,8 @@ public class CodeAuditResultDTO implements Serializable {
*/
private String screenShot;
private String screenShotUrl;
/**
* 乐观锁
*/

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

@ -0,0 +1,18 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/8/5 16:28
*/
@Data
public class CustomerClientFormDTO implements Serializable {
private static final long serialVersionUID = -7557372702358069962L;
private String customerId;
private String clientType;
private String version;
}

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

@ -23,4 +23,8 @@ public class ReasonResultDTO implements Serializable {
* 失败的小程序截图url
*/
private List<String> screenshotUrl;
/**
* 提交审核时间
*/
private String auditTime;
}

40
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/SupportVersionResultDTO.java

@ -0,0 +1,40 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/8/5 16:25
*/
@NoArgsConstructor
@Data
public class SupportVersionResultDTO implements Serializable {
private static final long serialVersionUID = -8730772183416898738L;
/**
* 当前版本
*/
private String newVersion;
/**
* 版本的用户占比列表
*/
private List<UvInfoBean> uvInfo;
@NoArgsConstructor
@Data
public static class UvInfoBean {
/**
* 百分比
*/
private int percentage;
/**
* 基础库版本号
*/
private String version;
}
}

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.104
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.106
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.104</version>
<version>0.0.106</version>
<parent>
<groupId>com.epmet</groupId>

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

@ -91,7 +91,7 @@ public interface ModuleConstant {
String FROM_CALLBACK = "from_callback";
String APPLICATION_JSON = "application/json";
String _FROM_API = "_from_api";
String WE_APP_AUDIT = "we_app_audit";
String WE_APP_AUDIT = "weapp_audit";
String TO_USER_NAME = "ToUserName";
String FROM_USER_NAME = "FromUserName";

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

@ -131,9 +131,9 @@ public class CodeController {
* @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);
public Result<List<ReasonResultDTO>> reason(@RequestBody CodeCommonFormDTO formDTO) {
List<ReasonResultDTO> resultDTO = codeService.reason(formDTO);
return new Result<List<ReasonResultDTO>>().ok(resultDTO);
}
/**

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

@ -6,10 +6,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
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.RegisterByAuthFormDTO;
import com.epmet.dto.form.RegisterFormDTO;
import com.epmet.dto.form.RegisterInfoFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@ -131,4 +128,30 @@ public class PaCustomerController {
return new Result<List<RegisterByAuthResultDTO>>().ok( paCustomerService.registerByAuth(formDTO));
}
/**
* 获取小程序基础库版本
* @author zhaoqifeng
* @date 2020/8/5 16:55
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.SupportVersionResultDTO>
*/
@PostMapping(value = "getweappsupportversion")
public Result<SupportVersionResultDTO> getSupportVersion( @RequestBody CustomerClientFormDTO formDTO) {
return new Result<SupportVersionResultDTO>().ok( paCustomerService.getSupportVersion(formDTO));
}
/**
* 设置最低基础库版本
* @author zhaoqifeng
* @date 2020/8/5 16:55
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping(value = "setweappsupportversion")
public Result setSupportVersion( @RequestBody CustomerClientFormDTO formDTO) {
paCustomerService.getSupportVersion(formDTO);
return new Result();
}
}

11
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeAuditResultDao.java

@ -23,6 +23,8 @@ import com.epmet.entity.CodeAuditResultEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 代码审核结果
*
@ -40,6 +42,15 @@ public interface CodeAuditResultDao extends BaseDao<CodeAuditResultEntity> {
*/
CodeAuditResultDTO selectAuditResultByCodeId(@Param("codeId") String codeId);
/**
* 获取审核失败列表
* @author zhaoqifeng
* @date 2020/8/5 11:11
* @param codeId
* @return java.util.List<com.epmet.dto.CodeAuditResultDTO>
*/
List<CodeAuditResultDTO> selectAuditFailedList(@Param("codeId") String codeId);
/**
* @Description 更新 代码审核结果中的审核状态
* @param customerId

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeOperationHistoryDao.java

@ -36,6 +36,8 @@ public interface CodeOperationHistoryDao extends BaseDao<CodeOperationHistoryEnt
List<CodeHistoryResultDTO> selectHistoryList(@Param("customerId") String customerId, @Param("clientType") String clientType);
List<CodeHistoryResultDTO> selectHistoryListByCode(@Param("codeId") String codeId);
/**
* 更新描述
* @author zhaoqifeng

4
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PreAuthTokenDao.java

@ -39,10 +39,10 @@ public interface PreAuthTokenDao extends BaseDao<PreAuthTokenEntity> {
void insertPreAuthToken(PreAuthTokenFormDTO formDTO);
/**
* @Description 逻辑 pre_auth_code
* @Description pre_auth_code
* @param
* @author zxc
*/
void updateOldPreAuthCode();
void deleteOldPreAuthCode();
}

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeAuditResultEntity.java

@ -68,4 +68,7 @@ public class CodeAuditResultEntity extends BaseEpmetEntity {
*/
private String screenShot;
private String screenShotUrl;
}

10
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeAuditResultService.java

@ -102,4 +102,14 @@ public interface CodeAuditResultService extends BaseService<CodeAuditResultEntit
* @date 2020/7/15 17:13
*/
CodeAuditResultDTO getAuditResultByCodeId(String codeId);
/**
* 获取审核失败列表
*
* @param codeId
* @return com.epmet.dto.CodeAuditResultDTO
* @author zhaoqifeng
* @date 2020/7/15 17:13
*/
List<CodeAuditResultDTO> getAuditFailedList(String codeId);
}

5
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeOperationHistoryService.java

@ -98,11 +98,10 @@ public interface CodeOperationHistoryService extends BaseService<CodeOperationHi
* 获取操作历史记录
* @author zhaoqifeng
* @date 2020/7/16 16:53
* @param customerId
* @param clientType
* @param codeId
* @return com.epmet.dto.result.CodeHistoryResultDTO
*/
List<CodeHistoryResultDTO> getHistoryList(String customerId, String clientType);
List<CodeHistoryResultDTO> getHistoryList(String codeId);
/**
* 更新描述

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

@ -89,7 +89,7 @@ public interface CodeService {
* @author zhaoqifeng
* @date 2020/7/16 9:38
*/
ReasonResultDTO reason(CodeCommonFormDTO formDTO);
List<ReasonResultDTO> reason(CodeCommonFormDTO formDTO);
/**
* 获取体验版二维码
@ -138,4 +138,5 @@ public interface CodeService {
* @return java.util.List<java.lang.String>
*/
List<CategoryResultDTO> getCategory(CodeCommonFormDTO formDTO);
}

18
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java

@ -168,4 +168,22 @@ public interface PaCustomerService extends BaseService<PaCustomerEntity> {
* @Description 修改各业务表customerId(兼容党群e事通已上线客户将已有客户Id同步到第三方问题)
**/
void modifyCustomer(ModifyCustomerFormDTO formDTO);
/**
* 获取小程序基础库版本
* @author zhaoqifeng
* @date 2020/8/5 16:57
* @param formDTO
* @return com.epmet.dto.result.SupportVersionResultDTO
*/
SupportVersionResultDTO getSupportVersion(CustomerClientFormDTO formDTO);
/**
* 设置最低基础库版本
* @author zhaoqifeng
* @date 2020/8/5 16:57
* @param formDTO
* @return void
*/
void setSupportVersion(CustomerClientFormDTO formDTO);
}

5
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeAuditResultServiceImpl.java

@ -106,4 +106,9 @@ public class CodeAuditResultServiceImpl extends BaseServiceImpl<CodeAuditResultD
return baseDao.selectAuditResultByCodeId(codeId);
}
@Override
public List<CodeAuditResultDTO> getAuditFailedList(String codeId) {
return baseDao.selectAuditFailedList(codeId);
}
}

4
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeOperationHistoryServiceImpl.java

@ -103,8 +103,8 @@ public class CodeOperationHistoryServiceImpl extends BaseServiceImpl<CodeOperati
}
@Override
public List<CodeHistoryResultDTO> getHistoryList(String customerId, String clientType) {
return baseDao.selectHistoryList(customerId, clientType);
public List<CodeHistoryResultDTO> getHistoryList(String codeId) {
return baseDao.selectHistoryListByCode(codeId);
}
@Override

95
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java

@ -23,6 +23,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service;
@ -165,12 +166,26 @@ public class CodeServiceImpl implements CodeService {
codeCustomerDTO.setStatus(CodeConstant.UNAUDITED);
String codeId = codeCustomerService.save(codeCustomerDTO);
//设置服务器域名
wxResult = wxMaCodeService.modifyDomain(authInfo.getAuthorizerAccessToken());
if (!wxResult.success()) {
saveOperation(formDTO.getCustomerId(), null, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, wxResult.getErrorMsg());
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
//设置业务域名
wxResult = wxMaCodeService.setWebviewDomain(authInfo.getAuthorizerAccessToken());
if (!wxResult.success()) {
saveOperation(formDTO.getCustomerId(), null, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, wxResult.getErrorMsg());
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
saveOperation(formDTO.getCustomerId(), codeId, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, "上传成功");
}
@Override
public PageData uploadList(UploadListFormDTO formDTO) {
List<CodeCustomerDTO> auditingList = codeCustomerService.getAuditingCodeList(formDTO.getSource());
String customerId = formDTO.getCustomerId();
if (null != auditingList && auditingList.size() > NumConstant.ZERO) {
auditingList.forEach(code -> {
//获取小程序调用令牌
@ -186,18 +201,18 @@ public class CodeServiceImpl implements CodeService {
if (result.getStatus() == NumConstant.ZERO) {
code.setStatus(CodeConstant.AUDIT_SUCCESS);
auditResult.setResult(CodeConstant.AUDIT_SUCCESS);
saveOperation(formDTO.getCustomerId(), code.getId(), code.getUserVersion(), CodeConstant.OPER_SUCCESS, "审核成功");
saveOperation(customerId, code.getId(), code.getUserVersion(), CodeConstant.OPER_SUCCESS, "审核成功");
} else if (result.getStatus() == NumConstant.ONE) {
code.setStatus(CodeConstant.AUDIT_FAILED);
auditResult.setResult(CodeConstant.AUDIT_FAILED);
auditResult.setReason(result.getReason());
auditResult.setScreenShot(result.getScreenshot());
saveOperation(formDTO.getCustomerId(), code.getId(), code.getUserVersion(), CodeConstant.OPER_FAILED, result.getReason());
saveOperation(customerId, code.getId(), code.getUserVersion(), CodeConstant.OPER_FAILED, result.getReason());
} else if (result.getStatus() == NumConstant.FOUR) {
code.setStatus(CodeConstant.DELAY);
auditResult.setResult(CodeConstant.DELAY);
auditResult.setReason(result.getReason());
saveOperation(formDTO.getCustomerId(), code.getId(), code.getUserVersion(), CodeConstant.OPER_DELAY, result.getReason());
saveOperation(customerId, code.getId(), code.getUserVersion(), CodeConstant.OPER_DELAY, result.getReason());
}
codeCustomerService.update(code);
codeAuditResultService.update(auditResult);
@ -246,9 +261,13 @@ public class CodeServiceImpl implements CodeService {
codeAuditResultDTO.setResult(CodeConstant.AUDITING);
codeAuditResultService.save(codeAuditResultDTO);
} else {
codeAuditResultService.deleteById(codeAuditResultDTO.getId());
codeAuditResultDTO = new CodeAuditResultDTO();
codeAuditResultDTO.setCustomerId(codeCustomerDTO.getCustomerId());
codeAuditResultDTO.setCodeId(codeCustomerDTO.getId());
codeAuditResultDTO.setAuditId(wxResult.getData());
codeAuditResultDTO.setResult(CodeConstant.AUDITING);
codeAuditResultService.update(codeAuditResultDTO);
codeAuditResultService.save(codeAuditResultDTO);
}
//更新代码表状态
codeCustomerDTO.setStatus(CodeConstant.AUDITING);
@ -333,8 +352,9 @@ public class CodeServiceImpl implements CodeService {
}
@Override
public ReasonResultDTO reason(CodeCommonFormDTO formDTO) {
ReasonResultDTO result = new ReasonResultDTO();
public List<ReasonResultDTO> reason(CodeCommonFormDTO formDTO) {
List<ReasonResultDTO> resultList = new ArrayList<>();
//获取上传代码信息
CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId());
//是否授权
@ -346,25 +366,48 @@ public class CodeServiceImpl implements CodeService {
throw new RenException("未授权");
}
//获取审核结果信息
CodeAuditResultDTO codeAuditResultDTO = codeAuditResultService.getAuditResultByCodeId(formDTO.getCodeId());
result.setReason(codeAuditResultDTO.getReason());
String[] mediaIds = codeAuditResultDTO.getScreenShot().split("[|]");
List<String> mediaIdList = new ArrayList<>(mediaIds.length);
Collections.addAll(mediaIdList, mediaIds);
List<String> urlList = new ArrayList<>();
mediaIdList.forEach(mediaId -> {
//调用微信API获取素材
WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq();
request.setAuditId(codeAuditResultDTO.getAuditId());
WxMaNewsReq wxMaNewsReq = new WxMaNewsReq();
wxMaNewsReq.setMediaId(mediaId);
WxResult<byte[]> wxAuditResult = wxMaCodeService.getMaterial(authInfo.getAuthorizerAccessToken(), wxMaNewsReq);
MultipartFile file = new MockMultipartFile("file", "QRCode.jpg", "image/jpeg", wxAuditResult.getData());
Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(file);
urlList.add(uploadResult.getData().getUrl());
List<CodeAuditResultDTO> codeAuditResultList = codeAuditResultService.getAuditFailedList(formDTO.getCodeId());
codeAuditResultList.forEach(dto -> {
ReasonResultDTO result = new ReasonResultDTO();
result.setReason(dto.getReason());
result.setAuditTime(DateUtils.format(dto.getCreatedTime(), DateUtils.DATE_TIME_PATTERN));
if (StringUtils.isBlank(dto.getScreenShotUrl())) {
List<String> urlList = new ArrayList<>();
if(StringUtils.isNotBlank(dto.getScreenShot())) {
String[] mediaIds = dto.getScreenShot().split("[|]");
List<String> mediaIdList = new ArrayList<>(mediaIds.length);
Collections.addAll(mediaIdList, mediaIds);
String screenShotUrl = "";
for(String mediaId : mediaIdList) {
//调用微信API获取素材
WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq();
request.setAuditId(dto.getAuditId());
WxMaNewsReq wxMaNewsReq = new WxMaNewsReq();
wxMaNewsReq.setMediaId(mediaId);
WxResult<byte[]> wxAuditResult = wxMaCodeService.getMaterial(authInfo.getAuthorizerAccessToken(), wxMaNewsReq);
MultipartFile file = new MockMultipartFile("file", "QRCode.jpg", "image/jpeg", wxAuditResult.getData());
Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(file);
urlList.add(uploadResult.getData().getUrl());
if (StringUtils.isBlank(screenShotUrl)) {
screenShotUrl = uploadResult.getData().getUrl();
} else {
screenShotUrl = screenShotUrl + "|" + uploadResult.getData().getUrl();
}
}
dto.setScreenShotUrl(screenShotUrl);
codeAuditResultService.update(dto);
}
result.setScreenshotUrl(urlList);
} else {
String[] url = dto.getScreenShotUrl().split("[|]");
List<String> urlList = new ArrayList<>(url.length);
Collections.addAll(urlList, url);
result.setScreenshotUrl(urlList);
}
resultList.add(result);
});
result.setScreenshotUrl(urlList);
return result;
return resultList;
}
@Override
@ -400,8 +443,8 @@ public class CodeServiceImpl implements CodeService {
public PageData history(CodeCommonFormDTO formDTO) {
PageHelper.startPage(formDTO.getPage(), formDTO.getLimit());
//获取上传代码信息
CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId());
List<CodeHistoryResultDTO> list = codeOperationHistoryService.getHistoryList(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
// CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId());
List<CodeHistoryResultDTO> list = codeOperationHistoryService.getHistoryList(formDTO.getCodeId());
PageInfo<CodeHistoryResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}

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

@ -265,7 +265,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
formDTO.setPreAuthToken(preAuthCode);
formDTO.setExpiresInTime(expiresInTime);
//先逻辑删除,在插入DB
preAuthTokenDao.updateOldPreAuthCode();
preAuthTokenDao.deleteOldPreAuthCode();
preAuthTokenDao.insertPreAuthToken(formDTO);
//预授权码 放入缓存
redisThird.setPreAuthCode(preAuthCode);

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

@ -31,6 +31,7 @@ import com.epmet.commons.tools.redis.RedisUtils;
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.constant.CodeConstant;
import com.epmet.constant.PaConstant;
import com.epmet.dao.*;
import com.epmet.dto.*;
@ -42,6 +43,10 @@ import com.epmet.service.CustomerMpService;
import com.epmet.service.PaCustomerAgencyService;
import com.epmet.service.PaCustomerService;
import com.epmet.service.PaCustomerUserAgencyService;
import com.epmet.wxapi.param.WxSetWeAppSupportVersionReq;
import com.epmet.wxapi.result.WxResult;
import com.epmet.wxapi.result.WxSupportVersionResult;
import com.epmet.wxapi.service.WxMaCodeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
@ -92,6 +97,10 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
private CpUserDetailRedis cpUserDetailRedis;
@Autowired
private PaCustomerDao paCustomerDao;
@Autowired
private WxMaCodeService wxMaCodeService;
@Autowired
private AuthorizationInfoDao authorizationInfoDao;
@Override
public PageData<PaCustomerDTO> page(Map<String, Object> params) {
@ -546,4 +555,45 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
}
@Override
public SupportVersionResultDTO getSupportVersion(CustomerClientFormDTO formDTO) {
//获取小程序调用令牌
SupportVersionResultDTO result = new SupportVersionResultDTO();
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
if (null == authInfo) {
throw new RenException("未授权");
}
//调用微信API
WxResult<WxSupportVersionResult> wxResult = wxMaCodeService.getWeAppSupportVersion(authInfo.getAuthorizerAccessToken());
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
WxSupportVersionResult versionResult = wxResult.getData();
result.setNewVersion(versionResult.getNowVersion());
List<SupportVersionResultDTO.UvInfoBean> list = new ArrayList<>();
versionResult.getUvInfo().getItems().forEach(item -> {
SupportVersionResultDTO.UvInfoBean uvInfo = new SupportVersionResultDTO.UvInfoBean();
uvInfo.setPercentage(item.getPercentage());
uvInfo.setVersion(item.getVersion());
list.add(uvInfo);
});
result.setUvInfo(list);
return result;
}
@Override
public void setSupportVersion(CustomerClientFormDTO formDTO) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
if (null == authInfo) {
throw new RenException("未授权");
}
//调用微信API
WxSetWeAppSupportVersionReq request = new WxSetWeAppSupportVersionReq();
request.setVersion(formDTO.getVersion());
WxResult wxResult = wxMaCodeService.setWeAppSupportVersion(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
}
}

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

@ -166,6 +166,7 @@ public class WarrantServiceImpl implements WarrantService {
}
String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord);
codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult);
log.info("消息与事件接收URL【代码审核结果】结束......");
}else {
this.replyEventMessage(request,response,event,toUserName,fromUserName);
}
@ -178,31 +179,23 @@ public class WarrantServiceImpl implements WarrantService {
// messagePushTextDao.insertMessageText(messagePushTextFormDTO);
String content = messagePushTextFormDTO.getContent();
log.info(String.format(ThirdRunTimeInfoConstant.CONTENT,content));
/**
* 测试公众号处理用户消息
* 模拟粉丝发送文本消息给专用测试公众号第三方平台方需根据文本消息的内容进行相应的响应
* 1微信模推送给第三方平台方文本消息其中 Content 字段的内容固定为TESTCOMPONENT_MSG_TYPE_TEXT
* 2第三方平台方立马回应文本消息并最终触达粉丝Content 必须固定为TESTCOMPONENT_MSG_TYPE_TEXT_callback
*/
/*if (content.equals(ModuleConstant.TESTCOMPONENT_MSG_TYPE_TEXT)){
}else if (content.startsWith(ModuleConstant.QUERY_AUTH_CODE)){
// 测试公众号使用客服消息接口处理用户消息
String contentBefore = content.substring(NumConstant.ZERO, content.indexOf(ThirdRedisKeyConstant.COLON));
//auth_code
String queryAuthCode = content.substring(contentBefore.length() + NumConstant.ONE, content.length());
}*/
this.processTextMessage(request,response,content,toUserName,fromUserName);
}
log.info("消息与事件接收URL【代码审核结果】结束......");
return ModuleConstant.SUCCESS;
}
/**
* @Description 钉钉机器人报警
* @author zxc
* @date 2020/8/5 4:33 下午
*/
public void dingDingRobot(String result,String event,String customerName,String clientType){
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=5b48fcbc3fde24b8ba4696aa062b7f8146479a9d3467dbb1f9cf132ec36b955a");
OapiRobotSendRequest request = new OapiRobotSendRequest();

19
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxSetWeAppSupportVersionReq.java

@ -0,0 +1,19 @@
package com.epmet.wxapi.param;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/8/5 16:04
*/
@Data
public class WxSetWeAppSupportVersionReq implements Serializable {
private static final long serialVersionUID = 3665790223442056698L;
/**
* 已发布的基础库版本号
*/
private String version;
}

58
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxSupportVersionResult.java

@ -0,0 +1,58 @@
package com.epmet.wxapi.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/8/5 15:55
*/
@NoArgsConstructor
@Data
public class WxSupportVersionResult implements Serializable {
private static final long serialVersionUID = 6399585321399172945L;
/**
* 错误码
*/
private Integer errcode;
/**
* 错误信息
*/
private String errmsg;
/**
* 当前版本
*/
private String nowVersion;
/**
* 版本的用户占比列表
*/
private UvInfoBean uvInfo;
public boolean success(){
return errcode == 0;
}
@NoArgsConstructor
@Data
public static class UvInfoBean {
private List<ItemsBean> items;
@NoArgsConstructor
@Data
public static class ItemsBean {
/**
* 百分比
*/
private int percentage;
/**
* 基础库版本号
*/
private String version;
}
}
}

43
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java

@ -1,9 +1,6 @@
package com.epmet.wxapi.service;
import com.epmet.wxapi.param.WxMaCodeAuditStatusReq;
import com.epmet.wxapi.param.WxMaCodeCommitReq;
import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest;
import com.epmet.wxapi.param.WxMaNewsReq;
import com.epmet.wxapi.param.*;
import com.epmet.wxapi.result.*;
import java.io.File;
@ -113,31 +110,55 @@ public interface WxMaCodeService {
WxResult<byte[]> getMaterial(String accessToken, WxMaNewsReq request);
/**
* 设置服务器郁闷
* @author zhaoqifeng
* @date 2020/7/16 17:21
* 设置服务器域名
*
* @param accessToken
* @return com.epmet.wxapi.result.WxResult
* @author zhaoqifeng
* @date 2020/7/16 17:21
*/
WxResult modifyDomain(String accessToken);
/**
* 设置业务域名
* @author zhaoqifeng
* @date 2020/7/16 17:22
*
* @param accessToken
* @return com.epmet.wxapi.result.WxResult
* @author zhaoqifeng
* @date 2020/7/16 17:22
*/
WxResult setWebviewDomain(String accessToken);
/**
* 上传临时素材
* @author zhaoqifeng
* @date 2020/7/17 10:27
*
* @param accessToken
* @param type
* @param file
* @return com.epmet.wxapi.result.WxResult
* @author zhaoqifeng
* @date 2020/7/17 10:27
*/
WxResult<WxMaUploadMediaResult> uploadMedia(String accessToken, String type, File file);
/**
* 查询当前设置的最低基础库版本及各版本用户占比
*
* @param accessToken
* @return com.epmet.wxapi.result.WxResult<com.epmet.wxapi.result.WxSupportVersionResult>
* @author zhaoqifeng
* @date 2020/8/5 16:02
*/
WxResult<WxSupportVersionResult> getWeAppSupportVersion(String accessToken);
/**
* 设置最低基础库版本
*
* @param accessToken
* @param request
* @return com.epmet.wxapi.result.WxResult
* @author zhaoqifeng
* @date 2020/8/5 16:06
*/
WxResult setWeAppSupportVersion(String accessToken, WxSetWeAppSupportVersionReq request);
}

37
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java

@ -16,7 +16,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@ -273,6 +272,42 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
return result;
}
@Override
public WxResult<WxSupportVersionResult> getWeAppSupportVersion(String accessToken) {
WxResult<WxSupportVersionResult> result = new WxResult<>();
String url = WxMaCodeConstant.GET_SUPPORT_VERSION_URL + "?" + "access_token=" + accessToken;
Result<String> statusResult = HttpClientManager.getInstance().sendPostByJSON(url, null);
if (!statusResult.success()) {
result.setErrorCode(statusResult.getCode());
result.setErrorMsg(statusResult.getMsg());
return result;
}
WxSupportVersionResult supportVersionResult = JSONObject.parseObject(statusResult.getData(), WxSupportVersionResult.class);
if (!supportVersionResult.success()) {
result.setErrorCode(supportVersionResult.getErrcode());
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(supportVersionResult.getErrcode()));
return result;
}
result.ok(supportVersionResult);
return result;
}
@Override
public WxResult setWeAppSupportVersion(String accessToken, WxSetWeAppSupportVersionReq request) {
WxResult result = new WxResult();
String url = WxMaCodeConstant.SET_SUPPORT_VERSION_URL + "?" + "access_token=" + accessToken;
Result<String> setVersionResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request));
if (!setVersionResult.success()) {
result.setErrorCode(setVersionResult.getCode());
result.setErrorMsg(setVersionResult.getMsg());
return result;
}
JSONObject jsonObject = JSONObject.parseObject(setVersionResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE));
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
return result;
}
private String toJson(Object object) {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();

15
epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml

@ -106,12 +106,23 @@ third:
token: 1ae5f230c67f11eabac1c03fd56f7847
domain:
requestDomain:
- https://apis.map.qq.com
- https://epmet-cloud.elinkservice.cn
- https://epmet-dev.elinkservice.cn
- https://epmet-test.elinkservice.cn
wsRequestDomain:
- https://epmet-cloud.elinkservice.cn
- wss://epmet-cloud.elinkservice.cn
- wss://epmet-dev.elinkservice.cn
- wss://epmet-test.elinkservice.cn
uploadDomain:
- https://epmet-cloud.elinkservice.cn
- https://epmet-dev.elinkservice.cn
- https://epmet-test.elinkservice.cn
downloadDomain:
- https://epmet-cloud.elinkservice.cn
- https://epmet-dev.elinkservice.cn
- https://epmet-test.elinkservice.cn
webviewDomain:
- https://epmet-cloud.elinkservice.cn
- udp://epmet-cloud.elinkservice.cn
- udp://epmet-dev.elinkservice.cn
- udp://epmet-test.elinkservice.cn

1
epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.5__thirdUpdate.sql

@ -0,0 +1 @@
alter table code_audit_result add SCREEN_SHOT_URL tinytext NULL comment '失败截图地址' after SCREEN_SHOT;

7
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml

@ -19,6 +19,13 @@
</resultMap>
<select id="selectAuditResultByCodeId" resultType="com.epmet.dto.CodeAuditResultDTO">
SELECT * FROM code_audit_result WHERE CODE_ID = #{codeId} AND DEL_FLAG = '0'
ORDER BY CREATED_TIME DESC
</select>
<select id="selectAuditFailedList" resultType="com.epmet.dto.CodeAuditResultDTO">
SELECT * FROM code_audit_result
WHERE CODE_ID = #{codeId}
AND (RESULT = 'audit_failed' OR RESULT = 'delay')
ORDER BY CREATED_TIME DESC
</select>
<!-- 更新 代码审核结果中的审核状态 -->
<update id="updateAuditResult">

11
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeOperationHistoryDao.xml

@ -36,6 +36,17 @@
AND cc.CLIENT_TYPE = #{clientType}
ORDER BY coh.CREATED_TIME DESC
</select>
<select id="selectHistoryListByCode" resultType="com.epmet.dto.result.CodeHistoryResultDTO">
SELECT
DATE_FORMAT(coh.CREATED_TIME, '%Y-%m-%d %T') AS "operationTime",
coh.VERSION,
coh.OPERATION,
coh.`DESCRIPTION` AS "describe"
FROM code_operation_history coh
WHERE
coh.CODE_ID = #{codeId}
ORDER BY coh.CREATED_TIME DESC
</select>
</mapper>

8
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PreAuthTokenDao.xml

@ -30,9 +30,9 @@
)
</insert>
<!-- 逻辑删pre_auth_code -->
<update id="updateOldPreAuthCode">
update pre_auth_token set del_flag = 1
</update>
<!-- 删pre_auth_code -->
<delete id="deleteOldPreAuthCode">
delete from pre_auth_token where del_flag = 0
</delete>
</mapper>
Loading…
Cancel
Save