| @@ -307,7 +307,7 @@ public class WxWeappInfoController extends BaseController { | |||
| @ApiOperation(value = "批量,授权的小程序上传code并提交审核", notes = "{\"apps\":\"appid,appid\",\"templateId\":\"String\",\"userVersion\":\"String\",\"userDesc\":\"String\"}") | |||
| @PostMapping("batchCodeCommitAndAudit") | |||
| public ResultData batchExtSet(@RequestBody Map<String, String> params) { | |||
| public ResultData batchCodeCommitAndAudit(@RequestBody Map<String, String> params) { | |||
| logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchExtSet"); | |||
| String appsStr = params.get("apps"); | |||
| String templateIdStr = params.get("templateId"); | |||
| @@ -352,8 +352,6 @@ public class WxWeappInfoController extends BaseController { | |||
| } | |||
| private void codeOperation(String appId, String userVersion, String userDesc, Long templateId) { | |||
| Gson gson = new GsonBuilder().create(); | |||
| WxAppinfo appinfo = appinfoService.getByAppId(appId); | |||
| // get ext json | |||
| @@ -367,95 +365,216 @@ public class WxWeappInfoController extends BaseController { | |||
| codeCommitStatus = true; | |||
| } | |||
| if(!codeCommitStatus) { | |||
| // code提交 | |||
| try { | |||
| WxMaOpenCommitExtInfo extInfo = gson.fromJson(extSet.getExtJson(), new TypeToken<WxMaOpenCommitExtInfo>() {}.getType()); | |||
| logger.info(extInfo.toString()); | |||
| WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(extInfo.getExtAppid()); | |||
| WxOpenResult openRet = openMaService.codeCommit(templateId, userVersion, userDesc, extInfo); | |||
| logger.info(openRet.toString()); | |||
| if (openRet.isSuccess()) { | |||
| codeCommitStatus = true; | |||
| } | |||
| if (codeStatus == null) { | |||
| codeStatus = new WxWeappCodeStatus(); | |||
| codeStatus.setAppId(appId); | |||
| if (appinfo != null) { | |||
| codeStatus.setType(appinfo.getType()); | |||
| } | |||
| codeStatus.setUserVersion(userVersion); | |||
| codeStatus.setVersionDesc(userDesc); | |||
| if(codeCommitStatus) { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.SUCCESS.getCode()); | |||
| } else { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); | |||
| } | |||
| codeStatus.setCodeErrCode(gson.toJson(openRet)); | |||
| codeStatus.setCodeTime(new Date()); | |||
| weappCodeStatusService.saveOrUpdate(codeStatus); | |||
| } else { | |||
| codeStatus.setUserVersion(userVersion); | |||
| codeStatus.setVersionDesc(userDesc); | |||
| if(codeCommitStatus) { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.SUCCESS.getCode()); | |||
| } else { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); | |||
| codeStatus.setCodeErrCode(gson.toJson(openRet)); | |||
| } | |||
| codeStatus.setCodeTime(new Date()); | |||
| weappCodeStatusService.updateCodeCommitStatus(codeStatus); | |||
| } | |||
| } catch (WxErrorException e) { | |||
| logger.error(e.getMessage()); | |||
| if (codeStatus == null) { | |||
| codeStatus = new WxWeappCodeStatus(); | |||
| codeStatus.setAppId(appId); | |||
| if (appinfo != null) { | |||
| codeStatus.setType(appinfo.getType()); | |||
| } | |||
| codeStatus.setUserVersion(userVersion); | |||
| codeStatus.setVersionDesc(userDesc); | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); | |||
| codeStatus.setCodeErrCode(e.getMessage()); | |||
| codeStatus.setCodeTime(new Date()); | |||
| weappCodeStatusService.saveOrUpdate(codeStatus); | |||
| } else { | |||
| codeStatus.setUserVersion(userVersion); | |||
| codeStatus.setVersionDesc(userDesc); | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); | |||
| codeStatus.setCodeErrCode(e.getMessage()); | |||
| codeStatus.setCodeTime(new Date()); | |||
| weappCodeStatusService.updateCodeCommitStatus(codeStatus); | |||
| } | |||
| } | |||
| codeCommitStatus = doCodeCommit(userVersion, userDesc, templateId, appinfo, extSet, codeStatus); | |||
| } | |||
| // 提交审核 | |||
| if(codeCommitStatus) { | |||
| try { | |||
| WxOpenMaSubmitAuditMessage subMessage = gson.fromJson(extSet.getReleaseJson(), new TypeToken<WxOpenMaSubmitAuditMessage>() {}.getType()); | |||
| logger.info(subMessage.toString()); | |||
| WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); | |||
| WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage); | |||
| logger.info(openRet.toString()); | |||
| if(openRet.isSuccess()) { | |||
| codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); | |||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||
| } else { | |||
| codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); | |||
| codeStatus.setAuditErrCode(gson.toJson(openRet)); | |||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||
| } | |||
| } catch (WxErrorException e) { | |||
| logger.error(e.getMessage()); | |||
| codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); | |||
| codeStatus.setAuditErrCode(gson.toJson(e.getMessage())); | |||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||
| } | |||
| doCodeAudit(appId, extSet, codeStatus); | |||
| } | |||
| } | |||
| } | |||
| @ApiOperation(value = "批量授权的小程序上传code", notes = "{\"apps\":\"appid,appid\",\"templateId\":\"String\",\"userVersion\":\"String\",\"userDesc\":\"String\"}") | |||
| @PostMapping("batchCodeCommit") | |||
| public ResultData batchCodeCommit(@RequestBody Map<String, String> params) { | |||
| logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchExtSet"); | |||
| String appsStr = params.get("apps"); | |||
| String templateIdStr = params.get("templateId"); | |||
| String userVersion = params.get("userVersion"); | |||
| String userDesc = params.get("userDesc"); | |||
| Long templateId = null; | |||
| try { | |||
| templateId = Long.parseLong(templateIdStr); | |||
| } catch (Exception e) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); | |||
| } | |||
| String [] apps = appsStr.split(","); | |||
| // 逐一检查app的设置 | |||
| for(String appId: apps) { | |||
| WxWeappExtSet extSetQ = new WxWeappExtSet(); | |||
| extSetQ.setAppId(appId); | |||
| WxWeappExtSet extSet = weappExtSetService.getByObj(extSetQ); | |||
| if(extSet == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| if(StringUtils.isBlank(extSet.getExtJson())) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| if(StringUtils.isBlank(extSet.getReleaseJson())) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| } | |||
| // 逐一设置app配置 | |||
| for(String appId: apps) { | |||
| // 检查appId是否已授权 | |||
| WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId); | |||
| if(authorizerInfo == null) { | |||
| return new ResultData(ErrorCode.WEAPP_APPID_NOT_AUTH); | |||
| } | |||
| if(!authorizerInfo.getAuthorizationStatus().equals(EnumWxAuthorizationStatus.AUTHORIZED.getCode())) { | |||
| return new ResultData(ErrorCode.WEAPP_APPID_NOT_AUTH); | |||
| } | |||
| codeCommit(appId, userVersion, userDesc, templateId); | |||
| } | |||
| return new ResultData(); | |||
| } | |||
| private void codeCommit(String appId, String userVersion, String userDesc, Long templateId) { | |||
| WxAppinfo appinfo = appinfoService.getByAppId(appId); | |||
| // get ext json | |||
| WxWeappExtSet extSetQ = new WxWeappExtSet(); | |||
| extSetQ.setAppId(appId); | |||
| WxWeappExtSet extSet = weappExtSetService.getByObj(extSetQ); | |||
| WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); | |||
| if(extSet != null) { | |||
| boolean codeCommitStatus = false; | |||
| if(codeStatus != null && codeStatus.getCodeStatus().equals(0) && codeStatus.getUserVersion().equals(userVersion)) { | |||
| codeCommitStatus = true; | |||
| } | |||
| if(!codeCommitStatus) { | |||
| codeCommitStatus = doCodeCommit(userVersion, userDesc, templateId, appinfo, extSet, codeStatus); | |||
| } | |||
| } | |||
| } | |||
| @ApiOperation(value = "小程序批量提交审核", notes = "{\"apps\":\"appid,appid\",\"userVersion\":\"String\"}") | |||
| @PostMapping("batchCodeAudit") | |||
| public ResultData batchCodeAudit(@RequestBody Map<String, String> params) { | |||
| logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchExtSet"); | |||
| String appsStr = params.get("apps"); | |||
| String userVersion = params.get("userVersion"); | |||
| String [] apps = appsStr.split(","); | |||
| // 逐一检查app的设置 | |||
| for(String appId: apps) { | |||
| WxWeappExtSet extSetQ = new WxWeappExtSet(); | |||
| extSetQ.setAppId(appId); | |||
| WxWeappExtSet extSet = weappExtSetService.getByObj(extSetQ); | |||
| if(extSet == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| if(StringUtils.isBlank(extSet.getExtJson())) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| if(StringUtils.isBlank(extSet.getReleaseJson())) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||
| } | |||
| } | |||
| // 逐一设置app配置 | |||
| for(String appId: apps) { | |||
| // 检查appId是否已授权 | |||
| WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId); | |||
| if(authorizerInfo == null) { | |||
| return new ResultData(ErrorCode.WEAPP_APPID_NOT_AUTH); | |||
| } | |||
| if(!authorizerInfo.getAuthorizationStatus().equals(EnumWxAuthorizationStatus.AUTHORIZED.getCode())) { | |||
| return new ResultData(ErrorCode.WEAPP_APPID_NOT_AUTH); | |||
| } | |||
| codeAudit(appId, userVersion); | |||
| } | |||
| return new ResultData(); | |||
| } | |||
| private void codeAudit(String appId, String userVersion) { | |||
| // get ext json | |||
| WxWeappExtSet extSetQ = new WxWeappExtSet(); | |||
| extSetQ.setAppId(appId); | |||
| WxWeappExtSet extSet = weappExtSetService.getByObj(extSetQ); | |||
| WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); | |||
| if(extSet != null) { | |||
| boolean codeCommitStatus = false; | |||
| if(codeStatus != null | |||
| && codeStatus.getCodeStatus().equals(EnumWeappCodeCommitStatus.SUCCESS.getCode()) | |||
| && codeStatus.getUserVersion().equals(userVersion)) { | |||
| codeCommitStatus = true; | |||
| } | |||
| if(codeCommitStatus) { | |||
| doCodeAudit(appId, extSet, codeStatus); | |||
| } else { | |||
| logger.error("CODE提交失败"); | |||
| } | |||
| } | |||
| } | |||
| private boolean doCodeCommit(String userVersion, String userDesc, Long templateId, WxAppinfo appinfo, WxWeappExtSet extSet, WxWeappCodeStatus codeStatus) { | |||
| Gson gson = new GsonBuilder().create(); | |||
| // code提交 | |||
| boolean codeCommitStatus = false; | |||
| String codeErrCode = ""; | |||
| try { | |||
| WxMaOpenCommitExtInfo extInfo = gson.fromJson(extSet.getExtJson(), new TypeToken<WxMaOpenCommitExtInfo>() {}.getType()); | |||
| logger.info(extInfo.toString()); | |||
| WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appinfo.getAppId()); | |||
| WxOpenResult openRet = openMaService.codeCommit(templateId, userVersion, userDesc, extInfo); | |||
| logger.info(openRet.toString()); | |||
| if (openRet.isSuccess()) { | |||
| codeCommitStatus = true; | |||
| } | |||
| codeErrCode = gson.toJson(openRet); | |||
| } catch (WxErrorException e) { | |||
| codeCommitStatus = false; | |||
| codeErrCode = e.getMessage(); | |||
| logger.error(codeErrCode); | |||
| } | |||
| if (codeStatus == null) { | |||
| codeStatus = new WxWeappCodeStatus(); | |||
| codeStatus.setAppId(appinfo.getAppId()); | |||
| if (appinfo != null) { | |||
| codeStatus.setType(appinfo.getType()); | |||
| } | |||
| codeStatus.setUserVersion(userVersion); | |||
| codeStatus.setVersionDesc(userDesc); | |||
| if(codeCommitStatus) { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.SUCCESS.getCode()); | |||
| } else { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); | |||
| } | |||
| codeStatus.setCodeErrCode(codeErrCode); | |||
| codeStatus.setCodeTime(new Date()); | |||
| weappCodeStatusService.saveOrUpdate(codeStatus); | |||
| } else { | |||
| codeStatus.setUserVersion(userVersion); | |||
| codeStatus.setVersionDesc(userDesc); | |||
| if(codeCommitStatus) { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.SUCCESS.getCode()); | |||
| } else { | |||
| codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); | |||
| codeStatus.setCodeErrCode(codeErrCode); | |||
| } | |||
| codeStatus.setCodeTime(new Date()); | |||
| weappCodeStatusService.updateCodeCommitStatus(codeStatus); | |||
| } | |||
| return codeCommitStatus; | |||
| } | |||
| private void doCodeAudit(String appId, WxWeappExtSet extSet, WxWeappCodeStatus codeStatus) { | |||
| Gson gson = new GsonBuilder().create(); | |||
| try { | |||
| WxOpenMaSubmitAuditMessage subMessage = gson.fromJson(extSet.getReleaseJson(), new TypeToken<WxOpenMaSubmitAuditMessage>() {}.getType()); | |||
| logger.info(subMessage.toString()); | |||
| WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); | |||
| WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage); | |||
| logger.info(openRet.toString()); | |||
| if(openRet.isSuccess()) { | |||
| codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); | |||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||
| } else { | |||
| codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); | |||
| codeStatus.setAuditErrCode(gson.toJson(openRet)); | |||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||
| } | |||
| } catch (WxErrorException e) { | |||
| logger.error(e.getMessage()); | |||
| codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); | |||
| codeStatus.setAuditErrCode(gson.toJson(e.getMessage())); | |||
| weappCodeStatusService.updateAuditStatus(codeStatus); | |||
| } | |||
| } | |||
| @ApiOperation(value = "批量审核查询", notes = "{\"version\":\"string\"}") | |||
| @PostMapping("batchAuditQuery") | |||
| public ResultData batchAuditQuery(@RequestBody Map<String, String> params) { | |||