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