Commit bb78a58029db52df14b3812300b07c144a5d0b48

Authored by xrcoder
1 parent ffa2850a

站内信基础代码整理,接口定义。

Showing 30 changed files with 1244 additions and 0 deletions
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.notify;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
  4 +
  5 +import javax.validation.Valid;
  6 +
  7 +/**
  8 + * 站内信发送 API 接口
  9 + *
  10 + * @author xrcoder
  11 + */
  12 +public interface NotifyMessageSendApi {
  13 +
  14 + /**
  15 + * 发送单条站内信给 Admin 用户
  16 + * <p>
  17 + * 在 mobile 为空时,使用 userId 加载对应 Admin 的手机号
  18 + *
  19 + * @param reqDTO 发送请求
  20 + * @return 发送消息ID
  21 + */
  22 + Long sendSingleMessageToAdmin(@Valid NotifySendSingleToUserReqDTO reqDTO);
  23 +
  24 + /**
  25 + * 发送单条站内信给 Member 用户
  26 + * <p>
  27 + * 在 mobile 为空时,使用 userId 加载对应 Member 的手机号
  28 + *
  29 + * @param reqDTO 发送请求
  30 + * @return 发送消息ID
  31 + */
  32 + Long sendSingleMessageToMember(@Valid NotifySendSingleToUserReqDTO reqDTO);
  33 +
  34 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/notify/dto/NotifySendSingleToUserReqDTO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.notify.dto;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import javax.validation.constraints.NotEmpty;
  6 +import javax.validation.constraints.NotNull;
  7 +import java.util.Map;
  8 +
  9 +/**
  10 + * 站内信发送给 Admin 或者 Member 用户
  11 + *
  12 + * @author xrcoder
  13 + */
  14 +@Data
  15 +public class NotifySendSingleToUserReqDTO {
  16 +
  17 + /**
  18 + * 用户编号
  19 + */
  20 + @NotNull(message = "用户编号不能为空")
  21 + private Long userId;
  22 +
  23 + /**
  24 + * 站内信模板编号
  25 + */
  26 + @NotEmpty(message = "站内信模板编号不能为空")
  27 + private String templateCode;
  28 +
  29 + /**
  30 + * 站内信模板参数
  31 + */
  32 + private Map<String, Object> templateParams;
  33 +}
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
... ... @@ -142,4 +142,10 @@ public interface ErrorCodeConstants {
142 142 ErrorCode OAUTH2_CODE_NOT_EXISTS = new ErrorCode(1002022000, "code 不存在");
143 143 ErrorCode OAUTH2_CODE_EXPIRE = new ErrorCode(1002022000, "code 已过期");
144 144  
  145 + // ========== 站内信模版 1002023000 ==========
  146 + ErrorCode NOTIFY_TEMPLATE_NOT_EXISTS = new ErrorCode(1002023000, "站内信模版不存在");
  147 +
  148 + // ========== 站内信 1002024000 ==========
  149 + ErrorCode NOTIFY_MESSAGE_NOT_EXISTS = new ErrorCode(1002024000, "站内信不存在");
  150 +
145 151 }
... ...
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/notify/NotifyReadStatusEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.enums.notify;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Getter;
  5 +
  6 +/**
  7 + * 站内信阅读状态枚举类
  8 + *
  9 + * @author xrcoder
  10 + */
  11 +@Getter
  12 +@AllArgsConstructor
  13 +public enum NotifyReadStatusEnum {
  14 +
  15 + UNREAD(0),
  16 + READ(1);
  17 +
  18 + /**
  19 + * 类型
  20 + */
  21 + private final Integer status;
  22 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.notify;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
  4 +import org.springframework.stereotype.Service;
  5 +
  6 +/**
  7 + * 站内信发送 API 接口
  8 + *
  9 + * @author xrcoder
  10 + */
  11 +@Service
  12 +public class NotifyMessageSendApiImpl implements NotifyMessageSendApi {
  13 +
  14 + /**
  15 + * 发送单条站内信给 Admin 用户
  16 + * <p>
  17 + * 在 mobile 为空时,使用 userId 加载对应 Admin 的手机号
  18 + *
  19 + * @param reqDTO 发送请求
  20 + * @return 发送消息ID
  21 + */
  22 + @Override
  23 + public Long sendSingleMessageToAdmin(NotifySendSingleToUserReqDTO reqDTO) {
  24 + return null;
  25 + }
  26 +
  27 + /**
  28 + * 发送单条站内信给 Member 用户
  29 + * <p>
  30 + * 在 mobile 为空时,使用 userId 加载对应 Member 的手机号
  31 + *
  32 + * @param reqDTO 发送请求
  33 + * @return 发送消息ID
  34 + */
  35 + @Override
  36 + public Long sendSingleMessageToMember(NotifySendSingleToUserReqDTO reqDTO) {
  37 + return null;
  38 + }
  39 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageCreateReqVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
  7 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageUpdateReqVO;
  9 +import cn.iocoder.yudao.module.system.convert.notify.NotifyMessageConvert;
  10 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
  11 +import cn.iocoder.yudao.module.system.service.notify.NotifyMessageService;
  12 +import io.swagger.annotations.Api;
  13 +import io.swagger.annotations.ApiImplicitParam;
  14 +import io.swagger.annotations.ApiOperation;
  15 +import org.springframework.security.access.prepost.PreAuthorize;
  16 +import org.springframework.validation.annotation.Validated;
  17 +import org.springframework.web.bind.annotation.*;
  18 +
  19 +import javax.annotation.Resource;
  20 +import javax.validation.Valid;
  21 +
  22 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  23 +
  24 +@Api(tags = "管理后台 - 站内信")
  25 +@RestController
  26 +@RequestMapping("/system/notify-message")
  27 +@Validated
  28 +public class NotifyMessageController {
  29 +
  30 + @Resource
  31 + private NotifyMessageService notifyMessageService;
  32 +
  33 + @PostMapping("/create")
  34 + @ApiOperation("创建站内信")
  35 + @PreAuthorize("@ss.hasPermission('system:notify-message:create')")
  36 + public CommonResult<Long> createNotifyMessage(@Valid @RequestBody NotifyMessageCreateReqVO createReqVO) {
  37 + return success(notifyMessageService.createNotifyMessage(createReqVO));
  38 + }
  39 +
  40 + @PutMapping("/update")
  41 + @ApiOperation("更新站内信")
  42 + @PreAuthorize("@ss.hasPermission('system:notify-message:update')")
  43 + public CommonResult<Boolean> updateNotifyMessage(@Valid @RequestBody NotifyMessageUpdateReqVO updateReqVO) {
  44 + notifyMessageService.updateNotifyMessage(updateReqVO);
  45 + return success(true);
  46 + }
  47 +
  48 + @DeleteMapping("/delete")
  49 + @ApiOperation("删除站内信")
  50 + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
  51 + @PreAuthorize("@ss.hasPermission('system:notify-message:delete')")
  52 + public CommonResult<Boolean> deleteNotifyMessage(@RequestParam("id") Long id) {
  53 + notifyMessageService.deleteNotifyMessage(id);
  54 + return success(true);
  55 + }
  56 +
  57 + @GetMapping("/get")
  58 + @ApiOperation("获得站内信")
  59 + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
  60 + @PreAuthorize("@ss.hasPermission('system:notify-message:query')")
  61 + public CommonResult<NotifyMessageRespVO> getNotifyMessage(@RequestParam("id") Long id) {
  62 + NotifyMessageDO notifyMessage = notifyMessageService.getNotifyMessage(id);
  63 + return success(NotifyMessageConvert.INSTANCE.convert(notifyMessage));
  64 + }
  65 +
  66 + @GetMapping("/page")
  67 + @ApiOperation("获得站内信分页")
  68 + @PreAuthorize("@ss.hasPermission('system:notify-message:query')")
  69 + public CommonResult<PageResult<NotifyMessageRespVO>> getNotifyMessagePage(@Valid NotifyMessagePageReqVO pageVO) {
  70 + PageResult<NotifyMessageDO> pageResult = notifyMessageService.getNotifyMessagePage(pageVO);
  71 + return success(NotifyMessageConvert.INSTANCE.convertPage(pageResult));
  72 + }
  73 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  6 +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
  7 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.*;
  8 +import cn.iocoder.yudao.module.system.convert.notify.NotifyTemplateConvert;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
  10 +import cn.iocoder.yudao.module.system.service.notify.NotifyTemplateService;
  11 +import io.swagger.annotations.Api;
  12 +import io.swagger.annotations.ApiImplicitParam;
  13 +import io.swagger.annotations.ApiOperation;
  14 +import org.springframework.security.access.prepost.PreAuthorize;
  15 +import org.springframework.validation.annotation.Validated;
  16 +import org.springframework.web.bind.annotation.*;
  17 +
  18 +import javax.annotation.Resource;
  19 +import javax.servlet.http.HttpServletResponse;
  20 +import javax.validation.Valid;
  21 +import java.io.IOException;
  22 +import java.util.Collection;
  23 +import java.util.List;
  24 +
  25 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  26 +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
  27 +
  28 +@Api(tags = "管理后台 - 站内信模版")
  29 +@RestController
  30 +@RequestMapping("/system/notify-template")
  31 +@Validated
  32 +public class NotifyTemplateController {
  33 +
  34 + @Resource
  35 + private NotifyTemplateService notifyTemplateService;
  36 +
  37 + @PostMapping("/create")
  38 + @ApiOperation("创建站内信模版")
  39 + @PreAuthorize("@ss.hasPermission('system:notify-template:create')")
  40 + public CommonResult<Long> createNotifyTemplate(@Valid @RequestBody NotifyTemplateCreateReqVO createReqVO) {
  41 + return success(notifyTemplateService.createNotifyTemplate(createReqVO));
  42 + }
  43 +
  44 + @PutMapping("/update")
  45 + @ApiOperation("更新站内信模版")
  46 + @PreAuthorize("@ss.hasPermission('system:notify-template:update')")
  47 + public CommonResult<Boolean> updateNotifyTemplate(@Valid @RequestBody NotifyTemplateUpdateReqVO updateReqVO) {
  48 + notifyTemplateService.updateNotifyTemplate(updateReqVO);
  49 + return success(true);
  50 + }
  51 +
  52 + @DeleteMapping("/delete")
  53 + @ApiOperation("删除站内信模版")
  54 + @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
  55 + @PreAuthorize("@ss.hasPermission('system:notify-template:delete')")
  56 + public CommonResult<Boolean> deleteNotifyTemplate(@RequestParam("id") Long id) {
  57 + notifyTemplateService.deleteNotifyTemplate(id);
  58 + return success(true);
  59 + }
  60 +
  61 + @GetMapping("/get")
  62 + @ApiOperation("获得站内信模版")
  63 + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
  64 + @PreAuthorize("@ss.hasPermission('system:notify-template:query')")
  65 + public CommonResult<NotifyTemplateRespVO> getNotifyTemplate(@RequestParam("id") Long id) {
  66 + NotifyTemplateDO notifyTemplate = notifyTemplateService.getNotifyTemplate(id);
  67 + return success(NotifyTemplateConvert.INSTANCE.convert(notifyTemplate));
  68 + }
  69 +
  70 + @GetMapping("/list")
  71 + @ApiOperation("获得站内信模版列表")
  72 + @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
  73 + @PreAuthorize("@ss.hasPermission('system:notify-template:query')")
  74 + public CommonResult<List<NotifyTemplateRespVO>> getNotifyTemplateList(@RequestParam("ids") Collection<Long> ids) {
  75 + List<NotifyTemplateDO> list = notifyTemplateService.getNotifyTemplateList(ids);
  76 + return success(NotifyTemplateConvert.INSTANCE.convertList(list));
  77 + }
  78 +
  79 + @GetMapping("/page")
  80 + @ApiOperation("获得站内信模版分页")
  81 + @PreAuthorize("@ss.hasPermission('system:notify-template:query')")
  82 + public CommonResult<PageResult<NotifyTemplateRespVO>> getNotifyTemplatePage(@Valid NotifyTemplatePageReqVO pageVO) {
  83 + PageResult<NotifyTemplateDO> pageResult = notifyTemplateService.getNotifyTemplatePage(pageVO);
  84 + return success(NotifyTemplateConvert.INSTANCE.convertPage(pageResult));
  85 + }
  86 +
  87 + @GetMapping("/export-excel")
  88 + @ApiOperation("导出站内信模版 Excel")
  89 + @PreAuthorize("@ss.hasPermission('system:notify-template:export')")
  90 + @OperateLog(type = EXPORT)
  91 + public void exportNotifyTemplateExcel(@Valid NotifyTemplateExportReqVO exportReqVO,
  92 + HttpServletResponse response) throws IOException {
  93 + List<NotifyTemplateDO> list = notifyTemplateService.getNotifyTemplateList(exportReqVO);
  94 + // 导出 Excel
  95 + List<NotifyTemplateExcelVO> datas = NotifyTemplateConvert.INSTANCE.convertList02(list);
  96 + ExcelUtils.write(response, "站内信模版.xls", "数据", NotifyTemplateExcelVO.class, datas);
  97 + }
  98 +
  99 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/UserNotifyMessageController.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO;
  7 +import cn.iocoder.yudao.module.system.convert.notify.NotifyMessageConvert;
  8 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
  9 +import cn.iocoder.yudao.module.system.service.notify.NotifyMessageService;
  10 +import io.swagger.annotations.Api;
  11 +import io.swagger.annotations.ApiImplicitParam;
  12 +import io.swagger.annotations.ApiOperation;
  13 +import org.springframework.validation.annotation.Validated;
  14 +import org.springframework.web.bind.annotation.GetMapping;
  15 +import org.springframework.web.bind.annotation.RequestMapping;
  16 +import org.springframework.web.bind.annotation.RequestParam;
  17 +import org.springframework.web.bind.annotation.RestController;
  18 +
  19 +import javax.annotation.Resource;
  20 +import javax.validation.Valid;
  21 +import java.util.Collection;
  22 +import java.util.Collections;
  23 +import java.util.List;
  24 +
  25 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  26 +
  27 +/**
  28 + * 管理后台 - 站内信-消息中心
  29 + *
  30 + * @author xrcoder
  31 + */
  32 +@Api(tags = "管理后台 - 站内信-消息中心")
  33 +@RestController
  34 +@RequestMapping("/system/user/notify-message")
  35 +@Validated
  36 +public class UserNotifyMessageController {
  37 +
  38 + @Resource
  39 + private NotifyMessageService notifyMessageService;
  40 +
  41 +
  42 + @GetMapping("/page")
  43 + @ApiOperation("获得站内信分页")
  44 + public CommonResult<PageResult<NotifyMessageRespVO>> getNotifyMessagePage(@Valid NotifyMessagePageReqVO pageVO) {
  45 + PageResult<NotifyMessageDO> pageResult = notifyMessageService.getNotifyMessagePage(pageVO);
  46 + return success(NotifyMessageConvert.INSTANCE.convertPage(pageResult));
  47 + }
  48 +
  49 + @GetMapping("/latest/list")
  50 + @ApiOperation("获得最新10站内信列表")
  51 + public CommonResult<List<NotifyMessageRespVO>> getNotifyLatestMessageList() {
  52 + return success(Collections.emptyList());
  53 + }
  54 +
  55 + @GetMapping("/unread/count")
  56 + @ApiOperation("获得未读站内信数量")
  57 + public CommonResult<Long> getUnreadNotifyMessageCount() {
  58 + return success(1L);
  59 + }
  60 +
  61 + @GetMapping("/read")
  62 + @ApiOperation("获得站内信")
  63 + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
  64 + public CommonResult<NotifyMessageRespVO> readNotifyMessage(@RequestParam("id") Long id) {
  65 + NotifyMessageDO notifyMessage = notifyMessageService.getNotifyMessage(id);
  66 + // TODO 记录消息已读。
  67 + return success(NotifyMessageConvert.INSTANCE.convert(notifyMessage));
  68 + }
  69 +
  70 + @GetMapping("/read/list")
  71 + @ApiOperation("批量标记已读")
  72 + @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
  73 + public CommonResult<Boolean> batchUpdateNotifyMessageReadStatus(@RequestParam("ids") Collection<Long> ids) {
  74 + return success(Boolean.TRUE);
  75 + }
  76 +
  77 + @GetMapping("/read/all")
  78 + @ApiOperation("所有未读消息标记已读")
  79 + @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
  80 + public CommonResult<Boolean> batchUpdateAllNotifyMessageReadStatus(@RequestParam("ids") Collection<Long> ids) {
  81 + return success(Boolean.TRUE);
  82 + }
  83 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageBaseVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +import javax.validation.constraints.*;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +
  9 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  10 +
  11 +/**
  12 +* 站内信 Base VO,提供给添加、修改、详细的子 VO 使用
  13 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  14 +*/
  15 +@Data
  16 +public class NotifyMessageBaseVO {
  17 +
  18 + @ApiModelProperty(value = "用户编号", required = true)
  19 + @NotNull(message = "用户编号不能为空")
  20 + private Long userId;
  21 +
  22 + @ApiModelProperty(value = "用户类型", required = true)
  23 + @NotNull(message = "用户类型不能为空")
  24 + private Integer userType;
  25 +
  26 + @ApiModelProperty(value = "标题")
  27 + private String title;
  28 +
  29 + @ApiModelProperty(value = "内容", required = true)
  30 + @NotNull(message = "内容不能为空")
  31 + private String content;
  32 +
  33 + @ApiModelProperty(value = "是否已读 0-未读 1-已读")
  34 + private Boolean readStatus;
  35 +
  36 + @ApiModelProperty(value = "阅读时间")
  37 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  38 + private Date readTime;
  39 +
  40 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageCreateReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message;
  2 +
  3 +import lombok.*;
  4 +import io.swagger.annotations.*;
  5 +
  6 +@ApiModel("管理后台 - 站内信创建 Request VO")
  7 +@Data
  8 +@EqualsAndHashCode(callSuper = true)
  9 +@ToString(callSuper = true)
  10 +public class NotifyMessageCreateReqVO extends NotifyMessageBaseVO {
  11 +
  12 + @ApiModelProperty(value = "站内信模版编号")
  13 + private Long templateId;
  14 +
  15 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessagePageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +
  9 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  10 +
  11 +@ApiModel("管理后台 - 站内信分页 Request VO")
  12 +@Data
  13 +@EqualsAndHashCode(callSuper = true)
  14 +@ToString(callSuper = true)
  15 +public class NotifyMessagePageReqVO extends PageParam {
  16 +
  17 + @ApiModelProperty(value = "标题")
  18 + private String title;
  19 +
  20 + @ApiModelProperty(value = "是否已读 0-未读 1-已读")
  21 + private Boolean readStatus;
  22 +
  23 + @ApiModelProperty(value = "创建时间")
  24 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  25 + private Date[] createTime;
  26 +
  27 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +
  7 +@ApiModel("管理后台 - 站内信 Response VO")
  8 +@Data
  9 +@EqualsAndHashCode(callSuper = true)
  10 +@ToString(callSuper = true)
  11 +public class NotifyMessageRespVO extends NotifyMessageBaseVO {
  12 +
  13 + @ApiModelProperty(value = "ID", required = true)
  14 + private Long id;
  15 +
  16 + @ApiModelProperty(value = "创建时间", required = true)
  17 + private Date createTime;
  18 +
  19 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/message/NotifyMessageUpdateReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.message;
  2 +
  3 +import lombok.*;
  4 +import io.swagger.annotations.*;
  5 +import javax.validation.constraints.*;
  6 +
  7 +@ApiModel("管理后台 - 站内信更新 Request VO")
  8 +@Data
  9 +@EqualsAndHashCode(callSuper = true)
  10 +@ToString(callSuper = true)
  11 +public class NotifyMessageUpdateReqVO extends NotifyMessageBaseVO {
  12 +
  13 + @ApiModelProperty(value = "ID", required = true)
  14 + @NotNull(message = "ID不能为空")
  15 + private Long id;
  16 +
  17 + @ApiModelProperty(value = "站内信模版编号")
  18 + private Long templateId;
  19 +
  20 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateBaseVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +import javax.validation.constraints.*;
  7 +
  8 +/**
  9 +* 站内信模版 Base VO,提供给添加、修改、详细的子 VO 使用
  10 +* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  11 +*/
  12 +@Data
  13 +public class NotifyTemplateBaseVO {
  14 +
  15 + @ApiModelProperty(value = "模版编码", required = true)
  16 + @NotNull(message = "模版编码不能为空")
  17 + private String code;
  18 +
  19 + @ApiModelProperty(value = "模版标题", required = true)
  20 + @NotNull(message = "模版标题不能为空")
  21 + private String title;
  22 +
  23 + @ApiModelProperty(value = "模版内容", required = true)
  24 + @NotNull(message = "模版内容不能为空")
  25 + private String content;
  26 +
  27 + @ApiModelProperty(value = "状态:1-启用 0-禁用", required = true)
  28 + @NotNull(message = "状态:1-启用 0-禁用不能为空")
  29 + private String status;
  30 +
  31 + @ApiModelProperty(value = "备注")
  32 + private String remarks;
  33 +
  34 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateCreateReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template;
  2 +
  3 +import lombok.*;
  4 +import io.swagger.annotations.*;
  5 +
  6 +@ApiModel("管理后台 - 站内信模版创建 Request VO")
  7 +@Data
  8 +@EqualsAndHashCode(callSuper = true)
  9 +@ToString(callSuper = true)
  10 +public class NotifyTemplateCreateReqVO extends NotifyTemplateBaseVO {
  11 +
  12 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateExcelVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +
  7 +import com.alibaba.excel.annotation.ExcelProperty;
  8 +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
  9 +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
  10 +
  11 +
  12 +/**
  13 + * 站内信模版 Excel VO
  14 + *
  15 + * @author 芋道源码
  16 + */
  17 +@Data
  18 +public class NotifyTemplateExcelVO {
  19 +
  20 + @ExcelProperty("ID")
  21 + private Long id;
  22 +
  23 + @ExcelProperty("模版编码")
  24 + private String code;
  25 +
  26 + @ExcelProperty("模版标题")
  27 + private String title;
  28 +
  29 + @ExcelProperty("模版内容")
  30 + private String content;
  31 +
  32 + @ExcelProperty(value = "状态:1-启用 0-禁用", converter = DictConvert.class)
  33 + @DictFormat("common_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
  34 + private String status;
  35 +
  36 + @ExcelProperty("备注")
  37 + private String remarks;
  38 +
  39 + @ExcelProperty("创建时间")
  40 + private Date createTime;
  41 +
  42 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateExportReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +
  9 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  10 +
  11 +@ApiModel(value = "管理后台 - 站内信模版 Excel 导出 Request VO", description = "参数和 NotifyTemplatePageReqVO 是一致的")
  12 +@Data
  13 +public class NotifyTemplateExportReqVO {
  14 +
  15 + @ApiModelProperty(value = "模版编码")
  16 + private String code;
  17 +
  18 + @ApiModelProperty(value = "模版标题")
  19 + private String title;
  20 +
  21 + @ApiModelProperty(value = "状态:1-启用 0-禁用")
  22 + private String status;
  23 +
  24 + @ApiModelProperty(value = "创建时间")
  25 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  26 + private Date[] createTime;
  27 +
  28 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplatePageReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  7 +import org.springframework.format.annotation.DateTimeFormat;
  8 +
  9 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
  10 +
  11 +@ApiModel("管理后台 - 站内信模版分页 Request VO")
  12 +@Data
  13 +@EqualsAndHashCode(callSuper = true)
  14 +@ToString(callSuper = true)
  15 +public class NotifyTemplatePageReqVO extends PageParam {
  16 +
  17 + @ApiModelProperty(value = "模版编码")
  18 + private String code;
  19 +
  20 + @ApiModelProperty(value = "模版标题")
  21 + private String title;
  22 +
  23 + @ApiModelProperty(value = "状态:1-启用 0-禁用")
  24 + private String status;
  25 +
  26 + @ApiModelProperty(value = "创建时间")
  27 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
  28 + private Date[] createTime;
  29 +
  30 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import io.swagger.annotations.*;
  6 +
  7 +@ApiModel("管理后台 - 站内信模版 Response VO")
  8 +@Data
  9 +@EqualsAndHashCode(callSuper = true)
  10 +@ToString(callSuper = true)
  11 +public class NotifyTemplateRespVO extends NotifyTemplateBaseVO {
  12 +
  13 + @ApiModelProperty(value = "ID", required = true)
  14 + private Long id;
  15 +
  16 + @ApiModelProperty(value = "创建时间", required = true)
  17 + private Date createTime;
  18 +
  19 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateUpdateReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.controller.admin.notify.vo.template;
  2 +
  3 +import lombok.*;
  4 +import io.swagger.annotations.*;
  5 +import javax.validation.constraints.*;
  6 +
  7 +@ApiModel("管理后台 - 站内信模版更新 Request VO")
  8 +@Data
  9 +@EqualsAndHashCode(callSuper = true)
  10 +@ToString(callSuper = true)
  11 +public class NotifyTemplateUpdateReqVO extends NotifyTemplateBaseVO {
  12 +
  13 + @ApiModelProperty(value = "ID", required = true)
  14 + @NotNull(message = "ID不能为空")
  15 + private Long id;
  16 +
  17 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/notify/NotifyMessageConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.convert.notify;
  2 +
  3 +import java.util.*;
  4 +
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +
  7 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageCreateReqVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageRespVO;
  9 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageUpdateReqVO;
  10 +import org.mapstruct.Mapper;
  11 +import org.mapstruct.factory.Mappers;
  12 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
  13 +
  14 +/**
  15 + * 站内信 Convert
  16 + *
  17 + * @author xrcoder
  18 + */
  19 +@Mapper
  20 +public interface NotifyMessageConvert {
  21 +
  22 + NotifyMessageConvert INSTANCE = Mappers.getMapper(NotifyMessageConvert.class);
  23 +
  24 + NotifyMessageDO convert(NotifyMessageCreateReqVO bean);
  25 +
  26 + NotifyMessageDO convert(NotifyMessageUpdateReqVO bean);
  27 +
  28 + NotifyMessageRespVO convert(NotifyMessageDO bean);
  29 +
  30 + List<NotifyMessageRespVO> convertList(List<NotifyMessageDO> list);
  31 +
  32 + PageResult<NotifyMessageRespVO> convertPage(PageResult<NotifyMessageDO> page);
  33 +
  34 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/notify/NotifyTemplateConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.convert.notify;
  2 +
  3 +import java.util.*;
  4 +
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +
  7 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateCreateReqVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateExcelVO;
  9 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateRespVO;
  10 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateUpdateReqVO;
  11 +import org.mapstruct.Mapper;
  12 +import org.mapstruct.factory.Mappers;
  13 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
  14 +
  15 +/**
  16 + * 站内信模版 Convert
  17 + *
  18 + * @author xrcoder
  19 + */
  20 +@Mapper
  21 +public interface NotifyTemplateConvert {
  22 +
  23 + NotifyTemplateConvert INSTANCE = Mappers.getMapper(NotifyTemplateConvert.class);
  24 +
  25 + NotifyTemplateDO convert(NotifyTemplateCreateReqVO bean);
  26 +
  27 + NotifyTemplateDO convert(NotifyTemplateUpdateReqVO bean);
  28 +
  29 + NotifyTemplateRespVO convert(NotifyTemplateDO bean);
  30 +
  31 + List<NotifyTemplateRespVO> convertList(List<NotifyTemplateDO> list);
  32 +
  33 + PageResult<NotifyTemplateRespVO> convertPage(PageResult<NotifyTemplateDO> page);
  34 +
  35 + List<NotifyTemplateExcelVO> convertList02(List<NotifyTemplateDO> list);
  36 +
  37 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.dataobject.notify;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import com.baomidou.mybatisplus.annotation.*;
  6 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  7 +
  8 +/**
  9 + * 站内信 DO
  10 + *
  11 + * @author xrcoder
  12 + */
  13 +@TableName("system_notify_message")
  14 +@KeySequence("system_notify_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  15 +@Data
  16 +@EqualsAndHashCode(callSuper = true)
  17 +@ToString(callSuper = true)
  18 +@Builder
  19 +@NoArgsConstructor
  20 +@AllArgsConstructor
  21 +public class NotifyMessageDO extends BaseDO {
  22 +
  23 + /**
  24 + * ID
  25 + */
  26 + @TableId
  27 + private Long id;
  28 + /**
  29 + * 站内信模版编号
  30 + */
  31 + private Long templateId;
  32 + /**
  33 + * 用户编号
  34 + */
  35 + private Long userId;
  36 + /**
  37 + * 用户类型
  38 + */
  39 + private Integer userType;
  40 + /**
  41 + * 标题
  42 + */
  43 + private String title;
  44 + /**
  45 + * 内容
  46 + */
  47 + private String content;
  48 + /**
  49 + * 是否已读 0-未读 1-已读
  50 + *
  51 + * 枚举 {@link TODO system_notify_message_read_status 对应的类}
  52 + */
  53 + private Boolean readStatus;
  54 + /**
  55 + * 阅读时间
  56 + */
  57 + private Date readTime;
  58 +
  59 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.dataobject.notify;
  2 +
  3 +import lombok.*;
  4 +import java.util.*;
  5 +import com.baomidou.mybatisplus.annotation.*;
  6 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  7 +
  8 +/**
  9 + * 站内信模版 DO
  10 + *
  11 + * @author xrcoder
  12 + */
  13 +@TableName("system_notify_template")
  14 +@KeySequence("system_notify_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
  15 +@Data
  16 +@EqualsAndHashCode(callSuper = true)
  17 +@ToString(callSuper = true)
  18 +@Builder
  19 +@NoArgsConstructor
  20 +@AllArgsConstructor
  21 +public class NotifyTemplateDO extends BaseDO {
  22 +
  23 + /**
  24 + * ID
  25 + */
  26 + @TableId
  27 + private Long id;
  28 + /**
  29 + * 模版编码
  30 + */
  31 + private String code;
  32 + /**
  33 + * 模版标题
  34 + */
  35 + private String title;
  36 + /**
  37 + * 模版内容
  38 + */
  39 + private String content;
  40 + /**
  41 + * 参数数组
  42 + */
  43 + private String params;
  44 + /**
  45 + * 状态:1-启用 0-禁用
  46 + *
  47 + * 枚举 {@link TODO common_status 对应的类}
  48 + */
  49 + private String status;
  50 + /**
  51 + * 备注
  52 + */
  53 + private String remarks;
  54 +
  55 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.mysql.notify;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  5 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  6 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
  8 +import org.apache.ibatis.annotations.Mapper;
  9 +
  10 +/**
  11 + * 站内信 Mapper
  12 + *
  13 + * @author xrcoder
  14 + */
  15 +@Mapper
  16 +public interface NotifyMessageMapper extends BaseMapperX<NotifyMessageDO> {
  17 +
  18 + default PageResult<NotifyMessageDO> selectPage(NotifyMessagePageReqVO reqVO) {
  19 + return selectPage(reqVO, new LambdaQueryWrapperX<NotifyMessageDO>()
  20 + .likeIfPresent(NotifyMessageDO::getTitle, reqVO.getTitle())
  21 + .eqIfPresent(NotifyMessageDO::getReadStatus, reqVO.getReadStatus())
  22 + .betweenIfPresent(NotifyMessageDO::getCreateTime, reqVO.getCreateTime())
  23 + .orderByDesc(NotifyMessageDO::getId));
  24 + }
  25 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyTemplateMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.mysql.notify;
  2 +
  3 +import java.util.*;
  4 +
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  7 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  8 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateExportReqVO;
  9 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO;
  10 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
  11 +import org.apache.ibatis.annotations.Mapper;
  12 +
  13 +/**
  14 + * 站内信模版 Mapper
  15 + *
  16 + * @author xrcoder
  17 + */
  18 +@Mapper
  19 +public interface NotifyTemplateMapper extends BaseMapperX<NotifyTemplateDO> {
  20 +
  21 + default PageResult<NotifyTemplateDO> selectPage(NotifyTemplatePageReqVO reqVO) {
  22 + return selectPage(reqVO, new LambdaQueryWrapperX<NotifyTemplateDO>()
  23 + .eqIfPresent(NotifyTemplateDO::getCode, reqVO.getCode())
  24 + .eqIfPresent(NotifyTemplateDO::getTitle, reqVO.getTitle())
  25 + .eqIfPresent(NotifyTemplateDO::getStatus, reqVO.getStatus())
  26 + .betweenIfPresent(NotifyTemplateDO::getCreateTime, reqVO.getCreateTime())
  27 + .orderByDesc(NotifyTemplateDO::getId));
  28 + }
  29 +
  30 + default List<NotifyTemplateDO> selectList(NotifyTemplateExportReqVO reqVO) {
  31 + return selectList(new LambdaQueryWrapperX<NotifyTemplateDO>()
  32 + .eqIfPresent(NotifyTemplateDO::getCode, reqVO.getCode())
  33 + .eqIfPresent(NotifyTemplateDO::getTitle, reqVO.getTitle())
  34 + .eqIfPresent(NotifyTemplateDO::getStatus, reqVO.getStatus())
  35 + .betweenIfPresent(NotifyTemplateDO::getCreateTime, reqVO.getCreateTime())
  36 + .orderByDesc(NotifyTemplateDO::getId));
  37 + }
  38 +
  39 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.service.notify;
  2 +
  3 +import java.util.*;
  4 +import javax.validation.*;
  5 +
  6 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageCreateReqVO;
  7 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageUpdateReqVO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
  10 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  11 +
  12 +/**
  13 + * 站内信 Service 接口
  14 + *
  15 + * @author xrcoder
  16 + */
  17 +public interface NotifyMessageService {
  18 +
  19 + /**
  20 + * 创建站内信
  21 + *
  22 + * @param createReqVO 创建信息
  23 + * @return 编号
  24 + */
  25 + Long createNotifyMessage(@Valid NotifyMessageCreateReqVO createReqVO);
  26 +
  27 + /**
  28 + * 更新站内信
  29 + *
  30 + * @param updateReqVO 更新信息
  31 + */
  32 + void updateNotifyMessage(@Valid NotifyMessageUpdateReqVO updateReqVO);
  33 +
  34 + /**
  35 + * 删除站内信
  36 + *
  37 + * @param id 编号
  38 + */
  39 + void deleteNotifyMessage(Long id);
  40 +
  41 + /**
  42 + * 获得站内信
  43 + *
  44 + * @param id 编号
  45 + * @return 站内信
  46 + */
  47 + NotifyMessageDO getNotifyMessage(Long id);
  48 +
  49 + /**
  50 + * 获得站内信列表
  51 + *
  52 + * @param ids 编号
  53 + * @return 站内信列表
  54 + */
  55 + List<NotifyMessageDO> getNotifyMessageList(Collection<Long> ids);
  56 +
  57 + /**
  58 + * 获得站内信分页
  59 + *
  60 + * @param pageReqVO 分页查询
  61 + * @return 站内信分页
  62 + */
  63 + PageResult<NotifyMessageDO> getNotifyMessagePage(NotifyMessagePageReqVO pageReqVO);
  64 +
  65 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.service.notify;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageCreateReqVO;
  5 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessagePageReqVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.message.NotifyMessageUpdateReqVO;
  7 +import cn.iocoder.yudao.module.system.convert.notify.NotifyMessageConvert;
  8 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyMessageDO;
  9 +import cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyMessageMapper;
  10 +import org.springframework.stereotype.Service;
  11 +import org.springframework.validation.annotation.Validated;
  12 +
  13 +import javax.annotation.Resource;
  14 +import java.util.Collection;
  15 +import java.util.List;
  16 +
  17 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  18 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTIFY_MESSAGE_NOT_EXISTS;
  19 +
  20 +/**
  21 + * 站内信 Service 实现类
  22 + *
  23 + * @author xrcoder
  24 + */
  25 +@Service
  26 +@Validated
  27 +public class NotifyMessageServiceImpl implements NotifyMessageService {
  28 +
  29 + @Resource
  30 + private NotifyMessageMapper notifyMessageMapper;
  31 +
  32 + @Override
  33 + public Long createNotifyMessage(NotifyMessageCreateReqVO createReqVO) {
  34 + // 插入
  35 + NotifyMessageDO notifyMessage = NotifyMessageConvert.INSTANCE.convert(createReqVO);
  36 + notifyMessageMapper.insert(notifyMessage);
  37 + // 返回
  38 + return notifyMessage.getId();
  39 + }
  40 +
  41 + @Override
  42 + public void updateNotifyMessage(NotifyMessageUpdateReqVO updateReqVO) {
  43 + // 校验存在
  44 + this.validateNotifyMessageExists(updateReqVO.getId());
  45 + // 更新
  46 + NotifyMessageDO updateObj = NotifyMessageConvert.INSTANCE.convert(updateReqVO);
  47 + notifyMessageMapper.updateById(updateObj);
  48 + }
  49 +
  50 + @Override
  51 + public void deleteNotifyMessage(Long id) {
  52 + // 校验存在
  53 + this.validateNotifyMessageExists(id);
  54 + // 删除
  55 + notifyMessageMapper.deleteById(id);
  56 + }
  57 +
  58 + private void validateNotifyMessageExists(Long id) {
  59 + if (notifyMessageMapper.selectById(id) == null) {
  60 + throw exception(NOTIFY_MESSAGE_NOT_EXISTS);
  61 + }
  62 + }
  63 +
  64 + @Override
  65 + public NotifyMessageDO getNotifyMessage(Long id) {
  66 + return notifyMessageMapper.selectById(id);
  67 + }
  68 +
  69 + @Override
  70 + public List<NotifyMessageDO> getNotifyMessageList(Collection<Long> ids) {
  71 + return notifyMessageMapper.selectBatchIds(ids);
  72 + }
  73 +
  74 + @Override
  75 + public PageResult<NotifyMessageDO> getNotifyMessagePage(NotifyMessagePageReqVO pageReqVO) {
  76 + return notifyMessageMapper.selectPage(pageReqVO);
  77 + }
  78 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.service.notify;
  2 +
  3 +import java.util.*;
  4 +import javax.validation.*;
  5 +
  6 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateCreateReqVO;
  7 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateExportReqVO;
  8 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO;
  9 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateUpdateReqVO;
  10 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
  11 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  12 +
  13 +/**
  14 + * 站内信模版 Service 接口
  15 + *
  16 + * @author xrcoder
  17 + */
  18 +public interface NotifyTemplateService {
  19 +
  20 + /**
  21 + * 创建站内信模版
  22 + *
  23 + * @param createReqVO 创建信息
  24 + * @return 编号
  25 + */
  26 + Long createNotifyTemplate(@Valid NotifyTemplateCreateReqVO createReqVO);
  27 +
  28 + /**
  29 + * 更新站内信模版
  30 + *
  31 + * @param updateReqVO 更新信息
  32 + */
  33 + void updateNotifyTemplate(@Valid NotifyTemplateUpdateReqVO updateReqVO);
  34 +
  35 + /**
  36 + * 删除站内信模版
  37 + *
  38 + * @param id 编号
  39 + */
  40 + void deleteNotifyTemplate(Long id);
  41 +
  42 + /**
  43 + * 获得站内信模版
  44 + *
  45 + * @param id 编号
  46 + * @return 站内信模版
  47 + */
  48 + NotifyTemplateDO getNotifyTemplate(Long id);
  49 +
  50 + /**
  51 + * 获得站内信模版列表
  52 + *
  53 + * @param ids 编号
  54 + * @return 站内信模版列表
  55 + */
  56 + List<NotifyTemplateDO> getNotifyTemplateList(Collection<Long> ids);
  57 +
  58 + /**
  59 + * 获得站内信模版分页
  60 + *
  61 + * @param pageReqVO 分页查询
  62 + * @return 站内信模版分页
  63 + */
  64 + PageResult<NotifyTemplateDO> getNotifyTemplatePage(NotifyTemplatePageReqVO pageReqVO);
  65 +
  66 + /**
  67 + * 获得站内信模版列表, 用于 Excel 导出
  68 + *
  69 + * @param exportReqVO 查询条件
  70 + * @return 站内信模版列表
  71 + */
  72 + List<NotifyTemplateDO> getNotifyTemplateList(NotifyTemplateExportReqVO exportReqVO);
  73 +
  74 +}
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyTemplateServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.service.notify;
  2 +
  3 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateCreateReqVO;
  4 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateExportReqVO;
  5 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplatePageReqVO;
  6 +import cn.iocoder.yudao.module.system.controller.admin.notify.vo.template.NotifyTemplateUpdateReqVO;
  7 +import org.springframework.stereotype.Service;
  8 +import javax.annotation.Resource;
  9 +import org.springframework.validation.annotation.Validated;
  10 +
  11 +import java.util.*;
  12 +
  13 +import cn.iocoder.yudao.module.system.dal.dataobject.notify.NotifyTemplateDO;
  14 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  15 +
  16 +import cn.iocoder.yudao.module.system.convert.notify.NotifyTemplateConvert;
  17 +import cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyTemplateMapper;
  18 +
  19 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  20 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
  21 +
  22 +/**
  23 + * 站内信模版 Service 实现类
  24 + *
  25 + * @author xrcoder
  26 + */
  27 +@Service
  28 +@Validated
  29 +public class NotifyTemplateServiceImpl implements NotifyTemplateService {
  30 +
  31 + @Resource
  32 + private NotifyTemplateMapper notifyTemplateMapper;
  33 +
  34 + @Override
  35 + public Long createNotifyTemplate(NotifyTemplateCreateReqVO createReqVO) {
  36 + // 插入
  37 + NotifyTemplateDO notifyTemplate = NotifyTemplateConvert.INSTANCE.convert(createReqVO);
  38 + notifyTemplateMapper.insert(notifyTemplate);
  39 + // 返回
  40 + return notifyTemplate.getId();
  41 + }
  42 +
  43 + @Override
  44 + public void updateNotifyTemplate(NotifyTemplateUpdateReqVO updateReqVO) {
  45 + // 校验存在
  46 + this.validateNotifyTemplateExists(updateReqVO.getId());
  47 + // 更新
  48 + NotifyTemplateDO updateObj = NotifyTemplateConvert.INSTANCE.convert(updateReqVO);
  49 + notifyTemplateMapper.updateById(updateObj);
  50 + }
  51 +
  52 + @Override
  53 + public void deleteNotifyTemplate(Long id) {
  54 + // 校验存在
  55 + this.validateNotifyTemplateExists(id);
  56 + // 删除
  57 + notifyTemplateMapper.deleteById(id);
  58 + }
  59 +
  60 + private void validateNotifyTemplateExists(Long id) {
  61 + if (notifyTemplateMapper.selectById(id) == null) {
  62 + throw exception(NOTIFY_TEMPLATE_NOT_EXISTS);
  63 + }
  64 + }
  65 +
  66 + @Override
  67 + public NotifyTemplateDO getNotifyTemplate(Long id) {
  68 + return notifyTemplateMapper.selectById(id);
  69 + }
  70 +
  71 + @Override
  72 + public List<NotifyTemplateDO> getNotifyTemplateList(Collection<Long> ids) {
  73 + return notifyTemplateMapper.selectBatchIds(ids);
  74 + }
  75 +
  76 + @Override
  77 + public PageResult<NotifyTemplateDO> getNotifyTemplatePage(NotifyTemplatePageReqVO pageReqVO) {
  78 + return notifyTemplateMapper.selectPage(pageReqVO);
  79 + }
  80 +
  81 + @Override
  82 + public List<NotifyTemplateDO> getNotifyTemplateList(NotifyTemplateExportReqVO exportReqVO) {
  83 + return notifyTemplateMapper.selectList(exportReqVO);
  84 + }
  85 +
  86 +}
... ...