mirror of
https://gitee.com/republicline/rax-remote-v2.git
synced 2025-08-24 06:04:57 +08:00
parent
512a4af309
commit
291fa4efa5
|
@ -23,4 +23,6 @@ public @interface SysLog {
|
|||
*/
|
||||
String expression() default "";
|
||||
|
||||
String type() default "0";
|
||||
|
||||
}
|
||||
|
|
|
@ -51,6 +51,7 @@ public class SysLogAspect {
|
|||
|
||||
SysLogEventSource logVo = SysLogUtils.getSysLog();
|
||||
logVo.setTitle(value);
|
||||
logVo.setLogType(sysLog.type());
|
||||
// 获取请求body参数
|
||||
if (StrUtil.isBlank(logVo.getParams())) {
|
||||
logVo.setBody(point.getArgs());
|
||||
|
|
|
@ -21,7 +21,13 @@ public enum LogTypeEnum {
|
|||
/**
|
||||
* 错误日志类型
|
||||
*/
|
||||
ERROR("9", "错误日志");
|
||||
ERROR("4", "错误日志"),
|
||||
|
||||
ADD("1", "添加"),
|
||||
|
||||
DELETE("2", "删除"),
|
||||
|
||||
EDIT("3", "编辑");
|
||||
|
||||
/**
|
||||
* 类型
|
||||
|
|
21
db/pig.sql
21
db/pig.sql
|
@ -1268,18 +1268,27 @@ DROP TABLE IF EXISTS `sys_message`;
|
|||
CREATE TABLE `sys_message`
|
||||
(
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`category` varchar(800) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '消息类型',
|
||||
`hospital` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '医院名称',ssss
|
||||
`message` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '消息内容',
|
||||
`category` varchar(800) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '消息类型',
|
||||
`hospital` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '医院名称',
|
||||
`message` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '消息内容',
|
||||
`href` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '跳转链接',
|
||||
`hotspots` bit(1) NULL DEFAULT 0 COMMENT '是否热点',
|
||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标记,0未删除,1已删除',
|
||||
`creator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '所属人',
|
||||
`receiver` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '接收人',
|
||||
`creator_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '接收人',
|
||||
`updater` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改人',
|
||||
`updater_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '修改人',
|
||||
`create_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||
|
||||
SET
|
||||
FOREIGN_KEY_CHECKS = 1;
|
||||
DROP TABLE IF EXISTS `sys_message_user`;
|
||||
CREATE TABLE `sys_message_user`
|
||||
(
|
||||
`message_id` bigint NULL DEFAULT NULL COMMENT '消息id',
|
||||
`user_id` bigint NULL DEFAULT NULL COMMENT '用户id',
|
||||
`read_flag` bit(1) NULL DEFAULT 0 COMMENT '是否已读'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
|
|
@ -88,4 +88,9 @@ public class SysLogDTO {
|
|||
*/
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
/**
|
||||
* 创建时间区间 [开始时间,结束时间]
|
||||
*/
|
||||
private String[] timeInterval;
|
||||
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public class SysLog implements Serializable {
|
|||
* 日志类型
|
||||
*/
|
||||
@NotBlank(message = "日志类型不能为空")
|
||||
@ExcelProperty("日志类型(0-正常 9-错误 1-添加 2-删除 3-编辑)")
|
||||
@ExcelProperty("日志类型(0-正常 1-添加 2-删除 3-编辑 4-错误)")
|
||||
@Schema(description = "日志类型")
|
||||
private String logType;
|
||||
|
||||
|
|
|
@ -49,8 +49,14 @@ public class SysMessage {
|
|||
@Schema(description = "创建人")
|
||||
private Long creator;
|
||||
|
||||
@Schema(description = "接收人")
|
||||
private String receiver;
|
||||
@Schema(description = "创建人名字")
|
||||
private String creatorName;
|
||||
|
||||
@Schema(description = "修改人")
|
||||
private Long updater;
|
||||
|
||||
@Schema(description = "修改人姓名")
|
||||
private String updaterName;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private String createTime;
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package com.rax.admin.api.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "消息用户")
|
||||
public class SysMessageUser {
|
||||
|
||||
@Schema(description = "消息id")
|
||||
private String messageId;
|
||||
|
||||
@Schema(description = "用户id")
|
||||
private String userId;
|
||||
|
||||
@Schema(description = "是否已读")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Boolean readFlag;
|
||||
}
|
|
@ -7,6 +7,9 @@ import lombok.Data;
|
|||
@Schema(description = "系统消息")
|
||||
public class SysMessageVO {
|
||||
|
||||
@Schema(description = "消息id")
|
||||
private String id;
|
||||
|
||||
@Schema(description = "接收人")
|
||||
private String receiver;
|
||||
|
||||
|
|
|
@ -26,15 +26,26 @@ public class SysMessageController {
|
|||
return sysMessageService.saveMessage(sysMessageVO);
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
public R update(SysMessageVO sysMessageVO) {
|
||||
return sysMessageService.updateMessage(sysMessageVO);
|
||||
}
|
||||
|
||||
@PostMapping("/page")
|
||||
public R page(Page page, SysMessageVO sysMessageVO) {
|
||||
return R.ok(sysMessageService.page(page, Wrappers.<SysMessage>lambdaQuery()
|
||||
.eq(StringUtils.hasText(sysMessageVO.getCategory()),
|
||||
SysMessage::getCategory,
|
||||
sysMessageVO.getCategory())
|
||||
.eq(SysMessage::getDelFlag, 0)
|
||||
.like(StringUtils.hasText(sysMessageVO.getMessage()),
|
||||
SysMessage::getMessage,
|
||||
sysMessageVO.getMessage())));
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
public R delete(String ids) {
|
||||
return sysMessageService.deleteMessage(ids);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,9 @@ package com.rax.admin.mapper;
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.rax.admin.api.entity.SysMessage;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@Mapper
|
||||
public interface SysMessageMapper extends BaseMapper<SysMessage> {
|
||||
boolean deleteMessage(@Param("ids") String ids);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package com.rax.admin.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.rax.admin.api.entity.SysMessageUser;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface SysMessageUserMapper extends BaseMapper<SysMessageUser> {
|
||||
}
|
|
@ -9,4 +9,8 @@ import com.rax.common.core.util.R;
|
|||
public interface SysMessageService extends IService<SysMessage> {
|
||||
|
||||
R saveMessage(SysMessageVO sysMessageVO);
|
||||
|
||||
R updateMessage(SysMessageVO sysMessageVO);
|
||||
|
||||
R deleteMessage(String ids);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
package com.rax.admin.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.rax.admin.api.entity.SysMessageUser;
|
||||
|
||||
public interface SysMessageUserService extends IService<SysMessageUser> {
|
||||
}
|
|
@ -35,9 +35,9 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> impleme
|
|||
wrapper.eq(SysLog::getLogType, sysLog.getLogType());
|
||||
}
|
||||
|
||||
if (ArrayUtil.isNotEmpty(sysLog.getCreateTime())) {
|
||||
wrapper.ge(SysLog::getCreateTime, sysLog.getCreateTime()[0])
|
||||
.le(SysLog::getCreateTime, sysLog.getCreateTime()[1]);
|
||||
if (ArrayUtil.isNotEmpty(sysLog.getTimeInterval())) {
|
||||
wrapper.ge(SysLog::getCreateTime, sysLog.getTimeInterval()[0])
|
||||
.le(SysLog::getCreateTime, sysLog.getTimeInterval()[1]);
|
||||
}
|
||||
|
||||
wrapper.orderByDesc(SysLog::getCreateTime);
|
||||
|
|
|
@ -1,19 +1,34 @@
|
|||
package com.rax.admin.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.rax.admin.api.entity.SysMessage;
|
||||
import com.rax.admin.api.entity.SysMessageUser;
|
||||
import com.rax.admin.api.entity.SysUser;
|
||||
import com.rax.admin.api.vo.SysMessageVO;
|
||||
import com.rax.admin.mapper.SysMessageMapper;
|
||||
import com.rax.admin.service.SysMessageService;
|
||||
import com.rax.admin.service.SysMessageUserService;
|
||||
import com.rax.admin.service.SysUserService;
|
||||
import com.rax.common.core.util.R;
|
||||
import com.rax.common.security.service.RaxUser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMessage> implements SysMessageService {
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@Autowired
|
||||
private SysMessageUserService sysMessageUserService;
|
||||
|
||||
@Override
|
||||
public R saveMessage(SysMessageVO sysMessageVO) {
|
||||
|
@ -21,10 +36,54 @@ public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMess
|
|||
BeanUtils.copyProperties(sysMessageVO, sysMessage);
|
||||
RaxUser raxUser = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||
sysMessage.setCreator(raxUser.getId());
|
||||
SysUser sysUser = sysUserService.getById(raxUser.getId());
|
||||
sysMessage.setCreatorName(sysUser.getName());
|
||||
sysMessage.setHospital(raxUser.getHospitalId());
|
||||
sysMessage.setCreateTime(DateUtil.now());
|
||||
sysMessage.setUpdateTime(DateUtil.now());
|
||||
boolean status = save(sysMessage);
|
||||
return R.ok(status);
|
||||
if (status) {
|
||||
saveMessageUser(sysMessageVO, sysMessage);
|
||||
return R.ok("消息保存成功");
|
||||
} else {
|
||||
return R.failed("消息保存失败");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R updateMessage(SysMessageVO sysMessageVO) {
|
||||
SysMessage sysMessage = new SysMessage();
|
||||
BeanUtils.copyProperties(sysMessageVO, sysMessage);
|
||||
sysMessage.setUpdateTime(DateUtil.now());
|
||||
RaxUser raxUser = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||
sysMessage.setUpdater(raxUser.getId());
|
||||
SysUser sysUser = sysUserService.getById(raxUser.getId());
|
||||
sysMessage.setUpdaterName(sysUser.getName());
|
||||
boolean status = updateById(sysMessage);
|
||||
if (status) {
|
||||
saveMessageUser(sysMessageVO, sysMessage);
|
||||
return R.ok("消息更新成功");
|
||||
} else {
|
||||
return R.failed("消息更新失败");
|
||||
}
|
||||
}
|
||||
|
||||
private void saveMessageUser(SysMessageVO sysMessageVO, SysMessage sysMessage) {
|
||||
if (StringUtils.hasText(sysMessageVO.getReceiver())) {
|
||||
List messageUserList = Arrays.stream(sysMessageVO.getReceiver().split(StrUtil.COMMA)).map(userId -> {
|
||||
SysMessageUser sysMessageUser = new SysMessageUser();
|
||||
sysMessageUser.setUserId(userId);
|
||||
sysMessageUser.setMessageId(sysMessage.getId());
|
||||
return sysMessageUser;
|
||||
}).toList();
|
||||
sysMessageUserService.saveBatch(messageUserList);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R deleteMessage(String ids) {
|
||||
List<String> idList = Arrays.asList(ids.split(StrUtil.COMMA));
|
||||
ids = ids.replace(",", "','");
|
||||
return R.ok(this.baseMapper.deleteMessage(ids));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package com.rax.admin.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.rax.admin.api.entity.SysMessageUser;
|
||||
import com.rax.admin.mapper.SysMessageUserMapper;
|
||||
import com.rax.admin.service.SysMessageUserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class SysMessageUserServiceImpl extends ServiceImpl<SysMessageUserMapper, SysMessageUser> implements SysMessageUserService {
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
<?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.rax.admin.mapper.SysMessageMapper">
|
||||
<update id="deleteMessage">
|
||||
UPDATE sys_message set del_flag = 1 WHERE id IN (#{ids});
|
||||
DELETE FROM sys_message_user where message_id in (#{ids});
|
||||
</update>
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user