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