From 91fc515d9576a25cc009dd3083da113e1f4e3adf Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Mon, 2 Dec 2019 09:05:11 +0800 Subject: [PATCH] =?UTF-8?q?[wxjava][=E4=BF=AE=E6=94=B9]:wxjava=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=88=B03.6.0.A=EF=BC=8C=E6=94=AF=E6=8C=81=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E5=8A=A0=E9=80=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/WxWeappAuditStatusMapper.xml | 10 ++- .../controller/WechatCalllbackController.java | 66 +++++++++---------- .../controller/WechatWeappCodeController.java | 43 +++++++++++- .../controller/WxWeappInfoController.java | 4 +- .../controller/card/WxCardController.java | 14 ++-- .../java/com/iformall/mp/utils/MpUtil.java | 4 +- pom.xml | 10 +-- 7 files changed, 95 insertions(+), 56 deletions(-) diff --git a/mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml b/mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml index 8d96ea4..06fcfa4 100644 --- a/mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml @@ -8,14 +8,14 @@ - + - `id`,`tenant_id`,`app_id`,`type`,`user_version`,`version_desc`, `audit_status`,`audit_err_code`,`audit_time` + `id`,`tenant_id`,`app_id`,`type`,`user_version`,`version_desc`, `auditid`, `audit_status`,`audit_err_code`,`audit_time` @@ -87,6 +87,7 @@ + @@ -95,7 +96,7 @@ c.`id`,c.`tenant_id` as `tenant_id`,c.`app_id`,c.`type` as `type`,c.`user_version` as `user_version`,`version_desc`, - c.`audit_status`,c.`audit_err_code`,c.`audit_time` as `audit_time`, + c.`auditid`, c.`audit_status`,c.`audit_err_code`,c.`audit_time` as `audit_time`, a.`name` @@ -116,6 +117,9 @@ and c.`user_version` = #{userVersion} + + and `auditid` = #{auditid} + and c.`audit_status` = #{auditStatus} diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java index 46a9cb8..484e14c 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java @@ -18,6 +18,8 @@ import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; +import me.chanjar.weixin.open.bean.WxOpenCreateResult; +import me.chanjar.weixin.open.bean.WxOpenGetResult; import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage; import me.chanjar.weixin.open.bean.result.*; import org.apache.commons.lang3.StringUtils; @@ -35,6 +37,7 @@ import java.io.InputStream; import java.io.PrintWriter; import java.nio.charset.Charset; import java.util.Date; +import java.util.Map; @Controller @RequestMapping("/wxOpen") @@ -282,18 +285,17 @@ public class WechatCalllbackController extends BaseController { public ResultData createOpenPlatform(@RequestParam(value = "appId") String appId) { Gson gson = new GsonBuilder().create(); try { - String responseStr = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId).createOpenPlatform(appId); - logger.info(responseStr); - WxOpenPlatformResult openPlatformResult = gson.fromJson(responseStr, WxOpenPlatformResult.class); - if (openPlatformResult.isSuccess()) { + WxOpenCreateResult ret = openService.getWxOpenComponentService().createOpenAccount(appId); + logger.info(ret.toString()); + if (ret.isSuccess()) { WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId); if (authorizerInfo != null) { authorizerInfo.setId(authorizerInfo.getId()); - authorizerInfo.setOpenAppid(openPlatformResult.getOpenAppid()); + authorizerInfo.setOpenAppid(ret.getOpenAppid()); authorizerInfoService.updateOpenAppid(authorizerInfo); } } - return new ResultData(responseStr); + return new ResultData(ret.toString()); } catch (WxErrorException e) { logger.error(e.getMessage()); return new ResultData(Result.ERROR, e.getMessage()); @@ -305,10 +307,8 @@ public class WechatCalllbackController extends BaseController { public ResultData bindOpenPlatform(@RequestParam(value = "appId") String appId, @RequestParam(value = "openAppId") String openAppId) { Gson gson = new GsonBuilder().create(); try { - String responseStr = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId).bindOpenPlatform(appId, openAppId); - logger.info(responseStr); - WxOpenResult openResult = gson.fromJson(responseStr, WxOpenResult.class); - if (openResult.isSuccess()) { + Boolean ret = openService.getWxOpenComponentService().bindOpenAccount(appId, openAppId); + if (ret) { WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId); if (authorizerInfo != null) { authorizerInfo.setId(authorizerInfo.getId()); @@ -317,7 +317,7 @@ public class WechatCalllbackController extends BaseController { } return new ResultData(); } - return new ResultData(Result.ERROR, responseStr); + return new ResultData(Result.ERROR, ret.toString()); } catch (WxErrorException e) { logger.error(e.getMessage()); return new ResultData(Result.ERROR, e.getMessage()); @@ -329,16 +329,14 @@ public class WechatCalllbackController extends BaseController { public ResultData unbindOpenPlatform(@RequestParam(value = "appId") String appId, @RequestParam(value = "openAppId") String openAppId) { Gson gson = new GsonBuilder().create(); try { - String responseStr = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId).unbindOpenPlatform(appId, openAppId); - logger.info(responseStr); - WxOpenResult openResult = gson.fromJson(responseStr, WxOpenResult.class); - if (openResult.isSuccess()) { + Boolean ret = openService.getWxOpenComponentService().unbindOpenAccount(appId, openAppId); + if (ret) { WxAuthorizerInfo authorizerInfo = new WxAuthorizerInfo(); authorizerInfo.setAuthorizerAppid(appId); authorizerInfoService.removeOpenAppid(authorizerInfo); return new ResultData(); } - return new ResultData(Result.ERROR, responseStr); + return new ResultData(Result.ERROR, ret.toString()); } catch (WxErrorException e) { logger.error(e.getMessage()); return new ResultData(Result.ERROR, e.getMessage()); @@ -350,21 +348,20 @@ public class WechatCalllbackController extends BaseController { public ResultData getOpenPlatform(@RequestParam(value = "appId") String appId) { Gson gson = new GsonBuilder().create(); try { - String responseStr = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId).getBindOpenPlatform(appId); - logger.info(responseStr); - WxOpenPlatformResult openPlatformResult = gson.fromJson(responseStr, WxOpenPlatformResult.class); - if (openPlatformResult.isSuccess()) { + WxOpenGetResult ret = openService.getWxOpenComponentService().getOpenAccount(appId); + logger.info(ret.toString()); + if (ret.isSuccess()) { WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId); if (authorizerInfo != null) { - if(StringUtils.isBlank(authorizerInfo.getOpenAppid()) && StringUtils.isNotBlank(openPlatformResult.getOpenAppid())) { + if(StringUtils.isBlank(authorizerInfo.getOpenAppid()) && StringUtils.isNotBlank(ret.getOpenAppid())) { authorizerInfo.setId(authorizerInfo.getId()); - authorizerInfo.setOpenAppid(openPlatformResult.getOpenAppid()); + authorizerInfo.setOpenAppid(ret.getOpenAppid()); authorizerInfoService.updateOpenAppid(authorizerInfo); } } - return new ResultData(openPlatformResult.getOpenAppid()); + return new ResultData(ret.getOpenAppid()); } - return new ResultData(Result.ERROR, responseStr); + return new ResultData(Result.ERROR, ret.toString()); } catch (WxErrorException e) { logger.error(e.getMessage()); return new ResultData(Result.ERROR, e.getMessage()); @@ -387,17 +384,14 @@ public class WechatCalllbackController extends BaseController { @ApiOperation("拉取当前所有已授权的帐号基本信息") public ResultData getAuthorizerList() { try { - String accessToken = openService.getWxOpenComponentService().getComponentAccessToken(true); - String ret = openService.getWxOpenComponentService().getApiGetAuthorizerList(accessToken, 0, 100); - logger.info("getAuthorizerList: " + ret); - JSONObject retObj = JSON.parseObject(ret); - if(retObj.getInteger("total_count") > 0) { - JSONArray dataList = retObj.getJSONArray("list"); - for(int i= 0;i 0) { + for (Map data : authorizerListResult.getList()) { + String appId = data.get("authorizer_appid"); + String refreshToken = data.get("refresh_token"); + Long authTime = Long.valueOf(data.get("auth_time")); + Date authDate = new Date(authTime*1000); if(StringUtils.isBlank(refreshToken)) { continue; @@ -412,7 +406,7 @@ public class WechatCalllbackController extends BaseController { openService.getWxOpenComponentService().getWxOpenConfigStorage().setAuthorizerRefreshToken(appId, refreshToken); } } - return new ResultData(ret); + return new ResultData(authorizerListResult.toString()); } catch (WxErrorException e) { logger.error(e.getMessage()); return new ResultData(Result.ERROR, e.getMessage()); diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java b/mlWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java index 6eb64c0..8d97ccc 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java @@ -6,6 +6,7 @@ import com.google.gson.reflect.TypeToken; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; import com.iformall.domain.dto.WxWeappCodeAuditDto; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxWeappCodeStatusVo; @@ -45,7 +46,7 @@ import java.util.Map; @RestController @RequestMapping("/weappCode") @Api(description = "微信第三方开发平台-小程序-代码管理") -public class WechatWeappCodeController { +public class WechatWeappCodeController extends BaseController { private final Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private FmOpenService openService; @@ -254,6 +255,7 @@ public class WechatWeappCodeController { WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId); boolean submitStatus = false; String codeErrCode = ""; + Long auditId = null; try { WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage); @@ -261,6 +263,7 @@ public class WechatWeappCodeController { if(openRet.isSuccess()) { submitStatus = true; codeErrCode = gson.toJson(openRet); + auditId = openRet.getAuditId(); } else { submitStatus = false; codeErrCode = gson.toJson(openRet); @@ -317,6 +320,23 @@ public class WechatWeappCodeController { return new ResultData(ErrorCode.WEAPP_CODE_COMMIT_ERR); } + @ApiOperation("查询服务商的当月提审限额(quota)和加急次数") + @GetMapping("/queryQuota") + @ApiImplicitParams({ + @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true)}) + public ResultData queryQuota(String appId) { + logger.debug("[" + getIpAddr() + "] WechatWeappCodeController::queryQuota"); + try { + WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); + WxOpenMaQueryQuotaResult openRet = openMaService.queryQuota(); + logger.info(openRet.toString()); + return new ResultData(openRet.toString()); + } catch (WxErrorException e) { + logger.error(e.getMessage()); + return new ResultData(e.getMessage()); + } + } + @ApiOperation("将第三方提交的代码包提交审核") @PostMapping("/submitAuditWithFeedBack") public ResultData submitAudit(@RequestBody WxWeappCodeAuditDto codeAuditDto) { @@ -348,6 +368,7 @@ public class WechatWeappCodeController { WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(codeAuditDto.getAppId()); boolean submitStatus = false; String codeErrCode = ""; + Long auditId = null; try { WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(codeAuditDto.getAppId()); WxOpenMaSubmitAuditResult openRet = openMaService.submitAudit(subMessage); @@ -355,6 +376,7 @@ public class WechatWeappCodeController { if(openRet.isSuccess()) { submitStatus = true; codeErrCode = gson.toJson(openRet); + auditId = openRet.getAuditId(); } else { submitStatus = false; codeErrCode = gson.toJson(openRet); @@ -373,6 +395,7 @@ public class WechatWeappCodeController { auditStatus.setType(codeStatus.getType()); auditStatus.setUserVersion(codeStatus.getUserVersion()); auditStatus.setVersionDesc(codeStatus.getVersionDesc()); + auditStatus.setAuditid(auditId); if(submitStatus) { auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); } else { @@ -395,6 +418,7 @@ public class WechatWeappCodeController { } auditStatus.setUserVersion(codeStatus.getUserVersion()); auditStatus.setVersionDesc(codeStatus.getVersionDesc()); + auditStatus.setAuditid(auditId); auditStatus.setAuditTime(new Date()); weappAuditStatusService.updateStatus(auditStatus); } @@ -411,6 +435,23 @@ public class WechatWeappCodeController { return new ResultData(ErrorCode.WEAPP_CODE_COMMIT_ERR); } + @ApiOperation("加速某个指定版本的审核状态") + @GetMapping("/speedAudit") + @ApiImplicitParams({ + @ApiImplicitParam(name = "appId", value = "appId", dataType = "String", paramType = "query", required = true), + @ApiImplicitParam(name = "auditid", value = "auditid", dataType = "Long", paramType = "query", required = true)}) + public ResultData speedAudit(String appId, Long auditid) { + logger.debug("[" + getIpAddr() + "] WechatWeappCodeController::speedAudit"); + try { + WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId); + Boolean ret = openMaService.speedAudit(Long.valueOf(auditid)); + return new ResultData(ret.toString()); + } catch (WxErrorException e) { + logger.error(e.getMessage()); + return new ResultData(e.getMessage()); + } + } + @ApiOperation("查询某个指定版本的审核状态") @PostMapping("/getAuditstatus") public ResultData getAuditstatus(String appId, String auditidStr) { diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java b/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java index 36cf0da..1bd88f8 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java @@ -696,9 +696,9 @@ public class WxWeappInfoController extends BaseController { auditStatus.setType(codeStatus.getType()); auditStatus.setUserVersion(codeStatus.getUserVersion()); auditStatus.setVersionDesc(codeStatus.getVersionDesc()); + auditStatus.setAuditid(auditid); if(submitStatus) { auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); - auditStatus.setAuditid(auditid); } else { auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); } @@ -706,6 +706,7 @@ public class WxWeappInfoController extends BaseController { auditStatus.setAuditTime(new Date()); weappAuditStatusService.saveStatus(auditStatus); } else { + auditStatus.setAuditid(auditid); if(!submitStatus) { if(!auditStatus.getUserVersion().equals(codeStatus.getUserVersion()) && auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) { @@ -715,7 +716,6 @@ public class WxWeappInfoController extends BaseController { auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode()); } else { auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode()); - auditStatus.setAuditid(auditid); } auditStatus.setUserVersion(codeStatus.getUserVersion()); auditStatus.setVersionDesc(codeStatus.getVersionDesc()); diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java b/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java index 26cf1e3..7eac075 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java @@ -72,7 +72,7 @@ public class WxCardController extends BaseController { if (type.equalsIgnoreCase("groupon")) { //团购券 - WxMpCardCreateMessage grouponMessage = new WxMpCardCreateMessage(); + WxMpCardCreateRequest grouponMessage = new WxMpCardCreateRequest(); GrouponCardCreateRequest grouponCardCreateRequest = new GrouponCardCreateRequest(); GrouponCard grouponCard = new GrouponCard(); grouponCard.setBaseInfo(base); @@ -90,7 +90,7 @@ public class WxCardController extends BaseController { } } else if (type.equalsIgnoreCase("cash")) { //现金券 - WxMpCardCreateMessage cashMessage = new WxMpCardCreateMessage(); + WxMpCardCreateRequest cashMessage = new WxMpCardCreateRequest(); CashCardCreateRequest cashCardCreateRequest = new CashCardCreateRequest(); CashCard cashCard = new CashCard(); cashCard.setBaseInfo(base); @@ -107,7 +107,7 @@ public class WxCardController extends BaseController { } } else if (type.equalsIgnoreCase("discount")) { //折扣券 - WxMpCardCreateMessage discountMessage = new WxMpCardCreateMessage(); + WxMpCardCreateRequest discountMessage = new WxMpCardCreateRequest(); DiscountCardCreateRequest discountCardCreateRequest = new DiscountCardCreateRequest(); DiscountCard discountCard = new DiscountCard(); discountCard.setBaseInfo(base); @@ -124,7 +124,7 @@ public class WxCardController extends BaseController { } } else if (type.equalsIgnoreCase("gift")) { //兑换券 - WxMpCardCreateMessage giftMessage = new WxMpCardCreateMessage(); + WxMpCardCreateRequest giftMessage = new WxMpCardCreateRequest(); GiftCardCreateRequest giftCardCreateRequest = new GiftCardCreateRequest(); GiftCard giftCard = new GiftCard(); giftCard.setBaseInfo(base); @@ -140,9 +140,9 @@ public class WxCardController extends BaseController { } } else if (type.equalsIgnoreCase("generalcard")) { //普通兑换券 - WxMpCardCreateMessage generalMessage = new WxMpCardCreateMessage(); - GeneralCardCreateRequest generalCardCreateRequest = new GeneralCardCreateRequest(); - GeneralCard generalCard = new GeneralCard(); + WxMpCardCreateRequest generalMessage = new WxMpCardCreateRequest(); + GeneralCouponCreateRequest generalCardCreateRequest = new GeneralCouponCreateRequest(); + GeneralCoupon generalCard = new GeneralCoupon(); generalCard.setBaseInfo(base); generalCard.setDefaultDetail("音乐木盒"); diff --git a/mlWechatOpen/src/main/java/com/iformall/mp/utils/MpUtil.java b/mlWechatOpen/src/main/java/com/iformall/mp/utils/MpUtil.java index dfcf8d2..762fa9e 100644 --- a/mlWechatOpen/src/main/java/com/iformall/mp/utils/MpUtil.java +++ b/mlWechatOpen/src/main/java/com/iformall/mp/utils/MpUtil.java @@ -1,16 +1,16 @@ package com.iformall.mp.utils; import com.iformall.domain.po.WxAppinfo; -import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; +import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; /** * @author Stormeye */ public class MpUtil { static public WxMpService getMpService(WxAppinfo appinfo) { - WxMpInMemoryConfigStorage configStorage = new WxMpInMemoryConfigStorage(); + WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl(); configStorage.setAppId(appinfo.getAppId()); configStorage.setSecret(appinfo.getSecret()); configStorage.setToken(appinfo.getToken()); diff --git a/pom.xml b/pom.xml index a5823bc..b17842f 100644 --- a/pom.xml +++ b/pom.xml @@ -23,11 +23,11 @@ - 3.4.0.A - 3.4.0.A - 3.4.0.A - 3.4.0.A - 3.4.0.A + 3.6.0.A + 3.6.0.A + 3.6.0.A + 3.6.0.A + 3.6.0.A 2.3.0