Browse Source

第三方代码上传

dev
zhaoqifeng 5 years ago
parent
commit
c1de901c9a
  1. 7
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java
  2. 5
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java
  3. 7
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeCustomerDTO.java
  4. 23
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java
  5. 6
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeUploadFormDTO.java
  6. 126
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubmitAuditFormDTO.java
  7. 46
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/UploadListFormDTO.java
  8. 34
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java
  9. 62
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/UploadListResultDTO.java
  10. 6
      epmet-module/epmet-third/epmet-third-server/pom.xml
  11. 49
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java
  12. 57
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java
  13. 12
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java
  14. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeAuditResultDao.java
  15. 13
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeCustomerDao.java
  16. 8
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/ComponentAccessTokenDao.java
  17. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeAuditResultEntity.java
  18. 7
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeCustomerEntity.java
  19. 10
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeAuditResultService.java
  20. 10
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeCustomerService.java
  21. 53
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java
  22. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeAuditResultServiceImpl.java
  23. 12
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeCustomerServiceImpl.java
  24. 164
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
  25. 6
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaAuditStatusResult.java
  26. 32
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateListResult.java
  27. 36
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateResult.java
  28. 41
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java
  29. 57
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java
  30. 9
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml
  31. 17
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml
  32. 53
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml
  33. 7
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/ComponentAccessTokenDao.xml
  34. 10
      epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java
  35. 8
      epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java

7
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java

@ -481,4 +481,11 @@ public class DateUtils {
cale.set(Calendar.DAY_OF_MONTH, 0); cale.set(Calendar.DAY_OF_MONTH, 0);
return cale.getTime(); return cale.getTime();
} }
public static String formatTimestamp(Long timestamp, String pattern) {
//设置格式
SimpleDateFormat format = new SimpleDateFormat(pattern);
return format.format(timestamp);
}
} }

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

@ -63,6 +63,11 @@ public class CodeAuditResultDTO implements Serializable {
*/ */
private String reason; private String reason;
/**
* 当审核被拒绝时会返回审核失败的小程序截图示例 | 分隔的 media_id 的列表
*/
private String screenShot;
/** /**
* 乐观锁 * 乐观锁
*/ */

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

@ -48,11 +48,6 @@ public class CodeCustomerDTO implements Serializable {
*/ */
private String customerName; private String customerName;
/**
* 小程序接口调用令牌ID
*/
private String accessTokenId;
/** /**
* 模板ID * 模板ID
*/ */
@ -61,7 +56,7 @@ public class CodeCustomerDTO implements Serializable {
/** /**
* 小程序类型 居民端resi,工作端work * 小程序类型 居民端resi,工作端work
*/ */
private String type; private String clientType;
/** /**
* APPID * APPID

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

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/14 17:50
*/
@Data
public class CodeCommonFormDTO implements Serializable {
private static final long serialVersionUID = -8923691903900141713L;
/**
* 客户ID
*/
private String customerId;
/**
* 代码ID
*/
private String codeId;
}

6
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeUploadFormDTO.java

@ -15,14 +15,10 @@ import java.io.Serializable;
public class CodeUploadFormDTO implements Serializable { public class CodeUploadFormDTO implements Serializable {
private static final long serialVersionUID = 1295337818281424509L; private static final long serialVersionUID = 1295337818281424509L;
/**
* 小程序接口调用令牌ID
*/
private String accessTokenId;
/** /**
* 小程序类型 居民端resi 工作段work * 小程序类型 居民端resi 工作段work
*/ */
private String type; private String clientType;
/** /**
* 客户ID * 客户ID
*/ */

126
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubmitAuditFormDTO.java

@ -0,0 +1,126 @@
package com.epmet.dto.form;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/14 16:37
*/
@Data
public class SubmitAuditFormDTO implements Serializable {
private static final long serialVersionUID = -2136272127561529025L;
/**
* 上传代码ID
*/
private String codeId;
/**
* 小程序版本说明和功能解释
*/
private String versionDesc;
/**
* 反馈内容至多 200
*/
private String feedbackInfo;
/**
* | 分割的 media_id 列表至多 5 张图片, 可以通过新增临时素材接口上传而得到
*/
private String feedbackStuff;
/**
* 审核项列表选填至多填写 5
*/
private List<ItemListBean> itemList;
/**
* 预览信息小程序页面截图和操作录屏
*/
private List<PreviewInfoBean> previewInfo;
/**
* 用户生成内容场景UGC信息安全声明
*/
private List<UgcDeclareBean> ugcDeclare;
@NoArgsConstructor
@Data
private static class ItemListBean {
/**
* 小程序的页面可通过获取小程序的页面列表接口获得
*/
private String address;
/**
* 小程序的标签用空格分隔标签至多 10 标签长度至多 20
*/
private String tag;
/**
* 一级类目名称
*/
private String firstClass;
/**
* 二级类目名称
*/
private String secondClass;
/**
* 三级类目名称
*/
private String thirdClass;
/**
* 一级类目的 ID
*/
private String firstId;
/**
* 二级类目的 ID
*/
private String secondId;
/**
* 三级类目的 ID
*/
private String thirdId;
/**
* 小程序页面的标题,标题长度至多 32
*/
private String title;
}
@NoArgsConstructor
@Data
private static class PreviewInfoBean {
/**
* 录屏mediaid列表可以通过提审素材上传接口获得
*/
private List<String> videoIdList;
/**
* 截屏mediaid列表可以通过提审素材上传接口获得
*/
private List<String> picIdList;
}
@NoArgsConstructor
@Data
private static class UgcDeclareBean {
/**
* UGC场景 0,不涉及用户生成内容, 1.用户资料,2.图片,3.视频,4.文本,5其他, 可多选,当scene填0时无需填写下列字段
*/
private List<Integer> scene;
/**
* 当scene选其他时的说明,不超时256字
*/
private String otherSceneDesc;
/**
* 内容安全机制 1.使用平台建议的内容安全API,2.使用其他的内容审核产品,3.通过人工审核把关,4.未做内容审核把关
*/
private List<Integer> method;
/**
* 是否有审核团队, 0.,1.,默认0
*/
private Integer hasAuditTeam;
/**
* 说明当前对UGC内容的审核机制,不超过256字
*/
private String auditDesc;
}
}

46
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/UploadListFormDTO.java

@ -0,0 +1,46 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/14 15:57
*/
@NoArgsConstructor
@Data
public class UploadListFormDTO implements Serializable {
private static final long serialVersionUID = 5733465036099223190L;
/**
* 客户ID
*/
private String customerId;
/**
* 小程序类型 居民端resi工作端work
*/
private String clientType;
/**
* 状态
*/
private String status;
/**
* 开始时间
*/
private String startTime;
/**
* 结束时间
*/
private String endTime;
/**
* 页数
*/
private Integer page;
/**
* 页面条数
*/
private Integer limit;
}

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

@ -0,0 +1,34 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/14 15:22
*/
@NoArgsConstructor
@Data
public class TemplateListResultDTO implements Serializable {
private static final long serialVersionUID = -5545336708096791516L;
/**
* 模板 id
*/
private String templateId;
/**
* 模板描述
*/
private String userDesc;
/**
* 模板版本号
*/
private String userVersion;
/**
* 模板创建时间yyyy-mm-dd
*/
private String createTime;
}

62
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/UploadListResultDTO.java

@ -0,0 +1,62 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/14 16:20
*/
@NoArgsConstructor
@Data
public class UploadListResultDTO implements Serializable {
private static final long serialVersionUID = -8110308954072076978L;
/**
* 代码ID
*/
private String id;
/**
* 客户名
*/
private String customerId;
/**
* 客户名
*/
private String customerName;
/**
* 居民端resi 工作端work
*/
private String clientType;
/**
* 代码描述
*/
private String codeInfo;
/**
* 版本号
*/
private String version;
/**
* 状态 未审核:unaudited审核中:auditing审核成功audit_success审核被拒绝audit_failed已撤回:withdrawn审核延后:delay发布成功release_success, 发布失败release_failed
*/
private String status;
/**
* 上传时间
*/
private String uploadTime;
/**
* 审核ID
*/
private String auditId;
/**
* 小程序APP ID
*/
private String appId;
/**
* 提交审核时间
*/
private String auditTime;
}

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

@ -129,6 +129,12 @@
<version>2.0.0</version> <version>2.0.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>oper-crm-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

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

@ -0,0 +1,49 @@
package com.epmet.constant;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/15 14:39
*/
public interface CodeConstant {
/**
* 居民端
*/
String RESI = "resi";
/**
* 工作端
*/
String WORK = "work";
/**
* 未审核
*/
String UNAUDITED = "unaudited";
/**
* 审核中
*/
String AUDITING = "auditing";
/**
* 审核成功
*/
String AUDIT_SUCCESS = "audit_success";
/**
* 审核被拒绝
*/
String AUDIT_FAILED = "audit_failed";
/**
* 已撤回
*/
String WITHDRAWN = "withdrawn";
/**
* 审核延后
*/
String DELAY = "delay";
/**
* 发布成功
*/
String RELEASE_SUCCESS = "release_success";
/**
* 发布失败
*/
String RELEASE_FAILED = "release_failed";
}

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

@ -1,12 +1,20 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.CodeCommonFormDTO;
import com.epmet.dto.form.CodeUploadFormDTO; 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 oracle.jdbc.proxy.annotation.Post;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* @author zhaoqifeng * @author zhaoqifeng
* @dscription 代码管理 * @dscription 代码管理
@ -16,15 +24,62 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("code") @RequestMapping("code")
public class CodeController { public class CodeController {
/**
* 获取代码模板列表
* @author zhaoqifeng
* @date 2020/7/14 15:10
* @return com.epmet.commons.tools.utils.Result
*/
@PostMapping("templatelist")
public Result<List<TemplateListResultDTO>> templateList() {
return null;
}
/** /**
* 代码上传 * 代码上传
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/7/9 14:23 * @date 2020/7/9 14:23
* @param * @param formDTO
* @return com.epmet.commons.tools.utils.Result * @return com.epmet.commons.tools.utils.Result
*/ */
@PostMapping("upload") @PostMapping("upload")
public Result upload(@RequestBody CodeUploadFormDTO formDTO) { public Result upload(@RequestBody CodeUploadFormDTO formDTO) {
return new Result<>(); return new Result<>();
} }
/**
* 已上传代码列表
* @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<>();
}
/**
* 提交审核
* @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) {
return new 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) {
return new Result<>();
}
} }

12
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java

@ -18,6 +18,7 @@
package com.epmet.dao; package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.AuthorizationInfoDTO;
import com.epmet.dto.form.AuthorizationInfoFormDTO; import com.epmet.dto.form.AuthorizationInfoFormDTO;
import com.epmet.dto.form.AuthorizerAccessTokenFormDTO; import com.epmet.dto.form.AuthorizerAccessTokenFormDTO;
import com.epmet.dto.result.WillOverDueResultDTO; import com.epmet.dto.result.WillOverDueResultDTO;
@ -48,6 +49,17 @@ public interface AuthorizationInfoDao extends BaseDao<AuthorizationInfoEntity> {
* @param customerId * @param customerId
* @author zxc * @author zxc
*/ */
void updateOldAuthorizationInfo(@Param("customerId")String customerId);
/**
* 根据客户ID客户端类型获取授权信息
* @author zhaoqifeng
* @date 2020/7/15 14:08
* @param customerId 客户ID
* @param clientType 客户端类型
* @return com.epmet.dto.AuthorizationInfoDTO
*/
AuthorizationInfoDTO getAuthInfoByCustomer(@Param("customerId") String customerId, @Param("clientType") String clientType);
void updateOldAuthorizationInfo(@Param("customerId")String customerId,@Param("clientType")String clientType); void updateOldAuthorizationInfo(@Param("customerId")String customerId,@Param("clientType")String clientType);
/** /**

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

@ -18,6 +18,7 @@
package com.epmet.dao; package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CodeAuditResultDTO;
import com.epmet.entity.CodeAuditResultEntity; import com.epmet.entity.CodeAuditResultEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -30,6 +31,14 @@ import org.apache.ibatis.annotations.Param;
*/ */
@Mapper @Mapper
public interface CodeAuditResultDao extends BaseDao<CodeAuditResultEntity> { public interface CodeAuditResultDao extends BaseDao<CodeAuditResultEntity> {
/**
* 获取审核结果信息
* @author zhaoqifeng
* @date 2020/7/15 17:10
* @param codeId
* @return com.epmet.dto.CodeAuditResultDTO
*/
CodeAuditResultDTO selectAuditResultByCodeId(@Param("codeId") String codeId);
/** /**
* @Description 更新 代码审核结果中的审核状态 * @Description 更新 代码审核结果中的审核状态

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

@ -18,12 +18,16 @@
package com.epmet.dao; package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.UploadListFormDTO;
import com.epmet.dto.result.UploadListResultDTO;
import com.epmet.dto.form.CodeAuditRecordFormDTO; import com.epmet.dto.form.CodeAuditRecordFormDTO;
import com.epmet.dto.result.TemplateAndAppIdResultDTO; import com.epmet.dto.result.TemplateAndAppIdResultDTO;
import com.epmet.entity.CodeCustomerEntity; import com.epmet.entity.CodeCustomerEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 客户代码关联表 * 客户代码关联表
* *
@ -32,6 +36,15 @@ import org.apache.ibatis.annotations.Param;
*/ */
@Mapper @Mapper
public interface CodeCustomerDao extends BaseDao<CodeCustomerEntity> { public interface CodeCustomerDao extends BaseDao<CodeCustomerEntity> {
/**
* 获取上传代码列表
*
* @param formDTO
* @return java.util.List<com.epmet.dto.result.UploadListResultDTO>
* @author zhaoqifeng
* @date 2020/7/15 15:22
*/
List<UploadListResultDTO> selectCodeList(UploadListFormDTO formDTO);
/** /**
* @Description 根据客户id和客户端类型获取 代码模板ID和授权方AppId * @Description 根据客户id和客户端类型获取 代码模板ID和授权方AppId

8
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/ComponentAccessTokenDao.java

@ -61,4 +61,12 @@ public interface ComponentAccessTokenDao extends BaseDao<ComponentAccessTokenEnt
*/ */
Integer selectWillOverTokenCount(); Integer selectWillOverTokenCount();
/**
* 获取Component Access Token
* @author zhaoqifeng
* @date 2020/7/15 10:00
* @return java.lang.String
*/
String getComponentAccessToken();
} }

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

@ -63,4 +63,9 @@ public class CodeAuditResultEntity extends BaseEpmetEntity {
*/ */
private String reason; private String reason;
/**
* 当审核被拒绝时会返回审核失败的小程序截图示例 | 分隔的 media_id 的列表
*/
private String screenShot;
} }

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

@ -48,11 +48,6 @@ public class CodeCustomerEntity extends BaseEpmetEntity {
*/ */
private String customerName; private String customerName;
/**
* 小程序接口调用令牌ID
*/
private String accessTokenId;
/** /**
* 模板ID * 模板ID
*/ */
@ -61,7 +56,7 @@ public class CodeCustomerEntity extends BaseEpmetEntity {
/** /**
* 小程序类型 居民端resi,工作端work * 小程序类型 居民端resi,工作端work
*/ */
private String type; private String clientType;
/** /**
* APPID * APPID

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

@ -92,4 +92,14 @@ public interface CodeAuditResultService extends BaseService<CodeAuditResultEntit
* @date 2020-07-09 * @date 2020-07-09
*/ */
void delete(String[] ids); void delete(String[] ids);
/**
* 获取审核结果信息
*
* @param codeId
* @return com.epmet.dto.CodeAuditResultDTO
* @author zhaoqifeng
* @date 2020/7/15 17:13
*/
CodeAuditResultDTO getAuditResultByCodeId(String codeId);
} }

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

@ -20,6 +20,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.CodeCustomerDTO; import com.epmet.dto.CodeCustomerDTO;
import com.epmet.dto.form.UploadListFormDTO;
import com.epmet.entity.CodeCustomerEntity; import com.epmet.entity.CodeCustomerEntity;
import java.util.List; import java.util.List;
@ -92,4 +93,13 @@ public interface CodeCustomerService extends BaseService<CodeCustomerEntity> {
* @date 2020-07-09 * @date 2020-07-09
*/ */
void delete(String[] ids); void delete(String[] ids);
/**
* 获取上传代码列表
* @author zhaoqifeng
* @date 2020/7/15 15:14
* @param formDTO
* @return com.epmet.commons.tools.page.PageData
*/
PageData getCodeList(UploadListFormDTO formDTO);
} }

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

@ -1,5 +1,13 @@
package com.epmet.service; package com.epmet.service;
import com.epmet.commons.tools.page.PageData;
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 java.util.List; import java.util.List;
/** /**
@ -9,4 +17,49 @@ import java.util.List;
*/ */
public interface CodeService { public interface CodeService {
/**
* 获取代码模板列表
*
* @return java.util.List < com.epmet.dto.result.TemplateListResultDTO>
* @author zhaoqifeng
* @date 2020/7/14 18:15
*/
List<TemplateListResultDTO> templateList();
/**
* 代码上传
*
* @param formDTO
* @author zhaoqifeng
* @date 2020/7/14 18:15
*/
void upload(CodeUploadFormDTO formDTO);
/**
* 已上传代码列表
*
* @param formDTO
* @return java.util.List < com.epmet.dto.result.UploadListResultDTO>
* @author zhaoqifeng
* @date 2020/7/14 18:15
*/
PageData uploadList(UploadListFormDTO formDTO);
/**
* 提交审核
*
* @param formDTO
* @author zhaoqifeng
* @date 2020/7/14 18:15
*/
void submitAudit(SubmitAuditFormDTO formDTO);
/**
* 审核撤回
*
* @param formDTO
* @author zhaoqifeng
* @date 2020/7/14 18:15
*/
void undo(CodeCommonFormDTO formDTO);
} }

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

@ -101,4 +101,9 @@ public class CodeAuditResultServiceImpl extends BaseServiceImpl<CodeAuditResultD
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
} }
@Override
public CodeAuditResultDTO getAuditResultByCodeId(String codeId) {
return baseDao.selectAuditResultByCodeId(codeId);
}
} }

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

@ -25,9 +25,13 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.CodeCustomerDao; import com.epmet.dao.CodeCustomerDao;
import com.epmet.dto.CodeCustomerDTO; import com.epmet.dto.CodeCustomerDTO;
import com.epmet.dto.form.UploadListFormDTO;
import com.epmet.dto.result.UploadListResultDTO;
import com.epmet.entity.CodeCustomerEntity; import com.epmet.entity.CodeCustomerEntity;
import com.epmet.redis.CodeCustomerRedis; import com.epmet.redis.CodeCustomerRedis;
import com.epmet.service.CodeCustomerService; import com.epmet.service.CodeCustomerService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -101,4 +105,12 @@ public class CodeCustomerServiceImpl extends BaseServiceImpl<CodeCustomerDao, Co
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
} }
@Override
public PageData getCodeList(UploadListFormDTO formDTO) {
PageHelper.startPage(formDTO.getPage(), formDTO.getLimit());
List<UploadListResultDTO> list = baseDao.selectCodeList(formDTO);
PageInfo<UploadListResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
} }

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

@ -1,9 +1,38 @@
package com.epmet.service.impl; package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.CodeConstant;
import com.epmet.dao.AuthorizationInfoDao;
import com.epmet.dao.ComponentAccessTokenDao;
import com.epmet.dto.AuthorizationInfoDTO;
import com.epmet.dto.CodeAuditResultDTO;
import com.epmet.dto.CodeCustomerDTO;
import com.epmet.dto.CustomerDTO;
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.feign.OperCrmOpenFeignClient;
import com.epmet.service.CodeAuditResultService;
import com.epmet.service.CodeCustomerService;
import com.epmet.service.CodeService; import com.epmet.service.CodeService;
import me.chanjar.weixin.common.error.WxErrorException; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq;
import com.epmet.wxapi.param.WxMaCodeCommitReq;
import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest;
import com.epmet.wxapi.result.WxMaAuditStatusResult;
import com.epmet.wxapi.result.WxMaTemplateResult;
import com.epmet.wxapi.result.WxResult;
import com.epmet.wxapi.service.WxMaCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -14,4 +43,137 @@ import java.util.List;
@Service @Service
public class CodeServiceImpl implements CodeService { public class CodeServiceImpl implements CodeService {
@Autowired
private WxMaCodeService wxMaCodeService;
@Autowired
private ComponentAccessTokenDao componentAccessTokenDao;
@Autowired
private AuthorizationInfoDao authorizationInfoDao;
@Autowired
private CodeCustomerService codeCustomerService;
@Autowired
private OperCrmOpenFeignClient operCrmOpenFeignClient;
@Autowired
private CodeAuditResultService codeAuditResultService;
@Override
public List<TemplateListResultDTO> templateList() {
List<TemplateListResultDTO> resultList = new ArrayList<>();
//获取COMPONENT_ACCESS_TOKEN
String accessToken = componentAccessTokenDao.getComponentAccessToken();
//调用微信API获取模板列表
WxResult<List<WxMaTemplateResult>> wxResult = wxMaCodeService.getTemplateList(accessToken);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
if (null == wxResult.getData() || wxResult.getData().size() == NumConstant.ZERO) {
return resultList;
}
wxResult.getData().forEach(temp -> {
TemplateListResultDTO dto = new TemplateListResultDTO();
dto.setTemplateId(temp.getTemplateId());
dto.setUserVersion(temp.getUserVersion());
dto.setUserDesc(temp.getUserDesc());
dto.setCreateTime(DateUtils.formatTimestamp(temp.getCreateTime(), DateUtils.DATE_PATTERN));
resultList.add(dto);
});
return resultList;
}
@Override
public void upload(CodeUploadFormDTO formDTO) {
//获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
if (null == authInfo) {
throw new RenException("未授权");
}
//TODO 获取第三方自定义配置
String extJson = "{}";
WxMaCodeCommitReq request = ConvertUtils.sourceToTarget(formDTO, WxMaCodeCommitReq.class);
request.setExtJson(extJson);
//调用微信API上传代码
WxResult wxResult = wxMaCodeService.commit(authInfo.getAuthorizerAccessToken(), request);
//上传失败,抛出异常
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
//获取客户信息
CustomerDTO customerDTO = new CustomerDTO();
customerDTO.setId(formDTO.getCustomerId());
Result<CustomerDTO> customerInfo = operCrmOpenFeignClient.getCustomerInfo(customerDTO);
if (!customerInfo.success()) {
throw new RenException(customerInfo.getCode(), customerInfo.getMsg());
}
//TODO 将之前上传信息删除
//将上传信息存入表中
CodeCustomerDTO codeCustomerDTO = ConvertUtils.sourceToTarget(formDTO, CodeCustomerDTO.class);
codeCustomerDTO.setCustomerName(customerInfo.getData().getCustomerName());
codeCustomerDTO.setExtJson(extJson);
codeCustomerDTO.setStatus(CodeConstant.UNAUDITED);
codeCustomerService.save(codeCustomerDTO);
}
@Override
public PageData uploadList(UploadListFormDTO formDTO) {
//TODO 更新审核状态
return codeCustomerService.getCodeList(formDTO);
}
@Override
public void submitAudit(SubmitAuditFormDTO formDTO) {
//获取上传代码信息
CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId());
//获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
//调用微信API上提交审核
WxMaCodeSubmitAuditRequest request = ConvertUtils.sourceToTarget(formDTO, WxMaCodeSubmitAuditRequest.class);
WxResult<String> wxResult = wxMaCodeService.submitAudit(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
//将数据存入代码审核表
CodeAuditResultDTO codeAuditResultDTO = new CodeAuditResultDTO();
codeAuditResultDTO.setCustomerId(codeCustomerDTO.getCustomerId());
codeAuditResultDTO.setCodeId(codeCustomerDTO.getId());
codeAuditResultDTO.setAuditId(wxResult.getData());
codeAuditResultDTO.setResult(CodeConstant.AUDITING);
codeAuditResultService.save(codeAuditResultDTO);
//更新代码表状态
codeCustomerDTO.setStatus(CodeConstant.AUDITING);
codeCustomerService.update(codeCustomerDTO);
}
@Override
public void undo(CodeCommonFormDTO formDTO) {
//获取上传代码信息
CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId());
//获取审核结果信息
CodeAuditResultDTO codeAuditResultDTO = codeAuditResultService.getAuditResultByCodeId(formDTO.getCodeId());
//获取小程序调用令牌
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType());
//调用微信API获取最新审核状态
WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq();
request.setAuditId(codeAuditResultDTO.getAuditId());
WxResult<WxMaAuditStatusResult> wxAuditResult = wxMaCodeService.getAuditStatus(authInfo.getAuthorizerAccessToken(), request);
if (!wxAuditResult.success() ) {
throw new RenException(wxAuditResult.getErrorCode(), wxAuditResult.getErrorMsg());
}
if (wxAuditResult.getData().getStatus() != NumConstant.TWO) {
throw new RenException("该条记录状态已不是审核中,无法撤回");
}
//调用微信API撤销审核
WxResult wxResult = wxMaCodeService.undoCodeAudit(authInfo.getAuthorizerAccessToken());
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
//更新审核结果
codeAuditResultDTO.setResult(CodeConstant.WITHDRAWN);
codeAuditResultService.update(codeAuditResultDTO);
//更新代码表状态
codeCustomerDTO.setStatus(CodeConstant.WITHDRAWN);
codeCustomerService.update(codeCustomerDTO);
}
} }

6
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaAuditStatusResult.java

@ -15,7 +15,7 @@ public class WxMaAuditStatusResult implements Serializable {
/** /**
* 返回码 * 返回码
*/ */
private String errcode; private Integer errcode;
/** /**
* 错误信息 * 错误信息
*/ */
@ -33,4 +33,8 @@ public class WxMaAuditStatusResult implements Serializable {
*/ */
private String screenshot; private String screenshot;
public boolean success(){
return errcode == 0;
}
} }

32
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateListResult.java

@ -0,0 +1,32 @@
package com.epmet.wxapi.result;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/15 10:22
*/
@Data
public class WxMaTemplateListResult implements Serializable {
private static final long serialVersionUID = -331693492663419441L;
/**
* 返回码
*/
@SerializedName("errcode")
private Integer errCode;
/**
* 错误信息
*/
@SerializedName("errmsg")
private String errMsg;
/**
* 模板信息列表
*/
@SerializedName("template_list")
private List<WxMaTemplateResult> templateList;
}

36
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateResult.java

@ -0,0 +1,36 @@
package com.epmet.wxapi.result;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/7/15 10:24
*/
@Data
public class WxMaTemplateResult implements Serializable {
private static final long serialVersionUID = 5770192375722597547L;
/**
* 模板 id
*/
@SerializedName("template_id")
private String templateId;
/**
* 模板版本号开发者自定义字段
*/
@SerializedName("user_version")
private String userVersion;
/**
* 模板描述开发者自定义字段
*/
@SerializedName("user_desc")
private String userDesc;
/**
* 被添加为模板的时间
*/
@SerializedName("create_time")
private Long createTime;
}

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

@ -1,12 +1,11 @@
package com.epmet.wxapi.service; package com.epmet.wxapi.service;
import com.epmet.wxapi.param.WxMaCodeAuditStatus;
import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq;
import com.epmet.wxapi.param.WxMaCodeCommitReq; import com.epmet.wxapi.param.WxMaCodeCommitReq;
import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest; import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest;
import com.epmet.wxapi.result.WxMaCategoryResult; import com.epmet.wxapi.result.WxMaAuditStatusResult;
import com.epmet.wxapi.result.WxMaTemplateResult;
import com.epmet.wxapi.result.WxResult; import com.epmet.wxapi.result.WxResult;
import me.chanjar.weixin.common.error.WxErrorException;
import java.util.List; import java.util.List;
@ -18,27 +17,38 @@ import java.util.List;
* @date 2020/7/10 11:21 * @date 2020/7/10 11:21
*/ */
public interface WxMaCodeService { public interface WxMaCodeService {
/** /**
* 为授权的小程序帐号上传小程序代码仅仅支持第三方开放平台. * 获取代码模板列表
*
* @param accessToken
* @return com.epmet.wxapi.result.WxResult
* @author zhaoqifeng * @author zhaoqifeng
* @date 2020/7/10 14:11 * @date 2020/7/15 10:20
*/
WxResult<List<WxMaTemplateResult>> getTemplateList(String accessToken);
/**
* 为授权的小程序帐号上传小程序代码仅仅支持第三方开放平台.
*
* @param accessToken 小程序接口调用令牌 * @param accessToken 小程序接口调用令牌
* @param commitRequest 请求参数 * @param commitRequest 请求参数
* @return com.epmet.wxapi.result.WxResult * @return com.epmet.wxapi.result.WxResult
* @throws WxErrorException 上传失败时抛出具体错误码请看类注释文档 * @author zhaoqifeng
* @date 2020/7/10 14:11
*/ */
WxResult commit(String accessToken, WxMaCodeCommitReq commitRequest) throws WxErrorException; WxResult commit(String accessToken, WxMaCodeCommitReq commitRequest);
/** /**
* 获取体验小程序的体验二维码. * 获取体验小程序的体验二维码.
* @author zhaoqifeng *
* @date 2020/7/10 15:25
* @param accessToken 小程序接口调用令牌 * @param accessToken 小程序接口调用令牌
* @param path 指定体验版二维码跳转到某个具体页面 * @param path 指定体验版二维码跳转到某个具体页面
* @return com.epmet.wxapi.result.WxResult * @return com.epmet.wxapi.result.WxResult
* @throws WxErrorException 抛出异常 * @author zhaoqifeng
* @date 2020/7/10 15:25
*/ */
WxResult getQrCode(String accessToken, String path) throws WxErrorException; WxResult getQrCode(String accessToken, String path);
/** /**
* 获取授权小程序帐号的可选类目. * 获取授权小程序帐号的可选类目.
@ -63,15 +73,16 @@ public interface WxMaCodeService {
* @param auditRequest 提交审核参数 * @param auditRequest 提交审核参数
* @return 审核编号 * @return 审核编号
*/ */
WxResult submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest); WxResult<String> submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest);
/** /**
* 查询指定版本审核状态仅供第三方代小程序调用. * 查询指定版本审核状态仅供第三方代小程序调用.
* *
* @param accessToken 提交审核参数 * @param accessToken 提交审核参数
* @param request 提交审核参数
* @return 审核状态 * @return 审核状态
*/ */
WxResult getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request); WxResult<WxMaAuditStatusResult> getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request);
/** /**
* 发布已通过审核的小程序仅供第三方代小程序调用. * 发布已通过审核的小程序仅供第三方代小程序调用.
@ -89,4 +100,8 @@ public interface WxMaCodeService {
* @return 撤回结果 * @return 撤回结果
*/ */
WxResult undoCodeAudit(String accessToken); WxResult undoCodeAudit(String accessToken);
//TODO 设置服务器域名
//TODO 设置业务域名
} }

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

@ -1,11 +1,9 @@
package com.epmet.wxapi.service.impl; package com.epmet.wxapi.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.wxapi.constant.WxMaCodeConstant; import com.epmet.wxapi.constant.WxMaCodeConstant;
import com.epmet.wxapi.param.WxMaCodeAuditStatus;
import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq;
import com.epmet.wxapi.param.WxMaCodeCommitReq; import com.epmet.wxapi.param.WxMaCodeCommitReq;
import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest; import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest;
@ -13,16 +11,12 @@ import com.epmet.wxapi.result.*;
import com.epmet.wxapi.service.WxMaCodeService; import com.epmet.wxapi.service.WxMaCodeService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import io.micrometer.core.instrument.util.JsonUtils;
import lombok.Data;
import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -37,11 +31,29 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
private static final String ERR_MSG = "errmsg"; private static final String ERR_MSG = "errmsg";
@Override @Override
public WxResult commit(String accessToken, WxMaCodeCommitReq commitRequest) throws WxErrorException { public WxResult<List<WxMaTemplateResult>> getTemplateList(String accessToken) {
WxResult<List<WxMaTemplateResult>> result = new WxResult<>();
String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken;
Result<String> templateListResult = HttpClientManager.getInstance().sendGet(url, null);
if (!templateListResult.success()) {
result.setErrorCode(templateListResult.getCode());
result.setErrorMsg(templateListResult.getMsg());
return result;
}
Gson gson = new Gson();
WxMaTemplateListResult templateList = new Gson().fromJson(templateListResult.getData(), WxMaTemplateListResult.class);
result.setErrorCode(templateList.getErrCode());
result.setErrorMsg(templateList.getErrMsg());
result.setData(templateList.getTemplateList());
return result;
}
@Override
public WxResult commit(String accessToken, WxMaCodeCommitReq commitRequest) {
WxResult result = new WxResult(); WxResult result = new WxResult();
String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken; String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken;
Result<String> commitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(commitRequest)); Result<String> commitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(commitRequest));
if(!commitResult.success()) { if (!commitResult.success()) {
result.setErrorCode(commitResult.getCode()); result.setErrorCode(commitResult.getCode());
result.setErrorMsg(commitResult.getMsg()); result.setErrorMsg(commitResult.getMsg());
return result; return result;
@ -53,7 +65,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
} }
@Override @Override
public WxResult getQrCode(String accessToken, String path) throws WxErrorException{ public WxResult getQrCode(String accessToken, String path) {
WxResult<Byte[]> result = new WxResult<>(); WxResult<Byte[]> result = new WxResult<>();
StringBuilder url = new StringBuilder(WxMaCodeConstant.GET_QRCODE_URL).append("?access_token").append(accessToken); StringBuilder url = new StringBuilder(WxMaCodeConstant.GET_QRCODE_URL).append("?access_token").append(accessToken);
if (StringUtils.isNotBlank(path)) { if (StringUtils.isNotBlank(path)) {
@ -64,7 +76,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
} }
} }
Result<Byte[]> qrCodeResult = HttpClientManager.getInstance().sendGetFile(url.toString(), null); Result<Byte[]> qrCodeResult = HttpClientManager.getInstance().sendGetFile(url.toString(), null);
if(!qrCodeResult.success()) { if (!qrCodeResult.success()) {
result.setErrorCode(qrCodeResult.getCode()); result.setErrorCode(qrCodeResult.getCode());
result.setErrorMsg(qrCodeResult.getMsg()); result.setErrorMsg(qrCodeResult.getMsg());
return result; return result;
@ -80,7 +92,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
WxResult<List<WxMaCategoryResult>> result = new WxResult<>(); WxResult<List<WxMaCategoryResult>> result = new WxResult<>();
String url = WxMaCodeConstant.GET_CATEGORY_URL + "?" + "access_token=" + accessToken; String url = WxMaCodeConstant.GET_CATEGORY_URL + "?" + "access_token=" + accessToken;
Result<String> getCategoryResult = HttpClientManager.getInstance().sendGet(url, null); Result<String> getCategoryResult = HttpClientManager.getInstance().sendGet(url, null);
if(!getCategoryResult.success()) { if (!getCategoryResult.success()) {
result.setErrorCode(getCategoryResult.getCode()); result.setErrorCode(getCategoryResult.getCode());
result.setErrorMsg(getCategoryResult.getMsg()); result.setErrorMsg(getCategoryResult.getMsg());
return result; return result;
@ -97,7 +109,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
WxResult<List<String>> result = new WxResult<>(); WxResult<List<String>> result = new WxResult<>();
String url = WxMaCodeConstant.GET_PAGE_URL + "?" + "access_token=" + accessToken; String url = WxMaCodeConstant.GET_PAGE_URL + "?" + "access_token=" + accessToken;
Result<String> getPageResult = HttpClientManager.getInstance().sendGet(url, null); Result<String> getPageResult = HttpClientManager.getInstance().sendGet(url, null);
if(!getPageResult.success()) { if (!getPageResult.success()) {
result.setErrorCode(getPageResult.getCode()); result.setErrorCode(getPageResult.getCode());
result.setErrorMsg(getPageResult.getMsg()); result.setErrorMsg(getPageResult.getMsg());
return result; return result;
@ -110,11 +122,11 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
} }
@Override @Override
public WxResult submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest) { public WxResult<String> submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest) {
WxResult result = new WxResult(); WxResult<String> result = new WxResult<>();
String url = WxMaCodeConstant.SUBMIT_AUDIT_URL + "?" + "access_token=" + accessToken; String url = WxMaCodeConstant.SUBMIT_AUDIT_URL + "?" + "access_token=" + accessToken;
Result<String> submitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(auditRequest)); Result<String> submitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(auditRequest));
if(!submitResult.success()) { if (!submitResult.success()) {
result.setErrorCode(submitResult.getCode()); result.setErrorCode(submitResult.getCode());
result.setErrorMsg(submitResult.getMsg()); result.setErrorMsg(submitResult.getMsg());
return result; return result;
@ -122,20 +134,26 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
JSONObject jsonObject = JSONObject.parseObject(submitResult.getData()); JSONObject jsonObject = JSONObject.parseObject(submitResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE)); result.setErrorCode(jsonObject.getInteger(ERR_CODE));
result.setErrorMsg(jsonObject.getString(ERR_MSG)); result.setErrorMsg(jsonObject.getString(ERR_MSG));
result.setData(jsonObject.getString("auditid"));
return result; return result;
} }
@Override @Override
public WxResult getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request) { public WxResult<WxMaAuditStatusResult> getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request) {
WxResult<WxMaAuditStatusResult> result = new WxResult<>(); WxResult<WxMaAuditStatusResult> result = new WxResult<>();
String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken; String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken;
Result<String> statusResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); Result<String> statusResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request));
if(!statusResult.success()) { if (!statusResult.success()) {
result.setErrorCode(statusResult.getCode()); result.setErrorCode(statusResult.getCode());
result.setErrorMsg(statusResult.getMsg()); result.setErrorMsg(statusResult.getMsg());
return result; return result;
} }
WxMaAuditStatusResult auditStatusResult = JSONObject.parseObject(statusResult.getData(), WxMaAuditStatusResult.class); WxMaAuditStatusResult auditStatusResult = JSONObject.parseObject(statusResult.getData(), WxMaAuditStatusResult.class);
if (!auditStatusResult.success()){
result.setErrorCode(auditStatusResult.getErrcode());
result.setErrorMsg(auditStatusResult.getErrmsg());
return result;
}
result.ok(auditStatusResult); result.ok(auditStatusResult);
return result; return result;
} }
@ -145,7 +163,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
WxResult result = new WxResult(); WxResult result = new WxResult();
String url = WxMaCodeConstant.RELEASE_URL + "?" + "access_token=" + accessToken; String url = WxMaCodeConstant.RELEASE_URL + "?" + "access_token=" + accessToken;
Result<String> releaseResult = HttpClientManager.getInstance().sendPostByJSON(url, null); Result<String> releaseResult = HttpClientManager.getInstance().sendPostByJSON(url, null);
if(!releaseResult.success()) { if (!releaseResult.success()) {
result.setErrorCode(releaseResult.getCode()); result.setErrorCode(releaseResult.getCode());
result.setErrorMsg(releaseResult.getMsg()); result.setErrorMsg(releaseResult.getMsg());
return result; return result;
@ -161,7 +179,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
WxResult result = new WxResult(); WxResult result = new WxResult();
String url = WxMaCodeConstant.UNDO_CODE_AUDIT_URL + "?" + "access_token=" + accessToken; String url = WxMaCodeConstant.UNDO_CODE_AUDIT_URL + "?" + "access_token=" + accessToken;
Result<String> undoResult = HttpClientManager.getInstance().sendGet(url, null); Result<String> undoResult = HttpClientManager.getInstance().sendGet(url, null);
if(!undoResult.success()) { if (!undoResult.success()) {
result.setErrorCode(undoResult.getCode()); result.setErrorCode(undoResult.getCode());
result.setErrorMsg(undoResult.getMsg()); result.setErrorMsg(undoResult.getMsg());
return result; return result;
@ -184,6 +202,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
WxMaCodeSubmitAuditRequest request = new WxMaCodeSubmitAuditRequest(); WxMaCodeSubmitAuditRequest request = new WxMaCodeSubmitAuditRequest();
request.setVersionDesc("aasdf"); request.setVersionDesc("aasdf");
} }
private String toJson(Object object) { private String toJson(Object object) {
GsonBuilder gsonBuilder = new GsonBuilder(); GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting(); gsonBuilder.setPrettyPrinting();

9
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml

@ -68,5 +68,14 @@
<update id="updateOldAuthorizerAccessToken"> <update id="updateOldAuthorizerAccessToken">
update authorization_info set del_flag = 1 where customer_id = #{customerId} AND client_type = #{clientType} update authorization_info set del_flag = 1 where customer_id = #{customerId} AND client_type = #{clientType}
</update> </update>
<select id="getAuthInfoByCustomer" resultType="com.epmet.dto.AuthorizationInfoDTO">
SELECT AUTHORIZER_APPID,
AUTHORIZER_ACCESS_TOKEN
FROM authorization_info
WHERE CUSTOMER_ID = #{customerId}
AND CLIENT_TYPE = #{clientType}
AND DEL_FLAG = 0
AND EXPIRES_IN_TIME > NOW()
</select>
</mapper> </mapper>

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

@ -3,6 +3,23 @@
<mapper namespace="com.epmet.dao.CodeAuditResultDao"> <mapper namespace="com.epmet.dao.CodeAuditResultDao">
<resultMap type="com.epmet.entity.CodeAuditResultEntity" id="codeAuditResultMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="codeId" column="CODE_ID"/>
<result property="auditId" column="AUDIT_ID"/>
<result property="result" column="RESULT"/>
<result property="reason" column="REASON"/>
<result property="revision" column="REVISION"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectAuditResultByCodeId" resultType="com.epmet.dto.CodeAuditResultDTO">
SELECT * FROM code_audit_result WHERE CODE_ID = #{codeId} AND DEL_FLAG = '0'
</select>
<!-- 更新 代码审核结果中的审核状态 --> <!-- 更新 代码审核结果中的审核状态 -->
<update id="updateAuditResult"> <update id="updateAuditResult">
UPDATE code_audit_result UPDATE code_audit_result

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

@ -3,6 +3,59 @@
<mapper namespace="com.epmet.dao.CodeCustomerDao"> <mapper namespace="com.epmet.dao.CodeCustomerDao">
<resultMap type="com.epmet.entity.CodeCustomerEntity" id="codeCustomerMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="customerName" column="CUSTOMER_NAME"/>
<result property="templateId" column="TEMPLATE_ID"/>
<result property="clientType" column="CLIENT_TYPE"/>
<result property="appId" column="APP_ID"/>
<result property="extJson" column="EXT_JSON"/>
<result property="userVersion" column="USER_VERSION"/>
<result property="userDesc" column="USER_DESC"/>
<result property="status" column="STATUS"/>
<result property="revision" column="REVISION"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectCodeList" resultType="com.epmet.dto.result.UploadListResultDTO" parameterType="com.epmet.dto.form.UploadListFormDTO">
SELECT
cc.ID,
cc.CUSTOMER_ID,
cc.CUSTOMER_NAME,
cc.CLIENT_TYPE,
cc.APP_ID,
cc.USER_VERSION AS "version",
cc.USER_DESC AS "codeInfo",
cc.STATUS,
DATE_FORMAT(cc.CREATED_TIME,'%Y-%m-%d') AS "uploadTime",
IFNULL(DATE_FORMAT(car.CREATED_TIME,'%Y-%m-%d'),'') AS "auditTime",
car.AUDIT_ID
FROM code_customer cc
LEFT JOIN code_audit_result car ON cc.ID = car.CODE_ID AND car.DEL_FLAG = '0'
WHERE
cc.DEL_FLAG = '0'
<if test="customerId != null and customerId.trim() != ''">
AND cc.CUSTOMER_ID = #{customerId}
</if>
<if test="clientType != null and clientType.trim() != ''">
AND cc.CLIENT_TYPE = #{clientType}
</if>
<if test="status != null and status.trim() != ''">
AND cc.STATUS = #{status}
</if>
<if test="startTime != null and startTime.trim() != ''">
AND DATE_FORMAT(cc.CREATED_TIME, '%Y-%m-%d') <![CDATA[ >= ]]> #{startTime}
</if>
<if test="endTime != null and endTime.trim() != ''">
AND DATE_FORMAT(cc.CREATED_TIME, '%Y-%m-%d') <![CDATA[ <= ]]> #{endTime}
</if>
</select>
<!-- 根据客户id和客户端类型获取 代码模板ID和授权方AppId --> <!-- 根据客户id和客户端类型获取 代码模板ID和授权方AppId -->
<select id="selectTemplateAndAppId" resultType="com.epmet.dto.result.TemplateAndAppIdResultDTO"> <select id="selectTemplateAndAppId" resultType="com.epmet.dto.result.TemplateAndAppIdResultDTO">
SELECT SELECT

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

@ -23,6 +23,13 @@
<update id="updateOldComponentAccessToken"> <update id="updateOldComponentAccessToken">
update component_access_token set del_flag = 1 update component_access_token set del_flag = 1
</update> </update>
<select id="getComponentAccessToken" resultType="java.lang.String">
SELECT
COMPONENT_ACCESS_TOKEN
FROM
component_access_token
WHERE delFlag = '0'
</select>
<!-- 查询component_access_token 数量 --> <!-- 查询component_access_token 数量 -->
<select id="selectAccessTokenCount" resultType="java.lang.Integer"> <select id="selectAccessTokenCount" resultType="java.lang.Integer">

10
epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java

@ -1,9 +1,12 @@
package com.epmet.feign; package com.epmet.feign;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerDTO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.feign.fallback.OperCrmOpenFeignClientFallback; import com.epmet.feign.fallback.OperCrmOpenFeignClientFallback;
import org.springframework.web.bind.annotation.PostMapping;
/** /**
* 本服务对外开放的API,其他服务通过引用此client调用该服务 * 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -13,4 +16,11 @@ import com.epmet.feign.fallback.OperCrmOpenFeignClientFallback;
*/ */
@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmOpenFeignClientFallback.class) @FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmOpenFeignClientFallback.class)
public interface OperCrmOpenFeignClient { public interface OperCrmOpenFeignClient {
/**
* 获取客户信息
* @param dto
* @return
*/
@PostMapping("/oper/crm/getcostomerInfo")
Result<CustomerDTO> getCustomerInfo(CustomerDTO dto);
} }

8
epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/fallback/OperCrmOpenFeignClientFallback.java

@ -1,5 +1,9 @@
package com.epmet.feign.fallback; 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.CustomerDTO;
import com.epmet.feign.OperCrmOpenFeignClient; import com.epmet.feign.OperCrmOpenFeignClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -11,4 +15,8 @@ import org.springframework.stereotype.Component;
*/ */
@Component @Component
public class OperCrmOpenFeignClientFallback implements OperCrmOpenFeignClient { public class OperCrmOpenFeignClientFallback implements OperCrmOpenFeignClient {
@Override
public Result<CustomerDTO> getCustomerInfo(CustomerDTO dto) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CRM_SERVER, "getCustomerInfo", dto);
}
} }

Loading…
Cancel
Save