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

[微信第三方平台][修改]:code提交和提交审核分离

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
53d356a7ec
1 измененных файлов: 203 добавлений и 84 удалений
  1. +203
    -84
      mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java

+ 203
- 84
mallinkWechatOpen/src/main/java/com/iformall/controller/WxWeappInfoController.java Просмотреть файл

@@ -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) {


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