From 42f7a9b7bc209909c3b1d012b8a6b9a4958d16bd Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 20 Feb 2019 18:27:57 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E5=BC=80=E5=8F=91=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0][=E4=BF=AE=E6=94=B9]:=E9=94=99=E8=AF=AF=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/domain/po/WxWeappCodeStatus.java | 6 +- .../mapper/WxWeappCodeStatusMapper.xml | 12 +- .../controller/WechatWeappCodeController.java | 108 ++++++++++++------ .../controller/WxWeappInfoController.java | 40 +++++-- 4 files changed, 117 insertions(+), 49 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java b/mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java index c828007dc..5d94a2e60 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxWeappCodeStatus.java @@ -38,7 +38,7 @@ public class WxWeappCodeStatus implements Serializable { @io.swagger.annotations.ApiModelProperty(value="code提交状态(0:成功, 1:失败)",name="codeStatus") private Integer codeStatus; @io.swagger.annotations.ApiModelProperty(value="code提交错误码",name="codeErrCode") - private Integer codeErrCode; + private String codeErrCode; /**更新时间*/ @io.swagger.annotations.ApiModelProperty(value="code提交时间",name="codeTime") private Date codeTime; @@ -46,7 +46,7 @@ public class WxWeappCodeStatus implements Serializable { @io.swagger.annotations.ApiModelProperty(value="审核状态(0为审核成功,1为审核失败,2为审核中,3已撤回)",name="auditStatus") private Integer auditStatus; @io.swagger.annotations.ApiModelProperty(value="审核错误码",name="auditErrCode") - private Integer auditErrCode; + private String auditErrCode; /**审核时间*/ @io.swagger.annotations.ApiModelProperty(value="审核时间",name="auditTime") private Date auditTime; @@ -54,7 +54,7 @@ public class WxWeappCodeStatus implements Serializable { @io.swagger.annotations.ApiModelProperty(value="发布状态(0:发布成功, 1:发布失败, 2:发布中)",name="releaseStatus") private Integer releaseStatus; @io.swagger.annotations.ApiModelProperty(value="发布错误码",name="releaseErrCode") - private Integer releaseErrCode; + private String releaseErrCode; /**发布时间*/ @io.swagger.annotations.ApiModelProperty(value="发布时间",name="releaseTime") private Date releaseTime; diff --git a/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml b/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml index e5ac7c3f7..8c4a5fbf4 100644 --- a/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxWeappCodeStatusMapper.xml @@ -7,12 +7,12 @@ - + - + - + @@ -77,13 +77,13 @@ - + - + - + diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java index b17aa1540..1e0c1821e 100644 --- a/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java +++ b/mallinkWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java @@ -64,18 +64,24 @@ public class WechatWeappCodeController { @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) { + Gson gson = new GsonBuilder().create(); + WxMaOpenCommitExtInfo extInfo = gson.fromJson(extInfoStr, new TypeToken() {}.getType()); + String appId = extInfo.getExtAppid(); + + // 检查appId是否已授权 + WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId); + if(authorizerInfo == null) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "扩展设置中appId未设置"); + } + if(!authorizerInfo.getAuthorizationStatus().equals(EnumWxAuthorizationStatus.AUTHORIZED.getCode())) { + return new ResultData(ErrorCode.APP_NOT_AUTH); + } + + WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); + + WxAppinfo appinfo = appinfoService.getByAppId(appId); + try { - Gson gson= new GsonBuilder().create(); - WxMaOpenCommitExtInfo extInfo = gson.fromJson(extInfoStr, new TypeToken() { }.getType()); - String appId = extInfo.getExtAppid(); - // 检查appId是否已授权 - WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId); - if(authorizerInfo == null) { - return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "扩展设置中appId未设置"); - } - if(!authorizerInfo.getAuthorizationStatus().equals(EnumWxAuthorizationStatus.AUTHORIZED.getCode())) { - return new ResultData(ErrorCode.APP_NOT_AUTH); - } // code提交 WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); logger.info(extInfo.toString()); @@ -85,9 +91,7 @@ public class WechatWeappCodeController { if (openRet.isSuccess()) { codeCommitStatus = true; } - WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); if (codeStatus == null) { - WxAppinfo appinfo = appinfoService.getByAppId(appId); codeStatus = new WxWeappCodeStatus(); codeStatus.setAppId(appId); if (appinfo != null) { @@ -99,8 +103,8 @@ public class WechatWeappCodeController { codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.SUCCESS.getCode()); } else { codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); + codeStatus.setCodeErrCode(gson.toJson(openRet)); } - codeStatus.setCodeErrCode(Integer.valueOf(openRet.getErrcode())); codeStatus.setCodeTime(new Date()); weappCodeStatusService.saveOrUpdate(codeStatus); } else { @@ -110,15 +114,35 @@ public class WechatWeappCodeController { codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.SUCCESS.getCode()); } else { codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); + codeStatus.setCodeErrCode(gson.toJson(openRet)); } - codeStatus.setCodeErrCode(Integer.valueOf(openRet.getErrcode())); codeStatus.setCodeTime(new Date()); weappCodeStatusService.updateCodeCommitStatus(codeStatus); } return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); - return new ResultData(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); + } + return new ResultData(Result.ERROR, e.getMessage()); } } @@ -167,8 +191,8 @@ public class WechatWeappCodeController { return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation("获取小程序的第三方提交代码的页面配置") @@ -181,37 +205,45 @@ public class WechatWeappCodeController { return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation("将第三方提交的代码包提交审核") @PostMapping("/submitAudit") public ResultData submitAudit(String appId, String subMesgStr) { + Gson gson = new GsonBuilder().create(); + WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); try { WxOpenMaSubmitAuditMessage subMessage = JSON.parseObject(subMesgStr, WxOpenMaSubmitAuditMessage.class); WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage); logger.info(openRet.toString()); - WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); if(codeStatus != null) { if(openRet.isSuccess()) { codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); } else { codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); + codeStatus.setAuditErrCode(gson.toJson(openRet)); } weappCodeStatusService.updateAuditStatus(codeStatus); } return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + if(codeStatus != null) { + codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); + codeStatus.setAuditErrCode(e.getMessage()); + weappCodeStatusService.updateAuditStatus(codeStatus); + } + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation("查询某个指定版本的审核状态") @PostMapping("/getAuditstatus") public ResultData getAuditstatus(String appId, String auditidStr) { + Gson gson = new GsonBuilder().create(); try { WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); WxOpenMaQueryAuditResult openRet = openMaService.getAuditStatus(Long.valueOf(auditidStr)); @@ -222,20 +254,21 @@ public class WechatWeappCodeController { codeStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode()); } else { codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); - codeStatus.setAuditErrCode(Integer.valueOf(openRet.getErrcode())); + codeStatus.setAuditErrCode(gson.toJson(openRet)); } weappCodeStatusService.updateAuditStatus(codeStatus); } return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation("查询最新一次提交的审核状态") @GetMapping("/getLatestAuditstatus") public ResultData get_latest_auditstatus(String appId) { + Gson gson = new GsonBuilder().create(); try { WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); WxOpenMaQueryAuditResult openRet = openMaService.getLatestAuditStatus(); @@ -246,50 +279,56 @@ public class WechatWeappCodeController { codeStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode()); } else { codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); - codeStatus.setAuditErrCode(Integer.valueOf(openRet.getErrcode())); + codeStatus.setAuditErrCode(gson.toJson(openRet)); } weappCodeStatusService.updateAuditStatus(codeStatus); } return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation("发布已通过审核的小程序") @PostMapping("/releaseAudited") public ResultData releaesAudited(String appId) { + Gson gson = new GsonBuilder().create(); + WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); try { WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); WxOpenResult openRet = openMaService.releaesAudited(); logger.info(openRet.toString()); - WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); if(codeStatus != null) { if(openRet.getErrcode().equals('0')) { codeStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode()); } else { codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode()); - codeStatus.setReleaseErrCode(Integer.valueOf(openRet.getErrcode())); + codeStatus.setReleaseErrCode(gson.toJson(openRet)); } weappCodeStatusService.updateReleaseStatus(codeStatus); } return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + if(codeStatus != null) { + codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode()); + codeStatus.setReleaseErrCode(e.getMessage()); + weappCodeStatusService.updateReleaseStatus(codeStatus); + } + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation("小程序版本回退") @GetMapping("/revertCodeRelease") public ResultData revertCodeRelease(String appId) { + WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); try { WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); WxOpenResult openRet = openMaService.revertCodeReleaes(); logger.info(openRet.toString()); if(openRet.isSuccess()) { - WxWeappCodeStatus codeStatus = weappCodeStatusService.getByAppId(appId); if(codeStatus != null) { codeStatus.setReleaseStatus(EnumWeappReleaseStatus.BACK.getCode()); weappCodeStatusService.updateReleaseStatus(codeStatus); @@ -299,7 +338,12 @@ public class WechatWeappCodeController { return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); - return new ResultData(e.getMessage()); + if(codeStatus != null) { + codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode()); + codeStatus.setReleaseErrCode(e.getMessage()); + weappCodeStatusService.updateReleaseStatus(codeStatus); + } + return new ResultData(Result.ERROR, e.getMessage()); } } @@ -313,8 +357,8 @@ public class WechatWeappCodeController { return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation("设置最低基础库版本") @@ -327,8 +371,8 @@ public class WechatWeappCodeController { return new ResultData(openRet); } catch (WxErrorException e) { logger.error(e.getMessage()); + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } @ApiOperation(value = "小程序审核撤回", notes = "单个帐号每天审核撤回次数最多不超过1次,一个月不超过10次。") @@ -347,7 +391,7 @@ public class WechatWeappCodeController { return new ResultData(); } catch (WxErrorException e) { logger.error(e.getMessage()); + return new ResultData(Result.ERROR, e.getMessage()); } - return new ResultData(Result.ERROR); } } diff --git a/mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java b/mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java index 8c12cb0d0..bfdc0b062 100644 --- a/mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java +++ b/mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java @@ -288,6 +288,10 @@ 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 WxWeappExtSet extSetQ = new WxWeappExtSet(); extSetQ.setAppId(appId); @@ -301,7 +305,6 @@ public class WxWeappInfoController extends BaseController { if(!codeCommitStatus) { // code提交 try { - Gson gson = new GsonBuilder().create(); WxMaOpenCommitExtInfo extInfo = gson.fromJson(extSet.getExtJson(), new TypeToken() {}.getType()); logger.info(extInfo.toString()); WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(extInfo.getExtAppid()); @@ -311,7 +314,6 @@ public class WxWeappInfoController extends BaseController { codeCommitStatus = true; } if (codeStatus == null) { - WxAppinfo appinfo = appinfoService.getByAppId(appId); codeStatus = new WxWeappCodeStatus(); codeStatus.setAppId(appId); if (appinfo != null) { @@ -324,7 +326,7 @@ public class WxWeappInfoController extends BaseController { } else { codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); } - codeStatus.setCodeErrCode(Integer.valueOf(openRet.getErrcode())); + codeStatus.setCodeErrCode(gson.toJson(openRet)); codeStatus.setCodeTime(new Date()); weappCodeStatusService.saveOrUpdate(codeStatus); } else { @@ -334,19 +336,38 @@ public class WxWeappInfoController extends BaseController { codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.SUCCESS.getCode()); } else { codeStatus.setCodeStatus(EnumWeappCodeCommitStatus.FAIL.getCode()); + codeStatus.setCodeErrCode(gson.toJson(openRet)); } - codeStatus.setCodeErrCode(Integer.valueOf(openRet.getErrcode())); 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); + } } } // 提交审核 if(codeCommitStatus) { try { - Gson gson= new GsonBuilder().create(); WxOpenMaSubmitAuditMessage subMessage = gson.fromJson(extSet.getReleaseJson(), new TypeToken() {}.getType()); logger.info(subMessage.toString()); WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); @@ -354,15 +375,17 @@ public class WxWeappInfoController extends BaseController { logger.info(openRet.toString()); if(openRet.isSuccess()) { codeStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); - codeStatus.setAuditErrCode(Integer.valueOf(openRet.getErrcode())); weappCodeStatusService.updateAuditStatus(codeStatus); } else { codeStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); - codeStatus.setAuditErrCode(Integer.valueOf(openRet.getErrcode())); + 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); } } @@ -455,6 +478,7 @@ public class WxWeappInfoController extends BaseController { } List apps = weappCodeStatusService.getList(queryVo); apps.stream().forEach( app -> { + Gson gson = new GsonBuilder().create(); try { WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(app.getAppId()); WxOpenResult openRet = openMaService.releaesAudited(); @@ -469,8 +493,8 @@ public class WxWeappInfoController extends BaseController { codeStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode()); } else { codeStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode()); + codeStatus.setReleaseErrCode(gson.toJson(openRet)); } - codeStatus.setReleaseErrCode(Integer.valueOf(openRet.getErrcode())); weappCodeStatusService.updateReleaseStatus(codeStatus); } } catch (WxErrorException e) {