Commit 44d05eb2 by wang_jiaxing

删除用户时记录日志

parent cb4a5730
...@@ -58,4 +58,6 @@ public interface SysUserDao { ...@@ -58,4 +58,6 @@ public interface SysUserDao {
List<SysUser> selectSxSysUserByCondition(SysUser user); List<SysUser> selectSxSysUserByCondition(SysUser user);
Integer selectSxSysUserCountByCondition(SysUser user); Integer selectSxSysUserCountByCondition(SysUser user);
void addGnsyrz(SysGnsyrz sysGnsyrz);
} }
...@@ -647,6 +647,70 @@ ...@@ -647,6 +647,70 @@
#{isshow,jdbcType=VARCHAR},#{lrr,jdbcType=VARCHAR},#{lrsj,jdbcType=DATE}, #{isshow,jdbcType=VARCHAR},#{lrr,jdbcType=VARCHAR},#{lrsj,jdbcType=DATE},
#{lrdwdm,jdbcType=VARCHAR},#{lrdwmc,jdbcType=VARCHAR}) #{lrdwdm,jdbcType=VARCHAR},#{lrdwmc,jdbcType=VARCHAR})
</insert> </insert>
<insert id="addGnsyrz">
INSERT INTO sys_gnsyrz (
rzlsh
,fwsj
,yymc_jyqk
,yh_gmsfhm
,yh_ip
,yhdw_gajgjgdm
,yhdw_gajgmc
,czlxdm
,czxx_jyqk
,xxsc_pdbz
,xxdjdw_gajgjgdm
,xxdjdw_gajgmc
,xxdjry_xm
,xxdjry_gmsfhm
,xxdjry_lxdh
,djsj
,xxczdw_gajgjgdm
,xxczdw_gajgmc
,xxczry_xm
,xxczry_gmsfhm
,gxsj
,xxlyms
,yymcdm
,ywbhlxdm
,ywbh
,yh_xm
,cxnrlbdm
,cxnrbh
,cxxxjg
)
VALUES(
#{ rzlsh , jdbcType=VARCHAR }
,sysdate
,#{ yymcJyqk , jdbcType=VARCHAR }
,#{ yhGmsfhm , jdbcType=VARCHAR }
,#{ yhIp , jdbcType=VARCHAR }
,#{ yhdwGajgjgdm , jdbcType=VARCHAR }
,#{ yhdwGajgmc , jdbcType=VARCHAR }
,#{ czlxdm , jdbcType=VARCHAR }
,#{ czxxJyqk , jdbcType=VARCHAR }
,#{ xxscPdbz , jdbcType=VARCHAR }
,#{ xxdjdwGajgjgdm , jdbcType=VARCHAR }
,#{ xxdjdwGajgmc , jdbcType=VARCHAR }
,#{ xxdjryXm , jdbcType=VARCHAR }
,#{ xxdjryGmsfhm , jdbcType=VARCHAR }
,#{ xxdjryLxdh , jdbcType=VARCHAR }
,sysdate
,#{ xxczdwGajgjgdm , jdbcType=VARCHAR }
,#{ xxczdwGajgmc , jdbcType=VARCHAR }
,#{ xxczryXm , jdbcType=VARCHAR }
,#{ xxczryGmsfhm , jdbcType=VARCHAR }
,sysdate
,#{ xxlyms , jdbcType=VARCHAR }
,#{ yymcdm , jdbcType=VARCHAR }
,#{ ywbhlxdm , jdbcType=VARCHAR }
,#{ ywbh , jdbcType=VARCHAR }
,#{ yhXm , jdbcType=VARCHAR }
,#{ cxnrlbdm , jdbcType=VARCHAR }
,#{ cxnrbh , jdbcType=VARCHAR }
,#{ cxxxjg , jdbcType=VARCHAR }
)
</insert>
<!--查询用户照片--> <!--查询用户照片-->
<select id="selectUserZpByUserId" resultType="com.xzxtshiro.pojo.SysUserZp"> <select id="selectUserZpByUserId" resultType="com.xzxtshiro.pojo.SysUserZp">
......
package com.xzxtshiro.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author jing
* @date 2021/9/26 -- 16:57
*/
@Data
@ApiModel(value = "SysGnsyrz", description = "功能使用日志")
public class SysGnsyrz {
//日志流水号
@ApiModelProperty(value = "日志流水号")
private String rzlsh;
//访问时间
@ApiModelProperty(value = "访问时间")
private String fwsj;
private String fwsjkssj;
private String fwsjjssj;
//应用名称
@ApiModelProperty(value = "应用名称")
private String yymcJyqk;
//用户_公民身份号码
@ApiModelProperty(value = "用户_公民身份号码")
private String yhGmsfhm;
//用户IP
@ApiModelProperty(value = "用户IP")
private String yhIp;
//用户单位公安机关机构代码
@ApiModelProperty(value = "用户单位公安机关机构代码")
private String yhdwGajgjgdm;
//用户单位名称
@ApiModelProperty(value = "用户单位名称")
private String yhdwGajgmc;
//操作类型代码
@ApiModelProperty(value = "操作类型代码")
private String czlxdm;
//操作信息
@ApiModelProperty(value = "操作信息")
private String czxxJyqk;
private String czxxParam;
//应用名称代码
@ApiModelProperty(value = "应用名称代码")
private String yymcdm;
//业务编号类型代码
@ApiModelProperty(value = "业务编号类型代码")
private String ywbhlxdm;
//业务编号
@ApiModelProperty(value = "业务编号")
private String ywbh;
//用户_姓名
@ApiModelProperty(value = "用户_姓名")
private String yhXm;
//查询内容类别代码
@ApiModelProperty(value = "查询内容类别代码")
private String cxnrlbdm;
//查询内容编号
@ApiModelProperty(value = "查询内容编号")
private String cxnrbh;
//操作(查询)信息结果
@ApiModelProperty(value = "操作(查询)信息结果")
private String cxxxjg;
/**
* 登记时间
*/
@ApiModelProperty(value = "登记时间")
private String djsj;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private String gxsj;
/**
* 信息删除_判断标识/1-是,0-否/CODE_IF
*/
@ApiModelProperty(value = "信息删除_判断标识")
private String xxscPdbz;
/**
* 信息登记单位_公安机关机构代码/采用GA 380《全国公安机关机构代码编码规则》统一编制的代码/CODE_GXS
*/
@ApiModelProperty(value = "信息登记单位_公安机关机构代码")
private String xxdjdwGajgjgdm;
/**
* 信息登记单位_公安机关名称
*/
@ApiModelProperty(value = "信息登记单位_公安机关名称")
private String xxdjdwGajgmc;
/**
* 信息登记人员_公民身份号码/符合GB 11643《公民身份号码》
*/
@ApiModelProperty(value = "信息登记人员_公民身份号码")
private String xxdjryGmsfhm;
/**
* 信息登记人员_联系电话
*/
@ApiModelProperty(value = "信息登记人员_联系电话")
private String xxdjryLxdh;
/**
* 信息登记人员_姓名
*/
@ApiModelProperty(value = "信息登记人员_姓名")
private String xxdjryXm;
/**
* 信息操作单位_公安机关机构代码/采用GA 380《全国公安机关机构代码编码规则》统一编制的代码/CODE_GXS
*/
@ApiModelProperty(value = "信息操作单位_公安机关机构代码")
private String xxczdwGajgjgdm;
/**
* 信息操作单位_公安机关名称
*/
@ApiModelProperty(value = "信息操作单位_公安机关名称")
private String xxczdwGajgmc;
/**
* 信息操作人员_公民身份号码/符合GB 11643《公民身份号码》
*/
@ApiModelProperty(value = "信息操作人员_公民身份号码")
private String xxczryGmsfhm;
/**
* 信息操作人员_联系电话
*/
@ApiModelProperty(value = "信息操作人员_联系电话")
private String xxczryLxdh;
/**
* 信息操作人员_姓名
*/
@ApiModelProperty(value = "信息操作人员_姓名")
private String xxczryXm;
/**
* 信息入部库时间
*/
@ApiModelProperty(value = "信息入部库时间")
private String xxrbksj;
/**
* 信息入省库时间
*/
@ApiModelProperty(value = "信息入省库时间")
private String xxrsksj;
/**
* 信息来源描述
*/
@ApiModelProperty(value = "信息来源描述")
private String xxlyms;
/**
* 信息入部库_判断标识/1-是,0-否/CODE_IF
*/
@ApiModelProperty(value = "信息入部库_判断标识")
private String xxrbkPdbz;
/**
* 信息入省库_判断标识/1-是,0-否/CODE_IF
*/
@ApiModelProperty(value = "信息入省库_判断标识")
private String xxrskPdbz;
@ApiModelProperty(value = "第几页")
private int page;
@ApiModelProperty(value = "每页行数")
private int rows;
private int limit;
@ApiModelProperty(value = "开始行")
private int begin;
@ApiModelProperty(value = "结束行")
private int end;
}
...@@ -9,11 +9,18 @@ import org.apache.shiro.authc.LockedAccountException; ...@@ -9,11 +9,18 @@ import org.apache.shiro.authc.LockedAccountException;
import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UnknownAccountException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.File; import java.io.File;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.UUID;
/** /**
* @author liuys * @author liuys
...@@ -338,6 +345,8 @@ public class SysUserServiceImpl implements SysUserService { ...@@ -338,6 +345,8 @@ public class SysUserServiceImpl implements SysUserService {
int a = userDao.deleteUserById(user.getId()); int a = userDao.deleteUserById(user.getId());
//2.删除用户和角色的绑定关系 //2.删除用户和角色的绑定关系
int b = userDao.deleteSysUserRoleByUserId(user.getId()); int b = userDao.deleteSysUserRoleByUserId(user.getId());
insertDeleteUserSyslog(dlUser,
"用户:" + dlUser.getTrueName() + "操作了删除了用户");
if (a + b >= 2) { if (a + b >= 2) {
return 1; return 1;
}else{ }else{
...@@ -345,6 +354,114 @@ public class SysUserServiceImpl implements SysUserService { ...@@ -345,6 +354,114 @@ public class SysUserServiceImpl implements SysUserService {
} }
} }
private void insertDeleteUserSyslog(SysUser dlUser, String czxxJyqk) {
String ip = getIp();
// String ip = (String) request.getSession().getAttribute("userIp");
if (dlUser != null) {
insertSysLog(dlUser, ip, "04",
"用户管理-删除用户", czxxJyqk);
}
}
private String getIp() {
HttpServletRequest request = ((ServletRequestAttributes)
RequestContextHolder.getRequestAttributes()).getRequest();
String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
//有些网络通过多层代理,那么获取到的ip就会有多个,一般都是通过逗号(,)分割开来,并且第一个ip为客户端的真实IP
if (ip != null && ip.length() != 0) {
ip = ip.split(",")[0];
}
if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip)) {
try {
ip = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
return ip;
}
private void insertSysLog(SysUser user, String ip,
String czxxLbdm,
String yymcJyqk,String czxxJyqk) {
//拼接日志流水号
//公安机关机构代码(前6位)
String qlw = user.getUnitcode().substring(0, 6);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
//8位年月日
String sjdate = formatter.format(new Date());
String lsh = getOrderIdByUuid();
String yrzlsh = qlw + sjdate + lsh;
String rzlsh = yrzlsh.replace(" ", "");
SysGnsyrz sysGnsyrz = new SysGnsyrz();
sysGnsyrz.setRzlsh(rzlsh);
sysGnsyrz.setYymcJyqk(yymcJyqk);
sysGnsyrz.setYhGmsfhm(user.getIdentitycard());
// 1.6新增字段
sysGnsyrz.setYhXm(user.getTrueName());
sysGnsyrz.setYymcdm("");
sysGnsyrz.setYwbhlxdm("");
sysGnsyrz.setYwbh("");
sysGnsyrz.setCxnrlbdm("");
sysGnsyrz.setCxnrbh("");
sysGnsyrz.setCxxxjg("");
//==========
sysGnsyrz.setYhIp(ip);
sysGnsyrz.setYhdwGajgjgdm(user.getUnitcode());
sysGnsyrz.setYhdwGajgmc(user.getUnitname());
sysGnsyrz.setCzlxdm(czxxLbdm);
sysGnsyrz.setCzxxJyqk(czxxJyqk);
sysGnsyrz.setXxscPdbz("0");
sysGnsyrz.setXxdjdwGajgjgdm(user.getUnitcode());
sysGnsyrz.setXxdjdwGajgmc(user.getUnitname());
sysGnsyrz.setXxdjryXm(user.getTrueName());
sysGnsyrz.setXxdjryGmsfhm(user.getIdentitycard());
sysGnsyrz.setXxdjryLxdh(user.getTelephone());
sysGnsyrz.setXxczdwGajgjgdm(user.getUnitcode());
sysGnsyrz.setXxczdwGajgmc(user.getUnitname());
sysGnsyrz.setXxczryXm(user.getTrueName());
sysGnsyrz.setXxczryGmsfhm(user.getIdentitycard());
sysGnsyrz.setXxlyms("系统功能日志");
try {
userDao.addGnsyrz(sysGnsyrz);
} catch (Exception e) {
e.printStackTrace();
}
}
private static String getOrderIdByUuid() {
//最大支持1-9个集群机器部署
int machineId = 1;
int hashCodeV = UUID.randomUUID().toString().hashCode();
//有可能是负数
if (hashCodeV < 0) {
hashCodeV = -hashCodeV;
}
// 0 代表前面补充0
// 4 代表长度为4
// d 代表参数为正数型
return machineId + String.format("%015d", hashCodeV);
}
@Override @Override
public SysUser loadByUsername(String username) { public SysUser loadByUsername(String username) {
SysUser user = new SysUser(); SysUser user = new SysUser();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment