diff --git a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java index de48409..5cb04b3 100644 --- a/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java +++ b/common/common-generator/src/main/java/cn/bunny/common/generator/generator/WebGeneratorCode.java @@ -3,10 +3,10 @@ package cn.bunny.common.generator.generator; import cn.bunny.common.generator.entity.BaseField; import cn.bunny.common.generator.entity.BaseResultMap; import cn.bunny.common.generator.utils.GeneratorCodeUtils; -import cn.bunny.dao.dto.system.message.MessageTypeDto; -import cn.bunny.dao.dto.system.message.MessageTypeUpdateDto; -import cn.bunny.dao.entity.system.MessageType; -import cn.bunny.dao.vo.system.message.MessageTypeVo; +import cn.bunny.dao.dto.system.message.MessageDto; +import cn.bunny.dao.dto.system.message.MessageUpdateDto; +import cn.bunny.dao.entity.system.Message; +import cn.bunny.dao.vo.system.message.MessageVo; import com.baomidou.mybatisplus.annotation.TableName; import com.google.common.base.CaseFormat; import io.swagger.v3.oas.annotations.media.Schema; @@ -50,11 +50,11 @@ public class WebGeneratorCode { public static String resourceMapperPath = "D:\\MyFolder\\auth-admin\\auth-server-java\\service\\src\\main\\resources\\mapper\\"; public static void main(String[] args) throws Exception { - Class originalClass = MessageType.class; - Class dtoClass = MessageTypeDto.class; - Class addDtoClass = MessageTypeDto.class; - Class updateDtoClass = MessageTypeUpdateDto.class; - Class voClass = MessageTypeVo.class; + Class originalClass = Message.class; + Class dtoClass = MessageDto.class; + Class addDtoClass = MessageDto.class; + Class updateDtoClass = MessageUpdateDto.class; + Class voClass = MessageVo.class; // 设置velocity资源加载器 Properties prop = new Properties(); diff --git a/common/common-generator/src/main/resources/vms/server/resourceMapper.vm b/common/common-generator/src/main/resources/vms/server/resourceMapper.vm index ac7c00c..e62ff89 100644 --- a/common/common-generator/src/main/resources/vms/server/resourceMapper.vm +++ b/common/common-generator/src/main/resources/vms/server/resourceMapper.vm @@ -20,8 +20,8 @@ from $tableName + is_deleted = 0 #foreach($field in $pageQueryMap) - is_deleted = 0 and $field.column like CONCAT('%',#{dto.${field.property}},'%') diff --git a/common/common-generator/src/main/resources/vms/web/columns.vm b/common/common-generator/src/main/resources/vms/web/columns.vm index a33f4ec..d9e15b9 100644 --- a/common/common-generator/src/main/resources/vms/web/columns.vm +++ b/common/common-generator/src/main/resources/vms/web/columns.vm @@ -1,5 +1,6 @@ import { reactive, ref } from 'vue'; import { $t } from '@/plugins/i18n'; +import type { FormRules } from 'element-plus'; // 表格列 export const columns: TableColumnList = [ diff --git a/common/common-generator/src/main/resources/vms/web/hook.vm b/common/common-generator/src/main/resources/vms/web/hook.vm index 1246f3d..2473584 100644 --- a/common/common-generator/src/main/resources/vms/web/hook.vm +++ b/common/common-generator/src/main/resources/vms/web/hook.vm @@ -6,16 +6,15 @@ import { h, ref } from 'vue'; import { messageBox } from '@/utils/message'; import type { FormItemProps } from '${typesPath}'; import { $t } from '@/plugins/i18n'; -import type { FormRules } from 'element-plus'; +import { message, messageBox } from "@/utils/message"; +import DeleteBatchDialog from "@/components/Table/DeleteBatchDialog.vue"; export const formRef = ref(); // 删除ids export const deleteIds = ref([]); const ${lowercaseName}Store = use${originalName}Store(); -/** - * * 搜索初始化${classTitle} - */ +/** 搜索初始化${classTitle} */ export async function onSearch() { ${lowercaseName}Store.loading = true; await ${lowercaseName}Store.get${originalName}List(); diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageAddDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageAddDto.java new file mode 100644 index 0000000..2abb44b --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageAddDto.java @@ -0,0 +1,55 @@ +package cn.bunny.dao.dto.system.message; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "MessageAddDto对象", title = "系统消息", description = "系统消息") +public class MessageAddDto { + + @Schema(name = "title", title = "消息标题") + @NotNull(message = "消息标题 不能为空") + @NotBlank(message = "消息标题 不能为空") + private String title; + + @Schema(name = "receivedUserId", title = "接收人用户ID") + private List receivedUserId; + + @Schema(name = "sendUserId", title = "发送人用户ID") + @NotNull(message = "发送人用户ID 不能为空") + private Long sendUserId; + + @Schema(name = "sendNickName", title = "发送人昵称") + @NotBlank(message = "发送人昵称 不能为空") + @NotNull(message = "发送人昵称 不能为空") + private String sendNickName; + + @Schema(name = "messageType", title = "消息类型") + @NotBlank(message = "消息类型 不能为空") + @NotNull(message = "消息类型 不能为空") + private String messageType; + + @Schema(name = "content", title = "消息内容") + @NotBlank(message = "消息内容 不能为空") + @NotNull(message = "消息内容 不能为空") + private String content; + + @Schema(name = "editorType", title = "编辑器类型") + @NotBlank(message = "编辑器类型 不能为空") + @NotNull(message = "编辑器类型 不能为空") + private String editorType; + + @Schema(name = "status", title = "0:未读 1:已读") + private Boolean status = false; + +} \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageDto.java new file mode 100644 index 0000000..33c30e8 --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageDto.java @@ -0,0 +1,40 @@ +package cn.bunny.dao.dto.system.message; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "MessageDto对象", title = "系统消息", description = "系统消息") +public class MessageDto { + + @Schema(name = "title", title = "消息标题") + private String title; + + @Schema(name = "receivedUserId", title = "接收人用户ID") + private Long receivedUserId; + + @Schema(name = "sendUserId", title = "发送人用户ID") + private Long sendUserId; + + @Schema(name = "sendNickName", title = "发送人昵称") + private String sendNickName; + + @Schema(name = "messageType", title = "消息类型") + private String messageType; + + @Schema(name = "content", title = "消息内容") + private String content; + + @Schema(name = "editorType", title = "编辑器类型") + private String editorType; + + @Schema(name = "status", title = "0:未读 1:已读") + private Boolean status; + +} diff --git a/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageUpdateDto.java b/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageUpdateDto.java new file mode 100644 index 0000000..eb0250b --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/dto/system/message/MessageUpdateDto.java @@ -0,0 +1,60 @@ +package cn.bunny.dao.dto.system.message; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "MessageUpdateDto对象", title = "系统消息", description = "系统消息") +public class MessageUpdateDto { + + @Schema(name = "id", title = "主键") + @NotNull(message = "id不能为空") + private Long id; + + @Schema(name = "title", title = "消息标题") + @NotNull(message = "消息标题 不能为空") + @NotBlank(message = "消息标题 不能为空") + private String title; + + @Schema(name = "receivedUserId", title = "接收人用户ID") + private List receivedUserId; + + @Schema(name = "sendUserId", title = "发送人用户ID") + @NotNull(message = "发送人用户ID 不能为空") + private Long sendUserId; + + @Schema(name = "sendNickName", title = "发送人昵称") + @NotBlank(message = "发送人昵称 不能为空") + @NotNull(message = "发送人昵称 不能为空") + private String sendNickName; + + @Schema(name = "messageType", title = "消息类型") + @NotBlank(message = "消息类型 不能为空") + @NotNull(message = "消息类型 不能为空") + private String messageType; + + @Schema(name = "content", title = "消息内容") + @NotBlank(message = "消息内容 不能为空") + @NotNull(message = "消息内容 不能为空") + private String content; + + @Schema(name = "editorType", title = "编辑器类型") + @NotBlank(message = "编辑器类型 不能为空") + @NotNull(message = "编辑器类型 不能为空") + private String editorType; + + @Schema(name = "status", title = "0:未读 1:已读") + private Boolean status; + +} + diff --git a/dao/src/main/java/cn/bunny/dao/entity/system/Message.java b/dao/src/main/java/cn/bunny/dao/entity/system/Message.java index f89c901..b4071a1 100644 --- a/dao/src/main/java/cn/bunny/dao/entity/system/Message.java +++ b/dao/src/main/java/cn/bunny/dao/entity/system/Message.java @@ -22,6 +22,9 @@ import lombok.experimental.Accessors; @Schema(name = "Message对象", title = "系统消息", description = "系统消息") public class Message extends BaseEntity { + @Schema(name = "title", title = "消息标题") + private String title; + @Schema(name = "receivedUserId", title = "接收人用户ID") private Long receivedUserId; @@ -44,3 +47,5 @@ public class Message extends BaseEntity { private Boolean status; } + + diff --git a/dao/src/main/java/cn/bunny/dao/vo/system/message/MessageVo.java b/dao/src/main/java/cn/bunny/dao/vo/system/message/MessageVo.java new file mode 100644 index 0000000..21a280b --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/vo/system/message/MessageVo.java @@ -0,0 +1,39 @@ +package cn.bunny.dao.vo.system.message; + +import cn.bunny.dao.vo.common.BaseVo; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "MessageVo对象", title = "系统消息返回内容", description = "系统消息返回内容") +public class MessageVo extends BaseVo { + + @Schema(name = "title", title = "消息标题") + private String title; + + @Schema(name = "receivedUserId", title = "接收人用户ID") + private Long receivedUserId; + + @Schema(name = "sendUserId", title = "发送人用户ID") + private Long sendUserId; + + @Schema(name = "sendNickName", title = "发送人昵称") + private String sendNickName; + + @Schema(name = "messageType", title = "sys:系统消息,user用户消息") + private String messageType; + + @Schema(name = "content", title = "消息内容") + private String content; + + @Schema(name = "editorType", title = "编辑器类型") + private String editorType; + + @Schema(name = "status", title = "0:未读 1:已读") + private Boolean status; + +} \ No newline at end of file diff --git a/dao/src/main/java/cn/bunny/dao/vo/system/user/AdminUserVo.java b/dao/src/main/java/cn/bunny/dao/vo/system/user/AdminUserVo.java index 9b750da..4ef98ef 100644 --- a/dao/src/main/java/cn/bunny/dao/vo/system/user/AdminUserVo.java +++ b/dao/src/main/java/cn/bunny/dao/vo/system/user/AdminUserVo.java @@ -14,6 +14,7 @@ import lombok.*; @Builder @Schema(name = "AdminUserVo对象", title = "用户信息", description = "用户信息") public class AdminUserVo extends BaseVo { + @Schema(name = "username", title = "用户名") private String username; diff --git a/dao/src/main/java/cn/bunny/dao/vo/system/user/SearchUserinfoVo.java b/dao/src/main/java/cn/bunny/dao/vo/system/user/SearchUserinfoVo.java new file mode 100644 index 0000000..52a7c8b --- /dev/null +++ b/dao/src/main/java/cn/bunny/dao/vo/system/user/SearchUserinfoVo.java @@ -0,0 +1,38 @@ +package cn.bunny.dao.vo.system.user; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Schema(name = "AdminUserVo对象", title = "用户信息", description = "用户信息") +public class SearchUserinfoVo { + + @Schema(name = "id", title = "主键") + @JsonProperty("id") + @JsonFormat(shape = JsonFormat.Shape.STRING) + @JSONField(serializeUsing = ToStringSerializer.class) + private Long id; + + @Schema(name = "username", title = "用户名") + private String username; + + @Schema(name = "nickname", title = "昵称") + private String nickname; + + @Schema(name = "email", title = "邮箱") + private String email; + + @Schema(name = "phone", title = "手机号") + private String phone; + +} diff --git a/service/src/main/java/cn/bunny/services/controller/MessageController.java b/service/src/main/java/cn/bunny/services/controller/MessageController.java index abea646..9f6cbae 100644 --- a/service/src/main/java/cn/bunny/services/controller/MessageController.java +++ b/service/src/main/java/cn/bunny/services/controller/MessageController.java @@ -1,18 +1,72 @@ package cn.bunny.services.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.bunny.dao.dto.system.message.MessageAddDto; +import cn.bunny.dao.dto.system.message.MessageDto; +import cn.bunny.dao.dto.system.message.MessageUpdateDto; +import cn.bunny.dao.entity.system.Message; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.pojo.result.Result; +import cn.bunny.dao.pojo.result.ResultCodeEnum; +import cn.bunny.dao.vo.system.message.MessageVo; +import cn.bunny.services.service.MessageService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +import java.util.List; /** *

- * 系统消息 前端控制器 + * 系统消息表 前端控制器 *

* * @author Bunny - * @since 2024-10-30 + * @since 2024-10-30 15:19:56 */ +@Tag(name = "系统消息", description = "系统消息相关接口") @RestController -@RequestMapping("/admin/message") +@RequestMapping("admin/message") public class MessageController { + @Autowired + private MessageService messageService; + + @Operation(summary = "分页查询系统消息", description = "分页查询系统消息") + @GetMapping("getMessageList/{page}/{limit}") + public Mono>> getMessageList( + @Parameter(name = "page", description = "当前页", required = true) + @PathVariable("page") Integer page, + @Parameter(name = "limit", description = "每页记录数", required = true) + @PathVariable("limit") Integer limit, + MessageDto dto) { + Page pageParams = new Page<>(page, limit); + PageResult pageResult = messageService.getMessageList(pageParams, dto); + return Mono.just(Result.success(pageResult)); + } + + @Operation(summary = "添加系统消息", description = "添加系统消息") + @PostMapping("addMessage") + public Mono> addMessage(@Valid @RequestBody MessageAddDto dto) { + messageService.addMessage(dto); + return Mono.just(Result.success(ResultCodeEnum.ADD_SUCCESS)); + } + + @Operation(summary = "更新系统消息", description = "更新系统消息") + @PutMapping("updateMessage") + public Mono> updateMessage(@Valid @RequestBody MessageUpdateDto dto) { + messageService.updateMessage(dto); + return Mono.just(Result.success(ResultCodeEnum.UPDATE_SUCCESS)); + } + + @Operation(summary = "删除系统消息", description = "删除系统消息") + @DeleteMapping("deleteMessage") + public Mono> deleteMessage(@RequestBody List ids) { + messageService.deleteMessage(ids); + return Mono.just(Result.success(ResultCodeEnum.DELETE_SUCCESS)); + } } diff --git a/service/src/main/java/cn/bunny/services/controller/UserController.java b/service/src/main/java/cn/bunny/services/controller/UserController.java index 8d569c2..780de7f 100644 --- a/service/src/main/java/cn/bunny/services/controller/UserController.java +++ b/service/src/main/java/cn/bunny/services/controller/UserController.java @@ -5,10 +5,7 @@ import cn.bunny.dao.entity.system.AdminUser; import cn.bunny.dao.pojo.result.PageResult; import cn.bunny.dao.pojo.result.Result; import cn.bunny.dao.pojo.result.ResultCodeEnum; -import cn.bunny.dao.vo.system.user.AdminUserVo; -import cn.bunny.dao.vo.system.user.LoginVo; -import cn.bunny.dao.vo.system.user.RefreshTokenVo; -import cn.bunny.dao.vo.system.user.UserVo; +import cn.bunny.dao.vo.system.user.*; import cn.bunny.services.service.UserService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Operation; @@ -59,8 +56,8 @@ public class UserController { @Operation(summary = "多条件查询用户", description = "多条件查询用户") @GetMapping("noManage/queryUser") - public Mono>> queryUser(String keyword) { - List voList = userService.queryUser(keyword); + public Mono>> queryUser(String keyword) { + List voList = userService.queryUser(keyword); return Mono.just(Result.success(voList)); } diff --git a/service/src/main/java/cn/bunny/services/factory/FileFactory.java b/service/src/main/java/cn/bunny/services/factory/FileFactory.java deleted file mode 100644 index 203eb2e..0000000 --- a/service/src/main/java/cn/bunny/services/factory/FileFactory.java +++ /dev/null @@ -1,74 +0,0 @@ -package cn.bunny.services.factory; - -import cn.bunny.common.service.context.BaseContext; -import cn.bunny.common.service.exception.BunnyException; -import cn.bunny.common.service.utils.FileUtil; -import cn.bunny.common.service.utils.minio.MinioUtil; -import cn.bunny.dao.entity.system.Files; -import cn.bunny.dao.pojo.common.MinioFilePath; -import cn.bunny.dao.pojo.result.ResultCodeEnum; -import cn.bunny.dao.vo.system.files.FileInfoVo; -import cn.bunny.services.mapper.FilesMapper; -import lombok.SneakyThrows; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; -import org.springframework.web.multipart.MultipartFile; - -@Component -public class FileFactory { - @Value("${spring.servlet.multipart.max-file-size}") - private String maxFileSize; - - @Autowired - private FilesMapper filesMapper; - - @Autowired - private MinioUtil minioUtil; - - /** - * 上传文件 - * - * @param file 文件 - * @param type 文件类型(MinioConstant) - * @return 返回文件信息 - */ - @SneakyThrows - public FileInfoVo uploadFile(MultipartFile file, String type) { - // 管理员Id - Long userId = BaseContext.getUserId(); - // 文件大小 - long fileSize = file.getSize(); - // 文件类型 - String contentType = file.getContentType(); - // 文件名 - String filename = file.getOriginalFilename(); - - // 上传文件 - MinioFilePath minioFIlePath = minioUtil.uploadObject4FilePath(file, type); - String bucketNameFilepath = minioFIlePath.getBucketNameFilepath(); - - // 盘读研数据是否过大 - String mb = maxFileSize.replace("MB", ""); - if (fileSize / 1024 / 1024 > Long.parseLong(mb)) throw new BunnyException(ResultCodeEnum.DATA_TOO_LARGE); - - // 插入文件信息 - Files adminFiles = new Files(); - adminFiles.setFileSize(fileSize); - adminFiles.setFileType(contentType); - adminFiles.setFilename(filename); - adminFiles.setFilepath(bucketNameFilepath); - adminFiles.setCreateUser(userId); - filesMapper.insert(adminFiles); - - // 返回信息内容化 - return FileInfoVo.builder() - .size(FileUtil.getSize(fileSize)) - .filepath(bucketNameFilepath) - .fileSize(fileSize) - .fileType(contentType) - .filename(filename) - .url(minioUtil.getObjectNameFullPath(bucketNameFilepath)) - .build(); - } -} diff --git a/service/src/main/java/cn/bunny/services/mapper/MessageMapper.java b/service/src/main/java/cn/bunny/services/mapper/MessageMapper.java index b7249f4..d4cfa5f 100644 --- a/service/src/main/java/cn/bunny/services/mapper/MessageMapper.java +++ b/service/src/main/java/cn/bunny/services/mapper/MessageMapper.java @@ -1,8 +1,14 @@ package cn.bunny.services.mapper; +import cn.bunny.dao.dto.system.message.MessageDto; import cn.bunny.dao.entity.system.Message; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -10,9 +16,24 @@ import org.apache.ibatis.annotations.Mapper; *

* * @author Bunny - * @since 2024-10-30 + * @since 2024-10-30 15:19:56 */ @Mapper public interface MessageMapper extends BaseMapper { + /** + * * 分页查询系统消息内容 + * + * @param pageParams 系统消息分页参数 + * @param dto 系统消息查询表单 + * @return 系统消息分页结果 + */ + IPage selectListByPage(@Param("page") Page pageParams, @Param("dto") MessageDto dto); + + /** + * 物理删除系统消息 + * + * @param ids 删除 id 列表 + */ + void deleteBatchIdsWithPhysics(List ids); } diff --git a/service/src/main/java/cn/bunny/services/service/MessageService.java b/service/src/main/java/cn/bunny/services/service/MessageService.java index 165585e..dfed33f 100644 --- a/service/src/main/java/cn/bunny/services/service/MessageService.java +++ b/service/src/main/java/cn/bunny/services/service/MessageService.java @@ -1,7 +1,16 @@ package cn.bunny.services.service; +import cn.bunny.dao.dto.system.message.MessageAddDto; +import cn.bunny.dao.dto.system.message.MessageDto; +import cn.bunny.dao.dto.system.message.MessageUpdateDto; import cn.bunny.dao.entity.system.Message; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.vo.system.message.MessageVo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.validation.Valid; + +import java.util.List; /** *

@@ -9,8 +18,35 @@ import com.baomidou.mybatisplus.extension.service.IService; *

* * @author Bunny - * @since 2024-10-30 + * @since 2024-10-30 15:19:56 */ public interface MessageService extends IService { + /** + * * 获取系统消息列表 + * + * @return 系统消息返回列表 + */ + PageResult getMessageList(Page pageParams, MessageDto dto); + + /** + * * 添加系统消息 + * + * @param dto 添加表单 + */ + void addMessage(@Valid MessageAddDto dto); + + /** + * * 更新系统消息 + * + * @param dto 更新表单 + */ + void updateMessage(@Valid MessageUpdateDto dto); + + /** + * * 删除|批量删除系统消息类型 + * + * @param ids 删除id列表 + */ + void deleteMessage(List ids); } diff --git a/service/src/main/java/cn/bunny/services/service/UserService.java b/service/src/main/java/cn/bunny/services/service/UserService.java index 662ae81..a30701e 100644 --- a/service/src/main/java/cn/bunny/services/service/UserService.java +++ b/service/src/main/java/cn/bunny/services/service/UserService.java @@ -3,10 +3,7 @@ package cn.bunny.services.service; import cn.bunny.dao.dto.system.user.*; import cn.bunny.dao.entity.system.AdminUser; import cn.bunny.dao.pojo.result.PageResult; -import cn.bunny.dao.vo.system.user.AdminUserVo; -import cn.bunny.dao.vo.system.user.LoginVo; -import cn.bunny.dao.vo.system.user.RefreshTokenVo; -import cn.bunny.dao.vo.system.user.UserVo; +import cn.bunny.dao.vo.system.user.*; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import jakarta.validation.Valid; @@ -108,7 +105,7 @@ public interface UserService extends IService { * @param keyword 查询用户信息关键字 * @return 用户信息列表 */ - List queryUser(String keyword); + List queryUser(String keyword); /** * * 修改用户状态 diff --git a/service/src/main/java/cn/bunny/services/service/impl/MessageServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/MessageServiceImpl.java index 3e44e88..83a9135 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/MessageServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/MessageServiceImpl.java @@ -1,20 +1,92 @@ package cn.bunny.services.service.impl; +import cn.bunny.dao.dto.system.message.MessageAddDto; +import cn.bunny.dao.dto.system.message.MessageDto; +import cn.bunny.dao.dto.system.message.MessageUpdateDto; import cn.bunny.dao.entity.system.Message; +import cn.bunny.dao.pojo.result.PageResult; +import cn.bunny.dao.vo.system.message.MessageVo; import cn.bunny.services.mapper.MessageMapper; import cn.bunny.services.service.MessageService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.validation.Valid; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 系统消息 服务实现类 *

* * @author Bunny - * @since 2024-10-30 + * @since 2024-10-30 15:19:56 */ @Service public class MessageServiceImpl extends ServiceImpl implements MessageService { + /** + * * 系统消息 服务实现类 + * + * @param pageParams 系统消息分页查询page对象 + * @param dto 系统消息分页查询对象 + * @return 查询分页系统消息返回对象 + */ + @Override + public PageResult getMessageList(Page pageParams, MessageDto dto) { + // 分页查询菜单图标 + IPage page = baseMapper.selectListByPage(pageParams, dto); + + List voList = page.getRecords().stream().map(message -> { + MessageVo messageVo = new MessageVo(); + BeanUtils.copyProperties(message, messageVo); + return messageVo; + }).toList(); + + return PageResult.builder() + .list(voList) + .pageNo(page.getCurrent()) + .pageSize(page.getSize()) + .total(page.getTotal()) + .build(); + } + + /** + * 添加系统消息 + * + * @param dto 系统消息添加 + */ + @Override + public void addMessage(@Valid MessageAddDto dto) { + // 保存数据 + Message message = new Message(); + BeanUtils.copyProperties(dto, message); + save(message); + } + + /** + * 更新系统消息 + * + * @param dto 系统消息更新 + */ + @Override + public void updateMessage(@Valid MessageUpdateDto dto) { + // 更新内容 + Message message = new Message(); + BeanUtils.copyProperties(dto, message); + updateById(message); + } + + /** + * 删除|批量删除系统消息 + * + * @param ids 删除id列表 + */ + @Override + public void deleteMessage(List ids) { + baseMapper.deleteBatchIdsWithPhysics(ids); + } } diff --git a/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java b/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java index 22013e5..e6f414b 100644 --- a/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java +++ b/service/src/main/java/cn/bunny/services/service/impl/UserServiceImpl.java @@ -18,10 +18,7 @@ import cn.bunny.dao.pojo.result.PageResult; import cn.bunny.dao.pojo.result.ResultCodeEnum; import cn.bunny.dao.view.ViewUserDept; import cn.bunny.dao.vo.system.files.FileInfoVo; -import cn.bunny.dao.vo.system.user.AdminUserVo; -import cn.bunny.dao.vo.system.user.LoginVo; -import cn.bunny.dao.vo.system.user.RefreshTokenVo; -import cn.bunny.dao.vo.system.user.UserVo; +import cn.bunny.dao.vo.system.user.*; import cn.bunny.services.factory.EmailFactory; import cn.bunny.services.factory.UserFactory; import cn.bunny.services.mapper.*; @@ -46,7 +43,6 @@ import org.springframework.util.DigestUtils; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.concurrent.TimeUnit; @@ -284,12 +280,18 @@ public class UserServiceImpl extends ServiceImpl implemen * @return 用户信息列表 */ @Override - public List queryUser(String keyword) { - if (!StringUtils.hasText(keyword)) return new ArrayList<>(); + public List queryUser(String keyword) { + if (!StringUtils.hasText(keyword)) { + return list(Page.of(1, 20), Wrappers.lambdaQuery().eq(AdminUser::getStatus, false)).stream().map(adminUser -> { + SearchUserinfoVo adminUserVo = new SearchUserinfoVo(); + BeanUtils.copyProperties(adminUser, adminUserVo); + return adminUserVo; + }).toList(); + } List list = baseMapper.queryUser(keyword); return list.stream().map(adminUser -> { - AdminUserVo adminUserVo = new AdminUserVo(); + SearchUserinfoVo adminUserVo = new SearchUserinfoVo(); BeanUtils.copyProperties(adminUser, adminUserVo); return adminUserVo; }).toList(); diff --git a/service/src/main/resources/mapper/MessageMapper.xml b/service/src/main/resources/mapper/MessageMapper.xml index 9795c03..5936a84 100644 --- a/service/src/main/resources/mapper/MessageMapper.xml +++ b/service/src/main/resources/mapper/MessageMapper.xml @@ -5,22 +5,68 @@ - - - - - - - - - - - + + + + + + + + + + + + + - id, received_user_id, send_user_id, send_nick_name, message_type, content, editor_type, status, create_time, update_time, update_user, is_deleted + id, create_time, update_time, create_user, update_user, is_deleted, title, received_user_id, send_user_id, send_nick_name, message_type, content, editor_type, status + + + + + + delete + from sys_message + where id in + + #{id} + + +