From 7d7ac69a8af85ab9e67c1dc2c6f52b03d27669e4 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期四, 26 十二月 2024 08:58:19 +0800
Subject: [PATCH] add:阿里云短信模板获取签名和模板信息
---
src/main/java/com/mzl/flower/web/v2/sms/SmsTemplateController.java | 90 +++++++++++++++++++++++++++++----------------
1 files changed, 58 insertions(+), 32 deletions(-)
diff --git a/src/main/java/com/mzl/flower/web/v2/sms/SmsTemplateController.java b/src/main/java/com/mzl/flower/web/v2/sms/SmsTemplateController.java
index 8ab387b..b0adbdf 100644
--- a/src/main/java/com/mzl/flower/web/v2/sms/SmsTemplateController.java
+++ b/src/main/java/com/mzl/flower/web/v2/sms/SmsTemplateController.java
@@ -1,64 +1,90 @@
package com.mzl.flower.web.v2.sms;
+import com.aliyun.dysmsapi20170525.Client;
+import com.aliyun.dysmsapi20170525.models.QuerySmsTemplateListRequest;
+import com.aliyun.dysmsapi20170525.models.QuerySmsTemplateListResponse;
+import com.aliyun.dysmsapi20170525.models.QuerySmsTemplateListResponseBody;
+import com.aliyun.tea.TeaException;
+import com.aliyun.teautil.models.RuntimeOptions;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.base.BaseController;
import com.mzl.flower.base.R;
import com.mzl.flower.base.ReturnDataDTO;
-import com.mzl.flower.dto.response.coupon.CouponTemplatePointVO;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestParam;
+import com.mzl.flower.dto.request.sms.SmsTemplateDTO;
+import com.mzl.flower.dto.request.sms.SmsTemplateQueryDTO;
import com.mzl.flower.entity.SmsTemplateDO;
+import com.mzl.flower.service.sms.SmsTemplateService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
-import javax.validation.constraints.Min;
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Positive;
-
-import org.springframework.web.bind.annotation.RestController;
+import javax.validation.constraints.NotNull;
+import java.util.List;
/**
* @author @TaoJie
* @since 2024-12-25
*/
+@Api(value = "短信模板管理", tags = "短信模板管理")
@RestController
@RequestMapping("/v2/sms-template")
+@RequiredArgsConstructor
public class SmsTemplateController extends BaseController {
- @PostMapping("")
- public ResponseEntity<ReturnDataDTO> create() {
+ private final SmsTemplateService smsTemplateService;
+
+ @PostMapping("/new")
+ @ApiOperation(value = "保存短信模板", httpMethod = "POST")
+ public ResponseEntity<ReturnDataDTO> create(@RequestBody SmsTemplateDTO smsTemplateDTO) {
+ smsTemplateService.saveSmsTemplate(smsTemplateDTO);
return returnData(R.SUCCESS.getCode(), null);
}
- @PutMapping("/{id}")
- public ResponseEntity<ReturnDataDTO> update(@PathVariable @Positive(message = "{id.positive}") Integer id) {
+ @PostMapping(value = "/edit")
+ @ApiOperation(value = "更新短信模板", httpMethod = "POST")
+ public ResponseEntity<ReturnDataDTO> update(@RequestBody SmsTemplateDTO smsTemplateDTO) {
+ smsTemplateService.updateSmsTemplate(smsTemplateDTO);
return returnData(R.SUCCESS.getCode(), null);
}
- @DeleteMapping("/{id}")
- public ResponseEntity<ReturnDataDTO> delete(@PathVariable @Positive(message = "{id.positive}") Integer id) {
+ @GetMapping(value = "/delete")
+ @ApiOperation(value = "删除短信模板 ", httpMethod = "GET", notes = "ID")
+ public ResponseEntity<ReturnDataDTO> delete(@NotNull(message = "id不能为空") Long id) {
+ smsTemplateService.deleteSmsTemplate(id);
return returnData(R.SUCCESS.getCode(), null);
}
- @GetMapping("/{id}")
- public SmsTemplateDO get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) {
- return null;
+ @GetMapping("/list")
+ @ApiOperation(value = "短信模板列表", httpMethod = "GET")
+ public ResponseEntity<ReturnDataDTO<Page<SmsTemplateDO>>> getSmsTemplateList(Page page, SmsTemplateQueryDTO dto) {
+ return returnData(R.SUCCESS.getCode(), smsTemplateService.queryPage(dto, page));
}
- @GetMapping("/page")
- public ResponseEntity<ReturnDataDTO<Page<SmsTemplateDO>>> page(
- @RequestParam(name = "page", required = false, defaultValue = "0")
- @Min(value = 0, message = "{page.number.min}") Integer page,
- @RequestParam(name = "count", required = false, defaultValue = "10")
- @Min(value = 1, message = "{page.count.min}")
- @Max(value = 30, message = "{page.count.max}") Integer count
- ) {
- return null;
+ @GetMapping("/template/list")
+ @ApiOperation(value = "短信模板列表", httpMethod = "GET")
+ public ResponseEntity<ReturnDataDTO<Page<SmsTemplateDO>>> getALSmsTemplateList(Page page, SmsTemplateQueryDTO dto) throws Exception {
+ Client client = createClient();
+ QuerySmsTemplateListRequest querySmsTemplateListRequest = new QuerySmsTemplateListRequest();
+ RuntimeOptions runtime = new RuntimeOptions();
+ List<QuerySmsTemplateListResponseBody.QuerySmsTemplateListResponseBodySmsTemplateList> smsTemplateList;
+ try {
+ QuerySmsTemplateListResponse querySmsTemplateListResponse = client.querySmsTemplateListWithOptions(querySmsTemplateListRequest, runtime);
+ smsTemplateList = querySmsTemplateListResponse.getBody().getSmsTemplateList();
+ } catch (TeaException error) {
+ return returnData(R.RUNTIME_EXCEPTION.getCode(), error.getMessage());
+ } catch (Exception _error) {
+ return returnData(R.RUNTIME_EXCEPTION.getCode(), _error.getMessage());
+ }
+ return returnData(R.SUCCESS.getCode(), smsTemplateList);
+ }
+
+ public static Client createClient() throws Exception {
+ com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config().setAccessKeyId("LTAI5tFGHa9bwhuEDKH6YPnc").setAccessKeySecret("BrY0BM4pvDXhVKOMLsXzgzlhVe1keQ");
+ config.endpoint = "dysmsapi.aliyuncs.com";
+ return new Client(config);
}
}
--
Gitblit v1.9.3