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 expression() default "";
|
||||||
|
|
||||||
|
String type() default "0";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ public class SysLogAspect {
|
||||||
|
|
||||||
SysLogEventSource logVo = SysLogUtils.getSysLog();
|
SysLogEventSource logVo = SysLogUtils.getSysLog();
|
||||||
logVo.setTitle(value);
|
logVo.setTitle(value);
|
||||||
|
logVo.setLogType(sysLog.type());
|
||||||
// 获取请求body参数
|
// 获取请求body参数
|
||||||
if (StrUtil.isBlank(logVo.getParams())) {
|
if (StrUtil.isBlank(logVo.getParams())) {
|
||||||
logVo.setBody(point.getArgs());
|
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`
|
CREATE TABLE `sys_message`
|
||||||
(
|
(
|
||||||
`id` bigint NOT NULL COMMENT '主键',
|
`id` bigint NOT NULL COMMENT '主键',
|
||||||
`category` varchar(800) 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 '医院名称',ssss
|
`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 '消息内容',
|
`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 '跳转链接',
|
`href` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '跳转链接',
|
||||||
`hotspots` bit(1) NULL DEFAULT 0 COMMENT '是否热点',
|
`hotspots` bit(1) NULL DEFAULT 0 COMMENT '是否热点',
|
||||||
`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '删除标记,0未删除,1已删除',
|
`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 '所属人',
|
`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 '创建时间',
|
`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 '更新时间',
|
`update_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
SET
|
DROP TABLE IF EXISTS `sys_message_user`;
|
||||||
FOREIGN_KEY_CHECKS = 1;
|
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 LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间区间 [开始时间,结束时间]
|
||||||
|
*/
|
||||||
|
private String[] timeInterval;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class SysLog implements Serializable {
|
||||||
* 日志类型
|
* 日志类型
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "日志类型不能为空")
|
@NotBlank(message = "日志类型不能为空")
|
||||||
@ExcelProperty("日志类型(0-正常 9-错误 1-添加 2-删除 3-编辑)")
|
@ExcelProperty("日志类型(0-正常 1-添加 2-删除 3-编辑 4-错误)")
|
||||||
@Schema(description = "日志类型")
|
@Schema(description = "日志类型")
|
||||||
private String logType;
|
private String logType;
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,14 @@ public class SysMessage {
|
||||||
@Schema(description = "创建人")
|
@Schema(description = "创建人")
|
||||||
private Long creator;
|
private Long creator;
|
||||||
|
|
||||||
@Schema(description = "接收人")
|
@Schema(description = "创建人名字")
|
||||||
private String receiver;
|
private String creatorName;
|
||||||
|
|
||||||
|
@Schema(description = "修改人")
|
||||||
|
private Long updater;
|
||||||
|
|
||||||
|
@Schema(description = "修改人姓名")
|
||||||
|
private String updaterName;
|
||||||
|
|
||||||
@Schema(description = "创建时间")
|
@Schema(description = "创建时间")
|
||||||
private String createTime;
|
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 = "系统消息")
|
@Schema(description = "系统消息")
|
||||||
public class SysMessageVO {
|
public class SysMessageVO {
|
||||||
|
|
||||||
|
@Schema(description = "消息id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
@Schema(description = "接收人")
|
@Schema(description = "接收人")
|
||||||
private String receiver;
|
private String receiver;
|
||||||
|
|
||||||
|
|
|
@ -26,15 +26,26 @@ public class SysMessageController {
|
||||||
return sysMessageService.saveMessage(sysMessageVO);
|
return sysMessageService.saveMessage(sysMessageVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/update")
|
||||||
|
public R update(SysMessageVO sysMessageVO) {
|
||||||
|
return sysMessageService.updateMessage(sysMessageVO);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/page")
|
@PostMapping("/page")
|
||||||
public R page(Page page, SysMessageVO sysMessageVO) {
|
public R page(Page page, SysMessageVO sysMessageVO) {
|
||||||
return R.ok(sysMessageService.page(page, Wrappers.<SysMessage>lambdaQuery()
|
return R.ok(sysMessageService.page(page, Wrappers.<SysMessage>lambdaQuery()
|
||||||
.eq(StringUtils.hasText(sysMessageVO.getCategory()),
|
.eq(StringUtils.hasText(sysMessageVO.getCategory()),
|
||||||
SysMessage::getCategory,
|
SysMessage::getCategory,
|
||||||
sysMessageVO.getCategory())
|
sysMessageVO.getCategory())
|
||||||
|
.eq(SysMessage::getDelFlag, 0)
|
||||||
.like(StringUtils.hasText(sysMessageVO.getMessage()),
|
.like(StringUtils.hasText(sysMessageVO.getMessage()),
|
||||||
SysMessage::getMessage,
|
SysMessage::getMessage,
|
||||||
sysMessageVO.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.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.rax.admin.api.entity.SysMessage;
|
import com.rax.admin.api.entity.SysMessage;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface SysMessageMapper extends BaseMapper<SysMessage> {
|
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> {
|
public interface SysMessageService extends IService<SysMessage> {
|
||||||
|
|
||||||
R saveMessage(SysMessageVO sysMessageVO);
|
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());
|
wrapper.eq(SysLog::getLogType, sysLog.getLogType());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ArrayUtil.isNotEmpty(sysLog.getCreateTime())) {
|
if (ArrayUtil.isNotEmpty(sysLog.getTimeInterval())) {
|
||||||
wrapper.ge(SysLog::getCreateTime, sysLog.getCreateTime()[0])
|
wrapper.ge(SysLog::getCreateTime, sysLog.getTimeInterval()[0])
|
||||||
.le(SysLog::getCreateTime, sysLog.getCreateTime()[1]);
|
.le(SysLog::getCreateTime, sysLog.getTimeInterval()[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
wrapper.orderByDesc(SysLog::getCreateTime);
|
wrapper.orderByDesc(SysLog::getCreateTime);
|
||||||
|
|
|
@ -1,19 +1,34 @@
|
||||||
package com.rax.admin.service.impl;
|
package com.rax.admin.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.rax.admin.api.entity.SysMessage;
|
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.api.vo.SysMessageVO;
|
||||||
import com.rax.admin.mapper.SysMessageMapper;
|
import com.rax.admin.mapper.SysMessageMapper;
|
||||||
import com.rax.admin.service.SysMessageService;
|
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.core.util.R;
|
||||||
import com.rax.common.security.service.RaxUser;
|
import com.rax.common.security.service.RaxUser;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMessage> implements SysMessageService {
|
public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMessage> implements SysMessageService {
|
||||||
|
@Autowired
|
||||||
|
private SysUserService sysUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysMessageUserService sysMessageUserService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public R saveMessage(SysMessageVO sysMessageVO) {
|
public R saveMessage(SysMessageVO sysMessageVO) {
|
||||||
|
@ -21,10 +36,54 @@ public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMess
|
||||||
BeanUtils.copyProperties(sysMessageVO, sysMessage);
|
BeanUtils.copyProperties(sysMessageVO, sysMessage);
|
||||||
RaxUser raxUser = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
RaxUser raxUser = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
|
||||||
sysMessage.setCreator(raxUser.getId());
|
sysMessage.setCreator(raxUser.getId());
|
||||||
|
SysUser sysUser = sysUserService.getById(raxUser.getId());
|
||||||
|
sysMessage.setCreatorName(sysUser.getName());
|
||||||
sysMessage.setHospital(raxUser.getHospitalId());
|
sysMessage.setHospital(raxUser.getHospitalId());
|
||||||
sysMessage.setCreateTime(DateUtil.now());
|
sysMessage.setCreateTime(DateUtil.now());
|
||||||
sysMessage.setUpdateTime(DateUtil.now());
|
sysMessage.setUpdateTime(DateUtil.now());
|
||||||
boolean status = save(sysMessage);
|
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