This commit is contained in:
dute7liang
2024-01-28 21:51:23 +08:00
parent a65338ea21
commit eff64dee50
17 changed files with 574 additions and 0 deletions

View File

@@ -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<SysPush> list(SysPush bo, PageQuery pageQuery) {
Page<SysPush> page = sysPushService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取推送系统消息详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:sysPush:query")
@GetMapping("/{id}")
public R<SysPush> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(sysPushService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -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<SysPushLog> list(SysPushLog bo, PageQuery pageQuery) {
Page<SysPushLog> page = sysPushLogService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取推送系统消息记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:sysPushLog:query")
@GetMapping("/{id}")
public R<SysPushLog> 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<Void> 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<Void> 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<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(sysPushLogService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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<SysPushLog> {
}

View File

@@ -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<SysPush> {
}

View File

@@ -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<SysPushLog> {
}

View File

@@ -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<SysPush> {
}

View File

@@ -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<SysPushLogMapper,SysPushLog> implements SysPushLogService {
}

View File

@@ -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<SysPushMapper, SysPush> implements SysPushService {
}

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.SysPushLogMapper">
<resultMap type="com.ruoyi.cai.domain.SysPushLog" id="SysPushLogResult">
<result property="id" column="id"/>
<result property="sysPushId" column="sys_push_id"/>
<result property="userJson" column="user_json"/>
<result property="num" column="num"/>
<result property="status" column="status"/>
<result property="result" column="result"/>
<result property="retry" column="retry"/>
<result property="beginTime" column="begin_time"/>
<result property="endTime" column="end_time"/>
<result property="createtime" column="createtime"/>
<result property="updatetime" column="updatetime"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.SysPushMapper">
<resultMap type="com.ruoyi.cai.domain.SysPush" id="SysPushResult">
<result property="id" column="id"/>
<result property="groupId" column="group_id"/>
<result property="type" column="type"/>
<result property="userId" column="user_id"/>
<result property="title" column="title"/>
<result property="content" column="content"/>
<result property="params" column="params"/>
<result property="remark" column="remark"/>
<result property="sendTimeType" column="send_time_type"/>
<result property="sendTime" column="send_time"/>
<result property="num" column="num"/>
<result property="status" column="status"/>
<result property="endtime" column="endtime"/>
<result property="createtime" column="createtime"/>
<result property="updatetime" column="updatetime"/>
</resultMap>
</mapper>