Просмотр исходного кода

[wxjava][修改]:wxjava升级到3.6.0.A,支持审核加速

release^2
Stormeye Wu 6 лет назад
Родитель
Сommit
91fc515d95
7 измененных файлов: 95 добавлений и 56 удалений
  1. +7
    -3
      mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml
  2. +30
    -36
      mlWechatOpen/src/main/java/com/iformall/controller/WechatCalllbackController.java
  3. +42
    -1
      mlWechatOpen/src/main/java/com/iformall/controller/WechatWeappCodeController.java
  4. +2
    -2
      mlWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java
  5. +7
    -7
      mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java
  6. +2
    -2
      mlWechatOpen/src/main/java/com/iformall/mp/utils/MpUtil.java
  7. +5
    -5
      pom.xml

+ 7
- 3
mallinkService/src/main/resources/mapper/WxWeappAuditStatusMapper.xml Просмотреть файл

@@ -8,14 +8,14 @@
<result column="type" jdbcType="INTEGER" property="type"/>
<result column="user_version" jdbcType="VARCHAR" property="userVersion"/>
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc"/>
<result column="auditid" jdbcType="INTEGER" property="auditid"/>
<result column="auditid" jdbcType="Long" property="auditid"/>
<result column="audit_status" jdbcType="INTEGER" property="auditStatus"/>
<result column="audit_err_code" jdbcType="VARCHAR" property="auditErrCode"/>
<result column="audit_time" jdbcType="TIMESTAMP" property="auditTime"/>
</resultMap>

<sql id="allColumns">
`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`
</sql>

<sql id="dynamicWhereConditions">
@@ -87,6 +87,7 @@
<result column="type" jdbcType="INTEGER" property="type"/>
<result column="user_version" jdbcType="VARCHAR" property="userVersion"/>
<result column="version_desc" jdbcType="VARCHAR" property="versionDesc"/>
<result column="auditid" jdbcType="Long" property="auditid"/>
<result column="audit_status" jdbcType="INTEGER" property="auditStatus"/>
<result column="audit_err_code" jdbcType="VARCHAR" property="auditErrCode"/>
<result column="audit_time" jdbcType="TIMESTAMP" property="auditTime"/>
@@ -95,7 +96,7 @@

<sql id="allVoColumns">
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`
</sql>

@@ -116,6 +117,9 @@
<if test=" null != userVersion ">
and c.`user_version` = #{userVersion}
</if>
<if test=" null != auditid ">
and `auditid` = #{auditid}
</if>
<if test=" null != auditStatus ">
and c.`audit_status` = #{auditStatus}
</if>


+ 30
- 36
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<dataList.size();i++) {
JSONObject obj = dataList.getJSONObject(i);
String appId = obj.getString("authorizer_appid");
String refreshToken = obj.getString("refresh_token");
Date authDate = new Date(obj.getLong("auth_time")*1000);
WxOpenAuthorizerListResult authorizerListResult = openService.getWxOpenComponentService().getAuthorizerList(0, 100);
logger.info("getAuthorizerList: " + authorizerListResult);
if(authorizerListResult.getTotalCount() > 0) {
for (Map<String, String> 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());


+ 42
- 1
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) {


+ 2
- 2
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());


+ 7
- 7
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("音乐木盒");



+ 2
- 2
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());


+ 5
- 5
pom.xml Просмотреть файл

@@ -23,11 +23,11 @@
</parent>

<properties>
<weixin-java-common.version>3.4.0.A</weixin-java-common.version>
<weixin-java-mp.version>3.4.0.A</weixin-java-mp.version>
<weixin-java-miniapp.version>3.4.0.A</weixin-java-miniapp.version>
<weixin-java-pay.version>3.4.0.A</weixin-java-pay.version>
<weixin-java-open.version>3.4.0.A</weixin-java-open.version>
<weixin-java-common.version>3.6.0.A</weixin-java-common.version>
<weixin-java-mp.version>3.6.0.A</weixin-java-mp.version>
<weixin-java-miniapp.version>3.6.0.A</weixin-java-miniapp.version>
<weixin-java-pay.version>3.6.0.A</weixin-java-pay.version>
<weixin-java-open.version>3.6.0.A</weixin-java-open.version>
<quartz.version>2.3.0</quartz.version>
</properties>



Загрузка…
Отмена
Сохранить