whyclxw
5 天以前 8c635598000e40edfb3edf5934124ad48d60f62d
src/main/java/com/whyc/service/UserService.java
@@ -1,19 +1,20 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.constant.UserConstant;
import com.whyc.dto.Response;
import com.whyc.dto.UserClient;
import com.whyc.mapper.BaojigroupUsrMapper;
import com.whyc.mapper.PageParamMapper;
import com.whyc.mapper.PermitGroupUserMapper;
import com.whyc.mapper.UserMapper;
import com.whyc.pojo.db_app_sys.PageParam;
import com.whyc.pojo.db_user.User;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
import com.whyc.util.MD5Util;
import com.whyc.util.RSAUtil;
import lombok.extern.slf4j.Slf4j;
@@ -22,9 +23,6 @@
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -32,7 +30,6 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.security.InvalidParameterException;
import java.util.*;
import java.util.stream.Collectors;
@@ -48,6 +45,10 @@
    @Autowired(required = false)
    private PermitGroupUserMapper pergroupUserMapper;
    @Resource
    private PageParamMapper pageParamMapper;
    //查询所有用户信息
    public Response getAllUser(String uname, int pageCurr, int pageSize) {
@@ -76,7 +77,7 @@
        }
        uinf.setCreateTime(new Date());
        int bl=mapper.insert(uinf);
        return new Response().set(1,bl>0);
        return new Response().set(1,bl>0,bl>0?"用户添加成功":"用户添加失败");
    }
    //修改密码
    public Response changeSnId(String uname,String oldSnId, String newSnId) {
@@ -93,8 +94,8 @@
        String newId=newOld[0];
        if(oldId.equals(snId)){
            UpdateWrapper wrapper=new UpdateWrapper();
            wrapper.set("usnid",RSAUtil.encrypt(newId,RSAUtil.getPublicKey()));
            wrapper.eq("uname",uname);
            wrapper.set("pwd",RSAUtil.encrypt(newId,RSAUtil.getPublicKey()));
            wrapper.eq("name",uname);
            int flag=mapper.update(null,wrapper);
            return  new Response().set(1,flag>0,flag>0?"修改成功":"修改失败");
        }else {
@@ -118,8 +119,8 @@
    //重置密码
    public Response resetSnId(int uid ) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("usnid",RSAUtil.encrypt("123456",RSAUtil.getPublicKey()));
        wrapper.eq("uid",uid);
        wrapper.set("pwd",RSAUtil.encrypt("123456",RSAUtil.getPublicKey()));
        wrapper.eq("id",uid);
        int flag=mapper.update(null,wrapper);
        return  new Response().set(1,flag>0,flag>0?"修改成功":"修改失败");
@@ -139,17 +140,17 @@
            if(bl>0){
                //删除权限组下的用户
                UpdateWrapper wrapper1=new UpdateWrapper();
                wrapper1.eq("id",uid);
                wrapper1.eq("uid",uid);
                pergroupUserMapper.delete(wrapper1);
                //删除包机组下的用户
                UpdateWrapper wrapper2=new UpdateWrapper();
                wrapper2.eq("id",uid);
                wrapper2.eq("uid",uid);
                bjgroupUsrMapper.delete(wrapper2);
            }
            return new Response().setII(1,bl>0,bl,"删除成功");
        }
    }
    /*
    public Response login(String uname, String usnId, Integer platFrom, HttpServletRequest request) {
        Response response = new Response();
        String[] dataArr = RSAUtil.decryptFrontP(usnId, RSAUtil.fontSeparator);
@@ -180,7 +181,7 @@
        request.getSession().setAttribute("user", userDB);
        return response.setII(1,true, userDB,"登录成功");
    }
    }*/
    public void logout() {
        Subject subject = SecurityUtils.getSubject();
@@ -295,8 +296,17 @@
        if(uinf.getPhoneNumber()!=null){
            wrapper.set("phone_number",uinf.getPhoneNumber());
        }
        if(uinf.getSex()!=null){
            wrapper.set("sex",uinf.getSex());
        }
        if(uinf.getEmail()!=null){
            wrapper.set("email",uinf.getEmail());
        }
        if(uinf.getRole()!=null){
            wrapper.set("role",uinf.getRole());
        }
        wrapper.eq("id",uinf.getId());
        mapper.update(null,wrapper);
        mapper.update((User) ActionUtil.objeNull,wrapper);
        return new Response().set(1,true,"编辑用户信息成功");
    }
@@ -310,7 +320,19 @@
        User User = mapper.selectOne(queryWrapper);
        return User;
    }
    /**锁定账号*/
    public void lock(Integer uId) {
        UpdateWrapper<User> wrapper = Wrappers.update();
        wrapper.set("status", UserConstant.ACCOUNT_STATUS_LOCK_FAIL.getValue()).set("lock_time",new Date()).eq("uId",uId);
        mapper.update((User) ActionUtil.objeNull,wrapper);
    }
    /**更新登录时间*/
    public void updateLoginTime(Integer uId) {
        UpdateWrapper<User> wrapper = Wrappers.update();
        wrapper.set("last_login_time", new Date()).eq("id",uId);
        mapper.update((User) ActionUtil.objeNull,wrapper);
    }
    // 将所有登陆的用户的信息存到application中
    public void setApplication(User user) {
        ServletContext application = ActionUtil.getApplication();
@@ -331,6 +353,23 @@
        application.setAttribute("users", map);
    }
    //验证密码的时效性
    public int checkPasswordValidity(User uinf) {
        int flag=1;
        //获取系统设置的密码时效(57,15)
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("categoryId",15);
        wrapper.eq("id",57);
        wrapper.last("limit 1");
        PageParam pageParam=pageParamMapper.selectOne(wrapper);
        if(pageParam!=null){
            int dayDifference=ActionUtil.daysBetween(uinf.getPasswordUpdateTime(),new Date());
            if((pageParam.getStatus()>0)&&(dayDifference>pageParam.getStatus())){
                flag= -1;
            }
        }
        return flag;
    }
    public List<User> searchCS_All2() {
        return mapper.searchCS_All2();