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.request.sms.SmsTemplateDTO; import com.mzl.flower.dto.request.sms.SmsTemplateQueryDTO; import com.mzl.flower.dto.response.sms.SmsTemplateListVO; 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.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 { private final SmsTemplateService smsTemplateService; @PostMapping("/new") @ApiOperation(value = "保存短信模板", httpMethod = "POST") public ResponseEntity create(@RequestBody SmsTemplateDTO smsTemplateDTO) { smsTemplateService.saveSmsTemplate(smsTemplateDTO); return returnData(R.SUCCESS.getCode(), null); } @PostMapping(value = "/edit") @ApiOperation(value = "更新短信模板", httpMethod = "POST") public ResponseEntity update(@RequestBody SmsTemplateDTO smsTemplateDTO) { smsTemplateService.updateSmsTemplate(smsTemplateDTO); return returnData(R.SUCCESS.getCode(), null); } @GetMapping(value = "/delete") @ApiOperation(value = "删除短信模板 ", httpMethod = "GET", notes = "ID") public ResponseEntity delete(@NotNull(message = "id不能为空") Long id) { smsTemplateService.deleteSmsTemplate(id); return returnData(R.SUCCESS.getCode(), null); } @GetMapping("/list") @ApiOperation(value = "短信模板列表", httpMethod = "GET") public ResponseEntity>> getSmsTemplateList(Page page, SmsTemplateQueryDTO dto) { return returnData(R.SUCCESS.getCode(), smsTemplateService.queryPage(dto, page)); } @GetMapping("/aliyun/list") @ApiOperation(value = "短信模板列表", httpMethod = "GET") public ResponseEntity>> getALSmsTemplateList(Page page, SmsTemplateQueryDTO dto) throws Exception { Client client = createClient(); QuerySmsTemplateListRequest querySmsTemplateListRequest = new QuerySmsTemplateListRequest(); RuntimeOptions runtime = new RuntimeOptions(); List 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); } @GetMapping("/templateName/all") @ApiOperation(value = "短信模板下拉列表", httpMethod = "GET") public ResponseEntity getSmsTemplateNameList() { List allTemplateName = smsTemplateService.getAllTemplateName(); return returnData(R.SUCCESS.getCode(), allTemplateName); } }