|
- package com.iformall.controller;
-
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.iformall.common.ErrorCode;
- import com.iformall.common.Result;
- import com.iformall.common.ResultData;
- import com.iformall.domain.po.WxAuthorizerInfo;
- import com.iformall.domain.po.WxWeappBasicSet;
- import com.iformall.enums.EnumAppType;
- import com.iformall.enums.EnumEnableType;
- import com.iformall.enums.EnumWxAuthorizationStatus;
- import com.iformall.service.WxAuthorizerInfoService;
- import com.iformall.service.WxWeappBasicSetService;
- import com.iformall.service.wechat.FmOpenService;
- import io.swagger.annotations.Api;
- 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.privacy.GetPrivacySettingResult;
- import me.chanjar.weixin.open.bean.ma.privacy.PrivacyOwnerSetting;
- import me.chanjar.weixin.open.bean.ma.privacy.SetPrivacySetting;
- import me.chanjar.weixin.open.bean.result.*;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
-
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
-
- /**
- * Stormeye Wu
- */
- @RestController
- @RequestMapping("/weappSet")
- @Api(description = "微信第三方开发平台-小程序设置")
- public class WechatWeappSetController {
- private final Logger logger = LoggerFactory.getLogger(getClass());
-
- @Autowired
- private Integer getFmDeploy;
-
- @Autowired
- private FmOpenService openService;
-
- @Autowired
- private WxAuthorizerInfoService authorizerInfoService;
-
- @Autowired
- private WxWeappBasicSetService weappBasicSetService;
-
- @ApiOperation("获取小程序的信息")
- @GetMapping("/getInfo")
- public ResultData getAccountBasicInfo(String appId) {
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- String openRet = openMaService.getAccountBasicInfo();
- logger.info(openRet.toString());
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- return new ResultData(Result.ERROR);
- }
-
- @ApiOperation("获取小程序服务器域名")
- @GetMapping("/getDomain")
- public ResultData getDomain(String appId) {
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- WxOpenResult openRet = openMaService.getDomain();
- logger.info(openRet.toString());
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- return new ResultData(Result.ERROR, e.getMessage());
- }
-
- }
-
- @ApiOperation("获取小程序服务器域名")
- @GetMapping("/getWebDomain")
- public ResultData getWebDomain(String appId) {
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- String openRet = openMaService.getWebViewDomain();
- logger.info(openRet);
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- return new ResultData(Result.ERROR, e.getMessage());
- }
- }
-
- @ApiOperation(value = "设置小程序服务器域名", notes = "{\n" +
- " \"action\":\"add/set/delete/get\",\n" +
- " \"requestdomain\":[\"https://www.qq.com\",\"https://www.qq.com\"],\n" +
- " \"wsrequestdomain\":[\"wss://www.qq.com\",\"wss://www.qq.com\"],\n" +
- " \"uploaddomain\":[\"https://www.qq.com\",\"https://www.qq.com\"],\n" +
- " \"downloaddomain\":[\"https://www.qq.com\",\"https://www.qq.com\"],\n" +
- " }")
- @PostMapping("/modifyDomain")
- public ResultData modifyDomain(String appId, String action,
- List<String> requestDomain, List<String> wsrequestdomain,
- List<String> uploaddomain, List<String> downloaddomain) {
- 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);
- }
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- 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);
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- return new ResultData(Result.ERROR);
- }
-
- @ApiOperation(value = "设置小程序业务域名", notes = "{\n" +
- " \"action\":\"add/set/delete/get\",\n" +
- " \"webviewdomain\":[\"https://www.qq.com\",\"https://m.qq.com\"]\n" +
- " }")
- @PostMapping("/modifyWebViewDomain")
- public ResultData modifyWebViewDomain(String appId, String action,
- List<String> urlList) {
- 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);
- }
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- String openRet = openMaService.setWebViewDomain(action, urlList);
- logger.info(openRet);
- JSONObject webRetObj = JSON.parseObject(openRet);
- if(webRetObj.getInteger("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);
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- return new ResultData(Result.ERROR);
- }
-
- @ApiOperation(value = "绑定微信用户为小程序体验者", notes = "{\"appId\":\"string\", \"wechatId\":\"string\"}")
- @PostMapping("/bindTester")
- public ResultData bindTester(@RequestBody Map<String, String> params) {
- String appId = params.get("appId");
- String wechatId = params.get("wechatId");
- if(StringUtils.isBlank(appId)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "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);
- }
- if(StringUtils.isBlank(wechatId)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "wechatId不能为空");
- }
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- WxOpenResult openRet = openMaService.bindTester(wechatId);
- logger.info(openRet.toString());
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- return new ResultData(e.getMessage());
- }
- }
-
- @ApiOperation(value = "解除绑定小程序的体验者", notes = "")
- @PostMapping("/unbindTester")
- public ResultData unbindTester(@RequestBody Map<String, String> params) {
- String appId = params.get("appId");
- String wechatId = params.get("wechatId");
- if(StringUtils.isBlank(appId)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "appId不能为空");
- }
- if(StringUtils.isBlank(wechatId)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "wechatId不能为空");
- }
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- WxOpenResult openRet = openMaService.unbindTester(wechatId);
- logger.info(openRet.toString());
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- return new ResultData(e.getMessage());
- }
- }
-
- @ApiOperation(value = "获取体验者列表", notes = "")
- @GetMapping("/getTesterList")
- public ResultData getTesterList(@RequestParam(value = "appId") String appId) {
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- WxOpenResult openRet = openMaService.getTesterList();
- logger.info(openRet.toString());
- return new ResultData(openRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- return new ResultData(Result.ERROR);
- }
-
-
- @ApiOperation(value = "配置小程序用户隐私保护指引", notes = "{\n" +
- " }")
- @PostMapping("/setprivacysetting")
- public ResultData setprivacysetting(@RequestBody Map<String, String> params) {
- String appId = params.get("appId");
- if(StringUtils.isBlank(appId)) {
- return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "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);
- }
- if(!EnumAppType.B.getCode().equals(authorizerInfo.getType()) && !EnumAppType.C.getCode().equals(authorizerInfo.getType())){
- return new ResultData(ErrorCode.WEAPP_BASIC_NO_SUPPORT);
- }
-
- WxWeappBasicSet weappBasicSetQ = new WxWeappBasicSet();
- weappBasicSetQ.setType(authorizerInfo.getType());
- weappBasicSetQ.setDeploy(getFmDeploy);
- WxWeappBasicSet weappBasicSet = weappBasicSetService.getByTypeAndDeploy(weappBasicSetQ);
- if(weappBasicSet == null || StringUtils.isBlank(weappBasicSet.getPrivacySetting())) {
- logger.error("未找到相关的基础设置参数");
- return new ResultData(ErrorCode.WEAPP_BASIC_SET_ERR);
- }
- try {
- SetPrivacySetting setting = JSON.parseObject(weappBasicSet.getPrivacySetting(),SetPrivacySetting.class);
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- String setRet = openMaService.getPrivacyService().setPrivacySetting(setting);
- logger.info(setRet);
- JSONObject webRetObj = JSON.parseObject(setRet);
- if(webRetObj.getInteger("errcode").equals(0)) {
- logger.info("配置小程序用户隐私保护指引成功");
- authorizerInfo.setPrivacySettingStatus(EnumEnableType.SUCC.getCode());
- } else {
- logger.info("配置小程序用户隐私保护指引失败");
- authorizerInfo.setPrivacySettingStatus(EnumEnableType.FAIL.getCode());
- }
- authorizerInfoService.updatePrivacySetting(authorizerInfo);
- return new ResultData(setRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- return new ResultData(Result.ERROR);
- }
-
- @ApiOperation(value = "查询小程序用户隐私保护指引", notes = "{\n" +
- " }")
- @GetMapping("/getPrivacySetting")
- public ResultData setprivacysetting(String appId,Integer privacyVer) {
- 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);
- }
- if(!EnumAppType.B.getCode().equals(authorizerInfo.getType()) && !EnumAppType.C.getCode().equals(authorizerInfo.getType())){
- return new ResultData(ErrorCode.WEAPP_BASIC_NO_SUPPORT);
- }
- try {
- WxOpenMaService openMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
- GetPrivacySettingResult getRet = openMaService.getPrivacyService().getPrivacySetting(privacyVer);
- return new ResultData(getRet);
- } catch (WxErrorException e) {
- logger.error(e.getMessage());
- }
- return new ResultData(Result.ERROR);
- }
-
- }
|