From fa02441b23acc7608d32d1e98cbf3f7ef99788b6 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Thu, 16 Jul 2020 17:13:32 +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 --- ...yDTO.java => CodeOperationHistoryDTO.java} | 2 +- .../com/epmet/dto/form/CodeCommonFormDTO.java | 2 + .../dto/result/CodeHistoryResultDTO.java | 34 ++++ .../com/epmet/dto/result/QrCodeResultDTO.java | 22 +++ .../com/epmet/dto/result/ReasonResultDTO.java | 26 +++ .../java/com/epmet/constant/CodeConstant.java | 5 + .../com/epmet/controller/CodeController.java | 100 ++++++++-- ...va => CodeOperationHistoryController.java} | 32 +-- .../java/com/epmet/dao/CodeCustomerDao.java | 20 ++ ...yDao.java => CodeOperationHistoryDao.java} | 21 +- .../java/com/epmet/dao/CustomerMpDao.java | 10 + ...y.java => CodeOperationHistoryEntity.java} | 4 +- ...is.java => CodeOperationHistoryRedis.java} | 2 +- .../epmet/service/CodeCustomerService.java | 19 ++ ....java => CodeOperationHistoryService.java} | 37 +++- .../java/com/epmet/service/CodeService.java | 51 ++++- .../com/epmet/service/CustomerMpService.java | 10 + .../service/impl/CodeCustomerServiceImpl.java | 10 + ...a => CodeOperationHistoryServiceImpl.java} | 55 +++--- .../epmet/service/impl/CodeServiceImpl.java | 182 +++++++++++++++++- .../service/impl/CustomerMpServiceImpl.java | 5 + .../wxapi/constant/WxMaCodeConstant.java | 5 + .../com/epmet/wxapi/param/WxMaNewsReq.java | 20 ++ .../epmet/wxapi/result/WxMaNewsResult.java | 60 ++++++ .../epmet/wxapi/service/WxMaCodeService.java | 15 +- .../service/impl/WxMaCodeServiceImpl.java | 18 +- .../main/resources/mapper/CodeCustomerDao.xml | 12 +- .../mapper/CodeOperationHistoryDao.xml | 41 ++++ .../CustomerCodeOperationHistoryDao.xml | 22 --- .../main/resources/mapper/CustomerMpDao.xml | 10 + 30 files changed, 744 insertions(+), 108 deletions(-) rename epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/{CustomerCodeOperationHistoryDTO.java => CodeOperationHistoryDTO.java} (96%) create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeHistoryResultDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/QrCodeResultDTO.java create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java rename epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/{CustomerCodeOperationHistoryController.java => CodeOperationHistoryController.java} (62%) rename epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/{CustomerCodeOperationHistoryDao.java => CodeOperationHistoryDao.java} (60%) rename epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/{CustomerCodeOperationHistoryEntity.java => CodeOperationHistoryEntity.java} (92%) rename epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/{CustomerCodeOperationHistoryRedis.java => CodeOperationHistoryRedis.java} (96%) rename epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/{CustomerCodeOperationHistoryService.java => CodeOperationHistoryService.java} (65%) rename epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/{CustomerCodeOperationHistoryServiceImpl.java => CodeOperationHistoryServiceImpl.java} (52%) create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxMaNewsReq.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxMaNewsResult.java create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeOperationHistoryDao.xml delete mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerCodeOperationHistoryDao.xml diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CustomerCodeOperationHistoryDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeOperationHistoryDTO.java similarity index 96% rename from epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CustomerCodeOperationHistoryDTO.java rename to epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeOperationHistoryDTO.java index 9d400efb40..c668daeaea 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CustomerCodeOperationHistoryDTO.java +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/CodeOperationHistoryDTO.java @@ -29,7 +29,7 @@ import lombok.Data; * @since v1.0.0 2020-07-09 */ @Data -public class CustomerCodeOperationHistoryDTO implements Serializable { +public class CodeOperationHistoryDTO implements Serializable { private static final long serialVersionUID = 1L; 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 index 083f145ba6..e854b15992 100644 --- 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 @@ -20,4 +20,6 @@ public class CodeCommonFormDTO implements Serializable { * 代码ID */ private String codeId; + private Integer page; + private Integer limit; } diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeHistoryResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeHistoryResultDTO.java new file mode 100644 index 0000000000..1aa68a49c2 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CodeHistoryResultDTO.java @@ -0,0 +1,34 @@ +package com.epmet.dto.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/7/16 9:53 + */ +@NoArgsConstructor +@Data +public class CodeHistoryResultDTO implements Serializable { + private static final long serialVersionUID = 6030280825893585115L; + /** + * 操作时间 + */ + private String operationTime; + /** + * 版本 + */ + private String version; + /** + * 操作 上传upload,审核audit,撤回undo,发布release + */ + private String operation; + /** + * 描述 + */ + private String describe; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/QrCodeResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/QrCodeResultDTO.java new file mode 100644 index 0000000000..c33b27f8dc --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/QrCodeResultDTO.java @@ -0,0 +1,22 @@ +package com.epmet.dto.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/7/16 9:46 + */ +@NoArgsConstructor +@Data +public class QrCodeResultDTO implements Serializable { + + private static final long serialVersionUID = -1145375851106140589L; + /** + * 二维码 + */ + private Object qrcode; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java new file mode 100644 index 0000000000..82223d583a --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ReasonResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/7/16 9:28 + */ +@NoArgsConstructor +@Data +public class ReasonResultDTO implements Serializable { + private static final long serialVersionUID = -1905907350492787127L; + /** + * 失败原因 + */ + private String reason; + /** + * 失败的小程序截图url + */ + private List screenshotUrl; +} 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 index 6089c8b936..e3735ec240 100644 --- 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 @@ -46,4 +46,9 @@ public interface CodeConstant { * 发布失败 */ String RELEASE_FAILED = "release_failed"; + + String OPER_UPLOAD = "上传代码"; + String OPER_SUBMIT = "提交审核"; + String OPER_UNDO = "审核撤回"; + String OPER_RELEASE = "发布"; } 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 59eef94f35..bd79db3a9f 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,13 +1,16 @@ package com.epmet.controller; +import com.baomidou.mybatisplus.extension.api.R; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.CodeCommonFormDTO; import com.epmet.dto.form.CodeUploadFormDTO; import com.epmet.dto.form.SubmitAuditFormDTO; import com.epmet.dto.form.UploadListFormDTO; -import com.epmet.dto.result.TemplateListResultDTO; -import com.epmet.dto.result.UploadListResultDTO; +import com.epmet.dto.result.*; +import com.epmet.service.CodeService; import oracle.jdbc.proxy.annotation.Post; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,62 +27,131 @@ import java.util.List; @RequestMapping("code") public class CodeController { + @Autowired + private CodeService codeService; + /** * 获取代码模板列表 + * + * @return com.epmet.commons.tools.utils.Result * @author zhaoqifeng * @date 2020/7/14 15:10 - * @return com.epmet.commons.tools.utils.Result */ @PostMapping("templatelist") public Result> templateList() { - return null; + List list = codeService.templateList(); + return new Result>().ok(list); } /** * 代码上传 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result * @author zhaoqifeng * @date 2020/7/9 14:23 - * @param formDTO - * @return com.epmet.commons.tools.utils.Result */ @PostMapping("upload") public Result upload(@RequestBody CodeUploadFormDTO formDTO) { + codeService.upload(formDTO); return new Result<>(); } /** * 已上传代码列表 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result> * @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<>(); + public Result uploadList(@RequestBody UploadListFormDTO formDTO) { + PageData pageData = codeService.uploadList(formDTO); + return new Result().ok(pageData); } /** * 提交审核 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result * @author zhaoqifeng * @date 2020/7/14 16:40 - * @param formDTO - * @return com.epmet.commons.tools.utils.Result */ @PostMapping("audit") public Result submitAudit(@RequestBody SubmitAuditFormDTO formDTO) { + codeService.submitAudit(formDTO); return new Result<>(); } /** * 审核撤回 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result * @author zhaoqifeng * @date 2020/7/14 17:52 - * @param formDTO - * @return com.epmet.commons.tools.utils.Result */ @PostMapping("undo") public Result undo(@RequestBody CodeCommonFormDTO formDTO) { + codeService.undo(formDTO); return new Result<>(); } + + /** + * 发布 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/7/14 17:52 + */ + @PostMapping("release") + public Result release(@RequestBody CodeCommonFormDTO formDTO) { + codeService.release(formDTO); + return new Result<>(); + } + + /** + * 审核失败原因 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/7/14 17:52 + */ + @PostMapping("reason") + public Result reason(@RequestBody CodeCommonFormDTO formDTO) { + ReasonResultDTO resultDTO = codeService.reason(formDTO); + return new Result().ok(resultDTO); + } + + /** + * 获取体验版二维码 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/7/14 17:52 + */ + @PostMapping("qrcode") + public Result qrCode(@RequestBody CodeCommonFormDTO formDTO) { + QrCodeResultDTO resultDTO = codeService.qrCode(formDTO); + return new Result().ok(resultDTO); + } + + /** + * 操作历史 + * + * @param formDTO 参数 + * @return com.epmet.commons.tools.utils.Result + * @author zhaoqifeng + * @date 2020/7/16 10:16 + */ + @PostMapping("history") + public Result history(@RequestBody CodeCommonFormDTO formDTO) { + PageData result = codeService.history(formDTO); + return new Result().ok(result); + } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerCodeOperationHistoryController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeOperationHistoryController.java similarity index 62% rename from epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerCodeOperationHistoryController.java rename to epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeOperationHistoryController.java index a764889ed6..4a7fb08c98 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CustomerCodeOperationHistoryController.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/CodeOperationHistoryController.java @@ -24,8 +24,8 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; -import com.epmet.dto.CustomerCodeOperationHistoryDTO; -import com.epmet.service.CustomerCodeOperationHistoryService; +import com.epmet.dto.CodeOperationHistoryDTO; +import com.epmet.service.CodeOperationHistoryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -39,37 +39,37 @@ import java.util.Map; * @since v1.0.0 2020-07-09 */ @RestController -@RequestMapping("customercodeoperationhistory") -public class CustomerCodeOperationHistoryController { +@RequestMapping("codeoperationhistory") +public class CodeOperationHistoryController { @Autowired - private CustomerCodeOperationHistoryService customerCodeOperationHistoryService; + private CodeOperationHistoryService codeOperationHistoryService; @GetMapping("page") - public Result> page(@RequestParam Map params){ - PageData page = customerCodeOperationHistoryService.page(params); - return new Result>().ok(page); + public Result> page(@RequestParam Map params){ + PageData page = codeOperationHistoryService.page(params); + return new Result>().ok(page); } @GetMapping("{id}") - public Result get(@PathVariable("id") String id){ - CustomerCodeOperationHistoryDTO data = customerCodeOperationHistoryService.get(id); - return new Result().ok(data); + public Result get(@PathVariable("id") String id){ + CodeOperationHistoryDTO data = codeOperationHistoryService.get(id); + return new Result().ok(data); } @PostMapping - public Result save(@RequestBody CustomerCodeOperationHistoryDTO dto){ + public Result save(@RequestBody CodeOperationHistoryDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - customerCodeOperationHistoryService.save(dto); + codeOperationHistoryService.save(dto); return new Result(); } @PutMapping - public Result update(@RequestBody CustomerCodeOperationHistoryDTO dto){ + public Result update(@RequestBody CodeOperationHistoryDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - customerCodeOperationHistoryService.update(dto); + codeOperationHistoryService.update(dto); return new Result(); } @@ -77,7 +77,7 @@ public class CustomerCodeOperationHistoryController { public Result delete(@RequestBody String[] ids){ //效验数据 AssertUtils.isArrayEmpty(ids, "id"); - customerCodeOperationHistoryService.delete(ids); + codeOperationHistoryService.delete(ids); return new Result(); } 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 7b3e60abe3..60e77b7bcf 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,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CodeCustomerDTO; import com.epmet.dto.form.UploadListFormDTO; import com.epmet.dto.result.UploadListResultDTO; import com.epmet.dto.form.CodeAuditRecordFormDTO; @@ -61,4 +62,23 @@ public interface CodeCustomerDao extends BaseDao { */ String selectCodeCustomerId(CodeAuditRecordFormDTO codeAuditRecord); + /** + * 删除旧的上传记录 + * @author zhaoqifeng + * @date 2020/7/15 18:06 + * @param customerId + * @param clientType + * @return void + */ + void deleteCode(@Param("customerId") String customerId, @Param("clientType") String clientType); + + /** + * 获取审核中代码列表 + * @author zhaoqifeng + * @date 2020/7/15 18:17 + * @param + * @return java.util.List + */ + List selectAuditingCodeList(); + } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerCodeOperationHistoryDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeOperationHistoryDao.java similarity index 60% rename from epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerCodeOperationHistoryDao.java rename to epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeOperationHistoryDao.java index 63ca70fb2b..f624c2212e 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerCodeOperationHistoryDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CodeOperationHistoryDao.java @@ -18,8 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; -import com.epmet.entity.CustomerCodeOperationHistoryEntity; +import com.epmet.dto.result.CodeHistoryResultDTO; +import com.epmet.entity.CodeOperationHistoryEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 客户代码操作历史 @@ -28,6 +32,17 @@ import org.apache.ibatis.annotations.Mapper; * @since v1.0.0 2020-07-09 */ @Mapper -public interface CustomerCodeOperationHistoryDao extends BaseDao { - +public interface CodeOperationHistoryDao extends BaseDao { + + List selectHistoryList(@Param("customerId") String customerId, @Param("clientType") String clientType); + + /** + * 更新描述 + * @author zhaoqifeng + * @date 2020/7/16 16:11 + * @param codeId + * @param describe + * @return void + */ + void updateDescribeByCodeId(@Param("codeId") String codeId, @Param("describe") String describe); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java index c8609064e9..622c42b56e 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/CustomerMpDao.java @@ -81,4 +81,14 @@ public interface CustomerMpDao extends BaseDao { */ String selectClientTypeByCustomerIdAndAuthId(@Param("customerId")String customerId,@Param("authAppId")String authAppId); + /** + * 获取授权状态 + * @param customerId + * @param clientType + * @return java.lang.Boolean + * @author zhaoqifeng + * @date 2020/7/16 15:28 + */ + Boolean selectAuthFlag(@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/entity/CustomerCodeOperationHistoryEntity.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeOperationHistoryEntity.java similarity index 92% rename from epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CustomerCodeOperationHistoryEntity.java rename to epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeOperationHistoryEntity.java index e747bb57d4..fe56ddd312 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CustomerCodeOperationHistoryEntity.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/CodeOperationHistoryEntity.java @@ -33,8 +33,8 @@ import java.util.Date; */ @Data @EqualsAndHashCode(callSuper=false) -@TableName("customer_code_operation_history") -public class CustomerCodeOperationHistoryEntity extends BaseEpmetEntity { +@TableName("code_operation_history") +public class CodeOperationHistoryEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CustomerCodeOperationHistoryRedis.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CodeOperationHistoryRedis.java similarity index 96% rename from epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CustomerCodeOperationHistoryRedis.java rename to epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CodeOperationHistoryRedis.java index 247e724de9..cb698781b0 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CustomerCodeOperationHistoryRedis.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/CodeOperationHistoryRedis.java @@ -28,7 +28,7 @@ import org.springframework.stereotype.Component; * @since v1.0.0 2020-07-09 */ @Component -public class CustomerCodeOperationHistoryRedis { +public class CodeOperationHistoryRedis { @Autowired private RedisUtils redisUtils; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeCustomerService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeCustomerService.java index bfa85cc383..fc2190a39d 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeCustomerService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeCustomerService.java @@ -102,4 +102,23 @@ public interface CodeCustomerService extends BaseService { * @return com.epmet.commons.tools.page.PageData */ PageData getCodeList(UploadListFormDTO formDTO); + + /** + * 获取审核中代码列表 + * @author zhaoqifeng + * @date 2020/7/15 18:16 + * @param + * @return java.util.List + */ + List getAuditingCodeList(); + + /** + * 删除旧代码记录 + * @author zhaoqifeng + * @date 2020/7/15 18:10 + * @param customerId + * @param clientType + * @return void + */ + void deleteCode(String customerId, String clientType); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerCodeOperationHistoryService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeOperationHistoryService.java similarity index 65% rename from epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerCodeOperationHistoryService.java rename to epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeOperationHistoryService.java index 986fce9c09..7f0ba1752c 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerCodeOperationHistoryService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CodeOperationHistoryService.java @@ -19,8 +19,9 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; -import com.epmet.dto.CustomerCodeOperationHistoryDTO; -import com.epmet.entity.CustomerCodeOperationHistoryEntity; +import com.epmet.dto.CodeOperationHistoryDTO; +import com.epmet.dto.result.CodeHistoryResultDTO; +import com.epmet.entity.CodeOperationHistoryEntity; import java.util.List; import java.util.Map; @@ -31,7 +32,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2020-07-09 */ -public interface CustomerCodeOperationHistoryService extends BaseService { +public interface CodeOperationHistoryService extends BaseService { /** * 默认分页 @@ -41,7 +42,7 @@ public interface CustomerCodeOperationHistoryService extends BaseService page(Map params); + PageData page(Map params); /** * 默认查询 @@ -51,7 +52,7 @@ public interface CustomerCodeOperationHistoryService extends BaseService list(Map params); + List list(Map params); /** * 单条查询 @@ -61,7 +62,7 @@ public interface CustomerCodeOperationHistoryService extends BaseService getHistoryList(String customerId, String clientType); + + /** + * 更新描述 + * @author zhaoqifeng + * @date 2020/7/16 16:10 + * @param codeId + * @param describe + * @return void + */ + void updateDescribe(String codeId, String describe); } \ 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 2ba332f663..8c7e0c6cc5 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,12 +1,12 @@ package com.epmet.service; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.CodeCommonFormDTO; import com.epmet.dto.form.CodeUploadFormDTO; import com.epmet.dto.form.SubmitAuditFormDTO; import com.epmet.dto.form.UploadListFormDTO; -import com.epmet.dto.result.TemplateListResultDTO; -import com.epmet.dto.result.UploadListResultDTO; +import com.epmet.dto.result.*; import java.util.List; @@ -29,7 +29,7 @@ public interface CodeService { /** * 代码上传 * - * @param formDTO + * @param formDTO 参数 * @author zhaoqifeng * @date 2020/7/14 18:15 */ @@ -38,7 +38,7 @@ public interface CodeService { /** * 已上传代码列表 * - * @param formDTO + * @param formDTO 参数 * @return java.util.List < com.epmet.dto.result.UploadListResultDTO> * @author zhaoqifeng * @date 2020/7/14 18:15 @@ -48,7 +48,7 @@ public interface CodeService { /** * 提交审核 * - * @param formDTO + * @param formDTO 参数 * @author zhaoqifeng * @date 2020/7/14 18:15 */ @@ -57,9 +57,48 @@ public interface CodeService { /** * 审核撤回 * - * @param formDTO + * @param formDTO 参数 * @author zhaoqifeng * @date 2020/7/14 18:15 */ void undo(CodeCommonFormDTO formDTO); + + /** + * 发布 + * + * @param formDTO 参数 + * @author zhaoqifeng + * @date 2020/7/14 18:15 + */ + void release(CodeCommonFormDTO formDTO); + + /** + * 审核失败原因 + * + * @param formDTO 参数 + * @return com.epmet.dto.result.ReasonResultDTO + * @author zhaoqifeng + * @date 2020/7/16 9:38 + */ + ReasonResultDTO reason(CodeCommonFormDTO formDTO); + + /** + * 获取体验版二维码 + * + * @param formDTO 参数 + * @return com.epmet.dto.result.QrCodeResultDTO + * @author zhaoqifeng + * @date 2020/7/16 9:49 + */ + QrCodeResultDTO qrCode(CodeCommonFormDTO formDTO); + + /** + * 操作历史 + * + * @param formDTO 参数 + * @return com.epmet.dto.result.CodeHistoryResultDTO + * @author zhaoqifeng + * @date 2020/7/16 10:16 + */ + PageData history(CodeCommonFormDTO formDTO); } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java index ba98b8b295..cf43427f6a 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/CustomerMpService.java @@ -92,4 +92,14 @@ public interface CustomerMpService extends BaseService { * @date 2020-07-09 */ void delete(String[] ids); + + /** + * 获取授权状态 + * @author zhaoqifeng + * @date 2020/7/16 15:34 + * @param customerId + * @param clientType + * @return java.lang.Boolean + */ + Boolean getAuthFlag(String customerId, String clientType); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeCustomerServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeCustomerServiceImpl.java index 3181daebdc..f2e9d5fd4c 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeCustomerServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeCustomerServiceImpl.java @@ -113,4 +113,14 @@ public class CodeCustomerServiceImpl extends BaseServiceImpl(list, pageInfo.getTotal()); } + @Override + public List getAuditingCodeList() { + return baseDao.selectAuditingCodeList(); + } + + @Override + public void deleteCode(String customerId, String clientType) { + baseDao.deleteCode(customerId, clientType); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerCodeOperationHistoryServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeOperationHistoryServiceImpl.java similarity index 52% rename from epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerCodeOperationHistoryServiceImpl.java rename to epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeOperationHistoryServiceImpl.java index fc424619cc..c50199c644 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerCodeOperationHistoryServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeOperationHistoryServiceImpl.java @@ -23,11 +23,12 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; -import com.epmet.dao.CustomerCodeOperationHistoryDao; -import com.epmet.dto.CustomerCodeOperationHistoryDTO; -import com.epmet.entity.CustomerCodeOperationHistoryEntity; -import com.epmet.redis.CustomerCodeOperationHistoryRedis; -import com.epmet.service.CustomerCodeOperationHistoryService; +import com.epmet.dao.CodeOperationHistoryDao; +import com.epmet.dto.CodeOperationHistoryDTO; +import com.epmet.dto.result.CodeHistoryResultDTO; +import com.epmet.entity.CodeOperationHistoryEntity; +import com.epmet.redis.CodeOperationHistoryRedis; +import com.epmet.service.CodeOperationHistoryService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,53 +45,53 @@ import java.util.Map; * @since v1.0.0 2020-07-09 */ @Service -public class CustomerCodeOperationHistoryServiceImpl extends BaseServiceImpl implements CustomerCodeOperationHistoryService { +public class CodeOperationHistoryServiceImpl extends BaseServiceImpl implements CodeOperationHistoryService { @Autowired - private CustomerCodeOperationHistoryRedis customerCodeOperationHistoryRedis; + private CodeOperationHistoryRedis customerCodeOperationHistoryRedis; @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( + public PageData page(Map params) { + IPage page = baseDao.selectPage( getPage(params, FieldConstant.CREATED_TIME, false), getWrapper(params) ); - return getPageData(page, CustomerCodeOperationHistoryDTO.class); + return getPageData(page, CodeOperationHistoryDTO.class); } @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); - return ConvertUtils.sourceToTarget(entityList, CustomerCodeOperationHistoryDTO.class); + return ConvertUtils.sourceToTarget(entityList, CodeOperationHistoryDTO.class); } - private QueryWrapper getWrapper(Map params){ + private QueryWrapper getWrapper(Map params){ String id = (String)params.get(FieldConstant.ID_HUMP); - QueryWrapper wrapper = new QueryWrapper<>(); + QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); return wrapper; } @Override - public CustomerCodeOperationHistoryDTO get(String id) { - CustomerCodeOperationHistoryEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, CustomerCodeOperationHistoryDTO.class); + public CodeOperationHistoryDTO get(String id) { + CodeOperationHistoryEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, CodeOperationHistoryDTO.class); } @Override @Transactional(rollbackFor = Exception.class) - public void save(CustomerCodeOperationHistoryDTO dto) { - CustomerCodeOperationHistoryEntity entity = ConvertUtils.sourceToTarget(dto, CustomerCodeOperationHistoryEntity.class); + public void save(CodeOperationHistoryDTO dto) { + CodeOperationHistoryEntity entity = ConvertUtils.sourceToTarget(dto, CodeOperationHistoryEntity.class); insert(entity); } @Override @Transactional(rollbackFor = Exception.class) - public void update(CustomerCodeOperationHistoryDTO dto) { - CustomerCodeOperationHistoryEntity entity = ConvertUtils.sourceToTarget(dto, CustomerCodeOperationHistoryEntity.class); + public void update(CodeOperationHistoryDTO dto) { + CodeOperationHistoryEntity entity = ConvertUtils.sourceToTarget(dto, CodeOperationHistoryEntity.class); updateById(entity); } @@ -101,4 +102,14 @@ public class CustomerCodeOperationHistoryServiceImpl extends BaseServiceImpl getHistoryList(String customerId, String clientType) { + return baseDao.selectHistoryList(customerId, clientType); + } + + @Override + public void updateDescribe(String codeId, String describe) { + baseDao.updateDescribeByCodeId(codeId, describe); + } + } \ 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 8cf9b54571..db0e6dfcf1 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 @@ -9,30 +9,31 @@ 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.*; 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.*; import com.epmet.feign.OperCrmOpenFeignClient; -import com.epmet.service.CodeAuditResultService; -import com.epmet.service.CodeCustomerService; -import com.epmet.service.CodeService; +import com.epmet.service.*; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; import com.epmet.wxapi.param.WxMaCodeCommitReq; import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest; +import com.epmet.wxapi.param.WxMaNewsReq; import com.epmet.wxapi.result.WxMaAuditStatusResult; +import com.epmet.wxapi.result.WxMaNewsResult; import com.epmet.wxapi.result.WxMaTemplateResult; import com.epmet.wxapi.result.WxResult; import com.epmet.wxapi.service.WxMaCodeService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -55,6 +56,10 @@ public class CodeServiceImpl implements CodeService { private OperCrmOpenFeignClient operCrmOpenFeignClient; @Autowired private CodeAuditResultService codeAuditResultService; + @Autowired + private CustomerMpService customerMpService; + @Autowired + private CodeOperationHistoryService codeOperationHistoryService; @Override public List templateList() { @@ -81,7 +86,12 @@ public class CodeServiceImpl implements CodeService { } @Override + @Transactional(rollbackFor = Exception.class) public void upload(CodeUploadFormDTO formDTO) { + //是否授权 + if (customerMpService.getAuthFlag(formDTO.getCustomerId(), formDTO.getClientType())) { + throw new RenException("未授权"); + } //获取小程序调用令牌 AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); if (null == authInfo) { @@ -96,6 +106,7 @@ public class CodeServiceImpl implements CodeService { WxResult wxResult = wxMaCodeService.commit(authInfo.getAuthorizerAccessToken(), request); //上传失败,抛出异常 if (!wxResult.success()) { + saveOperation(formDTO.getCustomerId(), null, formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, wxResult.getErrorMsg()); throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); } //获取客户信息 @@ -105,7 +116,8 @@ public class CodeServiceImpl implements CodeService { if (!customerInfo.success()) { throw new RenException(customerInfo.getCode(), customerInfo.getMsg()); } - //TODO 将之前上传信息删除 + //将之前上传信息删除 + codeCustomerService.deleteCode(formDTO.getCustomerId(), formDTO.getClientType()); //将上传信息存入表中 CodeCustomerDTO codeCustomerDTO = ConvertUtils.sourceToTarget(formDTO, CodeCustomerDTO.class); @@ -113,11 +125,42 @@ public class CodeServiceImpl implements CodeService { codeCustomerDTO.setExtJson(extJson); codeCustomerDTO.setStatus(CodeConstant.UNAUDITED); codeCustomerService.save(codeCustomerDTO); + + saveOperation(formDTO.getCustomerId(), codeCustomerDTO.getId(), formDTO.getUserVersion(), CodeConstant.OPER_UPLOAD, "上传成功"); } @Override public PageData uploadList(UploadListFormDTO formDTO) { - //TODO 更新审核状态 + //获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); + List auditingList = codeCustomerService.getAuditingCodeList(); + auditingList.forEach(code -> { + //获取审核结果信息 + CodeAuditResultDTO auditResult = codeAuditResultService.getAuditResultByCodeId(code.getId()); + //调用微信API获取最新审核状态 + WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq(); + request.setAuditId(auditResult.getAuditId()); + WxResult wxAuditResult = wxMaCodeService.getAuditStatus(authInfo.getAuthorizerAccessToken(), request); + if (wxAuditResult.success()) { + WxMaAuditStatusResult result = wxAuditResult.getData(); + if(result.getStatus() == NumConstant.ZERO) { + code.setStatus(CodeConstant.AUDIT_SUCCESS); + auditResult.setResult(CodeConstant.AUDIT_SUCCESS); + codeOperationHistoryService.updateDescribe(code.getId(), "审核成功"); + } else if(result.getStatus() == NumConstant.ONE) { + code.setStatus(CodeConstant.AUDIT_FAILED); + auditResult.setResult(CodeConstant.AUDIT_FAILED); + auditResult.setReason(result.getReason()); + codeOperationHistoryService.updateDescribe(code.getId(), result.getReason()); + } else if(result.getStatus() == NumConstant.FOUR) { + code.setStatus(CodeConstant.DELAY); + auditResult.setResult(CodeConstant.DELAY); + codeOperationHistoryService.updateDescribe(code.getId(), "审核延后"); + } + codeCustomerService.update(code); + codeAuditResultService.update(auditResult); + } + }); return codeCustomerService.getCodeList(formDTO); } @@ -125,12 +168,18 @@ public class CodeServiceImpl implements CodeService { public void submitAudit(SubmitAuditFormDTO formDTO) { //获取上传代码信息 CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); + //是否授权 + if (customerMpService.getAuthFlag(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType())) { + throw new RenException("未授权"); + } //获取小程序调用令牌 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()) { + saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_SUBMIT, + wxResult.getErrorMsg()); throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); } //将数据存入代码审核表 @@ -143,12 +192,18 @@ public class CodeServiceImpl implements CodeService { //更新代码表状态 codeCustomerDTO.setStatus(CodeConstant.AUDITING); codeCustomerService.update(codeCustomerDTO); + saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_SUBMIT, + "审核中"); } @Override public void undo(CodeCommonFormDTO formDTO) { //获取上传代码信息 CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); + //是否授权 + if (customerMpService.getAuthFlag(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType())) { + throw new RenException("未授权"); + } //获取审核结果信息 CodeAuditResultDTO codeAuditResultDTO = codeAuditResultService.getAuditResultByCodeId(formDTO.getCodeId()); //获取小程序调用令牌 @@ -166,6 +221,8 @@ public class CodeServiceImpl implements CodeService { //调用微信API撤销审核 WxResult wxResult = wxMaCodeService.undoCodeAudit(authInfo.getAuthorizerAccessToken()); if (!wxResult.success()) { + saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_UNDO, + wxResult.getErrorMsg()); throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); } //更新审核结果 @@ -174,6 +231,111 @@ public class CodeServiceImpl implements CodeService { //更新代码表状态 codeCustomerDTO.setStatus(CodeConstant.WITHDRAWN); codeCustomerService.update(codeCustomerDTO); + //更新审核操作记录描述 + codeOperationHistoryService.updateDescribe(codeCustomerDTO.getId(), "已撤回"); + + saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_UNDO, + "成功"); + } + + @Override + public void release(CodeCommonFormDTO formDTO) { + //获取上传代码信息 + CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); + //是否授权 + if (customerMpService.getAuthFlag(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType())) { + throw new RenException("未授权"); + } + //获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType()); + //调用微信API发布代码 + WxResult wxResult = wxMaCodeService.release(authInfo.getAuthorizerAccessToken()); + if (!wxResult.success()) { + //更新代码表状态 + codeCustomerDTO.setStatus(CodeConstant.RELEASE_FAILED); + codeCustomerService.update(codeCustomerDTO); + saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_RELEASE, + wxResult.getErrorMsg()); + throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + } + //更新代码表状态 + codeCustomerDTO.setStatus(CodeConstant.RELEASE_SUCCESS); + codeCustomerService.update(codeCustomerDTO); + saveOperation(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getId(), codeCustomerDTO.getUserVersion(), CodeConstant.OPER_RELEASE, + "发布成功"); + } + + @Override + public ReasonResultDTO reason(CodeCommonFormDTO formDTO) { + ReasonResultDTO result = new ReasonResultDTO(); + //获取上传代码信息 + CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); + //是否授权 + if (customerMpService.getAuthFlag(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType())) { + throw new RenException("未授权"); + } + //TODO 获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType()); + //获取审核结果信息 + CodeAuditResultDTO codeAuditResultDTO = codeAuditResultService.getAuditResultByCodeId(formDTO.getCodeId()); + result.setReason(codeAuditResultDTO.getReason()); + String[] mediaIds = codeAuditResultDTO.getScreenShot().split("[|]"); + List mediaIdList = new ArrayList<>(mediaIds.length); + Collections.addAll(mediaIdList, mediaIds); + List urlList = new ArrayList<>(); + mediaIdList.forEach(mediaId -> { + //调用微信API获取素材 + WxMaCodeAuditStatusReq request = new WxMaCodeAuditStatusReq(); + request.setAuditId(codeAuditResultDTO.getAuditId()); + WxMaNewsReq wxMaNewsReq = new WxMaNewsReq(); + wxMaNewsReq.setMediaId(mediaId); + WxResult wxAuditResult = wxMaCodeService.getMaterial(authInfo.getAuthorizerAccessToken(), wxMaNewsReq); + wxAuditResult.getData().getNewsItem().forEach(news -> { + urlList.add(news.getUrl()); + }); + }); + result.setScreenshotUrl(urlList); + return result; + } + + @Override + public QrCodeResultDTO qrCode(CodeCommonFormDTO formDTO) { + QrCodeResultDTO result = new QrCodeResultDTO(); + //获取上传代码信息 + CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); + //是否授权 + if (customerMpService.getAuthFlag(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType())) { + throw new RenException("未授权"); + } + //获取小程序调用令牌 + AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType()); + //调用微信API获取获取体验版二维码 + WxResult wxResult = wxMaCodeService.getQrCode(authInfo.getAuthorizerAccessToken(), null); + if (!wxResult.success()) { + throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + } + result.setQrcode(wxResult.getData()); + return result; + } + + @Override + public PageData history(CodeCommonFormDTO formDTO) { + PageHelper.startPage(formDTO.getPage(), formDTO.getLimit()); + //获取上传代码信息 + CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); + List list = codeOperationHistoryService.getHistoryList(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType()); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } + + private void saveOperation(String customerId, String codeId, String version, String operation, String describe) { + CodeOperationHistoryDTO operationDTO = new CodeOperationHistoryDTO(); + operationDTO.setCustomerId(customerId); + operationDTO.setCodeId(codeId); + operationDTO.setVersion(version); + operationDTO.setOperation(operation); + operationDTO.setDescribe(describe); + codeOperationHistoryService.save(operationDTO); } } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java index 5bb85272a0..1377699edc 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CustomerMpServiceImpl.java @@ -101,4 +101,9 @@ public class CustomerMpServiceImpl extends BaseServiceImpl newsItem; + + @Data + public static class NewsItemBean { + /** + * 图文消息的标题 + */ + private String title; + /** + * 图文消息的封面图片素材id + */ + @SerializedName("thumb_media_id") + private String thumbMediaId; + /** + * 是否显示封面,0为false,即不显示,1为true,即显示 + */ + @SerializedName("show_cover_pic") + private Integer showCoverPic; + /** + * 作者 + */ + private String author; + /** + * 图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空 + */ + private String digest; + /** + * 图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS + */ + private String content; + /** + * 图文页的URL + */ + private String url; + /** + * 图文消息的原文地址,即点击“阅读原文”后的URL + */ + @SerializedName("content_source_url") + private String contentSourceUrl; + } +} 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 60d243f62d..7a3f6dd641 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 @@ -3,7 +3,9 @@ package com.epmet.wxapi.service; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; import com.epmet.wxapi.param.WxMaCodeCommitReq; import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest; +import com.epmet.wxapi.param.WxMaNewsReq; import com.epmet.wxapi.result.WxMaAuditStatusResult; +import com.epmet.wxapi.result.WxMaNewsResult; import com.epmet.wxapi.result.WxMaTemplateResult; import com.epmet.wxapi.result.WxResult; @@ -48,7 +50,7 @@ public interface WxMaCodeService { * @author zhaoqifeng * @date 2020/7/10 15:25 */ - WxResult getQrCode(String accessToken, String path); + WxResult getQrCode(String accessToken, String path); /** * 获取授权小程序帐号的可选类目. @@ -101,6 +103,17 @@ public interface WxMaCodeService { */ WxResult undoCodeAudit(String accessToken); + /** + * 获取永久图文素材 + * + * @param accessToken 提交审核参数 + * @param request 参数 + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/7/16 14:52 + */ + WxResult getMaterial(String accessToken, WxMaNewsReq request); + //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 41c1e17f7e..b4b8a29778 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 @@ -7,6 +7,7 @@ import com.epmet.wxapi.constant.WxMaCodeConstant; import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; import com.epmet.wxapi.param.WxMaCodeCommitReq; import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest; +import com.epmet.wxapi.param.WxMaNewsReq; import com.epmet.wxapi.result.*; import com.epmet.wxapi.service.WxMaCodeService; import com.google.gson.Gson; @@ -65,7 +66,7 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { } @Override - public WxResult getQrCode(String accessToken, String path) { + 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)) { @@ -190,6 +191,21 @@ public class WxMaCodeServiceImpl implements WxMaCodeService { return result; } + @Override + public WxResult getMaterial(String accessToken, WxMaNewsReq request) { + WxResult result = new WxResult<>(); + String url = WxMaCodeConstant.GET_MATERIAL_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; + } + WxMaNewsResult newsResult = JSONObject.parseObject(statusResult.getData(), WxMaNewsResult.class); + result.ok(newsResult); + 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,}]}"; 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 6761472660..22d77316e6 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 @@ -82,6 +82,16 @@ AND app_id = #{authAppId} AND template_id = #{templateId} - + + + UPDATE code_customer + SET + DEL_FLAG = '1' + WHERE CUSTOMER_ID = #{customerId} + AND CLIENT_TYPE = #{clientType} + AND DEL_FLAG = '0' + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeOperationHistoryDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeOperationHistoryDao.xml new file mode 100644 index 0000000000..277beabe35 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeOperationHistoryDao.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + UPDATE code_operation_history SET + `DESCRIBE` = #{describe} + WHERE CODE_ID = #{codeId} + AND OPERATION = 'audit' + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerCodeOperationHistoryDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerCodeOperationHistoryDao.xml deleted file mode 100644 index 09ae8b2e78..0000000000 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerCodeOperationHistoryDao.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml index ac7b8b4346..8167f6e8b4 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CustomerMpDao.xml @@ -74,5 +74,15 @@ ORDER BY customer_id ASC, client ASC + \ No newline at end of file