From c1de901c9a2db266d501ae844589f31ed6d45b9c Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 15 Jul 2020 17:40:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/utils/DateUtils.java | 7 + .../com/epmet/dto/CodeAuditResultDTO.java | 5 + .../java/com/epmet/dto/CodeCustomerDTO.java | 7 +- .../com/epmet/dto/form/CodeCommonFormDTO.java | 23 ++ .../com/epmet/dto/form/CodeUploadFormDTO.java | 6 +- .../epmet/dto/form/SubmitAuditFormDTO.java | 126 +++++++ .../com/epmet/dto/form/UploadListFormDTO.java | 46 +++ .../dto/result/TemplateListResultDTO.java | 34 ++ .../epmet/dto/result/UploadListResultDTO.java | 62 ++++ .../epmet-third/epmet-third-server/pom.xml | 6 + .../java/com/epmet/constant/CodeConstant.java | 49 +++ .../com/epmet/controller/CodeController.java | 57 ++- .../com/epmet/dao/AuthorizationInfoDao.java | 14 +- .../com/epmet/dao/CodeAuditResultDao.java | 9 + .../java/com/epmet/dao/CodeCustomerDao.java | 13 + .../epmet/dao/ComponentAccessTokenDao.java | 10 +- .../epmet/entity/CodeAuditResultEntity.java | 5 + .../com/epmet/entity/CodeCustomerEntity.java | 7 +- .../epmet/service/CodeAuditResultService.java | 10 + .../epmet/service/CodeCustomerService.java | 10 + .../java/com/epmet/service/CodeService.java | 53 +++ .../impl/CodeAuditResultServiceImpl.java | 5 + .../service/impl/CodeCustomerServiceImpl.java | 12 + .../epmet/service/impl/CodeServiceImpl.java | 164 ++++++++- .../wxapi/result/WxMaAuditStatusResult.java | 6 +- .../wxapi/result/WxMaTemplateListResult.java | 32 ++ .../wxapi/result/WxMaTemplateResult.java | 36 ++ .../epmet/wxapi/service/WxMaCodeService.java | 149 ++++---- .../service/impl/WxMaCodeServiceImpl.java | 345 +++++++++--------- .../resources/mapper/AuthorizationInfoDao.xml | 9 + .../resources/mapper/CodeAuditResultDao.xml | 17 + .../main/resources/mapper/CodeCustomerDao.xml | 53 +++ .../mapper/ComponentAccessTokenDao.xml | 7 + .../epmet/feign/OperCrmOpenFeignClient.java | 10 + .../OperCrmOpenFeignClientFallback.java | 8 + 35 files changed, 1160 insertions(+), 252 deletions(-) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubmitAuditFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/UploadListFormDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/UploadListResultDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateListResult.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateResult.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index d0c21c4d9a..f79b22ccb5 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/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); return cale.getTime(); } + + public static String formatTimestamp(Long timestamp, String pattern) { + //设置格式 + SimpleDateFormat format = new SimpleDateFormat(pattern); + return format.format(timestamp); + } + } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java index 8068f8f07b..880e646668 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeAuditResultDTO.java +++ b/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; + /** + * 当审核被拒绝时,会返回审核失败的小程序截图示例。用 | 分隔的 media_id 的列表 + */ + private String screenShot; + /** * 乐观锁 */ diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeCustomerDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeCustomerDTO.java index 960b9035cb..2a4c2227fc 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeCustomerDTO.java +++ b/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; - /** - * 小程序接口调用令牌ID - */ - private String accessTokenId; - /** * 模板ID */ @@ -61,7 +56,7 @@ public class CodeCustomerDTO implements Serializable { /** * 小程序类型 居民端resi,工作端work */ - private String type; + private String clientType; /** * APPID diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeCommonFormDTO.java new file mode 100644 index 0000000000..083f145ba6 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeUploadFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeUploadFormDTO.java index a2740c321d..87c717603d 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/CodeUploadFormDTO.java +++ b/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 { private static final long serialVersionUID = 1295337818281424509L; - /** - * 小程序接口调用令牌ID - */ - private String accessTokenId; /** * 小程序类型 居民端resi, 工作段work */ - private String type; + private String clientType; /** * 客户ID */ diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubmitAuditFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubmitAuditFormDTO.java new file mode 100644 index 0000000000..e88d58e3f9 --- /dev/null +++ b/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 itemList; + /** + * 预览信息(小程序页面截图和操作录屏) + */ + private List previewInfo; + /** + * 用户生成内容场景(UGC)信息安全声明 + */ + private List 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 videoIdList; + /** + * 截屏mediaid列表,可以通过提审素材上传接口获得 + */ + private List picIdList; + } + + @NoArgsConstructor + @Data + private static class UgcDeclareBean { + /** + * UGC场景 0,不涉及用户生成内容, 1.用户资料,2.图片,3.视频,4.文本,5其他, 可多选,当scene填0时无需填写下列字段 + */ + private List scene; + /** + * 当scene选其他时的说明,不超时256字 + */ + private String otherSceneDesc; + /** + * 内容安全机制 1.使用平台建议的内容安全API,2.使用其他的内容审核产品,3.通过人工审核把关,4.未做内容审核把关 + */ + private List method; + /** + * 是否有审核团队, 0.无,1.有,默认0 + */ + private Integer hasAuditTeam; + /** + * 说明当前对UGC内容的审核机制,不超过256字 + */ + private String auditDesc; + } +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/UploadListFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/UploadListFormDTO.java new file mode 100644 index 0000000000..64f3483f55 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateListResultDTO.java new file mode 100644 index 0000000000..083ca650d9 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/UploadListResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/UploadListResultDTO.java new file mode 100644 index 0000000000..82d88b084a --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 8bef743d41..715510f67d 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -129,6 +129,12 @@ 2.0.0 compile + + com.epmet + oper-crm-client + 2.0.0 + compile + diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java new file mode 100644 index 0000000000..6089c8b936 --- /dev/null +++ b/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"; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java index 1e97bf9ab1..59eef94f35 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeController.java @@ -1,12 +1,20 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CodeCommonFormDTO; import com.epmet.dto.form.CodeUploadFormDTO; +import com.epmet.dto.form.SubmitAuditFormDTO; +import com.epmet.dto.form.UploadListFormDTO; +import com.epmet.dto.result.TemplateListResultDTO; +import com.epmet.dto.result.UploadListResultDTO; +import oracle.jdbc.proxy.annotation.Post; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @author zhaoqifeng * @dscription 代码管理 @@ -16,15 +24,62 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("code") public class CodeController { + /** + * 获取代码模板列表 + * @author zhaoqifeng + * @date 2020/7/14 15:10 + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("templatelist") + public Result> templateList() { + return null; + } + /** * 代码上传 * @author zhaoqifeng * @date 2020/7/9 14:23 - * @param + * @param formDTO * @return com.epmet.commons.tools.utils.Result */ @PostMapping("upload") public Result upload(@RequestBody CodeUploadFormDTO formDTO) { return new Result<>(); } + + /** + * 已上传代码列表 + * @author zhaoqifeng + * @date 2020/7/14 16:30 + * @param formDTO + * @return com.epmet.commons.tools.utils.Result> + */ + @PostMapping("uploadlist") + public Result> 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<>(); + } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java index 4608b0a04a..3e98b5a623 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.AuthorizationInfoDTO; import com.epmet.dto.form.AuthorizationInfoFormDTO; import com.epmet.dto.form.AuthorizerAccessTokenFormDTO; import com.epmet.dto.result.WillOverDueResultDTO; @@ -48,6 +49,17 @@ public interface AuthorizationInfoDao extends BaseDao { * @param customerId * @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); /** @@ -70,5 +82,5 @@ public interface AuthorizationInfoDao extends BaseDao { * @author zxc */ void updateOldAuthorizerAccessToken(@Param("customerId")String customerId,@Param("clientType")String clientType); - + } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeAuditResultDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeAuditResultDao.java index b9cba62dd4..6ead2846d6 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeAuditResultDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeAuditResultDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CodeAuditResultDTO; import com.epmet.entity.CodeAuditResultEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -30,6 +31,14 @@ import org.apache.ibatis.annotations.Param; */ @Mapper public interface CodeAuditResultDao extends BaseDao { + /** + * 获取审核结果信息 + * @author zhaoqifeng + * @date 2020/7/15 17:10 + * @param codeId + * @return com.epmet.dto.CodeAuditResultDTO + */ + CodeAuditResultDTO selectAuditResultByCodeId(@Param("codeId") String codeId); /** * @Description 更新 代码审核结果中的审核状态 diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeCustomerDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeCustomerDao.java index 5d7f60d4ae..7b3e60abe3 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeCustomerDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeCustomerDao.java @@ -18,12 +18,16 @@ package com.epmet.dao; 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.result.TemplateAndAppIdResultDTO; import com.epmet.entity.CodeCustomerEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 客户代码关联表 * @@ -32,6 +36,15 @@ import org.apache.ibatis.annotations.Param; */ @Mapper public interface CodeCustomerDao extends BaseDao { + /** + * 获取上传代码列表 + * + * @param formDTO + * @return java.util.List + * @author zhaoqifeng + * @date 2020/7/15 15:22 + */ + List selectCodeList(UploadListFormDTO formDTO); /** * @Description 根据客户id和客户端类型获取 代码模板ID和授权方AppId diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/ComponentAccessTokenDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/ComponentAccessTokenDao.java index 7548335085..67d38d540c 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/ComponentAccessTokenDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/ComponentAccessTokenDao.java @@ -60,5 +60,13 @@ public interface ComponentAccessTokenDao extends BaseDao { * @date 2020-07-09 */ 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); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java index 1761ecf725..2ba332f663 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeService.java @@ -1,5 +1,13 @@ 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; /** @@ -9,4 +17,49 @@ import java.util.List; */ public interface CodeService { + /** + * 获取代码模板列表 + * + * @return java.util.List < com.epmet.dto.result.TemplateListResultDTO> + * @author zhaoqifeng + * @date 2020/7/14 18:15 + */ + List 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); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeAuditResultServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeAuditResultServiceImpl.java index 7a4a7193cc..8898ed569f 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeAuditResultServiceImpl.java +++ b/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 list = baseDao.selectCodeList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java index 728852e30c..8cf9b54571 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java +++ b/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; +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 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 java.util.ArrayList; import java.util.List; /** @@ -14,4 +43,137 @@ import java.util.List; @Service 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 templateList() { + List resultList = new ArrayList<>(); + //获取COMPONENT_ACCESS_TOKEN + String accessToken = componentAccessTokenDao.getComponentAccessToken(); + //调用微信API获取模板列表 + WxResult> 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 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 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 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); + } + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaAuditStatusResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaAuditStatusResult.java index ea39ebae7e..2b13169a46 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaAuditStatusResult.java +++ b/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; + public boolean success(){ + return errcode == 0; + } + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateListResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateListResult.java new file mode 100644 index 0000000000..513598c1d8 --- /dev/null +++ b/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 templateList; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaTemplateResult.java new file mode 100644 index 0000000000..2e5ded186b --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java index b329dabe14..60d243f62d 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java +++ b/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; -import com.epmet.wxapi.param.WxMaCodeAuditStatus; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; import com.epmet.wxapi.param.WxMaCodeCommitReq; 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 me.chanjar.weixin.common.error.WxErrorException; import java.util.List; @@ -18,75 +17,91 @@ import java.util.List; * @date 2020/7/10 11:21 */ public interface WxMaCodeService { - /** - * 为授权的小程序帐号上传小程序代码(仅仅支持第三方开放平台). - * @author zhaoqifeng - * @date 2020/7/10 14:11 - * @param accessToken 小程序接口调用令牌 - * @param commitRequest 请求参数 - * @return com.epmet.wxapi.result.WxResult - * @throws WxErrorException 上传失败时抛出,具体错误码请看类注释文档 - */ - WxResult commit(String accessToken, WxMaCodeCommitReq commitRequest) throws WxErrorException; - /** - * 获取体验小程序的体验二维码. - * @author zhaoqifeng - * @date 2020/7/10 15:25 - * @param accessToken 小程序接口调用令牌 - * @param path 指定体验版二维码跳转到某个具体页面 - * @return com.epmet.wxapi.result.WxResult - * @throws WxErrorException 抛出异常 - */ - WxResult getQrCode(String accessToken, String path) throws WxErrorException; + /** + * 获取代码模板列表 + * + * @param accessToken + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/7/15 10:20 + */ + WxResult> getTemplateList(String accessToken); - /** - * 获取授权小程序帐号的可选类目. - * - * @param accessToken 提交审核参数 - * @return List - */ - WxResult getCategory(String accessToken); + /** + * 为授权的小程序帐号上传小程序代码(仅仅支持第三方开放平台). + * + * @param accessToken 小程序接口调用令牌 + * @param commitRequest 请求参数 + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/7/10 14:11 + */ + WxResult commit(String accessToken, WxMaCodeCommitReq commitRequest); - /** - * 获取小程序的第三方提交代码的页面配置(仅供第三方开发者代小程序调用). - * - * @param accessToken 提交审核参数 - * @return page_list 页面配置列表 - */ - WxResult getPage(String accessToken); + /** + * 获取体验小程序的体验二维码. + * + * @param accessToken 小程序接口调用令牌 + * @param path 指定体验版二维码跳转到某个具体页面 + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/7/10 15:25 + */ + WxResult getQrCode(String accessToken, String path); - /** - * 将第三方提交的代码包提交审核(仅供第三方开发者代小程序调用). - * - * @param accessToken 提交审核参数 - * @param auditRequest 提交审核参数 - * @return 审核编号 - */ - WxResult submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest); + /** + * 获取授权小程序帐号的可选类目. + * + * @param accessToken 提交审核参数 + * @return List + */ + WxResult getCategory(String accessToken); - /** - * 查询指定版本审核状态(仅供第三方代小程序调用). - * - * @param accessToken 提交审核参数 - * @return 审核状态 - */ - WxResult getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request); + /** + * 获取小程序的第三方提交代码的页面配置(仅供第三方开发者代小程序调用). + * + * @param accessToken 提交审核参数 + * @return page_list 页面配置列表 + */ + WxResult getPage(String accessToken); - /** - * 发布已通过审核的小程序(仅供第三方代小程序调用). - * - * @param accessToken 提交审核参数 - * @return 发布结果 - */ - WxResult release(String accessToken); + /** + * 将第三方提交的代码包提交审核(仅供第三方开发者代小程序调用). + * + * @param accessToken 提交审核参数 + * @param auditRequest 提交审核参数 + * @return 审核编号 + */ + WxResult submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest); - /** - * 小程序审核撤回. - * 单个帐号每天审核撤回次数最多不超过1次,一个月不超过10次 - * - * @param accessToken 提交审核参数 - * @return 撤回结果 - */ - WxResult undoCodeAudit(String accessToken); + /** + * 查询指定版本审核状态(仅供第三方代小程序调用). + * + * @param accessToken 提交审核参数 + * @param request 提交审核参数 + * @return 审核状态 + */ + WxResult getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request); + + /** + * 发布已通过审核的小程序(仅供第三方代小程序调用). + * + * @param accessToken 提交审核参数 + * @return 发布结果 + */ + WxResult release(String accessToken); + + /** + * 小程序审核撤回. + * 单个帐号每天审核撤回次数最多不超过1次,一个月不超过10次 + * + * @param accessToken 提交审核参数 + * @return 撤回结果 + */ + WxResult undoCodeAudit(String accessToken); + + //TODO 设置服务器域名 + + //TODO 设置业务域名 } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java index 2ae3ff2443..41c1e17f7e 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java +++ b/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; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.Result; import com.epmet.wxapi.constant.WxMaCodeConstant; -import com.epmet.wxapi.param.WxMaCodeAuditStatus; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; import com.epmet.wxapi.param.WxMaCodeCommitReq; import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest; @@ -13,16 +11,12 @@ import com.epmet.wxapi.result.*; import com.epmet.wxapi.service.WxMaCodeService; import com.google.gson.Gson; 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.springframework.stereotype.Service; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; import java.util.List; /** @@ -33,161 +27,186 @@ import java.util.List; */ @Service public class WxMaCodeServiceImpl implements WxMaCodeService { - private static final String ERR_CODE = "errcode"; - private static final String ERR_MSG = "errmsg"; - - @Override - public WxResult commit(String accessToken, WxMaCodeCommitReq commitRequest) throws WxErrorException { - WxResult result = new WxResult(); - String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken; - Result commitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(commitRequest)); - if(!commitResult.success()) { - result.setErrorCode(commitResult.getCode()); - result.setErrorMsg(commitResult.getMsg()); - return result; - } - JSONObject jsonObject = JSONObject.parseObject(commitResult.getData()); - result.setErrorCode(jsonObject.getInteger(ERR_CODE)); - result.setErrorMsg(jsonObject.getString(ERR_MSG)); - return result; - } - - @Override - public WxResult getQrCode(String accessToken, String path) throws WxErrorException{ - WxResult result = new WxResult<>(); - StringBuilder url = new StringBuilder(WxMaCodeConstant.GET_QRCODE_URL).append("?access_token").append(accessToken); - if (StringUtils.isNotBlank(path)) { - try { - url.append("?path=").append(URLEncoder.encode(path, StandardCharsets.UTF_8.name())); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - Result qrCodeResult = HttpClientManager.getInstance().sendGetFile(url.toString(), null); - if(!qrCodeResult.success()) { - result.setErrorCode(qrCodeResult.getCode()); - result.setErrorMsg(qrCodeResult.getMsg()); - return result; - } - - result.setData(qrCodeResult.getData()); - - return result; - } - - @Override - public WxResult getCategory(String accessToken) { - WxResult> result = new WxResult<>(); - String url = WxMaCodeConstant.GET_CATEGORY_URL + "?" + "access_token=" + accessToken; - Result getCategoryResult = HttpClientManager.getInstance().sendGet(url, null); - if(!getCategoryResult.success()) { - result.setErrorCode(getCategoryResult.getCode()); - result.setErrorMsg(getCategoryResult.getMsg()); - return result; - } - WxMaGetCategoryResult categoryResult = JSONObject.parseObject(getCategoryResult.getData(), WxMaGetCategoryResult.class); - result.setErrorCode(categoryResult.getErrcode()); - result.setErrorMsg(categoryResult.getErrmsg()); - result.setData(categoryResult.getCategoryList()); - return result; - } - - @Override - public WxResult getPage(String accessToken) { - WxResult> result = new WxResult<>(); - String url = WxMaCodeConstant.GET_PAGE_URL + "?" + "access_token=" + accessToken; - Result getPageResult = HttpClientManager.getInstance().sendGet(url, null); - if(!getPageResult.success()) { - result.setErrorCode(getPageResult.getCode()); - result.setErrorMsg(getPageResult.getMsg()); - return result; - } - WxMaGetPageResult pageResult = JSONObject.parseObject(getPageResult.getData(), WxMaGetPageResult.class); - result.setErrorCode(pageResult.getErrcode()); - result.setErrorMsg(pageResult.getErrmsg()); - result.setData(pageResult.getPageList()); - return result; - } - - @Override - public WxResult submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest) { - WxResult result = new WxResult(); - String url = WxMaCodeConstant.SUBMIT_AUDIT_URL + "?" + "access_token=" + accessToken; - Result submitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(auditRequest)); - if(!submitResult.success()) { - result.setErrorCode(submitResult.getCode()); - result.setErrorMsg(submitResult.getMsg()); - return result; - } - JSONObject jsonObject = JSONObject.parseObject(submitResult.getData()); - result.setErrorCode(jsonObject.getInteger(ERR_CODE)); - result.setErrorMsg(jsonObject.getString(ERR_MSG)); - return result; - } - - @Override - public WxResult getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request) { - WxResult result = new WxResult<>(); - String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken; - Result statusResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); - if(!statusResult.success()) { - result.setErrorCode(statusResult.getCode()); - result.setErrorMsg(statusResult.getMsg()); - return result; - } - WxMaAuditStatusResult auditStatusResult = JSONObject.parseObject(statusResult.getData(), WxMaAuditStatusResult.class); - result.ok(auditStatusResult); - return result; - } - - @Override - public WxResult release(String accessToken) { - WxResult result = new WxResult(); - String url = WxMaCodeConstant.RELEASE_URL + "?" + "access_token=" + accessToken; - Result releaseResult = HttpClientManager.getInstance().sendPostByJSON(url, null); - if(!releaseResult.success()) { - result.setErrorCode(releaseResult.getCode()); - result.setErrorMsg(releaseResult.getMsg()); - return result; - } - JSONObject jsonObject = JSONObject.parseObject(releaseResult.getData()); - result.setErrorCode(jsonObject.getInteger(ERR_CODE)); - result.setErrorMsg(jsonObject.getString(ERR_MSG)); - return result; - } - - @Override - public WxResult undoCodeAudit(String accessToken) { - WxResult result = new WxResult(); - String url = WxMaCodeConstant.UNDO_CODE_AUDIT_URL + "?" + "access_token=" + accessToken; - Result undoResult = HttpClientManager.getInstance().sendGet(url, null); - if(!undoResult.success()) { - result.setErrorCode(undoResult.getCode()); - result.setErrorMsg(undoResult.getMsg()); - return result; - } - JSONObject jsonObject = JSONObject.parseObject(undoResult.getData()); - result.setErrorCode(jsonObject.getInteger(ERR_CODE)); - result.setErrorMsg(jsonObject.getString(ERR_MSG)); - return result; - } - - public static void main(String[] args) { - String url = "{\"errcode\":0,\"errmsg\":\"ok\",\"category_list\":[{\"first_class\":\"工具\",\"second_class\":\"备忘录\",\"first_id\":1,\"second_id\":2,}\n" + - "{\"first_class\":\"教育\",\"second_class\":\"学历教育\",\"third_class\":\"高等\",\"first_id\":3,\"second_id\":4,\"third_id\":5,}]}"; - WxMaGetCategoryResult video = JSONObject.parseObject(url, WxMaGetCategoryResult.class); - WxResult> result = new WxResult<>(); - result.setErrorCode(video.getErrcode()); - result.setErrorMsg(video.getErrmsg()); - result.setData(video.getCategoryList()); - System.out.println(result); - WxMaCodeSubmitAuditRequest request = new WxMaCodeSubmitAuditRequest(); - request.setVersionDesc("aasdf"); - } - private String toJson(Object object) { - GsonBuilder gsonBuilder = new GsonBuilder(); - gsonBuilder.setPrettyPrinting(); - Gson gson = gsonBuilder.create(); - return gson.toJson(object); - } + private static final String ERR_CODE = "errcode"; + private static final String ERR_MSG = "errmsg"; + + @Override + public WxResult> getTemplateList(String accessToken) { + WxResult> result = new WxResult<>(); + String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken; + Result 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(); + String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken; + Result commitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(commitRequest)); + if (!commitResult.success()) { + result.setErrorCode(commitResult.getCode()); + result.setErrorMsg(commitResult.getMsg()); + return result; + } + JSONObject jsonObject = JSONObject.parseObject(commitResult.getData()); + result.setErrorCode(jsonObject.getInteger(ERR_CODE)); + result.setErrorMsg(jsonObject.getString(ERR_MSG)); + return result; + } + + @Override + public WxResult getQrCode(String accessToken, String path) { + WxResult result = new WxResult<>(); + StringBuilder url = new StringBuilder(WxMaCodeConstant.GET_QRCODE_URL).append("?access_token").append(accessToken); + if (StringUtils.isNotBlank(path)) { + try { + url.append("?path=").append(URLEncoder.encode(path, StandardCharsets.UTF_8.name())); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + Result qrCodeResult = HttpClientManager.getInstance().sendGetFile(url.toString(), null); + if (!qrCodeResult.success()) { + result.setErrorCode(qrCodeResult.getCode()); + result.setErrorMsg(qrCodeResult.getMsg()); + return result; + } + + result.setData(qrCodeResult.getData()); + + return result; + } + + @Override + public WxResult getCategory(String accessToken) { + WxResult> result = new WxResult<>(); + String url = WxMaCodeConstant.GET_CATEGORY_URL + "?" + "access_token=" + accessToken; + Result getCategoryResult = HttpClientManager.getInstance().sendGet(url, null); + if (!getCategoryResult.success()) { + result.setErrorCode(getCategoryResult.getCode()); + result.setErrorMsg(getCategoryResult.getMsg()); + return result; + } + WxMaGetCategoryResult categoryResult = JSONObject.parseObject(getCategoryResult.getData(), WxMaGetCategoryResult.class); + result.setErrorCode(categoryResult.getErrcode()); + result.setErrorMsg(categoryResult.getErrmsg()); + result.setData(categoryResult.getCategoryList()); + return result; + } + + @Override + public WxResult getPage(String accessToken) { + WxResult> result = new WxResult<>(); + String url = WxMaCodeConstant.GET_PAGE_URL + "?" + "access_token=" + accessToken; + Result getPageResult = HttpClientManager.getInstance().sendGet(url, null); + if (!getPageResult.success()) { + result.setErrorCode(getPageResult.getCode()); + result.setErrorMsg(getPageResult.getMsg()); + return result; + } + WxMaGetPageResult pageResult = JSONObject.parseObject(getPageResult.getData(), WxMaGetPageResult.class); + result.setErrorCode(pageResult.getErrcode()); + result.setErrorMsg(pageResult.getErrmsg()); + result.setData(pageResult.getPageList()); + return result; + } + + @Override + public WxResult submitAudit(String accessToken, WxMaCodeSubmitAuditRequest auditRequest) { + WxResult result = new WxResult<>(); + String url = WxMaCodeConstant.SUBMIT_AUDIT_URL + "?" + "access_token=" + accessToken; + Result submitResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(auditRequest)); + if (!submitResult.success()) { + result.setErrorCode(submitResult.getCode()); + result.setErrorMsg(submitResult.getMsg()); + return result; + } + JSONObject jsonObject = JSONObject.parseObject(submitResult.getData()); + result.setErrorCode(jsonObject.getInteger(ERR_CODE)); + result.setErrorMsg(jsonObject.getString(ERR_MSG)); + result.setData(jsonObject.getString("auditid")); + return result; + } + + @Override + public WxResult getAuditStatus(String accessToken, WxMaCodeAuditStatusReq request) { + WxResult result = new WxResult<>(); + String url = WxMaCodeConstant.COMMIT_URL + "?" + "access_token=" + accessToken; + Result statusResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request)); + if (!statusResult.success()) { + result.setErrorCode(statusResult.getCode()); + result.setErrorMsg(statusResult.getMsg()); + return result; + } + WxMaAuditStatusResult auditStatusResult = JSONObject.parseObject(statusResult.getData(), WxMaAuditStatusResult.class); + if (!auditStatusResult.success()){ + result.setErrorCode(auditStatusResult.getErrcode()); + result.setErrorMsg(auditStatusResult.getErrmsg()); + return result; + } + result.ok(auditStatusResult); + return result; + } + + @Override + public WxResult release(String accessToken) { + WxResult result = new WxResult(); + String url = WxMaCodeConstant.RELEASE_URL + "?" + "access_token=" + accessToken; + Result releaseResult = HttpClientManager.getInstance().sendPostByJSON(url, null); + if (!releaseResult.success()) { + result.setErrorCode(releaseResult.getCode()); + result.setErrorMsg(releaseResult.getMsg()); + return result; + } + JSONObject jsonObject = JSONObject.parseObject(releaseResult.getData()); + result.setErrorCode(jsonObject.getInteger(ERR_CODE)); + result.setErrorMsg(jsonObject.getString(ERR_MSG)); + return result; + } + + @Override + public WxResult undoCodeAudit(String accessToken) { + WxResult result = new WxResult(); + String url = WxMaCodeConstant.UNDO_CODE_AUDIT_URL + "?" + "access_token=" + accessToken; + Result undoResult = HttpClientManager.getInstance().sendGet(url, null); + if (!undoResult.success()) { + result.setErrorCode(undoResult.getCode()); + result.setErrorMsg(undoResult.getMsg()); + return result; + } + JSONObject jsonObject = JSONObject.parseObject(undoResult.getData()); + result.setErrorCode(jsonObject.getInteger(ERR_CODE)); + result.setErrorMsg(jsonObject.getString(ERR_MSG)); + return result; + } + + public static void main(String[] args) { + String url = "{\"errcode\":0,\"errmsg\":\"ok\",\"category_list\":[{\"first_class\":\"工具\",\"second_class\":\"备忘录\",\"first_id\":1,\"second_id\":2,}\n" + + "{\"first_class\":\"教育\",\"second_class\":\"学历教育\",\"third_class\":\"高等\",\"first_id\":3,\"second_id\":4,\"third_id\":5,}]}"; + WxMaGetCategoryResult video = JSONObject.parseObject(url, WxMaGetCategoryResult.class); + WxResult> result = new WxResult<>(); + result.setErrorCode(video.getErrcode()); + result.setErrorMsg(video.getErrmsg()); + result.setData(video.getCategoryList()); + System.out.println(result); + WxMaCodeSubmitAuditRequest request = new WxMaCodeSubmitAuditRequest(); + request.setVersionDesc("aasdf"); + } + + private String toJson(Object object) { + GsonBuilder gsonBuilder = new GsonBuilder(); + gsonBuilder.setPrettyPrinting(); + Gson gson = gsonBuilder.create(); + return gson.toJson(object); + } } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml index 707b16d9cb..ea012b7f0a 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml @@ -68,5 +68,14 @@ update authorization_info set del_flag = 1 where customer_id = #{customerId} AND client_type = #{clientType} + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml index 888e90c40f..b880a03e60 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml @@ -3,6 +3,23 @@ + + + + + + + + + + + + + + + UPDATE code_audit_result diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml index a349160ef5..6761472660 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml @@ -3,6 +3,59 @@ + + + + + + + + + + + + + + + + + + + + SELECT + COMPONENT_ACCESS_TOKEN + FROM + component_access_token + WHERE delFlag = '0' +