diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java index 48e06268e..b151c4f21 100644 --- a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java +++ b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java @@ -8,10 +8,13 @@ import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.vo.WxWeappCodeStatusVo; import com.iformall.enums.*; import com.iformall.service.*; import com.iformall.service.wechat.WxOpenService; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.open.api.WxOpenMaService; @@ -33,6 +36,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -61,6 +65,10 @@ public class WechatWeappCodeController { @Autowired private WxAuthorizerInfoService authorizerInfoService; + @Autowired + private WxWeappExtSetService weappExtSetService; + + @ApiOperation(value = "为授权的小程序帐号上传小程序代码", notes = "extInfo参考https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html") @PostMapping("/codeCommit") public ResultData codeCommit(Long templateId, String userVersion, String userDesc, String extInfoStr) { @@ -217,73 +225,93 @@ public class WechatWeappCodeController { } @ApiOperation("将第三方提交的代码包提交审核") - @PostMapping("/submitAudit") - public ResultData submitAudit(String appId, String subMesgStr) { + @GetMapping("/submitAudit") + @ApiImplicitParams({ + @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true), + @ApiImplicitParam(name = "version", value = "version", dataType = "String", paramType = "query")}) + public ResultData submitAudit(String appId, String version) { Gson gson = new GsonBuilder().create(); - WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); - if(codeStatus != null && codeStatus.getCodeStatus().equals(EnumWeappCodeCommitStatus.SUCCESS.getCode())) { - WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId); - boolean submitStatus = false; - String codeErrCode = ""; - try { - WxOpenMaSubmitAuditMessage subMessage = JSON.parseObject(subMesgStr, WxOpenMaSubmitAuditMessage.class); - WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); - WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage); - logger.info(openRet.toString()); - if(openRet.isSuccess()) { - submitStatus = true; - codeErrCode = gson.toJson(openRet); - } else { + WxWeappExtSet extSetQ = new WxWeappExtSet(); + extSetQ.setAppId(appId); + WxWeappExtSet extSet = weappExtSetService.getByObj(extSetQ); + if(StringUtils.isBlank(extSet.getReleaseJson())) { + logger.error("Release JSON is null"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + + WxWeappCodeStatusVo codeQ = new WxWeappCodeStatusVo(); + codeQ.setAppId(appId); + if(StringUtils.isNotBlank(version)) { + codeQ.setUserVersion(version); + } + List codeStatusList = weappCodeStatusService.getList(codeQ); + if(codeStatusList.size() == 1) { + WxWeappCodeStatusVo codeStatus = codeStatusList.get(0); + WxOpenMaSubmitAuditMessage subMessage = gson.fromJson(extSet.getReleaseJson(), new TypeToken() {}.getType()); + if(codeStatus != null && codeStatus.getCodeStatus().equals(EnumWeappCodeCommitStatus.SUCCESS.getCode())) { + WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId); + boolean submitStatus = false; + String codeErrCode = ""; + try { + WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); + WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage); + logger.info(openRet.toString()); + if(openRet.isSuccess()) { + submitStatus = true; + codeErrCode = gson.toJson(openRet); + } else { + submitStatus = false; + codeErrCode = gson.toJson(openRet); + } + } catch (WxErrorException e) { + logger.error(e.getMessage()); submitStatus = false; - codeErrCode = gson.toJson(openRet); + codeErrCode = e.getMessage(); } - } catch (WxErrorException e) { - logger.error(e.getMessage()); - submitStatus = false; - codeErrCode = e.getMessage(); - } - if (auditStatus == null) { - auditStatus = new WxWeappAuditStatus(); - auditStatus.setId(codeStatus.getId()); - auditStatus.setAppId(codeStatus.getAppId()); - auditStatus.setType(codeStatus.getType()); - auditStatus.setUserVersion(codeStatus.getUserVersion()); - auditStatus.setVersionDesc(codeStatus.getVersionDesc()); - if(submitStatus) { - auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); + if (auditStatus == null) { + auditStatus = new WxWeappAuditStatus(); + auditStatus.setId(codeStatus.getId()); + auditStatus.setAppId(codeStatus.getAppId()); + auditStatus.setType(codeStatus.getType()); + auditStatus.setUserVersion(codeStatus.getUserVersion()); + auditStatus.setVersionDesc(codeStatus.getVersionDesc()); + if(submitStatus) { + auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); + } else { + auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); + } + auditStatus.setAuditErrCode(codeErrCode); + auditStatus.setAuditTime(new Date()); + weappAuditStatusService.saveStatus(auditStatus); } else { - auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); - } - auditStatus.setAuditErrCode(codeErrCode); - auditStatus.setAuditTime(new Date()); - weappAuditStatusService.saveStatus(auditStatus); - } else { - if(!submitStatus) { - if(!auditStatus.getUserVersion().equals(codeStatus.getUserVersion()) - && auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) { - // 提交审核失败不替换当前审核中的数据 - return new ResultData(ErrorCode.WEAPP_HAD_AUDITING); + if(!submitStatus) { + if(!auditStatus.getUserVersion().equals(codeStatus.getUserVersion()) + && auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) { + // 提交审核失败不替换当前审核中的数据 + return new ResultData(ErrorCode.WEAPP_HAD_AUDITING); + } + codeStatus.setCodeStatus(EnumWeappAuditStatus.FAIL.getCode()); + codeStatus.setCodeErrCode(codeErrCode); + } else { + codeStatus.setCodeStatus(EnumWeappAuditStatus.AUDITING.getCode()); } - codeStatus.setCodeStatus(EnumWeappAuditStatus.FAIL.getCode()); - codeStatus.setCodeErrCode(codeErrCode); + auditStatus.setUserVersion(codeStatus.getUserVersion()); + auditStatus.setVersionDesc(codeStatus.getVersionDesc()); + auditStatus.setAuditTime(new Date()); + weappAuditStatusService.updateStatus(auditStatus); + } + if(submitStatus) { + return new ResultData(codeErrCode); } else { - codeStatus.setCodeStatus(EnumWeappAuditStatus.AUDITING.getCode()); + return new ResultData(ErrorCode.WEAPP_AUDIT_ERR); } - auditStatus.setUserVersion(codeStatus.getUserVersion()); - auditStatus.setVersionDesc(codeStatus.getVersionDesc()); - auditStatus.setAuditTime(new Date()); - weappAuditStatusService.updateStatus(auditStatus); - } - if(submitStatus) { - return new ResultData(codeErrCode); } else { - return new ResultData(ErrorCode.WEAPP_AUDIT_ERR); + logger.error(ErrorCode.WEAPP_CODE_COMMIT_ERR.getMessage()); + return new ResultData(ErrorCode.WEAPP_CODE_COMMIT_ERR); } - } else { - logger.error(ErrorCode.WEAPP_CODE_COMMIT_ERR.getMessage()); - return new ResultData(ErrorCode.WEAPP_CODE_COMMIT_ERR); } + return new ResultData(ErrorCode.WEAPP_CODE_COMMIT_ERR); } @ApiOperation("查询某个指定版本的审核状态")