SmsTemplateController.java 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. package jnpf.base.controller;
  2. import io.swagger.v3.oas.annotations.tags.Tag;
  3. import io.swagger.v3.oas.annotations.Operation;
  4. import jnpf.base.ActionResult;
  5. import jnpf.base.Page;
  6. import jnpf.base.Pagination;
  7. import jnpf.base.entity.SmsTemplateEntity;
  8. import jnpf.base.model.smstemplate.*;
  9. import jnpf.base.service.SmsTemplateService;
  10. import jnpf.util.message.SmsUtil;
  11. import jnpf.base.vo.ListVO;
  12. import jnpf.base.vo.PageListVO;
  13. import jnpf.base.vo.PaginationVO;
  14. import jnpf.base.SmsModel;
  15. import jnpf.constant.MsgCode;
  16. import jnpf.util.JsonUtil;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.web.bind.annotation.*;
  19. import jakarta.validation.Valid;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. /**
  23. * 短信模板控制类
  24. *
  25. * @author JNPF开发平台组
  26. * @version V3.1.0
  27. * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
  28. * @date 2021-12-09
  29. */
  30. @Tag(description = "SmsTemplateController", name = "短信模板控制类")
  31. @RestController
  32. @RequestMapping("/api/system/SmsTemplate")
  33. public class SmsTemplateController extends SuperController<SmsTemplateService, SmsTemplateEntity> {
  34. @Autowired
  35. private SmsTemplateService smsTemplateService;
  36. /**
  37. * 短信模板列表
  38. *
  39. * @param pagination
  40. * @return
  41. */
  42. @Operation(summary = "短信模板列表")
  43. @GetMapping
  44. public ActionResult<PageListVO<SmsTemplateListVO>> list(Pagination pagination) {
  45. List<SmsTemplateEntity> list = smsTemplateService.getList(pagination);
  46. List<SmsTemplateListVO> listVO = JsonUtil.getJsonToList(list, SmsTemplateListVO.class);
  47. for (SmsTemplateListVO smsTemplateListVO : listVO) {
  48. if ("1".equals(smsTemplateListVO.getCompany())) {
  49. smsTemplateListVO.setCompany("阿里");
  50. } else if ("2".equals(smsTemplateListVO.getCompany())) {
  51. smsTemplateListVO.setCompany("腾讯");
  52. }
  53. }
  54. PaginationVO paginationVO = JsonUtil.getJsonToBean(pagination, PaginationVO.class);
  55. return ActionResult.page(listVO, paginationVO);
  56. }
  57. /**
  58. * 短信模板下拉框
  59. *
  60. * @return
  61. */
  62. @Operation(summary = "短信模板下拉框")
  63. @GetMapping("/Selector")
  64. public ActionResult<ListVO<SmsTemplateSelector>> selector(Page page) {
  65. List<SmsTemplateEntity> list = smsTemplateService.getList(page.getKeyword());
  66. List<SmsTemplateSelector> jsonToList = JsonUtil.getJsonToList(list, SmsTemplateSelector.class);
  67. for (SmsTemplateSelector smsTemplateSelector : jsonToList) {
  68. if ("1".equals(smsTemplateSelector.getCompany())) {
  69. smsTemplateSelector.setCompany("阿里");
  70. } else if ("2".equals(smsTemplateSelector.getCompany())) {
  71. smsTemplateSelector.setCompany("腾讯");
  72. }
  73. }
  74. ListVO<SmsTemplateSelector> listVO = new ListVO<>();
  75. listVO.setList(jsonToList);
  76. return ActionResult.success(listVO);
  77. }
  78. /**
  79. * 获取消息模板
  80. *
  81. * @param id
  82. * @return
  83. */
  84. @Operation(summary = "获取短信模板")
  85. @GetMapping("/{id}")
  86. public ActionResult<SmsTemplateVO> info(@PathVariable("id") String id) {
  87. SmsTemplateEntity entity = smsTemplateService.getInfo(id);
  88. SmsTemplateVO vo = JsonUtil.getJsonToBean(entity, SmsTemplateVO.class);
  89. return ActionResult.success(vo);
  90. }
  91. /**
  92. * 新建
  93. *
  94. * @return
  95. */
  96. @Operation(summary = "新建")
  97. @PostMapping
  98. public ActionResult<String> create(@RequestBody @Valid SmsTemplateCrForm smsTemplateCrForm) {
  99. SmsTemplateEntity entity = JsonUtil.getJsonToBean(smsTemplateCrForm, SmsTemplateEntity.class);
  100. if (smsTemplateService.isExistByTemplateName(entity.getFullName(), entity.getId())) {
  101. return ActionResult.fail(MsgCode.EXIST001.get());
  102. }
  103. if (smsTemplateService.isExistByEnCode(entity.getEnCode(), entity.getId())) {
  104. return ActionResult.fail(MsgCode.EXIST002.get());
  105. }
  106. smsTemplateService.create(entity);
  107. return ActionResult.success(MsgCode.SU001.get());
  108. }
  109. /**
  110. * 修改
  111. *
  112. * @return
  113. */
  114. @Operation(summary = "修改")
  115. @PutMapping("/{id}")
  116. public ActionResult<String> update(@PathVariable("id") String id, @RequestBody @Valid SmsTemplateUpForm smsTemplateUpForm) {
  117. SmsTemplateEntity entity = JsonUtil.getJsonToBean(smsTemplateUpForm, SmsTemplateEntity.class);
  118. if (smsTemplateService.isExistByTemplateName(entity.getFullName(), id)) {
  119. return ActionResult.fail(MsgCode.EXIST001.get());
  120. }
  121. if (smsTemplateService.isExistByEnCode(entity.getEnCode(), id)) {
  122. return ActionResult.fail(MsgCode.EXIST002.get());
  123. }
  124. boolean flag = smsTemplateService.update(id, entity);
  125. if (!flag) {
  126. return ActionResult.fail(MsgCode.FA002.get());
  127. }
  128. return ActionResult.success(MsgCode.SU004.get());
  129. }
  130. /**
  131. * 删除
  132. *
  133. * @return
  134. */
  135. @Operation(summary = "删除")
  136. @DeleteMapping("/{id}")
  137. public ActionResult<String> delete(@PathVariable("id") String id) {
  138. SmsTemplateEntity entity = smsTemplateService.getInfo(id);
  139. if (entity == null) {
  140. return ActionResult.fail(MsgCode.FA003.get());
  141. }
  142. smsTemplateService.delete(entity);
  143. return ActionResult.success(MsgCode.SU003.get());
  144. }
  145. /**
  146. * 修改状态
  147. *
  148. * @return
  149. */
  150. @Operation(summary = "修改状态")
  151. @PutMapping("/{id}/Actions/State")
  152. public ActionResult<String> update(@PathVariable("id") String id) {
  153. SmsTemplateEntity entity = smsTemplateService.getInfo(id);
  154. if (entity != null) {
  155. if (entity.getEnabledMark() == 0) {
  156. entity.setEnabledMark(1);
  157. } else {
  158. entity.setEnabledMark(0);
  159. }
  160. boolean flag = smsTemplateService.update(id, entity);
  161. if (!flag) {
  162. return ActionResult.fail(MsgCode.FA002.get());
  163. }
  164. return ActionResult.success(MsgCode.SU004.get());
  165. }
  166. return ActionResult.fail(MsgCode.FA002.get());
  167. }
  168. @Operation(summary = "获取模板参数")
  169. @PostMapping("/getTemplate")
  170. public ActionResult<?> testConnect(@RequestBody SmsTemplateCrForm smsTemplateCrForm) {
  171. // 定义返回对象
  172. List<String> list = null;
  173. if (smsTemplateCrForm != null) {
  174. // 得到短信模型
  175. SmsModel smsModel = smsTemplateService.getSmsConfig();
  176. list = SmsUtil.querySmsTemplateRequest(smsTemplateCrForm.getCompany(), smsModel, smsTemplateCrForm.getEndpoint(), smsTemplateCrForm.getRegion(), smsTemplateCrForm.getTemplateId());
  177. }
  178. if (list == null) {
  179. return ActionResult.fail(MsgCode.SYS015.get());
  180. }
  181. return ActionResult.success(list);
  182. }
  183. /**
  184. * 获取指定短信模板参数
  185. *
  186. * @return
  187. */
  188. @Operation(summary = "获取指定短信模板参数")
  189. @GetMapping("/getTemplate/{id}")
  190. public ActionResult<?> getTemplateById(@PathVariable("id") String id) {
  191. // 定义返回对象
  192. List<String> list = new ArrayList<>();
  193. SmsTemplateEntity entity = smsTemplateService.getInfo(id);
  194. if (entity != null && entity.getCompany() != null) {
  195. // 得到系统配置
  196. SmsModel smsModel = smsTemplateService.getSmsConfig();
  197. list = SmsUtil.querySmsTemplateRequest(entity.getCompany(), smsModel, entity.getEndpoint(), entity.getRegion(), entity.getTemplateId());
  198. }
  199. if (list == null) {
  200. return ActionResult.success(new ArrayList<>());
  201. }
  202. return ActionResult.success(list);
  203. }
  204. @Operation(summary = "发送测试短信")
  205. @PostMapping("/testSent")
  206. public ActionResult testSentSms(@RequestBody SmsTemplateCrForm smsTemplateCrForm) {
  207. if (smsTemplateCrForm.getCompany() != null) {
  208. // 得到短信模型
  209. SmsModel smsModel = smsTemplateService.getSmsConfig();
  210. // 发送短信
  211. String sentCode = SmsUtil.sentSms(smsTemplateCrForm.getCompany(), smsModel, smsTemplateCrForm.getEndpoint(), smsTemplateCrForm.getRegion(), smsTemplateCrForm.getPhoneNumbers(), smsTemplateCrForm.getSignContent(), smsTemplateCrForm.getTemplateId(), smsTemplateCrForm.getParameters());
  212. if ("OK".equalsIgnoreCase(sentCode)) {
  213. return ActionResult.success(MsgCode.SU017.get());
  214. }
  215. }
  216. return ActionResult.fail(MsgCode.GT103.get());
  217. }
  218. }