|
- package com.iformall.controller;
-
- import cn.binarywang.wx.miniapp.api.WxMaService;
- import cn.binarywang.wx.miniapp.bean.template.WxMaTemplateAddResult;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.github.pagehelper.PageInfo;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- 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.po.*;
- import com.iformall.domain.vo.WxWeappAuditStatusVo;
- import com.iformall.domain.vo.WxWeappCodeStatusVo;
- import com.iformall.domain.vo.WxWeappInfo;
- import com.iformall.domain.vo.WxWeappReleaseStatusVo;
- import com.iformall.enums.*;
- import com.iformall.service.*;
- import com.iformall.service.toutiao.FmTtOpenService;
- import com.iformall.service.toutiao.api.TtOpenMaService;
- import com.iformall.service.toutiao.api.bean.TtOpenResult;
- import com.iformall.service.toutiao.miniapp.TtMaService;
- import com.iformall.service.wechat.FmOpenService;
- import com.iformall.utils.Constant;
- import com.iformall.utils.OpenConstant;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import me.chanjar.weixin.common.error.WxErrorException;
- import me.chanjar.weixin.open.api.WxOpenMaService;
- import me.chanjar.weixin.open.bean.ma.WxMaOpenCommitExtInfo;
- import me.chanjar.weixin.open.bean.message.WxOpenMaSubmitAuditMessage;
- import me.chanjar.weixin.open.bean.result.WxOpenMaDomainResult;
- import me.chanjar.weixin.open.bean.result.WxOpenMaQueryAuditResult;
- import me.chanjar.weixin.open.bean.result.WxOpenMaSubmitAuditResult;
- import me.chanjar.weixin.open.bean.result.WxOpenResult;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.*;
-
- import javax.servlet.ServletOutputStream;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.URLEncoder;
- import java.util.*;
-
- /**
- * Stormeye Wu
- */
- @Controller
- @RequestMapping("/weapp")
- @Api(description = "小程序")
- public class WxWeappInfoController extends BaseController {
- private final Logger logger = LoggerFactory.getLogger(getClass());
-
- @Autowired
- private Integer getFmDeploy;
-
- @Autowired
- private WxAuthorizerInfoService authorizerInfoService;
-
- @Autowired
- private WxWeappBasicSetService weappBasicSetService;
-
- @Autowired
- private WxWeappExtSetService weappExtSetService;
-
- @Autowired
- private WxWeappCodeStatusService weappCodeStatusService;
-
- @Autowired
- private WxWeappAuditStatusService weappAuditStatusService;
-
- @Autowired
- private WxWeappReleaseStatusService weappReleaseStatusService;
-
- @Autowired
- private FmTtOpenService openService;
-
- @Autowired
- private WxAppinfoService appinfoService;
-
- @Autowired
- private WxTemplateMsgService templateMsgService;
-
-
- @ApiOperation(value = "小程序分页列表接口", notes = "查询支持小程序类型,名称,appid,version")
- @GetMapping("list")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
- @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
- public ResultData list(@ModelAttribute WxWeappInfo weappInfo, Integer pageNum, Integer pageSize) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::list");
- if (null == weappInfo) {
- weappInfo = new WxWeappInfo();
- } else {
- if(StringUtils.isBlank(weappInfo.getName())) {
- weappInfo.setName(null);
- }
- }
- weappInfo.setPlat(EnumAppPlat.TOUTIAO.getCode());
- weappInfo.setSortColumns(BaseEntity.SortField.TenantId_ASC,BaseEntity.SortField.Type_ASC,BaseEntity.SortField.Name_ASC);
- final PageInfo<WxWeappInfo> page = authorizerInfoService.listVoAsPage(weappInfo, pageNum, pageSize);
- return new ResultData(page);
- }
-
- @ApiOperation("小程序列表接口")
- @GetMapping("allist")
- public ResultData getList(@ModelAttribute WxWeappInfo weappInfo) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::list");
- if (null == weappInfo) {
- weappInfo = new WxWeappInfo();
- } else {
- if(StringUtils.isBlank(weappInfo.getName())) {
- weappInfo.setName(null);
- }
- }
- weappInfo.setSortColumns(BaseEntity.SortField.CurrentVersion_DESC);
- final List<WxWeappInfo> list = authorizerInfoService.getList(weappInfo);
- return new ResultData(list);
- }
-
- @ApiOperation(value = "APPs基础设置(服务器域名、业务域名、基础版本、微信模板)", notes = "{\"apps\":\"appid,appid\",\"type\":\"String\"}")
- @PostMapping("batchBasicSet")
- public ResultData batchSet(@RequestBody Map<String, String> params) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchBasicSet");
- String appsStr = params.get(OpenConstant.APPS);
- String typeStr = params.get(OpenConstant.TYPE);
-
- if(StringUtils.isBlank(typeStr)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "type参数不能为空");
- }
-
- Integer type = 0;
- try {
- type = Integer.parseInt(typeStr);
- } catch (Exception e) {
- return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
- }
- // 检查基础配置参数
- WxWeappBasicSet weappBasicSetQ = new WxWeappBasicSet();
- weappBasicSetQ.setType(type);
- weappBasicSetQ.setDeploy(getFmDeploy);
- WxWeappBasicSet weappBasicSet = weappBasicSetService.getByTypeAndDeploy(weappBasicSetQ);
- if(weappBasicSet == null) {
- logger.error("未找到相关的基础设置参数");
- return new ResultData(ErrorCode.WEAPP_BASIC_SET_ERR);
- }
-
- JSONObject domainObj = JSON.parseObject(weappBasicSet.getDomainUrl());
- if(domainObj == null) {
- logger.error("未找到相关的基础设置参数");
- return new ResultData(ErrorCode.WEAPP_BASIC_SET_DOMAIN_ERR);
- }
- JSONObject templeObj = JSON.parseObject(weappBasicSet.getTemplateInfo());
- logger.info(templeObj.toJSONString());
-
- if(StringUtils.isBlank(appsStr)) {
- WxWeappInfo weappInfoQ = new WxWeappInfo();
- weappInfoQ.setType(type);
- List<WxWeappInfo> list = authorizerInfoService.getList(weappInfoQ);
- for(WxWeappInfo info: list) {
- appsStr += info.getAuthorizerAppid() + ",";
- }
- appsStr = appsStr.substring(0, appsStr.length() - 1);
- }
-
- // 逐一设置app配置
- String [] apps = appsStr.split(",");
- 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);
- }
- ResultData openRet = setBasicForAppId(appId, weappBasicSet, domainObj, templeObj);
- if (openRet != null) return openRet;
- }
- return new ResultData();
- }
-
- @ApiOperation(value = "APP清除域名", notes = "{\"weappId\":\"weappId\",\"type\":\"String\"}")
- @PostMapping("cleanDomain")
- public ResultData cleanDomain(@RequestBody Map<String, String> params) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::cleanDomain");
- String appId = params.get(OpenConstant.WE_APPID);
- String typeStr = params.get(OpenConstant.TYPE);
-
- if(StringUtils.isBlank(typeStr)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "type参数不能为空");
- }
- if(StringUtils.isBlank(appId)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "weappId参数不能为空");
- }
-
- Integer type = 0;
- try {
- type = Integer.parseInt(typeStr);
- } catch (Exception e) {
- return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
- }
- // 检查基础配置参数
- WxWeappBasicSet weappBasicSetQ = new WxWeappBasicSet();
- weappBasicSetQ.setType(type);
- weappBasicSetQ.setDeploy(getFmDeploy);
- WxWeappBasicSet weappBasicSet = weappBasicSetService.getByTypeAndDeploy(weappBasicSetQ);
- if(weappBasicSet == null) {
- logger.error("未找到相关的基础设置参数");
- return new ResultData(ErrorCode.WEAPP_BASIC_SET_ERR);
- }
-
- JSONObject domainObj = JSON.parseObject(weappBasicSet.getDomainUrl());
- if(domainObj == null) {
- logger.error("未找到相关的基础设置参数");
- return new ResultData(ErrorCode.WEAPP_BASIC_SET_DOMAIN_ERR);
- }
-
- // 检查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);
- }
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(appId);
- try {
- modifyDomainUrl(OpenConstant.DEL, domainObj, authorizerInfo, openMaService);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- return new ResultData(Result.ERROR, e.getMessage());
- }
- return new ResultData();
- }
-
- private ResultData setBasicForAppId(String appId, WxWeappBasicSet weappBasicSet, JSONObject domainObj, JSONObject templeObj) {
- WxAuthorizerInfo authorizerInfo = authorizerInfoService.getByAppId(appId);
- if(authorizerInfo == null) {
- return new ResultData(ErrorCode.WEAPP_APPID_NOT_AUTH);
- }
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(appId);
- try {
- setBasicVersion(weappBasicSet, authorizerInfo, openMaService);
- modifyDomainUrl(OpenConstant.SET, domainObj, authorizerInfo, openMaService);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- return new ResultData(Result.ERROR, e.getMessage());
- }
- // // 设置微信模板
- // if(weappBasicSet.getType().equals(EnumAppType.C.getCode())) {
- // if(authorizerInfo.getTemplateStatus() == null ||
- // !authorizerInfo.getTemplateStatus().equals(EnumWxAuthotizationTemplateStatus.SUCCESS.getCode())) {
- // // 模板未设置或者设置失败
- // // 获取模板
- // WxAppinfo appinfo = appinfoService.getByAppId(appId);
- // TtMaService maService = openService.getTtOpenComponentService().getTtMaServiceByAppid(appId);
- //
- // try {
- //// setBasicTemplateMsgVerifySuccess(templeObj, appinfo, maService);
- //// setBasicTemplateMsgVerifyFail(templeObj, appinfo, maService);
- //// setBasicTemplateMsgPressSuccess(templeObj, appinfo, maService);
- //
- // // 更新状态
- // authorizerInfo.setTemplateStatus(EnumWxAuthotizationTemplateStatus.SUCCESS.getCode());
- // authorizerInfo.setTemplateTime(new Date());
- // authorizerInfo.setUpdateTime(new Date());
- // authorizerInfoService.updateTemplate(authorizerInfo);
- // } catch (WxErrorException e) {
- // logger.error(e.getMessage());
- // // 更新状态
- // authorizerInfo.setTemplateStatus(EnumWxAuthotizationTemplateStatus.Fail.getCode());
- // authorizerInfo.setTemplateTime(new Date());
- // authorizerInfo.setUpdateTime(new Date());
- // authorizerInfoService.updateTemplate(authorizerInfo);
- // return new ResultData(Result.ERROR, e.getMessage());
- // }
- // }
- // }
- // 设置成功返回null
- return null;
- }
-
- // private void setBasicTemplateMsg(JSONObject templeObj, WxAppinfo appinfo, TtMaService maService, Integer msgCode, String msgTypeStr) throws WxErrorException {
- // JSONObject msgObj;
- // try {
- // msgObj = templeObj.getJSONObject(msgTypeStr);
- // } catch (Exception e) {
- // logger.error(e.getMessage());
- // return;
- // }
- // logger.info(msgObj.toJSONString());
- // String id = msgObj.getString(OpenConstant.ID);
- // JSONArray keyidlist = msgObj.getJSONArray(OpenConstant.KEY_ID_LIST);
- // String customParam = msgObj.getString(OpenConstant.CUSTOM_PARAM);
- // logger.info(customParam);
- // JSONObject customParamObj = JSON.parseObject(customParam);
- // List<Integer> keyArr1 = getIdList(keyidlist);
- // if (appinfo != null) {
- // // wx_template_msg
- // WxTemplateMsg templateMsgQ = new WxTemplateMsg();
- // templateMsgQ.setTenantId(appinfo.getTenantId());
- // logger.info(msgCode.toString());
- // templateMsgQ.setType(msgCode);
- // WxTemplateMsg templateMsg = templateMsgService.getByObj(templateMsgQ);
- // if (templateMsg != null) {
- // templateMsg.setCustomParam(customParamObj.toJSONString());
- // templateMsgService.saveOrUpdate(templateMsg);
- // } else {
- // WxMaTemplateAddResult ret = maService.getTemplateService().addTemplate(id, keyArr1);
- // logger.info(ret.toString());
- // templateMsgQ.setTemplateId(ret.getTemplateId());
- // templateMsgQ.setCustomParam(customParamObj.toJSONString());
- // templateMsgService.saveOrUpdate(templateMsgQ);
- // }
- // }
- // }
-
- // private void setBasicTemplateMsgVerifySuccess(JSONObject templeObj, WxAppinfo appinfo, TtMaService maService) throws WxErrorException {
- // // 核销成功消息
- // setBasicTemplateMsg(templeObj, appinfo, maService, EnumTemplateType.VERIFY_SUCCESS.getCode(), OpenConstant.VERIFY_SUCC);
- // }
- //
- // private void setBasicTemplateMsgVerifyFail(JSONObject templeObj, WxAppinfo appinfo, TtMaService maService) throws WxErrorException {
- // // 核销失败消息
- // setBasicTemplateMsg(templeObj, appinfo, maService, EnumTemplateType.VERIFY_FAIL.getCode(), OpenConstant.VERIFY_FAIL);
- // }
- //
- // private void setBasicTemplateMsgPressSuccess(JSONObject templeObj, WxAppinfo appinfo, TtMaService maService) throws WxErrorException {
- // // 砍价成功消息
- // logger.info("setBasicTemplateMsgPressSuccess begin..");
- // /// EnumTemplateType.PRESS_PRICE_SUCCESS.getCode()
- // setBasicTemplateMsg(templeObj, appinfo, maService, 3, "press_success");
- // logger.info("setBasicTemplateMsgPressSuccess end.");
- // }
-
- private void modifyDomainUrl(String action, JSONObject domainObj, WxAuthorizerInfo authorizerInfo, TtOpenMaService openMaService) throws WxErrorException {
- // 服务器域名
- JSONObject urlObj = domainObj.getJSONObject(OpenConstant.URL);
- List<String> requestDomain = getUrlList(urlObj.getJSONArray(OpenConstant.REQ_DOMAIN));
- List<String> wsrequestDomain = getUrlList(urlObj.getJSONArray(OpenConstant.WS_DOMAIN));
- List<String> uploadDomain = getUrlList(urlObj.getJSONArray(OpenConstant.UPLOAD_DOMAIN));
- List<String> downloadDomain = getUrlList(urlObj.getJSONArray(OpenConstant.DOWNLOAD_DOMAIN));
- logger.info(downloadDomain.toString());
- WxOpenMaDomainResult openRet = openMaService.modifyDomain(action,
- requestDomain, wsrequestDomain,
- uploadDomain, downloadDomain);
- logger.info(openRet.toString());
- if(openRet.isSuccess()) {
- logger.info("设置服务器域名成功");
- authorizerInfo.setDomainStatus(EnumEnableType.SUCC.getCode());
- authorizerInfo.setDomainTime(new Date());
- authorizerInfo.setUpdateTime(new Date());
-
- } else {
- logger.info("设置服务器域名成功");
- authorizerInfo.setDomainStatus(EnumEnableType.FAIL.getCode());
- authorizerInfo.setDomainTime(new Date());
- authorizerInfo.setUpdateTime(new Date());
- }
- authorizerInfoService.updateDomainUrl(authorizerInfo);
- // 业务域名
- JSONObject webObj = domainObj.getJSONObject(OpenConstant.WEB);
- List<String> urlList = getUrlList(webObj.getJSONArray(OpenConstant.WEB_DOMAIN));
- String openRet1 = openMaService.setWebViewDomain(action, urlList);
- logger.info(openRet1);
- JSONObject webRetObj = JSON.parseObject(openRet1);
- if(webRetObj.getInteger(OpenConstant.ERRCODE).equals(0)) {
- logger.info("设置服务器业务域名成功");
- authorizerInfo.setWebdomainStatus(EnumEnableType.SUCC.getCode());
- authorizerInfo.setWebdomainTime(new Date());
- authorizerInfo.setUpdateTime(new Date());
- } else {
- logger.info("设置服务器业务域名失败");
- authorizerInfo.setWebdomainStatus(EnumEnableType.FAIL.getCode());
- authorizerInfo.setWebdomainTime(new Date());
- authorizerInfo.setUpdateTime(new Date());
- }
- authorizerInfoService.updateWebDomainUrl(authorizerInfo);
- }
-
- private void setBasicVersion(WxWeappBasicSet weappBasicSet, WxAuthorizerInfo authorizerInfo, TtOpenMaService openMaService) throws WxErrorException {
- // 设置基础版本
- String versionRet = openMaService.setSupportVersion(weappBasicSet.getVersion());
- logger.info(versionRet);
- JSONObject verObj = JSON.parseObject(versionRet);
- if(verObj.getInteger(OpenConstant.ERRCODE).equals(OpenConstant.SUCC)) {
- authorizerInfo.setBaseStatus(EnumEnableType.SUCC.getCode());
- } else {
- authorizerInfo.setBaseStatus(EnumEnableType.FAIL.getCode());
- }
- authorizerInfo.setBaseTime(new Date());
- authorizerInfo.setUpdateTime(new Date());
- authorizerInfoService.updateBaseVersion(authorizerInfo);
- }
-
- private List<Integer> getIdList(JSONArray keyidlist) {
- List<Integer> keyArr = new ArrayList<Integer>();
- for (int i = 0; i < keyidlist.size(); i++) {
- keyArr.add(keyidlist.getIntValue(i));
- }
- return keyArr;
- }
-
- private List<String> getUrlList(JSONArray urlList) {
- List<String> keyArr = new ArrayList<String>();
- for (int i = 0; i < urlList.size(); i++) {
- keyArr.add(urlList.getString(i));
- }
- return keyArr;
- }
-
- @ApiOperation(value = "批量授权的小程序code提交", notes = "{\"apps\":\"appid,appid\",\"templateId\":\"String\",\"type\":\"String\",\"userVersion\":\"String\",\"userDesc\":\"String\"}")
- @PostMapping("batchCodeCommit")
- public ResultData batchCodeCommit(@RequestBody Map<String, String> params) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchExtSet");
- String appsStr = params.get(OpenConstant.APPS);
- String templateIdStr = params.get(OpenConstant.TEMPLATE_ID);
- String typeStr = params.get(OpenConstant.TYPE);
- String userVersion = params.get(OpenConstant.USER_VERSION);
- String userDesc = params.get(OpenConstant.USER_DESC);
-
- Integer type = null;
- Long templateId = null;
- try {
- templateId = Long.parseLong(templateIdStr);
- } catch (Exception e) {
- return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
- }
-
- try {
- type = Integer.parseInt(typeStr);
- } catch (Exception e) {
- logger.error("type为null");
- }
- if(StringUtils.isBlank(appsStr)) {
- if(type == null) {
- logger.error("type为null");
- return new ResultData(ErrorCode.SYS_PARAMETER_ERROR);
- }
- WxWeappInfo authQ = new WxWeappInfo();
- authQ.setType(type);
- List<WxWeappInfo> appList = authorizerInfoService.getList(authQ);
- appsStr = "";
- StringBuilder sb = new StringBuilder();
- boolean bfirst = true;
- for(WxWeappInfo app: appList) {
- if(bfirst) {
- sb.append(app.getAuthorizerAppid());
- bfirst = false;
- } else {
- sb.append(app.getAuthorizerAppid()).append(",");
- }
- }
- }
- 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);
-
- // int iAppType = 0;
- // String appTypeStr = userVersion.substring(0, 1);
- // if(appTypeStr.equalsIgnoreCase(Constant.C))
- // iAppType = EnumAppType.C.getCode();
- // else if(appTypeStr.equalsIgnoreCase(Constant.B))
- // iAppType = EnumAppType.B.getCode();
- //
- // if(!appinfo.getType().equals(iAppType)) {
- // // 如果版本号与小程序的类型不一致,不提交版本
- // return;
- // }
-
- // 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 = "{\"type\":\"String\",\"userVersion\":\"String\",\"apps\":\"appid,appid\"}")
- @PostMapping("batchCodeAudit")
- public ResultData batchCodeAudit(@RequestBody Map<String, String> params) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchExtSet");
- String appsStr = params.get(OpenConstant.APPS);
- String typeStr = params.get(OpenConstant.TYPE);
- String userVersion = params.get(OpenConstant.USER_VERSION);
- Integer type = null;
- try {
- type = Integer.parseInt(typeStr);
- } catch (Exception e) {
- logger.error("小程序类型");
- }
- if(StringUtils.isBlank(appsStr)) {
- if(type == null) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
- }
- WxWeappInfo authQ = new WxWeappInfo();
- authQ.setType(type);
- List<WxWeappInfo> appList = authorizerInfoService.getList(authQ);
- appsStr = "";
- StringBuilder sb = new StringBuilder();
- boolean bfirst = true;
- for(WxWeappInfo app: appList) {
- if(bfirst) {
- sb.append(app.getAuthorizerAppid());
- bfirst = false;
- } else {
- sb.append(app.getAuthorizerAppid()).append(",");
- }
- }
- }
- 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) {
- WxWeappAuditStatus auditStatus = weappAuditStatusService.getByAppId(appId);
- if(auditStatus != null && auditStatus.getAuditStatus().equals(EnumWeappAuditStatus.AUDITING.getCode())) {
- logger.error("审核中不能再提交审核");
- return;
- }
- doCodeAudit(codeStatus, auditStatus, extSet);
- } 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("OLD: " + extInfo.toString());
- // 自动修改提交的版本
- if(extInfo.getExtMap().containsKey(OpenConstant.APP_VERSION)) {
- extInfo.getExtMap().put(OpenConstant.APP_VERSION, userVersion);
- }
- logger.info("NEW: " + extInfo.toString());
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(appinfo.getAppId());
- TtOpenResult 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.setId(appinfo.getId());
- codeStatus.setTenantId(appinfo.getTenantId());
- codeStatus.setAppId(appinfo.getAppId());
- if (appinfo != null) {
- codeStatus.setType(appinfo.getType());
- codeStatus.setPlat(appinfo.getPlat());
- }
- 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.saveStatus(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.updateStatus(codeStatus);
- }
- return codeCommitStatus;
- }
-
- private void doCodeAudit(WxWeappCodeStatus codeStatus, WxWeappAuditStatus auditStatus, WxWeappExtSet extSet) {
- Gson gson = new GsonBuilder().create();
- boolean submitStatus = false;
- Long auditid = null;
- String codeErrCode = "";
- try {
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(codeStatus.getAppId());
- TtOpenResult openRet = openMaService.submitAudit();
- logger.info(openRet.toString());
- if(openRet.isSuccess()) {
- submitStatus = true;
- } else {
- submitStatus = false;
- }
- codeErrCode = gson.toJson(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- submitStatus = false;
- codeErrCode = e.getMessage();
- }
-
- if (auditStatus == null) {
- auditStatus = new WxWeappAuditStatus();
- auditStatus.setId(codeStatus.getId());
- auditStatus.setTenantId(codeStatus.getTenantId());
- auditStatus.setAppId(codeStatus.getAppId());
- auditStatus.setType(codeStatus.getType());
- auditStatus.setPlat(codeStatus.getPlat());
- auditStatus.setUserVersion(codeStatus.getUserVersion());
- auditStatus.setVersionDesc(codeStatus.getVersionDesc());
- auditStatus.setAuditid(auditid);
- if(submitStatus) {
- auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
- } else {
- auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
- }
- auditStatus.setAuditErrCode(codeErrCode);
- 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())) {
- // 当前审核中的数据不能替换
- return;
- }
- auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
- } else {
- auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
- }
- auditStatus.setUserVersion(codeStatus.getUserVersion());
- auditStatus.setVersionDesc(codeStatus.getVersionDesc());
- auditStatus.setAuditErrCode(codeErrCode);
- auditStatus.setAuditTime(new Date());
- weappAuditStatusService.updateStatus(auditStatus);
- }
- }
-
-
- @ApiOperation(value = "批量审核查询", notes = "{\"type\":\"string\",\"version\":\"string\"}")
- @PostMapping("batchAuditQuery")
- public ResultData batchAuditQuery(@RequestBody Map<String, String> params) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchAuditQuery");
- Gson gson = new GsonBuilder().create();
- String typeStr = params.get(OpenConstant.TYPE);
- String version = params.get(OpenConstant.VERSION);
- Integer type = null;
- try {
- type = Integer.parseInt(typeStr);
- } catch (Exception e) {
- logger.error(e.getMessage());
- }
- WxWeappAuditStatusVo queryVo = new WxWeappAuditStatusVo();
- if(StringUtils.isNotBlank(typeStr)) {
- queryVo.setType(type);
- }
- if(StringUtils.isNotBlank(version)) {
- queryVo.setUserVersion(version);
- }
- queryVo.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
- List<WxWeappAuditStatusVo> apps = weappAuditStatusService.getList(queryVo);
- apps.stream().forEach( auditStatus -> {
- // 审核中,可以发起审核查询
- try {
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(auditStatus.getAppId());
- WxOpenMaQueryAuditResult openResult = openMaService.getLatestAuditStatus();
- logger.info(openResult.toString());
- if (openResult.isSuccess()) {
- // 审核状态,其中0为审核成功,1为审核失败,2为审核中,3已撤回
- switch (openResult.getStatus().intValue()) {
- case 0:
- auditStatus.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
- break;
- case 1:
- auditStatus.setAuditStatus(EnumWeappAuditStatus.FAIL.getCode());
- break;
- case 2:
- auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
- break;
- case 3:
- auditStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
- break;
- default:
- auditStatus.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
- break;
- }
- auditStatus.setAuditErrCode(gson.toJson(openResult));
- auditStatus.setAuditid(openResult.getAuditId());
- auditStatus.setAuditTime(new Date());
- weappAuditStatusService.updateStatus(auditStatus);
- }
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- });
- return new ResultData();
- }
-
- @ApiOperation(value = "批量审核撤回", notes = "{\"type\":\"string\",\"version\":\"string\"}")
- @PostMapping("batchAuditCancel")
- public ResultData batchAuditCancel(@RequestBody Map<String, String> params) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchAuditCancel");
- Gson gson = new GsonBuilder().create();
- String typeStr = params.get(OpenConstant.TYPE);
- String version = params.get(OpenConstant.VERSION);
- Integer type = null;
- try {
- type = Integer.parseInt(typeStr);
- } catch (Exception e) {
- logger.error(e.getMessage());
- }
- WxWeappAuditStatusVo queryVo = new WxWeappAuditStatusVo();
- if(StringUtils.isNotBlank(typeStr)) {
- queryVo.setType(type);
- }
- if(StringUtils.isNotBlank(version)) {
- queryVo.setUserVersion(version);
- }
- queryVo.setAuditStatus(EnumWeappAuditStatus.AUDITING.getCode());
- List<WxWeappAuditStatusVo> apps = weappAuditStatusService.getList(queryVo);
- apps.stream().forEach( auditStatus -> {
- // 审核通过,已发布不可撤回
- try {
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(auditStatus.getAppId());
- WxOpenResult openResult = openMaService.undoCodeAudit();
- logger.info(openResult.toString());
- if(openResult.isSuccess()) {
- auditStatus.setAuditStatus(EnumWeappAuditStatus.UNDO.getCode());
- auditStatus.setAuditErrCode(gson.toJson(openResult));
- auditStatus.setAuditTime(new Date());
- weappAuditStatusService.updateStatus(auditStatus);
- }
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- });
- return new ResultData();
- }
-
- @ApiOperation(value = "批量发布", notes = "{\"type\":\"string\", \"version\":\"string\"}")
- @PostMapping("batchRelease")
- public ResultData batchRelease(@RequestBody Map<String, String> params) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::batchRelease");
- Gson gson = new GsonBuilder().create();
- String typeStr = params.get(OpenConstant.TYPE);
- String version = params.get(OpenConstant.VERSION);
- Integer type = null;
- try {
- type = Integer.parseInt(typeStr);
- } catch (Exception e) {
- logger.error(e.getMessage());
- }
- WxWeappAuditStatusVo queryVo = new WxWeappAuditStatusVo();
- if(StringUtils.isNotBlank(typeStr)) {
- queryVo.setType(type);
- }
- if(StringUtils.isNotBlank(version)) {
- queryVo.setUserVersion(version);
- }
- queryVo.setAuditStatus(EnumWeappAuditStatus.SUCCESS.getCode());
- List<WxWeappAuditStatusVo> apps = weappAuditStatusService.getList(queryVo);
- apps.stream().forEach( auditStatus -> {
- boolean isUpdate = false;
- WxWeappReleaseStatus releaseStatus = weappReleaseStatusService.getByAppId(auditStatus.getAppId());
- if(releaseStatus != null) {
- // 当前版本已发布成功,跳过
- if(releaseStatus.getUserVersion().equals(version)
- && releaseStatus.getReleaseStatus().equals(EnumWeappReleaseStatus.SUCCESS.getCode())) {
- return;
- }
- releaseStatus.setUserVersion(auditStatus.getUserVersion());
- releaseStatus.setVersionDesc(auditStatus.getVersionDesc());
- isUpdate = true;
- } else {
- releaseStatus = new WxWeappReleaseStatus();
- releaseStatus.setId(auditStatus.getId());
- releaseStatus.setTenantId(auditStatus.getTenantId());
- releaseStatus.setAppId(auditStatus.getAppId());
- releaseStatus.setType(auditStatus.getType());
- releaseStatus.setPlat(auditStatus.getPlat());
- releaseStatus.setUserVersion(auditStatus.getUserVersion());
- releaseStatus.setVersionDesc(auditStatus.getVersionDesc());
- }
-
- try {
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(auditStatus.getAppId());
- TtOpenResult openRet = openMaService.releaesAudited();
- logger.info(openRet.toString());
- boolean releaseSuccess = false;
- if(openRet.isSuccess()) {
- releaseSuccess = true;
- }
- if(releaseSuccess) {
- releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode());
- } else {
- releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
- }
- releaseStatus.setReleaseErrCode(gson.toJson(openRet));
- releaseStatus.setReleaseTime(new Date());
- if(isUpdate) {
- weappReleaseStatusService.updateStatus(releaseStatus);
- } else {
- weappReleaseStatusService.saveStatus(releaseStatus);
- }
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- if(e.getError().getErrorCode() == OpenConstant.ERR_APP_IS_RELEASED) {
- releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.SUCCESS.getCode());
- } else {
- releaseStatus.setReleaseStatus(EnumWeappReleaseStatus.FAIL.getCode());
- }
- releaseStatus.setReleaseErrCode(e.getMessage());
- releaseStatus.setReleaseTime(new Date());
- if(isUpdate) {
- weappReleaseStatusService.updateStatus(releaseStatus);
- } else {
- weappReleaseStatusService.saveStatus(releaseStatus);
- }
- }
- });
- return new ResultData();
- }
-
- @ApiOperation(value = "小程序code提交状态分页列表接口", notes = "查询支持小程序类型,名称,appid,version")
- @GetMapping("codeStatusList")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
- @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
- public ResultData codeStatusList(@ModelAttribute WxWeappCodeStatusVo weappCodeStatusVo, Integer pageNum, Integer pageSize) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::codeStatusList");
- if (null == weappCodeStatusVo) {
- weappCodeStatusVo = new WxWeappCodeStatusVo();
- } else {
- if(StringUtils.isBlank(weappCodeStatusVo.getAppId())) {
- weappCodeStatusVo.setAppId(null);
- }
- if(StringUtils.isBlank(weappCodeStatusVo.getName())) {
- weappCodeStatusVo.setName(null);
- }
- }
- weappCodeStatusVo.setPlat(EnumAppPlat.TOUTIAO.getCode());
- weappCodeStatusVo.setSortColumns(BaseEntity.SortField.CodeTime_DESC, BaseEntity.SortField.TenantId_ASC, BaseEntity.SortField.Type_ASC, BaseEntity.SortField.UserVersion_DESC);
- final PageInfo<WxWeappCodeStatusVo> page = weappCodeStatusService.listAsPage(weappCodeStatusVo, pageNum, pageSize);
- return new ResultData(page);
- }
-
- @ApiOperation(value = "小程序审核状态分页列表接口", notes = "查询支持小程序类型,名称,appid,version")
- @GetMapping("auditStatusList")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
- @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
- public ResultData auditStatusList(@ModelAttribute WxWeappAuditStatusVo weappAuditStatusVo, Integer pageNum, Integer pageSize) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::auditStatusList");
- if (null == weappAuditStatusVo) {
- weappAuditStatusVo = new WxWeappAuditStatusVo();
- } else {
- if(StringUtils.isBlank(weappAuditStatusVo.getAppId())) {
- weappAuditStatusVo.setAppId(null);
- }
- if(StringUtils.isBlank(weappAuditStatusVo.getName())) {
- weappAuditStatusVo.setName(null);
- }
- }
- weappAuditStatusVo.setPlat(EnumAppPlat.TOUTIAO.getCode());
- weappAuditStatusVo.setSortColumns(BaseEntity.SortField.AuditTime_DESC, BaseEntity.SortField.TenantId_ASC, BaseEntity.SortField.Type_ASC, BaseEntity.SortField.UserVersion_DESC);
- final PageInfo<WxWeappAuditStatusVo> page = weappAuditStatusService.listAsPage(weappAuditStatusVo, pageNum, pageSize);
- return new ResultData(page);
- }
-
- @ApiOperation(value = "小程序发布状态分页列表接口", notes = "查询支持小程序类型,名称,appid,version")
- @GetMapping("releaseStatusList")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
- @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
- public ResultData releaseStatusList(@ModelAttribute WxWeappReleaseStatusVo weappReleaseStatusVo, Integer pageNum, Integer pageSize) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::releaseStatusList");
- if (null == weappReleaseStatusVo) {
- weappReleaseStatusVo = new WxWeappReleaseStatusVo();
- } else {
- if(StringUtils.isBlank(weappReleaseStatusVo.getAppId())) {
- weappReleaseStatusVo.setAppId(null);
- }
- if(StringUtils.isBlank(weappReleaseStatusVo.getName())) {
- weappReleaseStatusVo.setName(null);
- }
- }
- weappReleaseStatusVo.setPlat(EnumAppPlat.TOUTIAO.getCode());
- weappReleaseStatusVo.setSortColumns(BaseEntity.SortField.ReleaseTime_DESC, BaseEntity.SortField.TenantId_ASC, BaseEntity.SortField.Type_ASC,BaseEntity.SortField.UserVersion_DESC);
- final PageInfo<WxWeappReleaseStatusVo> page = weappReleaseStatusService.listAsPage(weappReleaseStatusVo, pageNum, pageSize);
- return new ResultData(page);
- }
-
- @ApiOperation("小程序code提交版本列表")
- @GetMapping("codeVersionList")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "type", value = "小程序类型", dataType = "int", paramType = "query", required = true)})
- public ResultData getCodeVersionList(Integer type) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::getCodeVersionList");
- final List<Map> list = weappCodeStatusService.getVersionList(type,EnumAppPlat.TOUTIAO.getCode());
- return new ResultData(list);
- }
-
- @ApiOperation("小程序审核版本列表")
- @GetMapping("auditVersionList")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "type", value = "小程序类型", dataType = "int", paramType = "query", required = true),
- @ApiImplicitParam(name = "status", value = "审核状态", dataType = "int", paramType = "query")})
- public ResultData getAuditVersionList(Integer type, Integer status) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::getAuditVersionList");
- final List<Map> list = weappAuditStatusService.getVersionList(type,EnumAppPlat.TOUTIAO.getCode(), status);
- return new ResultData(list);
- }
-
- @ApiOperation("小程序发布版本列表")
- @GetMapping("releaseVersionList")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "type", value = "小程序类型", dataType = "int", paramType = "query", required = true)})
- public ResultData getReleaseVersionList(Integer type) {
- logger.debug("[" + getIpAddr() + "] WxWeappInfoController::getReleaseVersionList");
- final List<Map> list = weappReleaseStatusService.getVersionList(type,EnumAppPlat.TOUTIAO.getCode());
- return new ResultData(list);
- }
-
- /*
- * 0. 回调搭建好
- * 1. wx_appinfo配置好
- *
- * 10. 授权
- * 11. 设置服务器域名及业务域名 - B/C 配置表
- * C 服务器域名 c.malls.iformall.com
- * 业务域名 c.malls.iformall.com,game.malls.iformall.com
- * B 服务器域名 b.malls.iformall.com
- * 业务域名 mobile.malls.iformall.com,admin.malls.iformall.com
- * C 服务器域名 ciformall.youlane.cn
- * 业务域名 ciformall.youlane.cn,game.youlane.cn
- * B 服务器域名 biformall.youlane.cn
- * 业务域名 mobile.youlane.cn,mall.youlane.cn
- * C 服务器域名 ctest.malls.iformall.com
- * 业务域名 ctest.malls.iformall.com,gametest.malls.iformall.com
- * B 服务器域名 btest.malls.iformall.com
- * 业务域名 mobiletest.malls.iformall.com,admintest.malls.iformall.com
- * 12. 设置微信基础版本 - 配置
- * 2.0.9
- * 13. 设置微信模板 - 配置
- * 核销成功模板 AT0423 14,15,16,7,10,3,9
- * 核销失败模板 AT1824 1,3,4,5
- * 14. 草稿提交
- * 15. 模板
- * 16. 上传小程序代码 - 配置 ext.json
- * 17. 体验二维码
- * 18. 提交审核 - json --- 获取审核ID
- * 19. 获取审核结果 - 基于审核ID查询 -- event 回调
- * 20. 审核撤回
- * 21. 发布已通过审核的小程序
- * 22. oauth2refreshAccessToken
- */
-
-
-
- @ApiOperation("获取体验小程序的体验二维码")
- @GetMapping("/getQrcode")
- public void getQrcode(@RequestParam(value = "appId") String appId, @RequestParam(value = "pagePath") String pagePath,
- @RequestParam(value = "params", required = false) Map<String, String> params,
- HttpServletResponse response, HttpServletRequest req) {
- try {
- TtOpenMaService openMaService = openService.getTtOpenComponentService().getTtMaServiceByAppid(appId);
- File file = openMaService.getTestQrcode(pagePath,params);
- ServletOutputStream out = response.getOutputStream();
-
- response.reset();
- response.setContentType("image/jpeg");
- String agent = req.getHeader("user-agent");
- String filename = "QRCode.jpg";
- if (agent.contains("Firefox")) {
- response.setHeader("Content-disposition",
- "attachment; filename=" + new String(filename.getBytes("GB2312"),"ISO-8859-1"));
- } else {
- response.setHeader("Content-disposition",
- "attachment; filename=" + URLEncoder.encode(filename,"UTF-8"));
- }
- // 循环取出流中的数据
- byte[] b = new byte[1024];
- int len;
- InputStream inStream = new FileInputStream(file);
- while ((len = inStream.read(b)) > 0)
- response.getOutputStream().write(b, 0, len);
- inStream.close();
-
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- } catch (IOException e) {
- logger.error(e.getMessage());
- }
-
- }
-
- }
|