diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/SysPushController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/SysPushController.java new file mode 100644 index 00000000..fad3ef12 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/SysPushController.java @@ -0,0 +1,96 @@ +package com.ruoyi.cai.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.cai.domain.SysPush; +import com.ruoyi.cai.service.SysPushService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.enums.BusinessType; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; + +/** + * 推送系统消息 + * + * @author 77 + * @date 2024-01-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/cai/sysPush") +public class SysPushController extends BaseController { + + private final SysPushService sysPushService; + + /** + * 查询推送系统消息列表 + */ + @SaCheckPermission("cai:sysPush:list") + @GetMapping("/list") + public TableDataInfo list(SysPush bo, PageQuery pageQuery) { + Page page = sysPushService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); + return TableDataInfo.build(page); + } + + + /** + * 获取推送系统消息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("cai:sysPush:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(sysPushService.getById(id)); + } + + /** + * 新增推送系统消息 + */ + @SaCheckPermission("cai:sysPush:add") + @Log(title = "推送系统消息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysPush bo) { + return toAjax(sysPushService.save(bo)); + } + + /** + * 修改推送系统消息 + */ + @SaCheckPermission("cai:sysPush:edit") + @Log(title = "推送系统消息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysPush bo) { + return toAjax(sysPushService.updateById(bo)); + } + + /** + * 删除推送系统消息 + * + * @param ids 主键串 + */ + @SaCheckPermission("cai:sysPush:remove") + @Log(title = "推送系统消息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(sysPushService.removeBatchByIds(Arrays.asList(ids))); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/SysPushLogController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/SysPushLogController.java new file mode 100644 index 00000000..366581c7 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/SysPushLogController.java @@ -0,0 +1,95 @@ +package com.ruoyi.cai.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.cai.domain.SysPushLog; +import com.ruoyi.cai.service.SysPushLogService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.annotation.RepeatSubmit; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import com.ruoyi.common.enums.BusinessType; +import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Arrays; + +/** + * 推送系统消息记录 + * + * @author 77 + * @date 2024-01-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/cai/sysPushLog") +public class SysPushLogController extends BaseController { + + private final SysPushLogService sysPushLogService; + + /** + * 查询推送系统消息记录列表 + */ + @SaCheckPermission("cai:sysPushLog:list") + @GetMapping("/list") + public TableDataInfo list(SysPushLog bo, PageQuery pageQuery) { + Page page = sysPushLogService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); + return TableDataInfo.build(page); + } + + /** + * 获取推送系统消息记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("cai:sysPushLog:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(sysPushLogService.getById(id)); + } + + /** + * 新增推送系统消息记录 + */ + @SaCheckPermission("cai:sysPushLog:add") + @Log(title = "推送系统消息记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysPushLog bo) { + return toAjax(sysPushLogService.save(bo)); + } + + /** + * 修改推送系统消息记录 + */ + @SaCheckPermission("cai:sysPushLog:edit") + @Log(title = "推送系统消息记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysPushLog bo) { + return toAjax(sysPushLogService.updateById(bo)); + } + + /** + * 删除推送系统消息记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("cai:sysPushLog:remove") + @Log(title = "推送系统消息记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(sysPushLogService.removeBatchByIds(Arrays.asList(ids))); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SysPush.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SysPush.java new file mode 100644 index 00000000..ee08e5a9 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SysPush.java @@ -0,0 +1,80 @@ +package com.ruoyi.cai.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 推送系统消息对象 cai_sys_push + * + * @author 77 + * @date 2024-01-28 + */ +@Data +@TableName("cai_sys_push") +public class SysPush implements Serializable { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 群体类型: 0=单个用户,1=全部用户,2=男用户,3=女用户, 4 =认证女神 + */ + private Integer groupId; + /** + * 消息类型:0=纯文字消息,1=文本消息,2=单图文消息,3=多图文消息 + */ + private Integer type; + /** + * 用户id,仅在group_id=单个用户时生效 + */ + private Long userId; + private String usercode; + /** + * 标题 + */ + private String title; + /** + * 内容 + */ + private String content; + /** + * 前端参数 + */ + private String params; + /** + * 备注说明 + */ + private String remark; + /** + * 发送类型:0=手动发送,1=定时发送 + */ + private Integer sendTimeType; + /** + * 发送时间 + */ + private LocalDateTime sendTime; + /** + * 已推送人数 + */ + private Integer num; + /** + * 状态:0=未执行,1=执行中,2队列执行中,3=已完成 + */ + private Integer status; + /** + * 完成时间 + */ + private LocalDateTime endTime; + private LocalDateTime createTime; + private LocalDateTime updateTime; + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SysPushLog.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SysPushLog.java new file mode 100644 index 00000000..8a6b826f --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/SysPushLog.java @@ -0,0 +1,64 @@ +package com.ruoyi.cai.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 推送系统消息记录对象 cai_sys_push_log + * + * @author 77 + * @date 2024-01-28 + */ +@Data +@TableName("cai_sys_push_log") +public class SysPushLog implements Serializable { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + /** + * 系统推送id + */ + private Long sysPushId; + /** + * 推送到的用户id + */ + private String userJson; + /** + * 推送人数 + */ + private Integer num; + /** + * 推送状态:0=未推送,1=推送中,2=推送失败,3=推送成功 + */ + private Integer status; + /** + * 推送返回的结果 + */ + private String result; + /** + * 重试次数 + */ + private Integer retry; + /** + * 开始发送时间 + */ + private LocalDateTime beginTime; + /** + * 完成时间 + */ + private LocalDateTime endTime; + + private LocalDateTime createTime; + private LocalDateTime updateTime; + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushGroupIdEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushGroupIdEnum.java new file mode 100644 index 00000000..f362aa99 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushGroupIdEnum.java @@ -0,0 +1,21 @@ +package com.ruoyi.cai.enums.systempush; + +import lombok.Getter; + +@Getter +public enum SystemPushGroupIdEnum { + // 群体类型: 0=单个用户,1=全部用户,2=男用户,3=女用户, 4 =认证女神 + ONE_USER(0,"单个用户"), + ALL_USER(1,"全部用户"), + MEN_USER(2,"男用户"), + WOMEN_USER(3,"女用户"), + ANCHOR_USER(4,"认证女神"), + ; + private final Integer code; + private final String text; + + SystemPushGroupIdEnum(Integer code, String text) { + this.code = code; + this.text = text; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushLogStatus.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushLogStatus.java new file mode 100644 index 00000000..b426fb50 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushLogStatus.java @@ -0,0 +1,20 @@ +package com.ruoyi.cai.enums.systempush; + +import lombok.Getter; + +// 推送状态:0=未推送,1=推送中,2=推送失败,3=推送成功 +@Getter +public enum SystemPushLogStatus { + NO_SEND(0,"未推送"), + SENDING(1,"推送中"), + SEND_FAIL(2,"推送失败"), + SEND_SUCCESS(3,"推送成功"), + ; + private final Integer code; + private final String text; + + SystemPushLogStatus(Integer code, String text) { + this.code = code; + this.text = text; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushSendTimeTypeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushSendTimeTypeEnum.java new file mode 100644 index 00000000..08a6c86e --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushSendTimeTypeEnum.java @@ -0,0 +1,19 @@ +package com.ruoyi.cai.enums.systempush; + +import lombok.Getter; + +@Getter +public enum SystemPushSendTimeTypeEnum { + // 发送类型:0=手动发送,1=定时发送 + HAND_SEND(0,"手动发送"), + SCHEDULED_SEND(1,"定时发送"), + + ; + private final Integer code; + private final String text; + + SystemPushSendTimeTypeEnum(Integer code, String text) { + this.code = code; + this.text = text; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushStatusEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushStatusEnum.java new file mode 100644 index 00000000..81c67a4c --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushStatusEnum.java @@ -0,0 +1,20 @@ +package com.ruoyi.cai.enums.systempush; + +import lombok.Getter; + +@Getter +public enum SystemPushStatusEnum { + // 状态:0=未执行,1=执行中,2=队列执行中,3=已完成 + NO_RUN(0,"未执行"), + RUNNING(1,"执行中"), + QUEUE_RUNNING(2,"队列执行中"), + COMPLETE(3,"已完成"), + ; + private final Integer code; + private final String text; + + SystemPushStatusEnum(Integer code, String text) { + this.code = code; + this.text = text; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushTypeEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushTypeEnum.java new file mode 100644 index 00000000..c835645f --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/systempush/SystemPushTypeEnum.java @@ -0,0 +1,20 @@ +package com.ruoyi.cai.enums.systempush; + +import lombok.Getter; + +@Getter +public enum SystemPushTypeEnum { + // 消息类型:0=纯文字消息,1=文本消息,2=单图文消息,3=多图文消息 + SIMPLE_TEXT(0,"纯文字消息"), + TEXT(1,"文本消息"), + SIMPLE_IMAGE_TEXT(2,"单图文消息"), + IMAGE_TEXT(3,"多图文消息"), + ; + private final Integer code; + private final String text; + + SystemPushTypeEnum(Integer code, String text) { + this.code = code; + this.text = text; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/SysPushLogMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/SysPushLogMapper.java new file mode 100644 index 00000000..eca9e2a7 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/SysPushLogMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.cai.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cai.domain.SysPushLog; + +/** + * 推送系统消息记录Mapper接口 + * + * @author 77 + * @date 2024-01-28 + */ +public interface SysPushLogMapper extends BaseMapper { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/SysPushMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/SysPushMapper.java new file mode 100644 index 00000000..1b5a9c57 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/SysPushMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.cai.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cai.domain.SysPush; + +/** + * 推送系统消息Mapper接口 + * + * @author 77 + * @date 2024-01-28 + */ +public interface SysPushMapper extends BaseMapper { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/SysPushLogService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/SysPushLogService.java new file mode 100644 index 00000000..484e82f7 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/SysPushLogService.java @@ -0,0 +1,14 @@ +package com.ruoyi.cai.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.cai.domain.SysPushLog; + +/** + * 推送系统消息记录Service接口 + * + * @author 77 + * @date 2024-01-28 + */ +public interface SysPushLogService extends IService { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/SysPushService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/SysPushService.java new file mode 100644 index 00000000..68e55cdc --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/SysPushService.java @@ -0,0 +1,14 @@ +package com.ruoyi.cai.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.cai.domain.SysPush; + +/** + * 推送系统消息Service接口 + * + * @author 77 + * @date 2024-01-28 + */ +public interface SysPushService extends IService { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/SysPushLogServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/SysPushLogServiceImpl.java new file mode 100644 index 00000000..e2a86a7f --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/SysPushLogServiceImpl.java @@ -0,0 +1,17 @@ +package com.ruoyi.cai.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.cai.domain.SysPushLog; +import com.ruoyi.cai.mapper.SysPushLogMapper; +import com.ruoyi.cai.service.SysPushLogService; +import org.springframework.stereotype.Service; + +/** + * 推送系统消息记录Service业务层处理 + * + * @author 77 + * @date 2024-01-28 + */ +@Service +public class SysPushLogServiceImpl extends ServiceImpl implements SysPushLogService { +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/SysPushServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/SysPushServiceImpl.java new file mode 100644 index 00000000..5b487d99 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/SysPushServiceImpl.java @@ -0,0 +1,18 @@ +package com.ruoyi.cai.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.cai.domain.SysPush; +import com.ruoyi.cai.mapper.SysPushMapper; +import com.ruoyi.cai.service.SysPushService; +import org.springframework.stereotype.Service; + +/** + * 推送系统消息Service业务层处理 + * + * @author 77 + * @date 2024-01-28 + */ +@Service +public class SysPushServiceImpl extends ServiceImpl implements SysPushService { + +} diff --git a/ruoyi-cai/src/main/resources/mapper/cai/SysPushLogMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/SysPushLogMapper.xml new file mode 100644 index 00000000..0636563a --- /dev/null +++ b/ruoyi-cai/src/main/resources/mapper/cai/SysPushLogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-cai/src/main/resources/mapper/cai/SysPushMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/SysPushMapper.xml new file mode 100644 index 00000000..cb647a81 --- /dev/null +++ b/ruoyi-cai/src/main/resources/mapper/cai/SysPushMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + +