| @@ -8,10 +8,13 @@ import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.vo.WxWeappCodeStatusVo; | |||||
| import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import com.iformall.service.wechat.WxOpenService; | import com.iformall.service.wechat.WxOpenService; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiImplicitParam; | |||||
| import io.swagger.annotations.ApiImplicitParams; | |||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| import me.chanjar.weixin.common.error.WxErrorException; | import me.chanjar.weixin.common.error.WxErrorException; | ||||
| import me.chanjar.weixin.open.api.WxOpenMaService; | import me.chanjar.weixin.open.api.WxOpenMaService; | ||||
| @@ -33,6 +36,7 @@ import java.io.IOException; | |||||
| import java.io.InputStream; | import java.io.InputStream; | ||||
| import java.net.URLEncoder; | import java.net.URLEncoder; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| /** | /** | ||||
| @@ -61,6 +65,10 @@ public class WechatWeappCodeController { | |||||
| @Autowired | @Autowired | ||||
| private WxAuthorizerInfoService authorizerInfoService; | private WxAuthorizerInfoService authorizerInfoService; | ||||
| @Autowired | |||||
| private WxWeappExtSetService weappExtSetService; | |||||
| @ApiOperation(value = "为授权的小程序帐号上传小程序代码", notes = "extInfo参考https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html") | @ApiOperation(value = "为授权的小程序帐号上传小程序代码", notes = "extInfo参考https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html") | ||||
| @PostMapping("/codeCommit") | @PostMapping("/codeCommit") | ||||
| public ResultData codeCommit(Long templateId, String userVersion, String userDesc, String extInfoStr) { | public ResultData codeCommit(Long templateId, String userVersion, String userDesc, String extInfoStr) { | ||||
| @@ -217,73 +225,93 @@ public class WechatWeappCodeController { | |||||
| } | } | ||||
| @ApiOperation("将第三方提交的代码包提交审核") | @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(); | 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<WxWeappCodeStatusVo> codeStatusList = weappCodeStatusService.getList(codeQ); | |||||
| if(codeStatusList.size() == 1) { | |||||
| WxWeappCodeStatusVo codeStatus = codeStatusList.get(0); | |||||
| WxOpenMaSubmitAuditMessage subMessage = gson.fromJson(extSet.getReleaseJson(), new TypeToken<WxOpenMaSubmitAuditMessage>() {}.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; | 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 { | } 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 { | } 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 { | } 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("查询某个指定版本的审核状态") | @ApiOperation("查询某个指定版本的审核状态") | ||||