Selaa lähdekoodia

数据库检测类

zhangshuling 1 vuosi sitten
vanhempi
commit
7d159690dc

+ 127 - 0
xzl-system/src/main/java/com/xzl/system/domain/SysDataLog.java

@@ -0,0 +1,127 @@
+package com.xzl.system.domain;
+
+import com.xzl.common.annotation.Excel;
+import com.xzl.common.core.domain.BaseEntity;
+
+/**
+ * @ClassName: SysDataLog
+ * @Description: 用于记录用户操作的数据日志
+ * Modification History:
+ * Date                  Author                 Version       Description
+ * ---------------------------------------------------------
+ * 2023/10/18             ZhangShuling      v1.0.0
+ */
+public class SysDataLog extends BaseEntity {
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * 日志主键
+   */
+  @Excel(name = "操作序号", cellType = Excel.ColumnType.NUMERIC)
+  private Long logId;
+
+  @Excel(name = "日志内容")
+  private String logContent;
+
+  @Excel(name = "操作用户ID")
+  private String userId;
+
+  @Excel(name = "操作地址")
+  private String ip;
+
+  @Excel(name = "请求方法")
+  private String method;
+  /**
+   * 请求参数
+   */
+  @Excel(name = "请求参数")
+  private String param;
+
+  /**
+   * 返回参数
+   */
+  @Excel(name = "返回参数")
+  private String result;
+
+  /**
+   * 操作状态(0正常 1异常)
+   */
+  @Excel(name = "状态", readConverterExp = "0=正常,1=异常")
+  private Integer status;
+
+  @Excel(name = "错误消息")
+  private String errorMsg;
+
+
+  public Long getLogId() {
+    return logId;
+  }
+
+  public void setLogId(Long logId) {
+    this.logId = logId;
+  }
+
+  public String getLogContent() {
+    return logContent;
+  }
+
+  public void setLogContent(String logContent) {
+    this.logContent = logContent;
+  }
+
+  public String getUserId() {
+    return userId;
+  }
+
+  public void setUserId(String userId) {
+    this.userId = userId;
+  }
+
+  public String getIp() {
+    return ip;
+  }
+
+  public void setIp(String ip) {
+    this.ip = ip;
+  }
+
+  public String getMethod() {
+    return method;
+  }
+
+  public void setMethod(String method) {
+    this.method = method;
+  }
+
+  public String getParam() {
+    return param;
+  }
+
+  public void setParam(String param) {
+    this.param = param;
+  }
+
+  public String getResult() {
+    return result;
+  }
+
+  public void setResult(String result) {
+    this.result = result;
+  }
+
+  public Integer getStatus() {
+    return status;
+  }
+
+  public void setStatus(Integer status) {
+    this.status = status;
+  }
+
+  public String getErrorMsg() {
+    return errorMsg;
+  }
+
+  public void setErrorMsg(String errorMsg) {
+    this.errorMsg = errorMsg;
+  }
+}

+ 22 - 0
xzl-system/src/main/java/com/xzl/system/mapper/SysDataLogMapper.java

@@ -0,0 +1,22 @@
+package com.xzl.system.mapper;
+
+import com.xzl.system.domain.SysDataLog;
+
+import java.util.List;
+
+/**
+ * 数据操作日志 数据层
+ *
+ * @author xzl
+ */
+public interface SysDataLogMapper {
+  /**
+   * 新增操作日志
+   *
+   * @param dataLog 操作日志对象
+   */
+  void insertDataLog(SysDataLog dataLog);
+
+
+  List<SysDataLog> selectDataLogList(SysDataLog dataLog);
+}

+ 28 - 0
xzl-system/src/main/java/com/xzl/system/service/ISysDataLogService.java

@@ -0,0 +1,28 @@
+package com.xzl.system.service;
+
+import com.xzl.system.domain.SysDataLog;
+
+import java.util.List;
+
+/**
+ * 操作日志 服务层
+ *
+ * @author xzl
+ */
+public interface ISysDataLogService {
+  /**
+   * 新增操作日志
+   *
+   * @param dataLog 操作日志对象
+   */
+  void insertDataLog(SysDataLog dataLog);
+
+  /**
+   * 查询系统操作日志集合
+   *
+   * @param dataLog 操作日志对象
+   * @return 操作日志集合
+   */
+  List<SysDataLog> selectDataLogList(SysDataLog dataLog);
+
+}

+ 52 - 0
xzl-system/src/main/java/com/xzl/system/service/impl/SysDataLogServiceImpl.java

@@ -0,0 +1,52 @@
+package com.xzl.system.service.impl;
+
+import com.xzl.common.core.domain.model.LoginUser;
+import com.xzl.common.utils.SecurityUtils;
+import com.xzl.common.utils.ip.IpUtils;
+import com.xzl.system.domain.SysDataLog;
+import com.xzl.system.mapper.SysDataLogMapper;
+import com.xzl.system.service.ISysDataLogService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * @ClassName: SysDataLogServiceImpl
+ * @Description: 用于
+ * Modification History:
+ * Date                  Author                 Version       Description
+ * ---------------------------------------------------------
+ * 2023/10/18             ZhangShuling      v1.0.0
+ */
+@Service
+public class SysDataLogServiceImpl implements ISysDataLogService {
+
+  private static final Logger logger = LoggerFactory.getLogger(SysDataLogServiceImpl.class);
+
+  @Autowired
+  SysDataLogMapper sysDataLogMapper;
+
+  @Override
+  public void insertDataLog(SysDataLog dataLog) {
+
+
+    // 补充登录用户, IP等公共信息
+    try {
+      LoginUser loginUser = SecurityUtils.getLoginUser();
+      dataLog.setUserId(loginUser.getUserId().toString());
+    } catch (Exception e) {
+      logger.error("获取登录用户异常", e);
+    }
+    dataLog.setIp(IpUtils.getIpAddr());
+    sysDataLogMapper.insertDataLog(dataLog);
+  }
+
+  @Override
+  public List<SysDataLog> selectDataLogList(SysDataLog dataLog) {
+    return sysDataLogMapper.selectDataLogList(dataLog);
+  }
+}

+ 448 - 492
xzl-system/src/main/java/com/xzl/system/service/impl/SysUserServiceImpl.java

@@ -4,6 +4,9 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.validation.Validator;
+
+import com.xzl.system.domain.SysDataLog;
+import com.xzl.system.service.ISysDataLogService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,513 +35,466 @@ import com.xzl.system.service.ISysUserService;
 
 /**
  * 用户 业务层处理
- * 
+ *
  * @author xzl
  */
 @Service
-public class SysUserServiceImpl implements ISysUserService
-{
-    private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
-
-    @Autowired
-    private SysUserMapper userMapper;
-
-    @Autowired
-    private SysRoleMapper roleMapper;
-
-    @Autowired
-    private SysPostMapper postMapper;
-
-    @Autowired
-    private SysUserRoleMapper userRoleMapper;
-
-    @Autowired
-    private SysUserPostMapper userPostMapper;
-
-    @Autowired
-    private ISysConfigService configService;
-
-    @Autowired
-    protected Validator validator;
-
-    /**
-     * 根据条件分页查询用户列表
-     * 
-     * @param user 用户信息
-     * @return 用户信息集合信息
-     */
-    @Override
-    @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectUserList(SysUser user)
-    {
-        return userMapper.selectUserList(user);
-    }
-
-    /**
-     * 根据条件分页查询已分配用户角色列表
-     * 
-     * @param user 用户信息
-     * @return 用户信息集合信息
-     */
-    @Override
-    @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectAllocatedList(SysUser user)
-    {
-        return userMapper.selectAllocatedList(user);
-    }
-
-    /**
-     * 根据条件分页查询未分配用户角色列表
-     * 
-     * @param user 用户信息
-     * @return 用户信息集合信息
-     */
-    @Override
-    @DataScope(deptAlias = "d", userAlias = "u")
-    public List<SysUser> selectUnallocatedList(SysUser user)
-    {
-        return userMapper.selectUnallocatedList(user);
-    }
-
-    /**
-     * 通过用户名查询用户
-     * 
-     * @param userName 用户名
-     * @return 用户对象信息
-     */
-    @Override
-    public SysUser selectUserByUserName(String userName)
-    {
-        return userMapper.selectUserByUserName(userName);
-    }
-
-    /**
-     * 通过用户ID查询用户
-     * 
-     * @param userId 用户ID
-     * @return 用户对象信息
-     */
-    @Override
-    public SysUser selectUserById(Long userId)
-    {
-        return userMapper.selectUserById(userId);
-    }
-
-    /**
-     * 查询用户所属角色组
-     * 
-     * @param userName 用户名
-     * @return 结果
-     */
-    @Override
-    public String selectUserRoleGroup(String userName)
-    {
-        List<SysRole> list = roleMapper.selectRolesByUserName(userName);
-        if (CollectionUtils.isEmpty(list))
-        {
-            return StringUtils.EMPTY;
-        }
-        return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(","));
-    }
-
-    /**
-     * 查询用户所属岗位组
-     * 
-     * @param userName 用户名
-     * @return 结果
-     */
-    @Override
-    public String selectUserPostGroup(String userName)
-    {
-        List<SysPost> list = postMapper.selectPostsByUserName(userName);
-        if (CollectionUtils.isEmpty(list))
-        {
-            return StringUtils.EMPTY;
-        }
-        return list.stream().map(SysPost::getPostName).collect(Collectors.joining(","));
-    }
-
-    /**
-     * 校验用户名称是否唯一
-     * 
-     * @param user 用户信息
-     * @return 结果
-     */
-    @Override
-    public boolean checkUserNameUnique(SysUser user)
-    {
-        Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
-        SysUser info = userMapper.checkUserNameUnique(user.getUserName());
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
-        {
-            return UserConstants.NOT_UNIQUE;
-        }
-        return UserConstants.UNIQUE;
-    }
-
-    /**
-     * 校验手机号码是否唯一
-     *
-     * @param user 用户信息
-     * @return
-     */
-    @Override
-    public boolean checkPhoneUnique(SysUser user)
-    {
-        Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
-        SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
-        {
-            return UserConstants.NOT_UNIQUE;
-        }
-        return UserConstants.UNIQUE;
-    }
-
-    /**
-     * 校验email是否唯一
-     *
-     * @param user 用户信息
-     * @return
-     */
-    @Override
-    public boolean checkEmailUnique(SysUser user)
-    {
-        Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
-        SysUser info = userMapper.checkEmailUnique(user.getEmail());
-        if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
-        {
-            return UserConstants.NOT_UNIQUE;
-        }
-        return UserConstants.UNIQUE;
-    }
-
-    /**
-     * 校验用户是否允许操作
-     * 
-     * @param user 用户信息
-     */
-    @Override
-    public void checkUserAllowed(SysUser user)
-    {
-        if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin())
-        {
-            throw new ServiceException("不允许操作超级管理员用户");
-        }
+public class SysUserServiceImpl implements ISysUserService {
+  private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
+
+  @Autowired
+  private SysUserMapper userMapper;
+
+  @Autowired
+  private SysRoleMapper roleMapper;
+
+  @Autowired
+  private SysPostMapper postMapper;
+
+  @Autowired
+  private SysUserRoleMapper userRoleMapper;
+
+  @Autowired
+  private SysUserPostMapper userPostMapper;
+
+  @Autowired
+  private ISysConfigService configService;
+
+  @Autowired
+  protected Validator validator;
+
+
+  @Autowired
+  private ISysDataLogService dataLogService;
+
+  /**
+   * 根据条件分页查询用户列表
+   *
+   * @param user 用户信息
+   * @return 用户信息集合信息
+   */
+  @Override
+  @DataScope(deptAlias = "d", userAlias = "u")
+  public List<SysUser> selectUserList(SysUser user) {
+    SysDataLog dataLog = new SysDataLog();
+    dataLog.setLogContent("查询用户信息 ...");
+    dataLogService.insertDataLog(dataLog);
+    return userMapper.selectUserList(user);
+  }
+
+  /**
+   * 根据条件分页查询已分配用户角色列表
+   *
+   * @param user 用户信息
+   * @return 用户信息集合信息
+   */
+  @Override
+  @DataScope(deptAlias = "d", userAlias = "u")
+  public List<SysUser> selectAllocatedList(SysUser user) {
+    return userMapper.selectAllocatedList(user);
+  }
+
+  /**
+   * 根据条件分页查询未分配用户角色列表
+   *
+   * @param user 用户信息
+   * @return 用户信息集合信息
+   */
+  @Override
+  @DataScope(deptAlias = "d", userAlias = "u")
+  public List<SysUser> selectUnallocatedList(SysUser user) {
+    return userMapper.selectUnallocatedList(user);
+  }
+
+  /**
+   * 通过用户名查询用户
+   *
+   * @param userName 用户名
+   * @return 用户对象信息
+   */
+  @Override
+  public SysUser selectUserByUserName(String userName) {
+    return userMapper.selectUserByUserName(userName);
+  }
+
+  /**
+   * 通过用户ID查询用户
+   *
+   * @param userId 用户ID
+   * @return 用户对象信息
+   */
+  @Override
+  public SysUser selectUserById(Long userId) {
+    return userMapper.selectUserById(userId);
+  }
+
+  /**
+   * 查询用户所属角色组
+   *
+   * @param userName 用户名
+   * @return 结果
+   */
+  @Override
+  public String selectUserRoleGroup(String userName) {
+    List<SysRole> list = roleMapper.selectRolesByUserName(userName);
+    if (CollectionUtils.isEmpty(list)) {
+      return StringUtils.EMPTY;
     }
-
-    /**
-     * 校验用户是否有数据权限
-     * 
-     * @param userId 用户id
-     */
-    @Override
-    public void checkUserDataScope(Long userId)
-    {
-        if (!SysUser.isAdmin(SecurityUtils.getUserId()))
-        {
-            SysUser user = new SysUser();
-            user.setUserId(userId);
-            List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
-            if (StringUtils.isEmpty(users))
-            {
-                throw new ServiceException("没有权限访问用户数据!");
-            }
-        }
+    return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(","));
+  }
+
+  /**
+   * 查询用户所属岗位组
+   *
+   * @param userName 用户名
+   * @return 结果
+   */
+  @Override
+  public String selectUserPostGroup(String userName) {
+    List<SysPost> list = postMapper.selectPostsByUserName(userName);
+    if (CollectionUtils.isEmpty(list)) {
+      return StringUtils.EMPTY;
     }
-
-    /**
-     * 新增保存用户信息
-     * 
-     * @param user 用户信息
-     * @return 结果
-     */
-    @Override
-    @Transactional
-    public int insertUser(SysUser user)
-    {
-        // 新增用户信息
-        int rows = userMapper.insertUser(user);
-        // 新增用户岗位关联
-        insertUserPost(user);
-        // 新增用户与角色管理
-        insertUserRole(user);
-        return rows;
+    return list.stream().map(SysPost::getPostName).collect(Collectors.joining(","));
+  }
+
+  /**
+   * 校验用户名称是否唯一
+   *
+   * @param user 用户信息
+   * @return 结果
+   */
+  @Override
+  public boolean checkUserNameUnique(SysUser user) {
+    Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+    SysUser info = userMapper.checkUserNameUnique(user.getUserName());
+    if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
+      return UserConstants.NOT_UNIQUE;
     }
-
-    /**
-     * 注册用户信息
-     * 
-     * @param user 用户信息
-     * @return 结果
-     */
-    @Override
-    public boolean registerUser(SysUser user)
-    {
-        return userMapper.insertUser(user) > 0;
+    return UserConstants.UNIQUE;
+  }
+
+  /**
+   * 校验手机号码是否唯一
+   *
+   * @param user 用户信息
+   * @return
+   */
+  @Override
+  public boolean checkPhoneUnique(SysUser user) {
+    Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+    SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
+    if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
+      return UserConstants.NOT_UNIQUE;
     }
-
-    /**
-     * 修改保存用户信息
-     * 
-     * @param user 用户信息
-     * @return 结果
-     */
-    @Override
-    @Transactional
-    public int updateUser(SysUser user)
-    {
-        Long userId = user.getUserId();
-        // 删除用户与角色关联
-        userRoleMapper.deleteUserRoleByUserId(userId);
-        // 新增用户与角色管理
-        insertUserRole(user);
-        // 删除用户与岗位关联
-        userPostMapper.deleteUserPostByUserId(userId);
-        // 新增用户与岗位管理
-        insertUserPost(user);
-        return userMapper.updateUser(user);
-    }
-
-    /**
-     * 用户授权角色
-     * 
-     * @param userId 用户ID
-     * @param roleIds 角色组
-     */
-    @Override
-    @Transactional
-    public void insertUserAuth(Long userId, Long[] roleIds)
-    {
-        userRoleMapper.deleteUserRoleByUserId(userId);
-        insertUserRole(userId, roleIds);
+    return UserConstants.UNIQUE;
+  }
+
+  /**
+   * 校验email是否唯一
+   *
+   * @param user 用户信息
+   * @return
+   */
+  @Override
+  public boolean checkEmailUnique(SysUser user) {
+    Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
+    SysUser info = userMapper.checkEmailUnique(user.getEmail());
+    if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) {
+      return UserConstants.NOT_UNIQUE;
     }
-
-    /**
-     * 修改用户状态
-     * 
-     * @param user 用户信息
-     * @return 结果
-     */
-    @Override
-    public int updateUserStatus(SysUser user)
-    {
-        return userMapper.updateUser(user);
+    return UserConstants.UNIQUE;
+  }
+
+  /**
+   * 校验用户是否允许操作
+   *
+   * @param user 用户信息
+   */
+  @Override
+  public void checkUserAllowed(SysUser user) {
+    if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) {
+      throw new ServiceException("不允许操作超级管理员用户");
     }
-
-    /**
-     * 修改用户基本信息
-     * 
-     * @param user 用户信息
-     * @return 结果
-     */
-    @Override
-    public int updateUserProfile(SysUser user)
-    {
-        return userMapper.updateUser(user);
+  }
+
+  /**
+   * 校验用户是否有数据权限
+   *
+   * @param userId 用户id
+   */
+  @Override
+  public void checkUserDataScope(Long userId) {
+    if (!SysUser.isAdmin(SecurityUtils.getUserId())) {
+      SysUser user = new SysUser();
+      user.setUserId(userId);
+      List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user);
+      if (StringUtils.isEmpty(users)) {
+        throw new ServiceException("没有权限访问用户数据!");
+      }
     }
-
-    /**
-     * 修改用户头像
-     * 
-     * @param userName 用户名
-     * @param avatar 头像地址
-     * @return 结果
-     */
-    @Override
-    public boolean updateUserAvatar(String userName, String avatar)
-    {
-        return userMapper.updateUserAvatar(userName, avatar) > 0;
+  }
+
+  /**
+   * 新增保存用户信息
+   *
+   * @param user 用户信息
+   * @return 结果
+   */
+  @Override
+  @Transactional
+  public int insertUser(SysUser user) {
+    // 新增用户信息
+    int rows = userMapper.insertUser(user);
+    // 新增用户岗位关联
+    insertUserPost(user);
+    // 新增用户与角色管理
+    insertUserRole(user);
+    return rows;
+  }
+
+  /**
+   * 注册用户信息
+   *
+   * @param user 用户信息
+   * @return 结果
+   */
+  @Override
+  public boolean registerUser(SysUser user) {
+    return userMapper.insertUser(user) > 0;
+  }
+
+  /**
+   * 修改保存用户信息
+   *
+   * @param user 用户信息
+   * @return 结果
+   */
+  @Override
+  @Transactional
+  public int updateUser(SysUser user) {
+    Long userId = user.getUserId();
+    // 删除用户与角色关联
+    userRoleMapper.deleteUserRoleByUserId(userId);
+    // 新增用户与角色管理
+    insertUserRole(user);
+    // 删除用户与岗位关联
+    userPostMapper.deleteUserPostByUserId(userId);
+    // 新增用户与岗位管理
+    insertUserPost(user);
+    return userMapper.updateUser(user);
+  }
+
+  /**
+   * 用户授权角色
+   *
+   * @param userId  用户ID
+   * @param roleIds 角色组
+   */
+  @Override
+  @Transactional
+  public void insertUserAuth(Long userId, Long[] roleIds) {
+    userRoleMapper.deleteUserRoleByUserId(userId);
+    insertUserRole(userId, roleIds);
+  }
+
+  /**
+   * 修改用户状态
+   *
+   * @param user 用户信息
+   * @return 结果
+   */
+  @Override
+  public int updateUserStatus(SysUser user) {
+    return userMapper.updateUser(user);
+  }
+
+  /**
+   * 修改用户基本信息
+   *
+   * @param user 用户信息
+   * @return 结果
+   */
+  @Override
+  public int updateUserProfile(SysUser user) {
+    return userMapper.updateUser(user);
+  }
+
+  /**
+   * 修改用户头像
+   *
+   * @param userName 用户名
+   * @param avatar   头像地址
+   * @return 结果
+   */
+  @Override
+  public boolean updateUserAvatar(String userName, String avatar) {
+    return userMapper.updateUserAvatar(userName, avatar) > 0;
+  }
+
+  /**
+   * 重置用户密码
+   *
+   * @param user 用户信息
+   * @return 结果
+   */
+  @Override
+  public int resetPwd(SysUser user) {
+    return userMapper.updateUser(user);
+  }
+
+  /**
+   * 重置用户密码
+   *
+   * @param userName 用户名
+   * @param password 密码
+   * @return 结果
+   */
+  @Override
+  public int resetUserPwd(String userName, String password) {
+    return userMapper.resetUserPwd(userName, password);
+  }
+
+  /**
+   * 新增用户角色信息
+   *
+   * @param user 用户对象
+   */
+  public void insertUserRole(SysUser user) {
+    this.insertUserRole(user.getUserId(), user.getRoleIds());
+  }
+
+  /**
+   * 新增用户岗位信息
+   *
+   * @param user 用户对象
+   */
+  public void insertUserPost(SysUser user) {
+    Long[] posts = user.getPostIds();
+    if (StringUtils.isNotEmpty(posts)) {
+      // 新增用户与岗位管理
+      List<SysUserPost> list = new ArrayList<SysUserPost>(posts.length);
+      for (Long postId : posts) {
+        SysUserPost up = new SysUserPost();
+        up.setUserId(user.getUserId());
+        up.setPostId(postId);
+        list.add(up);
+      }
+      userPostMapper.batchUserPost(list);
     }
-
-    /**
-     * 重置用户密码
-     * 
-     * @param user 用户信息
-     * @return 结果
-     */
-    @Override
-    public int resetPwd(SysUser user)
-    {
-        return userMapper.updateUser(user);
+  }
+
+  /**
+   * 新增用户角色信息
+   *
+   * @param userId  用户ID
+   * @param roleIds 角色组
+   */
+  public void insertUserRole(Long userId, Long[] roleIds) {
+    if (StringUtils.isNotEmpty(roleIds)) {
+      // 新增用户与角色管理
+      List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length);
+      for (Long roleId : roleIds) {
+        SysUserRole ur = new SysUserRole();
+        ur.setUserId(userId);
+        ur.setRoleId(roleId);
+        list.add(ur);
+      }
+      userRoleMapper.batchUserRole(list);
     }
-
-    /**
-     * 重置用户密码
-     * 
-     * @param userName 用户名
-     * @param password 密码
-     * @return 结果
-     */
-    @Override
-    public int resetUserPwd(String userName, String password)
-    {
-        return userMapper.resetUserPwd(userName, password);
+  }
+
+  /**
+   * 通过用户ID删除用户
+   *
+   * @param userId 用户ID
+   * @return 结果
+   */
+  @Override
+  @Transactional
+  public int deleteUserById(Long userId) {
+    // 删除用户与角色关联
+    userRoleMapper.deleteUserRoleByUserId(userId);
+    // 删除用户与岗位表
+    userPostMapper.deleteUserPostByUserId(userId);
+    return userMapper.deleteUserById(userId);
+  }
+
+  /**
+   * 批量删除用户信息
+   *
+   * @param userIds 需要删除的用户ID
+   * @return 结果
+   */
+  @Override
+  @Transactional
+  public int deleteUserByIds(Long[] userIds) {
+    for (Long userId : userIds) {
+      checkUserAllowed(new SysUser(userId));
+      checkUserDataScope(userId);
     }
-
-    /**
-     * 新增用户角色信息
-     * 
-     * @param user 用户对象
-     */
-    public void insertUserRole(SysUser user)
-    {
-        this.insertUserRole(user.getUserId(), user.getRoleIds());
+    // 删除用户与角色关联
+    userRoleMapper.deleteUserRole(userIds);
+    // 删除用户与岗位关联
+    userPostMapper.deleteUserPost(userIds);
+    return userMapper.deleteUserByIds(userIds);
+  }
+
+  /**
+   * 导入用户数据
+   *
+   * @param userList        用户数据列表
+   * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
+   * @param operName        操作用户
+   * @return 结果
+   */
+  @Override
+  public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) {
+    if (StringUtils.isNull(userList) || userList.size() == 0) {
+      throw new ServiceException("导入用户数据不能为空!");
     }
-
-    /**
-     * 新增用户岗位信息
-     * 
-     * @param user 用户对象
-     */
-    public void insertUserPost(SysUser user)
-    {
-        Long[] posts = user.getPostIds();
-        if (StringUtils.isNotEmpty(posts))
-        {
-            // 新增用户与岗位管理
-            List<SysUserPost> list = new ArrayList<SysUserPost>(posts.length);
-            for (Long postId : posts)
-            {
-                SysUserPost up = new SysUserPost();
-                up.setUserId(user.getUserId());
-                up.setPostId(postId);
-                list.add(up);
-            }
-            userPostMapper.batchUserPost(list);
+    int successNum = 0;
+    int failureNum = 0;
+    StringBuilder successMsg = new StringBuilder();
+    StringBuilder failureMsg = new StringBuilder();
+    String password = configService.selectConfigByKey("sys.user.initPassword");
+    for (SysUser user : userList) {
+      try {
+        // 验证是否存在这个用户
+        SysUser u = userMapper.selectUserByUserName(user.getUserName());
+        if (StringUtils.isNull(u)) {
+          BeanValidators.validateWithException(validator, user);
+          user.setPassword(SecurityUtils.encryptPassword(password));
+          user.setCreateBy(operName);
+          userMapper.insertUser(user);
+          successNum++;
+          successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
+        } else if (isUpdateSupport) {
+          BeanValidators.validateWithException(validator, user);
+          checkUserAllowed(u);
+          checkUserDataScope(u.getUserId());
+          user.setUserId(u.getUserId());
+          user.setUpdateBy(operName);
+          userMapper.updateUser(user);
+          successNum++;
+          successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
+        } else {
+          failureNum++;
+          failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
         }
+      } catch (Exception e) {
+        failureNum++;
+        String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
+        failureMsg.append(msg + e.getMessage());
+        log.error(msg, e);
+      }
     }
-
-    /**
-     * 新增用户角色信息
-     * 
-     * @param userId 用户ID
-     * @param roleIds 角色组
-     */
-    public void insertUserRole(Long userId, Long[] roleIds)
-    {
-        if (StringUtils.isNotEmpty(roleIds))
-        {
-            // 新增用户与角色管理
-            List<SysUserRole> list = new ArrayList<SysUserRole>(roleIds.length);
-            for (Long roleId : roleIds)
-            {
-                SysUserRole ur = new SysUserRole();
-                ur.setUserId(userId);
-                ur.setRoleId(roleId);
-                list.add(ur);
-            }
-            userRoleMapper.batchUserRole(list);
-        }
-    }
-
-    /**
-     * 通过用户ID删除用户
-     * 
-     * @param userId 用户ID
-     * @return 结果
-     */
-    @Override
-    @Transactional
-    public int deleteUserById(Long userId)
-    {
-        // 删除用户与角色关联
-        userRoleMapper.deleteUserRoleByUserId(userId);
-        // 删除用户与岗位表
-        userPostMapper.deleteUserPostByUserId(userId);
-        return userMapper.deleteUserById(userId);
-    }
-
-    /**
-     * 批量删除用户信息
-     * 
-     * @param userIds 需要删除的用户ID
-     * @return 结果
-     */
-    @Override
-    @Transactional
-    public int deleteUserByIds(Long[] userIds)
-    {
-        for (Long userId : userIds)
-        {
-            checkUserAllowed(new SysUser(userId));
-            checkUserDataScope(userId);
-        }
-        // 删除用户与角色关联
-        userRoleMapper.deleteUserRole(userIds);
-        // 删除用户与岗位关联
-        userPostMapper.deleteUserPost(userIds);
-        return userMapper.deleteUserByIds(userIds);
-    }
-
-    /**
-     * 导入用户数据
-     * 
-     * @param userList 用户数据列表
-     * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据
-     * @param operName 操作用户
-     * @return 结果
-     */
-    @Override
-    public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName)
-    {
-        if (StringUtils.isNull(userList) || userList.size() == 0)
-        {
-            throw new ServiceException("导入用户数据不能为空!");
-        }
-        int successNum = 0;
-        int failureNum = 0;
-        StringBuilder successMsg = new StringBuilder();
-        StringBuilder failureMsg = new StringBuilder();
-        String password = configService.selectConfigByKey("sys.user.initPassword");
-        for (SysUser user : userList)
-        {
-            try
-            {
-                // 验证是否存在这个用户
-                SysUser u = userMapper.selectUserByUserName(user.getUserName());
-                if (StringUtils.isNull(u))
-                {
-                    BeanValidators.validateWithException(validator, user);
-                    user.setPassword(SecurityUtils.encryptPassword(password));
-                    user.setCreateBy(operName);
-                    userMapper.insertUser(user);
-                    successNum++;
-                    successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 导入成功");
-                }
-                else if (isUpdateSupport)
-                {
-                    BeanValidators.validateWithException(validator, user);
-                    checkUserAllowed(u);
-                    checkUserDataScope(u.getUserId());
-                    user.setUserId(u.getUserId());
-                    user.setUpdateBy(operName);
-                    userMapper.updateUser(user);
-                    successNum++;
-                    successMsg.append("<br/>" + successNum + "、账号 " + user.getUserName() + " 更新成功");
-                }
-                else
-                {
-                    failureNum++;
-                    failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUserName() + " 已存在");
-                }
-            }
-            catch (Exception e)
-            {
-                failureNum++;
-                String msg = "<br/>" + failureNum + "、账号 " + user.getUserName() + " 导入失败:";
-                failureMsg.append(msg + e.getMessage());
-                log.error(msg, e);
-            }
-        }
-        if (failureNum > 0)
-        {
-            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
-            throw new ServiceException(failureMsg.toString());
-        }
-        else
-        {
-            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
-        }
-        return successMsg.toString();
+    if (failureNum > 0) {
+      failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+      throw new ServiceException(failureMsg.toString());
+    } else {
+      successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
     }
+    return successMsg.toString();
+  }
 }

+ 52 - 0
xzl-system/src/main/resources/mapper/system/SysDataLogMapper.xml

@@ -0,0 +1,52 @@
+<?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.xzl.system.mapper.SysDataLogMapper">
+
+    <resultMap type="SysDataLog" id="SysDataLogResult">
+        <id property="logId" column="log_id"/>
+        <result property="logContent" column="log_content"/>
+        <result property="method" column="method"/>
+        <result property="userId" column="user_id"/>
+        <result property="ip" column="ip"/>
+        <result property="param" column="param"/>
+        <result property="result" column="result"/>
+        <result property="status" column="status"/>
+        <result property="errorMsg" column="error_msg"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+    <sql id="selectDataLogVo">
+        select log_id, log_content, method, user_id, ip, param, result, status, error_msg, create_time
+        from sys_data_log
+    </sql>
+
+    <insert id="insertDataLog" parameterType="SysDataLog">
+		insert into sys_data_log(log_content, method, user_id, ip, param, result, status, error_msg, create_time)
+        values (#{logContent}, #{method}, #{userId}, #{ip}, #{param}, #{result}, #{status}, #{errorMsg}, sysdate())
+	</insert>
+
+
+    <select id="selectDataLogList" parameterType="SysDataLog" resultMap="SysDataLogResult">
+        <include refid="selectDataLogVo"/>
+        <where>
+            <if test="ip != null and ip != ''">
+                AND ip like concat('%', #{ip}, '%')
+            </if>
+            <if test="userId != null">
+                AND user_id = #{userId}
+            </if>
+            <if test="status != null">
+                AND status = #{status}
+            </if>
+            <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+                AND create_time &gt;= #{params.beginTime}
+            </if>
+            <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+                AND create_time &lt;= #{params.endTime}
+            </if>
+        </where>
+        order by log_id desc
+    </select>
+</mapper>