BackendSmsController.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package com.fuint.module.backendApi.controller;
  2. import com.fuint.common.Constants;
  3. import com.fuint.common.dto.AccountInfo;
  4. import com.fuint.common.enums.SettingTypeEnum;
  5. import com.fuint.common.enums.SmsSettingEnum;
  6. import com.fuint.common.service.SendSmsService;
  7. import com.fuint.common.service.SettingService;
  8. import com.fuint.common.util.TokenUtil;
  9. import com.fuint.framework.exception.BusinessCheckException;
  10. import com.fuint.framework.pagination.PaginationRequest;
  11. import com.fuint.framework.pagination.PaginationResponse;
  12. import com.fuint.framework.web.BaseController;
  13. import com.fuint.framework.web.ResponseObject;
  14. import com.fuint.repository.model.MtSetting;
  15. import com.fuint.repository.model.MtSmsSendedLog;
  16. import com.fuint.utils.StringUtil;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiOperation;
  19. import lombok.AllArgsConstructor;
  20. import org.springframework.security.access.prepost.PreAuthorize;
  21. import org.springframework.web.bind.annotation.*;
  22. import javax.servlet.http.HttpServletRequest;
  23. import java.util.Date;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. /**
  28. * 短信管理类controller
  29. *
  30. * Created by FSQ
  31. * CopyRight https://www.fuint.cn
  32. */
  33. @Api(tags="管理端-短信相关接口")
  34. @RestController
  35. @AllArgsConstructor
  36. @RequestMapping(value = "/backendApi/smsManager")
  37. public class BackendSmsController extends BaseController {
  38. /**
  39. * 短信发送接口
  40. */
  41. private SendSmsService sendSmsService;
  42. /**
  43. * 配置服务接口
  44. * */
  45. private SettingService settingService;
  46. /**
  47. * 查询已发短信列表
  48. *
  49. * @param request
  50. * @return
  51. * @throws BusinessCheckException
  52. */
  53. @ApiOperation(value = "查询已发短信列表")
  54. @RequestMapping(value = "/list", method = RequestMethod.GET)
  55. @CrossOrigin
  56. public ResponseObject list(HttpServletRequest request) throws BusinessCheckException {
  57. String token = request.getHeader("Access-Token");
  58. Integer page = request.getParameter("page") == null ? Constants.PAGE_NUMBER : Integer.parseInt(request.getParameter("page"));
  59. Integer pageSize = request.getParameter("pageSize") == null ? Constants.PAGE_SIZE : Integer.parseInt(request.getParameter("pageSize"));
  60. String mobile = request.getParameter("mobile") == null ? "" : request.getParameter("mobile");
  61. String content = request.getParameter("content") == null ? "" : request.getParameter("content");
  62. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  63. PaginationRequest paginationRequest = new PaginationRequest();
  64. paginationRequest.setCurrentPage(page);
  65. paginationRequest.setPageSize(pageSize);
  66. Map<String, Object> searchParams = new HashMap<>();
  67. if (StringUtil.isNotEmpty(mobile)) {
  68. searchParams.put("mobile", mobile);
  69. }
  70. if (StringUtil.isNotEmpty(content)) {
  71. searchParams.put("content", content);
  72. }
  73. if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
  74. searchParams.put("merchantId", accountInfo.getMerchantId());
  75. }
  76. paginationRequest.setSearchParams(searchParams);
  77. PaginationResponse<MtSmsSendedLog> paginationResponse = sendSmsService.querySmsListByPagination(paginationRequest);
  78. Map<String, Object> result = new HashMap<>();
  79. result.put("paginationResponse", paginationResponse);
  80. return getSuccessResult(result);
  81. }
  82. /**
  83. * 获取短信设置
  84. *
  85. * @param request
  86. * @return
  87. */
  88. @ApiOperation(value = "获取短信设置")
  89. @RequestMapping(value = "/setting", method = RequestMethod.GET)
  90. @CrossOrigin
  91. @PreAuthorize("@pms.hasPermission('smsTemplate:edit')")
  92. public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
  93. String token = request.getHeader("Access-Token");
  94. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  95. List<MtSetting> settingList = settingService.getSettingList(accountInfo.getMerchantId(), SettingTypeEnum.SMS_CONFIG.getKey());
  96. String isClose = "0";
  97. String accessKeyId = "";
  98. String accessKeySecret = "";
  99. String signName = "";
  100. for (MtSetting setting : settingList) {
  101. if (StringUtil.isNotEmpty(setting.getValue())) {
  102. if (setting.getName().equals(SmsSettingEnum.IS_CLOSE.getKey())) {
  103. isClose = setting.getValue();
  104. } else if (setting.getName().equals(SmsSettingEnum.ACCESS_KEY_ID.getKey())) {
  105. accessKeyId = setting.getValue();
  106. } else if (setting.getName().equals(SmsSettingEnum.ACCESS_KEY_SECRET.getKey())) {
  107. accessKeySecret = setting.getValue();
  108. } else if (setting.getName().equals(SmsSettingEnum.SIGN_NAME.getKey())) {
  109. signName = setting.getValue();
  110. }
  111. }
  112. }
  113. Map<String, Object> result = new HashMap<>();
  114. result.put("isClose", isClose);
  115. result.put("accessKeyId", accessKeyId);
  116. result.put("accessKeySecret", accessKeySecret);
  117. result.put("signName", signName);
  118. return getSuccessResult(result);
  119. }
  120. /**
  121. * 保存短信设置
  122. *
  123. * @param request HttpServletRequest对象
  124. * @return
  125. */
  126. @ApiOperation(value = "保存短信设置")
  127. @RequestMapping(value = "/saveSetting", method = RequestMethod.POST)
  128. @CrossOrigin
  129. @PreAuthorize("@pms.hasPermission('smsTemplate:edit')")
  130. public ResponseObject saveSetting(HttpServletRequest request, @RequestBody Map<String, Object> param) throws BusinessCheckException {
  131. String token = request.getHeader("Access-Token");
  132. String isClose = param.get("isClose") != null ? param.get("isClose").toString() : null;
  133. String accessKeyId = param.get("accessKeyId") != null ? param.get("accessKeyId").toString() : null;
  134. String accessKeySecret = param.get("accessKeySecret") != null ? param.get("accessKeySecret").toString() : null;
  135. String signName = param.get("signName") != null ? param.get("signName").toString() : null;
  136. AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
  137. if (accountInfo.getMerchantId() == null || accountInfo.getMerchantId() <= 0) {
  138. return getFailureResult(201, "平台方帐号无法执行该操作,请使用商户帐号操作");
  139. }
  140. SmsSettingEnum[] settingList = SmsSettingEnum.values();
  141. for (SmsSettingEnum setting : settingList) {
  142. MtSetting mtSetting = new MtSetting();
  143. mtSetting.setType(SettingTypeEnum.SMS_CONFIG.getKey());
  144. mtSetting.setName(setting.getKey());
  145. if (setting.getKey().equals(SmsSettingEnum.IS_CLOSE.getKey())) {
  146. mtSetting.setValue(isClose);
  147. } else if (setting.getKey().equals(SmsSettingEnum.ACCESS_KEY_ID.getKey())) {
  148. mtSetting.setValue(accessKeyId);
  149. } else if (setting.getKey().equals(SmsSettingEnum.ACCESS_KEY_SECRET.getKey())) {
  150. mtSetting.setValue(accessKeySecret);
  151. } else if (setting.getKey().equals(SmsSettingEnum.SIGN_NAME.getKey())) {
  152. mtSetting.setValue(signName);
  153. }
  154. mtSetting.setDescription(setting.getValue());
  155. mtSetting.setOperator(accountInfo.getAccountName());
  156. mtSetting.setUpdateTime(new Date());
  157. mtSetting.setMerchantId(accountInfo.getMerchantId());
  158. mtSetting.setStoreId(0);
  159. settingService.saveSetting(mtSetting);
  160. }
  161. return getSuccessResult(true);
  162. }
  163. }