Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

137 строки
5.5 KiB

  1. package com.iformall.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.github.pagehelper.PageInfo;
  5. import com.iformall.common.ErrorCode;
  6. import com.iformall.common.ResultData;
  7. import com.iformall.controller.base.BaseController;
  8. import com.iformall.domain.po.WxAppinfo;
  9. import com.iformall.domain.po.WxWeappExtSet;
  10. import com.iformall.enums.EnumAppType;
  11. import com.iformall.service.WxAppinfoService;
  12. import com.iformall.service.WxWeappExtSetService;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiImplicitParam;
  15. import io.swagger.annotations.ApiImplicitParams;
  16. import io.swagger.annotations.ApiOperation;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.web.bind.annotation.*;
  23. import java.util.List;
  24. /**
  25. * Stormeye Wu
  26. */
  27. @Controller
  28. @RequestMapping("/weappExtSet")
  29. @Api(description = "小程序扩展设置接口")
  30. public class WxWeappExtSetController extends BaseController {
  31. private final Logger logger = LoggerFactory.getLogger(getClass());
  32. @Autowired
  33. private WxAppinfoService appinfoService;
  34. @Autowired
  35. private WxWeappExtSetService weappExtSetService;
  36. @ApiOperation("分页列表接口")
  37. @GetMapping("list")
  38. @ApiImplicitParams({
  39. @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true),
  40. @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)})
  41. public ResultData list(@ModelAttribute WxWeappExtSet weappExtSet, Integer pageNum, Integer pageSize) {
  42. logger.debug("[" + getIpAddr() + "] WxWeappExtSetController::list");
  43. if (null == weappExtSet) weappExtSet = new WxWeappExtSet();
  44. final PageInfo<WxWeappExtSet> page = weappExtSetService.listAsPage(weappExtSet, pageNum, pageSize);
  45. return new ResultData(page);
  46. }
  47. @PostMapping("add")
  48. public ResultData add(@RequestBody WxWeappExtSet weappExtSet) {
  49. logger.debug("[" + getIpAddr() + "] WxWeappExtSetController::add");
  50. if (null == weappExtSet) return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  51. weappExtSetService.saveOrUpdate(weappExtSet);
  52. return new ResultData();
  53. }
  54. @PostMapping("update")
  55. public ResultData update(@RequestBody WxWeappExtSet weappExtSet) {
  56. logger.debug("[" + getIpAddr() + "] WxWeappBasicSetController::update");
  57. if (null == weappExtSet) return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  58. if (StringUtils.isBlank(weappExtSet.getExtJson())) {
  59. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  60. }
  61. if (StringUtils.isBlank(weappExtSet.getReleaseJson())) {
  62. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  63. }
  64. weappExtSetService.saveOrUpdate(weappExtSet);
  65. return new ResultData();
  66. }
  67. @ApiOperation("扩展模板-批量模板更新")
  68. @PostMapping("batchUpdate")
  69. public ResultData batchAdd(@RequestBody WxWeappExtSet weappExtSet) {
  70. logger.debug("[" + getIpAddr() + "] WxWeappExtSetController::batchUpdate");
  71. if (null == weappExtSet) return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  72. if(StringUtils.isBlank(weappExtSet.getExtJson())) {
  73. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  74. }
  75. if(weappExtSet.getType() == null) {
  76. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  77. }
  78. String extJson = weappExtSet.getExtJson();
  79. JSONObject obj = JSON.parseObject(extJson);
  80. if(obj == null) {
  81. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  82. }
  83. JSONObject extObj = obj.getJSONObject("ext");
  84. if(extObj == null) {
  85. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  86. }
  87. JSONObject attrObj = extObj.getJSONObject("attr");
  88. if(attrObj == null) {
  89. return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
  90. }
  91. WxWeappExtSet extSetQ = new WxWeappExtSet();
  92. extSetQ.setType(weappExtSet.getType());
  93. List<WxWeappExtSet> weappExtSetList = weappExtSetService.getList(extSetQ);
  94. for(WxWeappExtSet info: weappExtSetList) {
  95. WxAppinfo appinfo = appinfoService.getByAppId(info.getAppId());
  96. if(appinfo == null) {
  97. continue;
  98. }
  99. obj.put("extAppid", info.getAppId());
  100. if(weappExtSet.getType().equals(EnumAppType.C.getCode())) {
  101. if (attrObj != null) {
  102. attrObj.put("ifHaveCarModular", String.valueOf(info.getCarSupport()));
  103. }
  104. }
  105. if(extObj != null) {
  106. extObj.put("weappId", info.getAppId());
  107. extObj.put("name", appinfo.getName());
  108. if(weappExtSet.getType().equals(EnumAppType.C.getCode())) {
  109. extObj.put("attr", attrObj);
  110. }
  111. obj.put("ext", extObj);
  112. }
  113. WxWeappExtSet newInfo = new WxWeappExtSet();
  114. newInfo.setExtJson(JSON.toJSONString(obj));
  115. newInfo.setId(info.getId());
  116. try {
  117. weappExtSetService.saveOrUpdate(newInfo);
  118. } catch (Exception e) {
  119. logger.error("APPID " + info.getAppId() + ", 保存失败 " + e.getMessage());
  120. }
  121. }
  122. return new ResultData();
  123. }
  124. }