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 ++++-- src/main/java/com/mzl/flower/mapper/SmsTaskDetailMapper.java | 7 src/main/java/com/mzl/flower/web/v2/sms/SmsTaskDetailController.java | 56 +--- src/main/resources/mapper/sms/SmsTaskMapper.xml | 43 ++- src/main/java/com/mzl/flower/service/impl/sms/SmsTaskDetailServiceImpl.java | 18 + src/main/java/com/mzl/flower/service/sms/SmsTaskDetailService.java | 7 src/main/java/com/mzl/flower/service/sms/SmsTaskService.java | 14 + src/main/java/com/mzl/flower/dto/response/sms/SmsTaskVO.java | 30 ++ src/main/java/com/mzl/flower/mapper/SmsTaskMapper.java | 12 src/main/java/com/mzl/flower/service/impl/sms/SmsTemplateServiceImpl.java | 46 +++ src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateQueryDTO.java | 28 ++ pom.xml | 5 src/main/java/com/mzl/flower/dto/request/sms/SmsTaskQueryDTO.java | 37 +++ src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateDTO.java | 23 + src/main/java/com/mzl/flower/dto/response/sms/SmsTaskDetailVO.java | 23 + src/main/resources/mapper/sms/SmsTaskDetailMapper.xml | 38 ++- src/main/java/com/mzl/flower/dto/request/sms/SmsTaskDTO.java | 29 ++ src/main/java/com/mzl/flower/mapper/SmsTemplateMapper.java | 7 src/main/java/com/mzl/flower/service/sms/SmsTemplateService.java | 14 + src/main/resources/mapper/sms/SmsTemplateMapper.xml | 40 ++- src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java | 46 +++ src/main/java/com/mzl/flower/web/v2/sms/SmsTaskController.java | 60 ++-- 22 files changed, 525 insertions(+), 148 deletions(-) diff --git a/pom.xml b/pom.xml index ff10f45..700cf89 100644 --- a/pom.xml +++ b/pom.xml @@ -275,6 +275,11 @@ <version>2.4</version> <classifier>jdk15</classifier> </dependency> + <dependency> + <groupId>com.aliyun</groupId> + <artifactId>dysmsapi20170525</artifactId> + <version>3.1.0</version> + </dependency> </dependencies> diff --git a/src/main/java/com/mzl/flower/dto/request/sms/SmsTaskDTO.java b/src/main/java/com/mzl/flower/dto/request/sms/SmsTaskDTO.java new file mode 100644 index 0000000..fda2f66 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/sms/SmsTaskDTO.java @@ -0,0 +1,29 @@ +package com.mzl.flower.dto.request.sms; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SmsTaskDTO { + @ApiModelProperty(value = "短信任务管理id") + private Long id; + + @ApiModelProperty("短信模板ID") + private Long smsTemplateId; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("任务类型") + private String type; + + @ApiModelProperty("导入文件路径") + private String fileUrl; + + @ApiModelProperty("手机号") + private String phones; + + @ApiModelProperty("发送数量") + private Long num; + +} diff --git a/src/main/java/com/mzl/flower/dto/request/sms/SmsTaskQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/sms/SmsTaskQueryDTO.java new file mode 100644 index 0000000..a3cd3f7 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/sms/SmsTaskQueryDTO.java @@ -0,0 +1,37 @@ +package com.mzl.flower.dto.request.sms; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class SmsTaskQueryDTO { + @ApiModelProperty(value = "短信任务管理id") + private Long id; + + @ApiModelProperty("短信模板ID") + private Long smsTemplateId; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("任务类型") + private String type; + + @ApiModelProperty("导入文件路径") + private String fileUrl; + + @ApiModelProperty("手机号") + private String phones; + + @ApiModelProperty("发送数量") + private Long num; + + @ApiModelProperty(value = "开始时间") + private Date startDate; + + @ApiModelProperty(value = "结束时间") + private Date endDate; + +} diff --git a/src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateDTO.java b/src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateDTO.java new file mode 100644 index 0000000..58ef814 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateDTO.java @@ -0,0 +1,23 @@ +package com.mzl.flower.dto.request.sms; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +@Data +public class SmsTemplateDTO { + @ApiModelProperty(value = "短信模板管理id") + private Long id; + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("描述") + private String description; + +} diff --git a/src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateQueryDTO.java b/src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateQueryDTO.java new file mode 100644 index 0000000..545bd0d --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/request/sms/SmsTemplateQueryDTO.java @@ -0,0 +1,28 @@ +package com.mzl.flower.dto.request.sms; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Date; + +@Data +public class SmsTemplateQueryDTO { + @ApiModelProperty(value = "短信模板管理id") + private Long id; + + @ApiModelProperty("编码") + private String code; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("描述") + private String description; + + @ApiModelProperty(value = "开始时间") + private Date startDate; + + @ApiModelProperty(value = "结束时间") + private Date endDate; +} diff --git a/src/main/java/com/mzl/flower/dto/response/sms/SmsTaskDetailVO.java b/src/main/java/com/mzl/flower/dto/response/sms/SmsTaskDetailVO.java new file mode 100644 index 0000000..768aad3 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/response/sms/SmsTaskDetailVO.java @@ -0,0 +1,23 @@ +package com.mzl.flower.dto.response.sms; + +import com.mzl.flower.base.AbstractTransDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SmsTaskDetailVO extends AbstractTransDTO { + @ApiModelProperty(value = "任务详情id") + private Long id; + + @ApiModelProperty("短信任务表ID") + private Long smsTaskId; + + @ApiModelProperty("短信模板表ID") + private Long smsTemplateId; + + @ApiModelProperty("接收号码") + private String phone; + + @ApiModelProperty("发送结果") + private String result; +} diff --git a/src/main/java/com/mzl/flower/dto/response/sms/SmsTaskVO.java b/src/main/java/com/mzl/flower/dto/response/sms/SmsTaskVO.java new file mode 100644 index 0000000..1d0fa35 --- /dev/null +++ b/src/main/java/com/mzl/flower/dto/response/sms/SmsTaskVO.java @@ -0,0 +1,30 @@ +package com.mzl.flower.dto.response.sms; + +import com.mzl.flower.base.AbstractTransDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class SmsTaskVO extends AbstractTransDTO { + @ApiModelProperty(value = "短信任务管理id") + private Long id; + + @ApiModelProperty("短信模板ID") + private Long smsTemplateId; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("任务类型") + private String type; + + @ApiModelProperty("导入文件路径") + private String fileUrl; + + @ApiModelProperty("手机号") + private String phones; + + @ApiModelProperty("发送数量") + private Long num; + +} diff --git a/src/main/java/com/mzl/flower/mapper/SmsTaskDetailMapper.java b/src/main/java/com/mzl/flower/mapper/SmsTaskDetailMapper.java index d543475..d0c1bfb 100644 --- a/src/main/java/com/mzl/flower/mapper/SmsTaskDetailMapper.java +++ b/src/main/java/com/mzl/flower/mapper/SmsTaskDetailMapper.java @@ -1,7 +1,13 @@ package com.mzl.flower.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskDetailVO; import com.mzl.flower.entity.SmsTaskDetailDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +19,5 @@ */ public interface SmsTaskDetailMapper extends BaseMapper<SmsTaskDetailDO> { + List<SmsTaskDetailVO> queryPage(@Param("dto") SmsTaskQueryDTO dto, Page page); } diff --git a/src/main/java/com/mzl/flower/mapper/SmsTaskMapper.java b/src/main/java/com/mzl/flower/mapper/SmsTaskMapper.java index 50bbf94..d6aee53 100644 --- a/src/main/java/com/mzl/flower/mapper/SmsTaskMapper.java +++ b/src/main/java/com/mzl/flower/mapper/SmsTaskMapper.java @@ -1,11 +1,19 @@ package com.mzl.flower.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.request.sms.SmsTemplateQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskVO; import com.mzl.flower.entity.SmsTaskDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mzl.flower.entity.SmsTemplateDO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> - * Mapper 接口 + * Mapper 接口 * </p> * * @author @TaoJie @@ -13,4 +21,6 @@ */ public interface SmsTaskMapper extends BaseMapper<SmsTaskDO> { + List<SmsTaskVO> queryPage(@Param("dto") SmsTaskQueryDTO dto, Page page); + } diff --git a/src/main/java/com/mzl/flower/mapper/SmsTemplateMapper.java b/src/main/java/com/mzl/flower/mapper/SmsTemplateMapper.java index 88afc16..e1ad8cb 100644 --- a/src/main/java/com/mzl/flower/mapper/SmsTemplateMapper.java +++ b/src/main/java/com/mzl/flower/mapper/SmsTemplateMapper.java @@ -1,7 +1,12 @@ package com.mzl.flower.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.dto.request.sms.SmsTemplateQueryDTO; import com.mzl.flower.entity.SmsTemplateDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +18,6 @@ */ public interface SmsTemplateMapper extends BaseMapper<SmsTemplateDO> { + List<SmsTemplateDO> queryPage(@Param("dto") SmsTemplateQueryDTO dto, Page page); + } diff --git a/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskDetailServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskDetailServiceImpl.java index 5d3c427..cd6634b 100644 --- a/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskDetailServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskDetailServiceImpl.java @@ -1,10 +1,19 @@ package com.mzl.flower.service.impl.sms; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskDetailVO; +import com.mzl.flower.dto.response.sms.SmsTaskVO; import com.mzl.flower.entity.SmsTaskDetailDO; import com.mzl.flower.mapper.SmsTaskDetailMapper; +import com.mzl.flower.mapper.SmsTaskMapper; import com.mzl.flower.service.sms.SmsTaskDetailService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * <p> @@ -15,6 +24,15 @@ * @since 2024-12-25 */ @Service +@Transactional +@RequiredArgsConstructor public class SmsTaskDetailServiceImpl extends ServiceImpl<SmsTaskDetailMapper, SmsTaskDetailDO> implements SmsTaskDetailService { + private final SmsTaskDetailMapper smsTaskDetailMapper; + @Override + public Page<SmsTaskDetailVO> queryPage(SmsTaskQueryDTO dto, Page page) { + List<SmsTaskDetailVO> list = smsTaskDetailMapper.queryPage(dto, page); + page.setRecords(list); + return page; + } } diff --git a/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java index e97edc3..9fae099 100644 --- a/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/sms/SmsTaskServiceImpl.java @@ -1,10 +1,21 @@ package com.mzl.flower.service.impl.sms; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mzl.flower.config.exception.ValidationException; +import com.mzl.flower.config.security.SecurityUtils; +import com.mzl.flower.dto.request.sms.SmsTaskDTO; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskVO; import com.mzl.flower.entity.SmsTaskDO; import com.mzl.flower.mapper.SmsTaskMapper; import com.mzl.flower.service.sms.SmsTaskService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * <p> @@ -15,6 +26,39 @@ * @since 2024-12-25 */ @Service +@Transactional +@RequiredArgsConstructor public class SmsTaskServiceImpl extends ServiceImpl<SmsTaskMapper, SmsTaskDO> implements SmsTaskService { + private final SmsTaskMapper smsTaskMapper; + @Override + public void saveSmsTask(SmsTaskDTO smsTaskDTO) { + SmsTaskDO smsTaskDO = new SmsTaskDO(); + BeanUtils.copyProperties(smsTaskDTO, smsTaskDO); + smsTaskMapper.insert(smsTaskDO); + } + + @Override + public void updateSmsTask(SmsTaskDTO smsTaskDTO) { + SmsTaskDO smsTaskDO = smsTaskMapper.selectById(smsTaskDTO.getId()); + BeanUtils.copyProperties(smsTaskDTO, smsTaskDO); + smsTaskDO.update(SecurityUtils.getUserId()); + smsTaskMapper.updateById(smsTaskDO); + } + + @Override + public void deleteSmsTask(Long id) { + SmsTaskDO smsTaskDO = smsTaskMapper.selectById(id); + if (smsTaskDO == null) { + throw new ValidationException("短信任务ID不存在"); + } + smsTaskMapper.deleteById(id); + } + + @Override + public Page<SmsTaskVO> queryPage(SmsTaskQueryDTO dto, Page page) { + List<SmsTaskVO> list = smsTaskMapper.queryPage(dto, page); + page.setRecords(list); + return page; + } } diff --git a/src/main/java/com/mzl/flower/service/impl/sms/SmsTemplateServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/sms/SmsTemplateServiceImpl.java index dc3b2fc..195ec92 100644 --- a/src/main/java/com/mzl/flower/service/impl/sms/SmsTemplateServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/impl/sms/SmsTemplateServiceImpl.java @@ -1,10 +1,23 @@ package com.mzl.flower.service.impl.sms; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.config.exception.ValidationException; +import com.mzl.flower.config.security.SecurityUtils; +import com.mzl.flower.dto.request.sms.SmsTemplateDTO; +import com.mzl.flower.dto.request.sms.SmsTemplateQueryDTO; +import com.mzl.flower.dto.response.member.MemberVO; import com.mzl.flower.entity.SmsTemplateDO; +import com.mzl.flower.entity.menber.Member; +import com.mzl.flower.entity.menber.MemberGrowthRecord; import com.mzl.flower.mapper.SmsTemplateMapper; import com.mzl.flower.service.sms.SmsTemplateService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * <p> @@ -15,6 +28,39 @@ * @since 2024-12-25 */ @Service +@Transactional +@RequiredArgsConstructor public class SmsTemplateServiceImpl extends ServiceImpl<SmsTemplateMapper, SmsTemplateDO> implements SmsTemplateService { + private final SmsTemplateMapper smsTemplateMapper; + @Override + public void saveSmsTemplate(SmsTemplateDTO smsTemplateDTO) { + SmsTemplateDO smsTemplateDO = new SmsTemplateDO(); + BeanUtils.copyProperties(smsTemplateDTO, smsTemplateDO); + smsTemplateMapper.insert(smsTemplateDO); + } + + @Override + public void updateSmsTemplate(SmsTemplateDTO smsTemplateDTO) { + SmsTemplateDO smsTemplateDO = smsTemplateMapper.selectById(smsTemplateDTO.getId()); + BeanUtils.copyProperties(smsTemplateDTO, smsTemplateDO); + smsTemplateDO.update(SecurityUtils.getUserId()); + smsTemplateMapper.updateById(smsTemplateDO); + } + + @Override + public void deleteSmsTemplate(Long id) { + SmsTemplateDO smsTemplateDO = smsTemplateMapper.selectById(id); + if (smsTemplateDO == null) { + throw new ValidationException("短信模板ID不存在"); + } + smsTemplateMapper.deleteById(id); + } + + @Override + public Page<SmsTemplateDO> queryPage(SmsTemplateQueryDTO dto, Page page) { + List<SmsTemplateDO> list = smsTemplateMapper.queryPage(dto, page); + page.setRecords(list); + return page; + } } diff --git a/src/main/java/com/mzl/flower/service/sms/SmsTaskDetailService.java b/src/main/java/com/mzl/flower/service/sms/SmsTaskDetailService.java index 7a7683d..2e52455 100644 --- a/src/main/java/com/mzl/flower/service/sms/SmsTaskDetailService.java +++ b/src/main/java/com/mzl/flower/service/sms/SmsTaskDetailService.java @@ -1,7 +1,10 @@ package com.mzl.flower.service.sms; -import com.mzl.flower.entity.SmsTaskDetailDO; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskDetailVO; +import com.mzl.flower.entity.SmsTaskDetailDO; /** * <p> @@ -13,4 +16,6 @@ */ public interface SmsTaskDetailService extends IService<SmsTaskDetailDO> { + Page<SmsTaskDetailVO> queryPage(SmsTaskQueryDTO dto, Page page); } + diff --git a/src/main/java/com/mzl/flower/service/sms/SmsTaskService.java b/src/main/java/com/mzl/flower/service/sms/SmsTaskService.java index 32d9ada..0d53c1d 100644 --- a/src/main/java/com/mzl/flower/service/sms/SmsTaskService.java +++ b/src/main/java/com/mzl/flower/service/sms/SmsTaskService.java @@ -1,7 +1,11 @@ package com.mzl.flower.service.sms; -import com.mzl.flower.entity.SmsTaskDO; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.mzl.flower.dto.request.sms.SmsTaskDTO; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskVO; +import com.mzl.flower.entity.SmsTaskDO; /** * <p> @@ -13,4 +17,12 @@ */ public interface SmsTaskService extends IService<SmsTaskDO> { + void saveSmsTask(SmsTaskDTO smsTaskDTO); + + void updateSmsTask(SmsTaskDTO smsTaskDTO); + + void deleteSmsTask(Long id); + + Page<SmsTaskVO> queryPage(SmsTaskQueryDTO dto, Page page); + } diff --git a/src/main/java/com/mzl/flower/service/sms/SmsTemplateService.java b/src/main/java/com/mzl/flower/service/sms/SmsTemplateService.java index 41f3fc2..934bc3b 100644 --- a/src/main/java/com/mzl/flower/service/sms/SmsTemplateService.java +++ b/src/main/java/com/mzl/flower/service/sms/SmsTemplateService.java @@ -1,11 +1,15 @@ package com.mzl.flower.service.sms; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mzl.flower.dto.request.sms.SmsTemplateDTO; +import com.mzl.flower.dto.request.sms.SmsTemplateQueryDTO; +import com.mzl.flower.dto.response.member.MemberVO; import com.mzl.flower.entity.SmsTemplateDO; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> - * 服务类 + * 服务类 * </p> * * @author @TaoJie @@ -13,4 +17,12 @@ */ public interface SmsTemplateService extends IService<SmsTemplateDO> { + void saveSmsTemplate(SmsTemplateDTO smsTemplateDTO); + + + void updateSmsTemplate(SmsTemplateDTO smsTemplateDTO); + + void deleteSmsTemplate(Long id); + + Page<SmsTemplateDO> queryPage(SmsTemplateQueryDTO dto, Page page); } diff --git a/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskController.java b/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskController.java index a5f22de..b43b2fb 100644 --- a/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskController.java +++ b/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskController.java @@ -5,59 +5,63 @@ 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.SmsTaskDTO; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.request.sms.SmsTemplateDTO; +import com.mzl.flower.dto.request.sms.SmsTemplateQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskVO; +import com.mzl.flower.entity.SmsTemplateDO; +import com.mzl.flower.service.sms.SmsTaskService; +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.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 org.springframework.web.bind.annotation.*; import com.mzl.flower.entity.SmsTaskDO; import javax.validation.constraints.Min; import javax.validation.constraints.Max; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Positive; - -import org.springframework.web.bind.annotation.RestController; /** * @author @TaoJie * @since 2024-12-25 */ +@Api(value = "短信任务管理", tags = "短信任务管理") @RestController @RequestMapping("/v2/sms-task") +@RequiredArgsConstructor public class SmsTaskController extends BaseController { - @PostMapping("") - public ResponseEntity<ReturnDataDTO> create() { + private final SmsTaskService smsTaskService; + @PostMapping("/new") + @ApiOperation(value = "保存短信任务模板", httpMethod = "POST") + public ResponseEntity<ReturnDataDTO> create(@RequestBody SmsTaskDTO smsTaskDTO) { + smsTaskService.saveSmsTask(smsTaskDTO); 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 SmsTaskDTO smsTaskDTO) { + smsTaskService.updateSmsTask(smsTaskDTO); 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) { + smsTaskService.deleteSmsTask(id); return returnData(R.SUCCESS.getCode(), null); } - @GetMapping("/{id}") - public ResponseEntity<ReturnDataDTO> get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) { - return null; + @GetMapping("/list") + @ApiOperation(value = "短信模板任务列表", httpMethod = "GET") + public ResponseEntity<ReturnDataDTO<Page<SmsTaskVO>>> getSmsTaskList(Page page, SmsTaskQueryDTO dto) { + return returnData(R.SUCCESS.getCode(), smsTaskService.queryPage(dto, page)); } - @GetMapping("/page") - public ResponseEntity<ReturnDataDTO<Page<SmsTaskDO>>> 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; - } } diff --git a/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskDetailController.java b/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskDetailController.java index 2145c4d..581c6aa 100644 --- a/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskDetailController.java +++ b/src/main/java/com/mzl/flower/web/v2/sms/SmsTaskDetailController.java @@ -5,61 +5,31 @@ import com.mzl.flower.base.BaseController; import com.mzl.flower.base.R; import com.mzl.flower.base.ReturnDataDTO; -import com.mzl.flower.entity.SmsTemplateDO; +import com.mzl.flower.dto.request.sms.SmsTaskQueryDTO; +import com.mzl.flower.dto.response.sms.SmsTaskDetailVO; +import com.mzl.flower.service.sms.SmsTaskDetailService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; 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.entity.SmsTaskDetailDO; - - -import javax.validation.constraints.Min; -import javax.validation.constraints.Max; -import javax.validation.constraints.Positive; - import org.springframework.web.bind.annotation.RestController; /** * @author @TaoJie * @since 2024-12-25 */ +@Api(value = "任务详情管理", tags = "任务详情管理") @RestController @RequestMapping("/v2/sms-task-detail") +@RequiredArgsConstructor public class SmsTaskDetailController extends BaseController { - @PostMapping("") - public ResponseEntity<ReturnDataDTO> create() { - return returnData(R.SUCCESS.getCode(), null); + private final SmsTaskDetailService smsTaskDetailService; + @GetMapping("/list") + @ApiOperation(value = "任务详情列表", httpMethod = "GET") + public ResponseEntity<ReturnDataDTO<Page<SmsTaskDetailVO>>> getSmsTaskList(Page page, SmsTaskQueryDTO dto) { + return returnData(R.SUCCESS.getCode(), smsTaskDetailService.queryPage(dto, page)); } - - @PutMapping("/{id}") - public ResponseEntity<ReturnDataDTO> update(@PathVariable @Positive(message = "{id.positive}") Integer id) { - return returnData(R.SUCCESS.getCode(), null); - } - - @DeleteMapping("/{id}") - public ResponseEntity<ReturnDataDTO> delete(@PathVariable @Positive(message = "{id.positive}") Integer id) { - return returnData(R.SUCCESS.getCode(), null); - } - - @GetMapping("/{id}") - public ResponseEntity<ReturnDataDTO> get(@PathVariable(value = "id") @Positive(message = "{id.positive}") Integer id) { - return returnData(R.SUCCESS.getCode(), null); - } - - @GetMapping("/page") - public ResponseEntity<ReturnDataDTO<Page<SmsTaskDetailDO>>> 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; - } - } 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); } } diff --git a/src/main/resources/mapper/sms/SmsTaskDetailMapper.xml b/src/main/resources/mapper/sms/SmsTaskDetailMapper.xml index 7be742f..f946e3b 100644 --- a/src/main/resources/mapper/sms/SmsTaskDetailMapper.xml +++ b/src/main/resources/mapper/sms/SmsTaskDetailMapper.xml @@ -2,18 +2,30 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mzl.flower.mapper.SmsTaskDetailMapper"> - <!-- 通用查询映射结果 --> - <resultMap id="BaseResultMap" type="com.mzl.flower.entity.SmsTaskDetailDO"> - <id column="id" property="id" /> - <result column="deleted" property="deleted" /> - <result column="create_by" property="createBy" /> - <result column="create_time" property="createTime" /> - <result column="update_by" property="updateBy" /> - <result column="update_time" property="updateTime" /> - <result column="sms_task_id" property="smsTaskId" /> - <result column="sms_template_id" property="smsTemplateId" /> - <result column="phone" property="phone" /> - <result column="result" property="result" /> - </resultMap> + <select id="queryPage" resultType="com.mzl.flower.dto.response.sms.SmsTaskDetailVO"> + select t.* from t_sms_task_detail t + where t.deleted= 0 + <if test="dto.id!=null "> + and t.id = #{dto.id} + </if> + <if test="dto.result != null and dto.result != ''"> + and t.result like concat('%', #{dto.result}, '%') + </if> + <if test="dto.phone != null and dto.phone != ''"> + and t.phone like concat('%', #{dto.phone}, '%') + </if> + + <if test="dto.startDate!=null "> + <![CDATA[ + AND t.create_time >= #{dto.startDate} + ]]> + </if> + <if test="dto.endDate!=null "> + <![CDATA[ + AND t.create_time <= #{dto.endDate} + ]]> + </if> + + </select> </mapper> diff --git a/src/main/resources/mapper/sms/SmsTaskMapper.xml b/src/main/resources/mapper/sms/SmsTaskMapper.xml index f41ab31..9a453f0 100644 --- a/src/main/resources/mapper/sms/SmsTaskMapper.xml +++ b/src/main/resources/mapper/sms/SmsTaskMapper.xml @@ -2,20 +2,33 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mzl.flower.mapper.SmsTaskMapper"> - <!-- 通用查询映射结果 --> - <resultMap id="BaseResultMap" type="com.mzl.flower.entity.SmsTaskDO"> - <id column="id" property="id" /> - <result column="deleted" property="deleted" /> - <result column="create_by" property="createBy" /> - <result column="create_time" property="createTime" /> - <result column="update_by" property="updateBy" /> - <result column="update_time" property="updateTime" /> - <result column="name" property="name" /> - <result column="sms_template_id" property="smsTemplateId" /> - <result column="type" property="type" /> - <result column="file_url" property="fileUrl" /> - <result column="phones" property="phones" /> - <result column="num" property="num" /> - </resultMap> + + <select id="queryPage" resultType="com.mzl.flower.dto.response.sms.SmsTaskVO"> + select t.* from t_sms_task t + where t.deleted= 0 + <if test="dto.id!=null "> + and t.id = #{dto.id} + </if> + <if test="dto.code != null and dto.code != ''"> + and t.code like concat('%', #{dto.code}, '%') + </if> + <if test="dto.name != null and dto.name != ''"> + and t.name like concat('%', #{dto.name}, '%') + </if> + <if test="dto.description != null and dto.description != ''"> + and t.description like concat('%', #{dto.description}, '%') + </if> + <if test="dto.startDate!=null "> + <![CDATA[ + AND t.create_time >= #{dto.startDate} + ]]> + </if> + <if test="dto.endDate!=null "> + <![CDATA[ + AND t.create_time <= #{dto.endDate} + ]]> + </if> + + </select> </mapper> diff --git a/src/main/resources/mapper/sms/SmsTemplateMapper.xml b/src/main/resources/mapper/sms/SmsTemplateMapper.xml index 7f1b9f1..8185740 100644 --- a/src/main/resources/mapper/sms/SmsTemplateMapper.xml +++ b/src/main/resources/mapper/sms/SmsTemplateMapper.xml @@ -2,17 +2,33 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mzl.flower.mapper.SmsTemplateMapper"> - <!-- 通用查询映射结果 --> - <resultMap id="BaseResultMap" type="com.mzl.flower.entity.SmsTemplateDO"> - <id column="id" property="id" /> - <result column="deleted" property="deleted" /> - <result column="create_by" property="createBy" /> - <result column="create_time" property="createTime" /> - <result column="update_by" property="updateBy" /> - <result column="update_time" property="updateTime" /> - <result column="code" property="code" /> - <result column="name" property="name" /> - <result column="description" property="description" /> - </resultMap> + + <select id="queryPage" resultType="com.mzl.flower.entity.SmsTemplateDO"> + select t.* from t_sms_template t + where t.deleted= 0 + <if test="dto.id!=null "> + and t.id = #{dto.id} + </if> + <if test="dto.code != null and dto.code != ''"> + and t.code like concat('%', #{dto.code}, '%') + </if> + <if test="dto.name != null and dto.name != ''"> + and t.name like concat('%', #{dto.name}, '%') + </if> + <if test="dto.description != null and dto.description != ''"> + and t.description like concat('%', #{dto.description}, '%') + </if> + <if test="dto.startDate!=null "> + <![CDATA[ + AND t.create_time >= #{dto.startDate} + ]]> + </if> + <if test="dto.endDate!=null "> + <![CDATA[ + AND t.create_time <= #{dto.endDate} + ]]> + </if> + + </select> </mapper> -- Gitblit v1.9.3