Browse Source

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

dev_shibei_match
zxc 5 years ago
parent
commit
ed48d32119
  1. 20
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeCustomerDTO.java
  2. 5
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeOperationHistoryDTO.java
  3. 112
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeVersionInfoResultDTO.java
  4. 8
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java
  5. 13
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PaCustomerController.java
  6. 47
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeCustomerDao.java
  7. 11
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java
  8. 21
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeCustomerEntity.java
  9. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeOperationHistoryEntity.java
  10. 30
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeCustomerService.java
  11. 23
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java
  12. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java
  13. 15
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeCustomerServiceImpl.java
  14. 152
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
  15. 8
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java
  16. 60
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java
  17. 8
      epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.6__thirdUpdate.sql
  18. 61
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml
  19. 20
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml

20
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeCustomerDTO.java

@ -92,6 +92,26 @@ public class CodeCustomerDTO implements Serializable {
* 二维码 * 二维码
*/ */
private String qrCode; private String qrCode;
/**
* 发布模式 gary:分阶段发布total:全量发布
*/
private String releaseType;
/**
* 灰度值
*/
private Integer garyPercentage;
/**
* 上传时间
*/
private Date commitTime;
/**
* 提交审核时间
*/
private Date auditTime;
/**
* 发布时间
*/
private Date releaseTime;
/** /**
* 乐观锁 * 乐观锁

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

@ -43,6 +43,11 @@ public class CodeOperationHistoryDTO implements Serializable {
*/ */
private String customerId; private String customerId;
/**
* 小程序类型 居民端resi,工作端work
*/
private String clientType;
/** /**
* 代码ID * 代码ID
*/ */

112
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeVersionInfoResultDTO.java

@ -0,0 +1,112 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/8/7 14:00
*/
@NoArgsConstructor
@Data
public class CodeVersionInfoResultDTO implements Serializable {
private static final long serialVersionUID = 5822281118416848107L;
/**
*
*/
private CommitBean commit;
/**
*
*/
private AuditBean audit;
/**
*
*/
private ReleaseBean release;
@NoArgsConstructor
@Data
public static class CommitBean {
private String codeId;
/**
*
*/
private String version;
/**
*
*/
private String codeInfo;
/**
*
*/
private String commitTime;
/**
*
*/
private String modelId;
}
@NoArgsConstructor
@Data
public static class AuditBean {
private String codeId;
/**
*
*/
private String version;
/**
*
*/
private String codeInfo;
/**
*
*/
private String commitTime;
/**
*
*/
private String auditTime;
/**
*
*/
private String status;
}
@NoArgsConstructor
@Data
public static class ReleaseBean {
private String codeId;
/**
*
*/
private String version;
/**
*
*/
private String codeInfo;
/**
*
*/
private String commitTime;
/**
*
*/
private String auditTime;
/**
*
*/
private String releaseTime;
/**
*
*/
private String releaseType;
/**
*
*/
private int grayPercentage;
}
}

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

@ -207,4 +207,12 @@ public class CodeController {
codeService.setDomain(customerId); codeService.setDomain(customerId);
return new Result<>(); return new Result<>();
} }
@PostMapping("customers")
public Result<PageData> getCustomerList(@RequestBody UploadListFormDTO formDTO) {
PageData pageData = codeService.getCustomerList(formDTO);
return new Result<PageData>().ok(pageData);
}
} }

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

@ -179,5 +179,18 @@ public class PaCustomerController {
return new Result<AccountBasicInfoResultDTO>().ok(paCustomerService.getAccountBasicInfo(formDTO)); return new Result<AccountBasicInfoResultDTO>().ok(paCustomerService.getAccountBasicInfo(formDTO));
} }
/**
* 获取客户小程序列表
* @author zhaoqifeng
* @date 2020/8/10 9:43
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.commons.tools.page.PageData>
*/
@PostMapping("miniprolist")
public Result<PageData> getCustomerList(@RequestBody UploadListFormDTO formDTO) {
PageData pageData = paCustomerService.getCustomerList(formDTO);
return new Result<PageData>().ok(pageData);
}
} }

47
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeCustomerDao.java

@ -94,4 +94,51 @@ public interface CodeCustomerDao extends BaseDao<CodeCustomerEntity> {
*/ */
CodeCustomerDTO selectUploadCodeByCustomer(@Param("customerId") String customerId, @Param("clientType") String clientType); CodeCustomerDTO selectUploadCodeByCustomer(@Param("customerId") String customerId, @Param("clientType") String clientType);
/**
* 开发版
* @author zhaoqifeng
* @date 2020/8/7 15:02
* @param customerId
* @param clientType
* @return com.epmet.dto.CodeCustomerDTO
*/
CodeCustomerDTO selectCommitInfo(@Param("customerId") String customerId, @Param("clientType") String clientType);
/**
* 审核版
* @author zhaoqifeng
* @date 2020/8/7 15:02
* @param customerId
* @param clientType
* @return com.epmet.dto.CodeCustomerDTO
*/
CodeCustomerDTO selectAuditInfo(@Param("customerId") String customerId, @Param("clientType") String clientType);
/**
* 线上版
* @author zhaoqifeng
* @date 2020/8/7 15:02
* @param customerId
* @param clientType
* @return com.epmet.dto.CodeCustomerDTO
*/
CodeCustomerDTO selectReleaseInfo(@Param("customerId") String customerId, @Param("clientType") String clientType);
/**
* 上一个已发布版本
* @author zhaoqifeng
* @date 2020/8/7 15:12
* @param customerId
* @param clientType
* @return com.epmet.dto.CodeCustomerDTO
*/
CodeCustomerDTO selectLastVersion(@Param("customerId") String customerId, @Param("clientType") String clientType);
/**
* 激活上一版本
* @author zhaoqifeng
* @date 2020/8/7 15:18
* @param codeId
* @return void
*/
void updateVersion(@Param("codeId") String codeId);
} }

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

@ -21,9 +21,11 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.PaCustomerDTO; import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.form.ModifyCustomerFormDTO; import com.epmet.dto.form.ModifyCustomerFormDTO;
import com.epmet.dto.form.RegisterByAuthFormDTO; import com.epmet.dto.form.RegisterByAuthFormDTO;
import com.epmet.dto.form.UploadListFormDTO;
import com.epmet.dto.result.CustomerAgencyResultDTO; import com.epmet.dto.result.CustomerAgencyResultDTO;
import com.epmet.dto.result.CustomerAndUserResultDTO; import com.epmet.dto.result.CustomerAndUserResultDTO;
import com.epmet.dto.result.RegisterByAuthResultDTO; import com.epmet.dto.result.RegisterByAuthResultDTO;
import com.epmet.dto.result.UploadListResultDTO;
import com.epmet.entity.PaCustomerEntity; import com.epmet.entity.PaCustomerEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -86,6 +88,15 @@ public interface PaCustomerDao extends BaseDao<PaCustomerEntity> {
*/ */
String selectCustomerName(@Param("customerId") String customerId); String selectCustomerName(@Param("customerId") String customerId);
/**
* 获取已初始化客户列表
* @author zhaoqifeng
* @date 2020/8/7 17:44
* @param formDTO
* @return java.util.List<com.epmet.dto.result.UploadListResultDTO>
*/
List<UploadListResultDTO> selectInitCustomerList(UploadListFormDTO formDTO);
/** /**
* @author sun * @author sun
* @Description 查询客户及管理员信息 * @Description 查询客户及管理员信息

21
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeCustomerEntity.java

@ -93,5 +93,26 @@ public class CodeCustomerEntity extends BaseEpmetEntity {
*/ */
private String qrCode; private String qrCode;
/**
* 发布模式 gary:分阶段发布total:全量发布
*/
private String releaseType;
/**
* 灰度值
*/
private Integer garyPercentage;
/**
* 上传时间
*/
private Date commitTime;
/**
* 提交审核时间
*/
private Date auditTime;
/**
* 发布时间
*/
private Date releaseTime;
} }

5
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeOperationHistoryEntity.java

@ -43,6 +43,11 @@ public class CodeOperationHistoryEntity extends BaseEpmetEntity {
*/ */
private String customerId; private String customerId;
/**
* 小程序类型 居民端resi,工作端work
*/
private String clientType;
/** /**
* 代码ID * 代码ID
*/ */

30
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeCustomerService.java

@ -131,4 +131,34 @@ public interface CodeCustomerService extends BaseService<CodeCustomerEntity> {
* @return void * @return void
*/ */
void deleteCode(String customerId, String clientType); void deleteCode(String customerId, String clientType);
/**
* 开发版
* @author zhaoqifeng
* @date 2020/8/7 15:34
* @param customerId
* @param clientType
* @return com.epmet.dto.CodeCustomerDTO
*/
CodeCustomerDTO getCommitInfo(String customerId, String clientType);
/**
* 审核版
* @author zhaoqifeng
* @date 2020/8/7 15:34
* @param customerId
* @param clientType
* @return com.epmet.dto.CodeCustomerDTO
*/
CodeCustomerDTO getAuditInfo(String customerId, String clientType);
/**
* 线上版
* @author zhaoqifeng
* @date 2020/8/7 15:34
* @param customerId
* @param clientType
* @return com.epmet.dto.CodeCustomerDTO
*/
CodeCustomerDTO getReleaseInfo(String customerId, String clientType);
} }

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

@ -2,10 +2,7 @@ package com.epmet.service;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.CategoryResultDTO; import com.epmet.dto.result.*;
import com.epmet.dto.result.QrCodeResultDTO;
import com.epmet.dto.result.ReasonResultDTO;
import com.epmet.dto.result.TemplateListResultDTO;
import java.util.List; import java.util.List;
@ -54,6 +51,15 @@ public interface CodeService {
*/ */
PageData uploadList(UploadListFormDTO formDTO); PageData uploadList(UploadListFormDTO formDTO);
/**
* 获取版本信息
* @author zhaoqifeng
* @date 2020/8/7 15:30
* @param formDTO
* @return com.epmet.dto.result.CodeVersionInfoResultDTO
*/
CodeVersionInfoResultDTO version(CustomerClientFormDTO formDTO);
/** /**
* 提交审核 * 提交审核
* *
@ -148,4 +154,13 @@ public interface CodeService {
*/ */
void setDomain(String customerId); void setDomain(String customerId);
/**
* 已初始化客户列表
* @author zhaoqifeng
* @date 2020/8/7 17:57
* @param formDTO
* @return com.epmet.commons.tools.page.PageData
*/
PageData getCustomerList(UploadListFormDTO formDTO);
} }

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

@ -204,4 +204,13 @@ public interface PaCustomerService extends BaseService<PaCustomerEntity> {
* @return com.epmet.dto.result.AccountBasicInfoResultDTO * @return com.epmet.dto.result.AccountBasicInfoResultDTO
*/ */
AccountBasicInfoResultDTO getAccountBasicInfo(CustomerClientFormDTO formDTO); AccountBasicInfoResultDTO getAccountBasicInfo(CustomerClientFormDTO formDTO);
/**
* 获取已初始化客户列表
* @author zhaoqifeng
* @date 2020/8/7 17:41
* @param formDTO
* @return com.epmet.commons.tools.page.PageData
*/
PageData getCustomerList(UploadListFormDTO formDTO);
} }

15
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeCustomerServiceImpl.java

@ -129,5 +129,20 @@ public class CodeCustomerServiceImpl extends BaseServiceImpl<CodeCustomerDao, Co
baseDao.deleteCode(customerId, clientType); baseDao.deleteCode(customerId, clientType);
} }
@Override
public CodeCustomerDTO getCommitInfo(String customerId, String clientType) {
return baseDao.selectCommitInfo(customerId, clientType);
}
@Override
public CodeCustomerDTO getAuditInfo(String customerId, String clientType) {
return baseDao.selectAuditInfo(customerId, clientType);
}
@Override
public CodeCustomerDTO getReleaseInfo(String customerId, String clientType) {
return baseDao.selectReleaseInfo(customerId, clientType);
}
} }

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

@ -108,13 +108,7 @@ public class CodeServiceImpl implements CodeService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void upload(CodeUploadFormDTO formDTO) { public void upload(CodeUploadFormDTO formDTO) {
//获取上传代码信息
CodeCustomerDTO uploadCode = codeCustomerService.getUploadCodeByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
if (null != uploadCode) {
if (CodeConstant.AUDITING.equals(uploadCode.getStatus())) {
throw new RenException("已经有正在审核的版本,请等待审核完毕或者撤回审核后再上传");
}
}
//是否授权 //是否授权
if (!customerMpService.getAuthFlag(formDTO.getCustomerId(), formDTO.getClientType())) { if (!customerMpService.getAuthFlag(formDTO.getCustomerId(), formDTO.getClientType())) {
throw new RenException("未授权"); throw new RenException("未授权");
@ -147,15 +141,14 @@ public class CodeServiceImpl implements CodeService {
WxResult wxResult = wxMaCodeService.commit(authInfo.getAuthorizerAccessToken(), request); WxResult wxResult = wxMaCodeService.commit(authInfo.getAuthorizerAccessToken(), request);
//上传失败,抛出异常 //上传失败,抛出异常
if (!wxResult.success()) { if (!wxResult.success()) {
saveOperation(formDTO.getCustomerId(), null, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, wxResult.getErrorMsg()); saveOperation(formDTO.getCustomerId(), formDTO.getClientType(), null, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD,
wxResult.getErrorMsg());
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
} }
//获取客户信息 //获取客户信息
CustomerDTO customerDTO = new CustomerDTO(); CustomerDTO customerDTO = new CustomerDTO();
customerDTO.setId(formDTO.getCustomerId()); customerDTO.setId(formDTO.getCustomerId());
PaCustomerDTO paCustomerDTO = paCustomerService.get(formDTO.getCustomerId()); PaCustomerDTO paCustomerDTO = paCustomerService.get(formDTO.getCustomerId());
//将之前上传信息删除
codeCustomerService.deleteCode(formDTO.getCustomerId(), formDTO.getClientType());
//将上传信息存入表中 //将上传信息存入表中
CodeCustomerDTO codeCustomerDTO = ConvertUtils.sourceToTarget(formDTO, CodeCustomerDTO.class); CodeCustomerDTO codeCustomerDTO = ConvertUtils.sourceToTarget(formDTO, CodeCustomerDTO.class);
@ -166,47 +159,77 @@ public class CodeServiceImpl implements CodeService {
codeCustomerDTO.setStatus(CodeConstant.UNAUDITED); codeCustomerDTO.setStatus(CodeConstant.UNAUDITED);
String codeId = codeCustomerService.save(codeCustomerDTO); String codeId = codeCustomerService.save(codeCustomerDTO);
saveOperation(formDTO.getCustomerId(), codeId, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, "上传成功"); saveOperation(formDTO.getCustomerId(), formDTO.getClientType(), codeId, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, "上传成功");
} }
@Override @Override
public PageData uploadList(UploadListFormDTO formDTO) { public PageData uploadList(UploadListFormDTO formDTO) {
List<CodeCustomerDTO> auditingList = codeCustomerService.getAuditingCodeList(formDTO.getSource()); return codeCustomerService.getCodeList(formDTO);
String customerId = formDTO.getCustomerId(); }
if (null != auditingList && auditingList.size() > NumConstant.ZERO) {
auditingList.forEach(code -> { @Override
//获取小程序调用令牌 public CodeVersionInfoResultDTO version(CustomerClientFormDTO formDTO) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(code.getCustomerId(), code.getClientType()); CodeVersionInfoResultDTO resultDTO = new CodeVersionInfoResultDTO();
//获取审核结果信息 //开发版本
CodeAuditResultDTO auditResult = codeAuditResultService.getAuditResultByCodeId(code.getId()); CodeCustomerDTO commit = codeCustomerService.getCommitInfo(formDTO.getCustomerId(), formDTO.getClientType());
//调用微信API获取最新审核状态 resultDTO.getCommit().setCodeId(commit.getId());
WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq(); resultDTO.getCommit().setCodeInfo(commit.getUserDesc());
request.setAuditId(auditResult.getAuditId()); resultDTO.getCommit().setModelId(commit.getTemplateId());
WxResult<WxMaAuditStatusResult> wxAuditResult = wxMaCodeService.getAuditStatus(authInfo.getAuthorizerAccessToken(), request); resultDTO.getCommit().setVersion(commit.getUserVersion());
if (wxAuditResult.success()) { resultDTO.getCommit().setCommitTime(DateUtils.format(commit.getCommitTime(), DateUtils.DATE_TIME_PATTERN));
WxMaAuditStatusResult result = wxAuditResult.getData(); //审核版本
if (result.getStatus() == NumConstant.ZERO) { CodeCustomerDTO audit = codeCustomerService.getAuditInfo(formDTO.getCustomerId(), formDTO.getClientType());
code.setStatus(CodeConstant.AUDIT_SUCCESS); resultDTO.getAudit().setCodeId(audit.getId());
auditResult.setResult(CodeConstant.AUDIT_SUCCESS); resultDTO.getAudit().setVersion(audit.getUserVersion());
saveOperation(customerId, code.getId(), code.getUserVersion(), CodeConstant.OPER_SUCCESS, "审核成功"); resultDTO.getAudit().setCodeInfo(audit.getUserDesc());
} else if (result.getStatus() == NumConstant.ONE) { if (CodeConstant.AUDITING.equals(audit.getStatus())) {
code.setStatus(CodeConstant.AUDIT_FAILED); //获取小程序调用令牌
auditResult.setResult(CodeConstant.AUDIT_FAILED); AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
auditResult.setReason(result.getReason()); //获取审核结果信息
auditResult.setScreenShot(result.getScreenshot()); CodeAuditResultDTO auditResult = codeAuditResultService.getAuditResultByCodeId(audit.getId());
saveOperation(customerId, code.getId(), code.getUserVersion(), CodeConstant.OPER_FAILED, result.getReason()); //调用微信API获取最新审核状态
} else if (result.getStatus() == NumConstant.FOUR) { WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq();
code.setStatus(CodeConstant.DELAY); request.setAuditId(auditResult.getAuditId());
auditResult.setResult(CodeConstant.DELAY); WxResult<WxMaAuditStatusResult> wxAuditResult = wxMaCodeService.getAuditStatus(authInfo.getAuthorizerAccessToken(), request);
auditResult.setReason(result.getReason()); if (wxAuditResult.success()) {
saveOperation(customerId, code.getId(), code.getUserVersion(), CodeConstant.OPER_DELAY, result.getReason()); WxMaAuditStatusResult result = wxAuditResult.getData();
} if (result.getStatus() == NumConstant.ZERO) {
codeCustomerService.update(code); audit.setStatus(CodeConstant.AUDIT_SUCCESS);
codeAuditResultService.update(auditResult); auditResult.setResult(CodeConstant.AUDIT_SUCCESS);
saveOperation(formDTO.getCustomerId(), formDTO.getClientType(), audit.getId(), audit.getUserVersion(), CodeConstant.OPER_SUCCESS
, "审核成功");
} else if (result.getStatus() == NumConstant.ONE) {
audit.setStatus(CodeConstant.AUDIT_FAILED);
auditResult.setResult(CodeConstant.AUDIT_FAILED);
auditResult.setReason(result.getReason());
auditResult.setScreenShot(result.getScreenshot());
saveOperation(formDTO.getCustomerId(), formDTO.getClientType(), audit.getId(), audit.getUserVersion(), CodeConstant.OPER_FAILED,
result.getReason());
} else if (result.getStatus() == NumConstant.FOUR) {
audit.setStatus(CodeConstant.DELAY);
auditResult.setResult(CodeConstant.DELAY);
auditResult.setReason(result.getReason());
saveOperation(formDTO.getCustomerId(), formDTO.getClientType(), audit.getId(), audit.getUserVersion(), CodeConstant.OPER_DELAY,
result.getReason());
} }
}); codeCustomerService.update(audit);
codeAuditResultService.update(auditResult);
}
} }
return codeCustomerService.getCodeList(formDTO); resultDTO.getAudit().setStatus(audit.getStatus());
resultDTO.getAudit().setCommitTime(DateUtils.format(audit.getCommitTime(), DateUtils.DATE_TIME_PATTERN));
resultDTO.getAudit().setAuditTime(DateUtils.format(audit.getAuditTime(), DateUtils.DATE_TIME_PATTERN));
//线上版本
CodeCustomerDTO release = codeCustomerService.getReleaseInfo(formDTO.getCustomerId(), formDTO.getClientType());
resultDTO.getRelease().setCodeId(release.getId());
resultDTO.getRelease().setCodeInfo(release.getUserDesc());
resultDTO.getRelease().setCommitTime(DateUtils.format(release.getCommitTime(), DateUtils.DATE_TIME_PATTERN));
resultDTO.getRelease().setAuditTime(DateUtils.format(release.getAuditTime(), DateUtils.DATE_TIME_PATTERN));
resultDTO.getRelease().setReleaseTime(DateUtils.format(release.getReleaseTime(), DateUtils.DATE_TIME_PATTERN));
resultDTO.getRelease().setReleaseType(release.getReleaseType());
resultDTO.getRelease().setGrayPercentage(release.getGaryPercentage());
resultDTO.getRelease().setVersion(release.getUserVersion());
return resultDTO;
} }
@Override @Override
@ -233,8 +256,8 @@ public class CodeServiceImpl implements CodeService {
request.setUgcDeclare(formDTO.getUgcDeclare()); request.setUgcDeclare(formDTO.getUgcDeclare());
WxResult<String> wxResult = wxMaCodeService.submitAudit(authInfo.getAuthorizerAccessToken(), request); WxResult<String> wxResult = wxMaCodeService.submitAudit(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) { if (!wxResult.success()) {
saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_SUBMIT, saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(),
wxResult.getErrorMsg()); codeCustomerDTO.getUserVersion(), CodeConstant.OPER_SUBMIT, wxResult.getErrorMsg());
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
} }
if(formDTO.getIsSpeed()) { if(formDTO.getIsSpeed()) {
@ -243,8 +266,8 @@ public class CodeServiceImpl implements CodeService {
speedRequest.setAuditId(wxResult.getData()); speedRequest.setAuditId(wxResult.getData());
WxResult wxSpeedResult = wxMaCodeService.speedUpAudit(authInfo.getAuthorizerAccessToken(), speedRequest); WxResult wxSpeedResult = wxMaCodeService.speedUpAudit(authInfo.getAuthorizerAccessToken(), speedRequest);
if (!wxSpeedResult.success()) { if (!wxSpeedResult.success()) {
saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_SUBMIT, saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(),
wxSpeedResult.getErrorMsg()); codeCustomerDTO.getUserVersion(), CodeConstant.OPER_SUBMIT, wxSpeedResult.getErrorMsg());
throw new RenException(wxSpeedResult.getErrorCode(), wxSpeedResult.getErrorMsg()); throw new RenException(wxSpeedResult.getErrorCode(), wxSpeedResult.getErrorMsg());
} }
} }
@ -270,8 +293,8 @@ public class CodeServiceImpl implements CodeService {
//更新代码表状态 //更新代码表状态
codeCustomerDTO.setStatus(CodeConstant.AUDITING); codeCustomerDTO.setStatus(CodeConstant.AUDITING);
codeCustomerService.update(codeCustomerDTO); codeCustomerService.update(codeCustomerDTO);
saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_SUBMIT, saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(),
"审核中"); CodeConstant.OPER_SUBMIT, "审核中");
} }
@Override @Override
@ -302,8 +325,8 @@ public class CodeServiceImpl implements CodeService {
//调用微信API撤销审核 //调用微信API撤销审核
WxResult wxResult = wxMaCodeService.undoCodeAudit(authInfo.getAuthorizerAccessToken()); WxResult wxResult = wxMaCodeService.undoCodeAudit(authInfo.getAuthorizerAccessToken());
if (!wxResult.success()) { if (!wxResult.success()) {
saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_UNDO, saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(),
wxResult.getErrorMsg()); codeCustomerDTO.getUserVersion(), CodeConstant.OPER_UNDO, wxResult.getErrorMsg());
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
} }
//更新审核结果 //更新审核结果
@ -315,8 +338,8 @@ public class CodeServiceImpl implements CodeService {
//更新审核操作记录描述 //更新审核操作记录描述
codeOperationHistoryService.updateDescribe(codeCustomerDTO.getId(), "已撤回"); codeOperationHistoryService.updateDescribe(codeCustomerDTO.getId(), "已撤回");
saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_UNDO, saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(),
"成功"); CodeConstant.OPER_UNDO, "成功");
} }
@Override @Override
@ -338,15 +361,18 @@ public class CodeServiceImpl implements CodeService {
//更新代码表状态 //更新代码表状态
codeCustomerDTO.setStatus(CodeConstant.RELEASE_FAILED); codeCustomerDTO.setStatus(CodeConstant.RELEASE_FAILED);
codeCustomerService.update(codeCustomerDTO); codeCustomerService.update(codeCustomerDTO);
saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_RELEASE, saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(),
wxResult.getErrorMsg()); codeCustomerDTO.getUserVersion(), CodeConstant.OPER_RELEASE, wxResult.getErrorMsg());
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
} }
//将之前上传信息删除
codeCustomerService.deleteCode(formDTO.getCustomerId(), codeCustomerDTO.getClientType());
//更新代码表状态 //更新代码表状态
codeCustomerDTO.setStatus(CodeConstant.RELEASE_SUCCESS); codeCustomerDTO.setStatus(CodeConstant.RELEASE_SUCCESS);
codeCustomerService.update(codeCustomerDTO); codeCustomerService.update(codeCustomerDTO);
saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_RELEASE, saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(),
"发布成功"); CodeConstant.OPER_RELEASE, "发布成功");
} }
@Override @Override
@ -522,9 +548,15 @@ public class CodeServiceImpl implements CodeService {
}); });
} }
private void saveOperation(String customerId, String codeId, String version, String operation, String describe) { @Override
public PageData getCustomerList(UploadListFormDTO formDTO) {
return paCustomerService.getCustomerList(formDTO);
}
private void saveOperation(String customerId, String clientType, String codeId, String version, String operation, String describe) {
CodeOperationHistoryDTO operationDTO = new CodeOperationHistoryDTO(); CodeOperationHistoryDTO operationDTO = new CodeOperationHistoryDTO();
operationDTO.setCustomerId(customerId); operationDTO.setCustomerId(customerId);
operationDTO.setClientType(clientType);
operationDTO.setCodeId(codeId); operationDTO.setCodeId(codeId);
operationDTO.setVersion(version); operationDTO.setVersion(version);
operationDTO.setOperation(operation); operationDTO.setOperation(operation);

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

@ -633,4 +633,12 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
return result; return result;
} }
@Override
public PageData getCustomerList(UploadListFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<UploadListResultDTO> list = baseDao.selectInitCustomerList(formDTO);
PageInfo<UploadListResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
} }

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

@ -189,13 +189,11 @@ public class WarrantServiceImpl implements WarrantService {
Object createTime = xml.get(ModuleConstant.CREATE_TIME); Object createTime = xml.get(ModuleConstant.CREATE_TIME);
Date date = componentVerifyTicketServiceImpl.sToDate(createTime.toString()); Date date = componentVerifyTicketServiceImpl.sToDate(createTime.toString());
messagePushTextFormDTO.setWeChatCreateTime(date); messagePushTextFormDTO.setWeChatCreateTime(date);
// messagePushTextDao.insertMessageText(messagePushTextFormDTO);
String content = messagePushTextFormDTO.getContent(); String content = messagePushTextFormDTO.getContent();
log.info(String.format(ThirdRunTimeInfoConstant.CONTENT,content)); log.info(String.format(ThirdRunTimeInfoConstant.CONTENT,content));
if(ModuleConstant.TESTCOMPONENT_MSG_TYPE_TEXT.equals(content)){ if(ModuleConstant.TESTCOMPONENT_MSG_TYPE_TEXT.equals(content)){
log.info("收到消息,要回复了......"); log.info("收到消息,要回复了......");
// String returnContent = content+ModuleConstant._CALL_BACK; String returnContent = content+ModuleConstant._CALL_BACK;
String returnContent = "TESTCOMPONENT_MSG_TYPE_TEXT_callback";
log.info("拼接的回复内容【普通】:"+returnContent); log.info("拼接的回复内容【普通】:"+returnContent);
replyTextMessage(request, response, returnContent, toUserName, fromUserName); replyTextMessage(request, response, returnContent, toUserName, fromUserName);
@ -240,18 +238,21 @@ public class WarrantServiceImpl implements WarrantService {
"> 客户端:"+clientType+"\n\n"+ "> 客户端:"+clientType+"\n\n"+
"> 延时原因:"+result); "> 延时原因:"+result);
break; break;
default:
markdown.setText("机器人生病了......");
log.info("event为:"+event);
break;
} }
request.setMarkdown(markdown); request.setMarkdown(markdown);
log.info("robot需要发送的内容为:"+markdown.getTitle()); log.info("robot需要发送的内容为:"+markdown.getText());
String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f"; String url = "https://oapi.dingtalk.com/robot/send?access_token=2438902efbcc15909deb7076963c5cbe2d6fdbfdb9d66750faab2f2cce6eb09f";
String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74"; String secret = "SECe3c785dd254659608667a4a623acc5a0395636143411617f6e36838b48941e74";
this.sendCodeMsg(request,url,secret); this.sendCodeMsg(request,url,secret);
} }
/* // public static void main(String[] args) {
public static void main(String[] args) { // WarrantServiceImpl w = new WarrantServiceImpl();
WarrantServiceImpl w = new WarrantServiceImpl(); // w.dingDingRobot("审核失败","weapp_audit_fail","机器人测试","居民端");
w.dingDingRobot("审核失败","weapp_audit_fail","机器人测试","居民端"); // }
}*/
public Result<String> sendCodeMsg(OapiRobotSendRequest request,String url,String secret) { public Result<String> sendCodeMsg(OapiRobotSendRequest request,String url,String secret) {
Long timestamp = System.currentTimeMillis(); Long timestamp = System.currentTimeMillis();
@ -263,7 +264,10 @@ public class WarrantServiceImpl implements WarrantService {
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8"); String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
log.info("sign为:"+sign); log.info("sign为:"+sign);
url = url.concat("&timestamp=" + timestamp + "&sign=" + sign); url = url.concat("&timestamp=" + timestamp + "&sign=" + sign);
Result<String> stringResult = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(request)); log.info("发送url:"+url);
String requestString = JSON.toJSONString(request);
log.info("发送内容:"+requestString);
Result<String> stringResult = HttpClientManager.getInstance().sendPostByJSON(url, requestString);
log.info("robot发送消息结果为:"+stringResult.getData()); log.info("robot发送消息结果为:"+stringResult.getData());
return stringResult; return stringResult;
} catch (Exception e) { } catch (Exception e) {
@ -294,22 +298,6 @@ public class WarrantServiceImpl implements WarrantService {
replyTextMessage(request, response, content, toUserName, fromUserName); replyTextMessage(request, response, content, toUserName, fromUserName);
} }
/**
* 立马回应文本消息并最终触达粉丝
* @param content 文本
* @param toUserName 发送接收人
* @param fromUserName 发送人
* @author zxc
*/
public void processTextMessage(HttpServletRequest request, HttpServletResponse response,
String content,String toUserName, String fromUserName)
throws IOException, DocumentException{
}
/** /**
* 方法描述: 直接返回给微信开放平台 * 方法描述: 直接返回给微信开放平台
* @param request * @param request
@ -383,24 +371,4 @@ public class WarrantServiceImpl implements WarrantService {
log.info("客服发送接口返回值:"+data); log.info("客服发送接口返回值:"+data);
} }
/**
* 方法描述: 返回数据到请求方
* @param data 数据
* @param response
* @author zxc
*/
public void returnJSON(Object data,HttpServletResponse response) {
try {
ObjectMapper objectMapper = new ObjectMapper();
JsonEncoding encoding = JsonEncoding.UTF8;
response.setContentType(ModuleConstant.APPLICATION_JSON);
JsonGenerator generator = objectMapper.getJsonFactory().
createJsonGenerator(response.getOutputStream(), encoding);
objectMapper.writeValue(generator, data);
} catch (Exception e) {
e.printStackTrace();
}
}
} }

8
epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.6__thirdUpdate.sql

@ -0,0 +1,8 @@
alter table code_customer add RELEASE_TYPE varchar(10) NULL comment '发布模式 gary:分阶段发布,total:全量发布' after QR_CODE;
alter table code_customer add GARY_PERCENTAGE int(11) NULL comment '灰度值' after RELEASE_TYPE;
alter table code_customer add COMMIT_TIME datetime NULL comment '上传时间' after GARY_PERCENTAGE;
alter table code_customer add AUDIT_TIME datetime NULL comment '提交审核时间' after COMMIT_TIME;
alter table code_customer add RELEASE_TIME datetime NULL comment '发布时间' after AUDIT_TIME;
alter table code_operation_history add CLIENT_TYPE datetime NULL comment '小程序类型 居民端resi,工作端work' after CUSTOMER_ID;

61
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml

@ -21,6 +21,7 @@
<result property="updatedBy" column="UPDATED_BY"/> <result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/> <result property="updatedTime" column="UPDATED_TIME"/>
</resultMap> </resultMap>
<select id="selectCodeList" resultType="com.epmet.dto.result.UploadListResultDTO" parameterType="com.epmet.dto.form.UploadListFormDTO"> <select id="selectCodeList" resultType="com.epmet.dto.result.UploadListResultDTO" parameterType="com.epmet.dto.form.UploadListFormDTO">
SELECT SELECT
cc.ID, cc.ID,
@ -86,7 +87,7 @@
AND template_id = #{templateId} AND template_id = #{templateId}
</select> </select>
<select id="selectAuditingCodeList" resultType="com.epmet.dto.CodeCustomerDTO"> <select id="selectAuditingCodeList" resultType="com.epmet.dto.CodeCustomerDTO">
select * FROM code_customer WHERE DEL_FLAG = '0' AND STATUS = 'auditing' AND SOURCE = #{source} select * FROM code_customer WHERE DEL_FLAG = '0' AND STATUS = 'auditing' AND SOURCE = #{source}
</select> </select>
<select id="selectUploadCodeByCustomer" resultType="com.epmet.dto.CodeCustomerDTO"> <select id="selectUploadCodeByCustomer" resultType="com.epmet.dto.CodeCustomerDTO">
SELECT SELECT
@ -103,7 +104,63 @@
DEL_FLAG = '1' DEL_FLAG = '1'
WHERE CUSTOMER_ID = #{customerId} WHERE CUSTOMER_ID = #{customerId}
AND CLIENT_TYPE = #{clientType} AND CLIENT_TYPE = #{clientType}
AND STATUS = 'release_success'
AND DEL_FLAG = '0' AND DEL_FLAG = '0'
</update> </update>
<select id="selectCommitInfo" resultType="com.epmet.dto.CodeCustomerDTO">
SELECT ID,
USER_VERSION,
USER_DESC,
TEMPLATE_ID,
COMMIT_TIME
FROM code_customer
WHERE CUSTOMER_ID = #{customerId}
AND CLIENT_TYPE = #{clientType}
AND STATUS = 'unaudited'
AND DEL_FLAG = '0'
</select>
<select id="selectAuditInfo" resultType="com.epmet.dto.CodeCustomerDTO">
SELECT ID,
USER_VERSION,
USER_DESC,
COMMIT_TIME,
AUDIT_TIME,
STATUS
FROM code_customer
WHERE CUSTOMER_ID = #{customerId}
AND CLIENT_TYPE = #{clientType}
AND (STATUS = 'auditing' OR STATUS = 'audit_success' OR STATUS = 'audit_failed' OR STATUS = 'withdrawn' OR STATUS = 'delay' OR STATUS = 'release_failed')
AND DEL_FLAG = '0'
</select>
<select id="selectReleaseInfo" resultType="com.epmet.dto.CodeCustomerDTO">
SELECT ID,
USER_VERSION,
USER_DESC,
COMMIT_TIME,
AUDIT_TIME,
RELEASE_TIME,
RELEASE_TYPE,
GARY_PERCENTAGE
FROM code_customer
WHERE CUSTOMER_ID = #{customerId}
AND CLIENT_TYPE = #{clientType}
AND STATUS = 'release_success'
AND DEL_FLAG = '0'
</select>
<select id="selectLastVersion" resultType="com.epmet.dto.CodeCustomerDTO">
SELECT ID
FROM code_customer
WHERE CUSTOMER_ID = #{customerId}
AND CLIENT_TYPE = #{clientType}
AND STATUS = 'release_success'
AND DEL_FLAG = '1'
ORDER BY RELEASE_TIME DESC
LIMIT 1
</select>
<update id="updateVersion">
UPDATE code_customer
SET
DEL_FLAG = '0'
WHERE ID = #{codeId}
</update>
</mapper> </mapper>

20
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml

@ -81,6 +81,26 @@
del_flag = 0 del_flag = 0
AND id = #{customerId} AND id = #{customerId}
</select> </select>
<select id="selectInitCustomerList" resultType="com.epmet.dto.result.UploadListResultDTO" parameterType="com.epmet.dto.form.UploadListFormDTO">
SELECT pc.ID AS "customerId",
pc.CUSTOMER_NAME,
ai.CLIENT_TYPE,
ai.AUTHORIZER_APPID AS "appId"
FROM pa_customer pc
INNER JOIN authorization_info ai ON pc.ID = ai.CUSTOMER_ID AND ai.DEL_FLAG = 0
WHERE pc.DEL_FLAG = 0
AND pc.SOURCE = #{source}
AND pc.IS_INITIALIZE = 1
<if test="customerId != null and customerId.trim() != ''">
AND pc.ID = #{customerId}
</if>
<if test="clientType != null and clientType.trim() != ''">
AND ai.CLIENT_TYPE = #{clientType}
</if>
ORDER BY
pc.CUSTOMER_NAME,
ai.CLIENT_TYPE
</select>
<select id="selectCustomerAndUser" resultType="com.epmet.dto.result.CustomerAndUserResultDTO"> <select id="selectCustomerAndUser" resultType="com.epmet.dto.result.CustomerAndUserResultDTO">
SELECT SELECT

Loading…
Cancel
Save