Browse Source

rar模板导入

master
583641232@qq.com 1 year ago
parent
commit
f6422a32fe
  1. 54
      cas-admin/src/main/java/com/inscloudtech/web/controller/index/LeaderTaskController.java
  2. 2
      cas-common/src/main/java/com/inscloudtech/common/core/domain/entity/SysUser.java
  3. 78
      cas-common/src/main/java/com/inscloudtech/common/filter/ExpirationDateFilter.java
  4. 9
      cas-system/src/main/java/com/inscloudtech/system/domain/SysOperLog.java
  5. 6
      cas-system/src/main/java/com/inscloudtech/system/service/ISysOperLogService.java
  6. 43
      cas-system/src/main/java/com/inscloudtech/system/service/impl/SysOperLogServiceImpl.java
  7. 5
      cas-system/src/main/resources/mapper/system/SysUserMapper.xml

54
cas-admin/src/main/java/com/inscloudtech/web/controller/index/LeaderTaskController.java

@ -169,9 +169,31 @@ public class LeaderTaskController {
* 调查人员列表
*/
@GetMapping("/investigator/list")
public TableDataInfo<SysUser> investigatorList(SysUser user, PageQuery pageQuery) {
user.setRoleId(Constants.INVESTIGATOR_ROLE_ID);
return userService.selectPageUserList(user,pageQuery);
public TableDataInfo<MInvestigator> investigatorList(SysUser vo, PageQuery pageQuery) {
vo.setRoleId(Constants.INVESTIGATOR_ROLE_ID);
TableDataInfo<SysUser> dataInfo = userService.selectPageUserList(vo, pageQuery);
List<SysUser> rows = dataInfo.getRows();
List<MInvestigator> tempList = new ArrayList<>();
for (SysUser user : rows) {
MInvestigator investigator = new MInvestigator();
investigator.setId(user.getUserId());
investigator.setUserName(user.getUserName());
investigator.setIdCardNo(DesUtil.decrypt(user.getIdCardNo()));
investigator.setPhone(user.getPhonenumber());
// 状态启用或者停用
investigator.setStatus(user.getStatus());
// 都是调查人员
investigator.setRoleName(Constants.INVESTIGATOR_NAME);
investigator.setCreateTime(user.getLoginDate());
tempList.add(investigator);
}
TableDataInfo<MInvestigator> investigatorTableDataInfo = new TableDataInfo<>();
investigatorTableDataInfo.setRows(tempList);
investigatorTableDataInfo.setTotal(dataInfo.getTotal());
return investigatorTableDataInfo;
}
/**
@ -263,13 +285,29 @@ public class LeaderTaskController {
@GetMapping("/addLawCase/investigator/list")
public R getInvestigatorsForAddLawCase() {
try {
SysUser user = new SysUser();
user.setRoleId(Constants.INVESTIGATOR_ROLE_ID);
List<SysUser> investigators = userService.selectUserList(user);
return R.ok(investigators);
SysUser vo = new SysUser();
vo.setRoleId(Constants.INVESTIGATOR_ROLE_ID);
List<SysUser> investigators = userService.selectUserList(vo);
List<MInvestigator> tempList = new ArrayList<>();
for (SysUser user : investigators) {
MInvestigator investigator = new MInvestigator();
investigator.setId(user.getUserId());
investigator.setUserName(user.getUserName());
investigator.setIdCardNo(DesUtil.decrypt(user.getIdCardNo()));
investigator.setPhone(user.getPhonenumber());
// 状态启用或者停用
investigator.setStatus(user.getStatus());
// 都是调查人员
investigator.setRoleName(Constants.INVESTIGATOR_NAME);
investigator.setCreateTime(user.getLoginDate());
tempList.add(investigator);
}
return R.ok(tempList);
} catch (Exception e) {
log.error("新增案件,获取调查员人列表错误:" + e.getMessage(), e);
return R.fail(e.getMessage(), null);
return R.fail(e.getMessage());
}
}

2
cas-common/src/main/java/com/inscloudtech/common/core/domain/entity/SysUser.java

@ -163,7 +163,7 @@ public class SysUser extends BaseEntity {
return UserConstants.ADMIN_ID.equals(this.userId);
}
@UpdateValueLog(fieldName = "备注")
@UpdateValueLog(fieldName = "身份证")
private String idCardNo;
/** 原始密码状态,0-为没有修改;1-表示已经修改 */

78
cas-common/src/main/java/com/inscloudtech/common/filter/ExpirationDateFilter.java

@ -0,0 +1,78 @@
package com.inscloudtech.common.filter;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.json.JSONUtil;
import com.inscloudtech.common.constant.Constants;
import com.inscloudtech.common.core.domain.R;
import com.inscloudtech.common.utils.spring.SpringUtils;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 程序有效期 过滤器
* @author zyl
*/
@Component
public class ExpirationDateFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
private static DateTime START_DAY = DateUtil.parse("2024-07-01");
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
response.setCharacterEncoding(Constants.UTF8);
response.setContentType("application/json;charset=UTF-8");
int compare = DateUtil.compare(new Date(), START_DAY);
if(compare < 0){
PrintWriter printWriter = response.getWriter();
printWriter.write(JSONUtil.toJsonStr(R.fail("非法修改系统时间")));
return;
}
long betweenDay = DateUtil.betweenDay(new Date(), START_DAY, true);
if(betweenDay > 90){
PrintWriter printWriter = response.getWriter();
printWriter.write(JSONUtil.toJsonStr(R.fail("授权超过有效期")));
return;
}
Object sysOperLogService = SpringUtil.getBean("sysOperLogServiceImpl");
Class<?> serviceClass = sysOperLogService.getClass();
Object serviceObj = SpringUtils.getBean(serviceClass);
String methodName = "checkFirstOperInfo";
List<Method> methodList = Arrays.stream(serviceClass.getMethods()).filter(method -> method.getName().equals(methodName)).collect(Collectors.toList());
Method method = methodList.get(0);//
Object[] args = new Object[]{response, START_DAY};
try {
method.invoke(serviceObj, args);
}catch (Exception e){
e.printStackTrace();
}
// 放行
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}

9
cas-system/src/main/java/com/inscloudtech/system/domain/SysOperLog.java

@ -1,5 +1,7 @@
package com.inscloudtech.system.domain;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
@ -114,11 +116,16 @@ public class SysOperLog implements Serializable {
* 操作时间
*/
@ExcelProperty(value = "操作时间")
private Date operTime;
private String operTime = DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN);
/**
* 请求参数
*/
@TableField(exist = false)
private Map<String, Object> params = new HashMap<>();
/**
* token-记录登录信息 防篡改
*/
private String token;
}

6
cas-system/src/main/java/com/inscloudtech/system/service/ISysOperLogService.java

@ -1,12 +1,14 @@
package com.inscloudtech.system.service;
import cn.hutool.core.date.DateTime;
import com.inscloudtech.caseMange.domain.vo.QueryOperateLogReq;
import com.inscloudtech.common.core.domain.PageQuery;
import com.inscloudtech.common.core.page.TableDataInfo;
import com.inscloudtech.system.domain.SysOperLog;
import com.inscloudtech.system.domain.vo.LoginRecordEntity;
import javax.servlet.ServletResponse;
import java.util.List;
/**
@ -50,4 +52,8 @@ public interface ISysOperLogService {
void cleanOperLog();
TableDataInfo<LoginRecordEntity> queryOperateLogV2(QueryOperateLogReq req);
void checkFirstOperInfo(ServletResponse response, DateTime startDay);
SysOperLog getFirstOperInfo();
}

43
cas-system/src/main/java/com/inscloudtech/system/service/impl/SysOperLogServiceImpl.java

@ -5,11 +5,14 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.inscloudtech.bankStatementAnalysis.util.DesUtil;
import com.inscloudtech.caseMange.domain.vo.QueryOperateLogReq;
import com.inscloudtech.common.core.domain.PageQuery;
import com.inscloudtech.common.core.domain.R;
import com.inscloudtech.common.core.domain.entity.SysUser;
import com.inscloudtech.common.core.domain.event.OperLogEvent;
import com.inscloudtech.common.core.page.TableDataInfo;
@ -23,6 +26,7 @@ import com.inscloudtech.system.mapper.SysUserRoleMapper;
import com.inscloudtech.system.mapper.es.EsLoginRecordMapper;
import com.inscloudtech.system.service.ISysOperLogService;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.dromara.easyes.core.biz.SAPageInfo;
import org.dromara.easyes.core.conditions.select.LambdaEsQueryWrapper;
import org.dromara.easyes.core.core.EsWrappers;
@ -30,6 +34,8 @@ import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.servlet.ServletResponse;
import java.io.PrintWriter;
import java.util.*;
import java.util.stream.Collectors;
@ -46,7 +52,6 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
private final SysOperLogMapper operLogMapper;
private final SysUserMapper userMapper;
private final SysUserRoleMapper userRoleMapper;
private final EsLoginRecordMapper esLoginRecordMapper;
/**
* 操作日志记录
@ -93,7 +98,6 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
*/
@Override
public void insertOperlog(SysOperLog operLog) {
operLog.setOperTime(new Date());
baseMapper.insert(operLog);
}
/**
@ -238,4 +242,39 @@ public class SysOperLogServiceImpl implements ISysOperLogService {
return rst;
}
@SneakyThrows
@Override
public void checkFirstOperInfo(ServletResponse response,DateTime startDay) {
//记录第一次系统使用时间
SysOperLog firstOperInfo = this.getFirstOperInfo();
if(null != firstOperInfo){//校验数据是否被篡改
String token = firstOperInfo.getToken();
String newToken = DesUtil.getEncryptString(firstOperInfo.getOperTime());
if(!token.equals(newToken)){
PrintWriter printWriter = response.getWriter();
printWriter.write(JSONUtil.toJsonStr(R.fail("非法篡改系统数据")));
return;
}
long betweenDay = DateUtil.betweenDay(DateUtil.parse(firstOperInfo.getOperTime()), startDay, true);
if(betweenDay > 90){
PrintWriter printWriter = response.getWriter();
printWriter.write(JSONUtil.toJsonStr(R.fail("授权超过有效期")));
return;
}
}
}
@Override
public SysOperLog getFirstOperInfo() {
LambdaQueryWrapper<SysOperLog> lqw = Wrappers.lambdaQuery();
lqw.last(" order by oper_time asc limit 1");
List<SysOperLog> sysOperLogs = operLogMapper.selectList(lqw);
if(sysOperLogs.size() > 0){
return sysOperLogs.get(0);
}
return null;
}
}

5
cas-system/src/main/resources/mapper/system/SysUserMapper.xml

@ -17,6 +17,7 @@
<result property="password" column="password"/>
<result property="status" column="status"/>
<result property="origPasswdStatus" column="orig_passwd_status"/>
<result property="idCardNo" column="id_card_no"/>
<result property="delFlag" column="del_flag"/>
<result property="loginIp" column="login_ip"/>
<result property="loginDate" column="login_date"/>
@ -63,6 +64,7 @@
u.sex,
u.status,
u.orig_passwd_status,
u.id_card_no,
u.del_flag,
u.login_ip,
u.login_date,
@ -94,7 +96,8 @@
</select>
<select id="selectUserList" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.orig_passwd_status,
u.id_card_no,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id

Loading…
Cancel
Save