whyclxw
2024-04-28 b25b814a949d2065a61fd3167206ffb51a57af65
src/main/java/com/whyc/service/UserService.java
@@ -1,5 +1,6 @@
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;
@@ -87,12 +88,8 @@
            if (userOfMobilephone.getUId()!=0) {
                return new Response<>().set(1, false, "手机号已存在");
            }
            String password = "";
            try {
                password = URLDecoder.decode(user.getUpassword(), "utf-8");
            }catch (UnsupportedEncodingException e){
                e.printStackTrace();
            }
            //String password = URLDecoder.decode(user.getUpassword(), "utf-8");
            String password = user.getUpassword();
            String[] dataArr = RSAUtil.decryptFront(password, RSAUtil.fontSeparator);
            String pwd = RSAUtil.encrypt(dataArr[0],RSAUtil.getPublicKey());
            user.setUpassword(pwd);
@@ -125,12 +122,9 @@
            if (userOfMobilephone.getUId()!=0) {
                return new Response<>().set(1, false, "手机号已存在");
            }
            String password = "";
            try {
                password = URLDecoder.decode(user.getUpassword(), "utf-8");
            }catch (UnsupportedEncodingException e){
                e.printStackTrace();
            }
            //String password = URLDecoder.decode(user.getUpassword(), "utf-8");
            String password = user.getUpassword();
            String[] dataArr = RSAUtil.decryptFront(password, RSAUtil.fontSeparator);
            String pwd = RSAUtil.encrypt(dataArr[0],RSAUtil.getPublicKey());
            user.setUpassword(pwd);
@@ -163,7 +157,7 @@
    }
    public List<UserInf> getAll() {
        List<UserInf> users = userMapper.selectList(null);
        List<UserInf> users = userMapper.selectList((Wrapper<UserInf>) ActionUtil.objeNull);
        return users;
    }
@@ -177,8 +171,8 @@
    public Response update(UserInf user) {
        //非系统管理员用户,禁止修改访问ip和访问时间
        if(user.getUId()!=1 && user.getUName().equals("sys_admin")){
            user.setVisitIp(null);
            user.setVisitTime(null);
            user.setVisitIp((String) ActionUtil.objeNull);
            user.setVisitTime((String) ActionUtil.objeNull);
        }
        UserInf userFound = userBridgeService.findPasswordByUserName(user.getUName());
        UserInf userOfMobilephone = userBridgeService.findUserByMobilephone(user.getUMobilephone());
@@ -200,9 +194,9 @@
    public boolean delete(int id) {
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.eq("uId", id);
        //删除对应的包机组
        //删除对应的包机组记录
        baoJiGroupUserMapper.delete(wrapper);
        //删除对应的权限组
        //删除对应的权限组记录
        permitMapper.delete(wrapper);
        //删除用户
        return userMapper.deleteById(id) > 0;
@@ -213,12 +207,12 @@
        ServletContext application = ActionUtil.getApplication();
        //查看全局中存储的users的Map的key-value集合
        Map<String, UserClient> map = (Map) application.getAttribute("users");
        if (map == null) {
        if (map == ActionUtil.objeNull) {
            map = new HashMap<String, UserClient>();
        } else {
            //如果集合中有值,则获取当前用户对应的用户信息,key为用户名username,Value为用户名,存储的时间
            UserClient client = map.get(user.getUName());
            if (client != null) { //已存在
            if (client != ActionUtil.objeNull) { //已存在
                map.remove(user.getUName());
            }
        }
@@ -277,6 +271,7 @@
        String pwd = RSAUtil.encrypt(newPwd,RSAUtil.getPublicKey());
        user.setUpassword(pwd);
        user.setUSnId(pwd);
        user.setPasswordUpdateTime(new Date());
        if (userMapper.updateById(user)>0){
            return new Response().set(1,"修改成功");
        }else {
@@ -295,30 +290,30 @@
        }
        //更新新密码
        UpdateWrapper<UserInf> updateWrapper = Wrappers.update();
        updateWrapper.set("upassword",RSAUtil.encrypt(passwordNew,RSAUtil.getPublicKey())).eq("uName",userInf.getUName());
        userMapper.update(null,updateWrapper);
        updateWrapper.set("upassword",RSAUtil.encrypt(passwordNew,RSAUtil.getPublicKey())).set("password_update_time",new Date()).eq("uName",userInf.getUName());
        userMapper.update((UserInf) ActionUtil.objeNull,updateWrapper);
        return new Response().set(1,true,"密码修改成功");
    }
    /**锁定账号*/
    public void lock(Long uId) {
        UpdateWrapper<UserInf> wrapper = Wrappers.update();
        wrapper.set("status", UserConstant.ACCOUNT_STATUS_LOCK_FAIL.getValue()).eq("uId",uId);
        userMapper.update(null,wrapper);
        wrapper.set("status", UserConstant.ACCOUNT_STATUS_LOCK_FAIL.getValue()).set("lock_time",new Date()).eq("uId",uId);
        userMapper.update((UserInf) ActionUtil.objeNull,wrapper);
    }
    /**更新登录时间*/
    public void updateLoginTime(Long uId) {
        UpdateWrapper<UserInf> wrapper = Wrappers.update();
        wrapper.set("last_login_time", new Date()).eq("uId",uId);
        userMapper.update(null,wrapper);
        userMapper.update((UserInf) ActionUtil.objeNull,wrapper);
    }
    public void updateExpiredAccount() {
        UpdateWrapper<UserInf> wrapper = Wrappers.update();
        wrapper.set("status",UserConstant.ACCOUNT_STATUS_CANCEL.getValue()).eq("type",UserConstant.ACCOUNT_TYPE_TEMP.getValue()).gt("expiration_time",new Date());
        userMapper.update(null,wrapper);
        userMapper.update((UserInf) ActionUtil.objeNull,wrapper);
    }
    public void unLock() {
@@ -326,7 +321,7 @@
        wrapper.set("status", UserConstant.ACCOUNT_STATUS_ACTIVE.getValue()).set("lock_time",null)
                .eq("status",UserConstant.ACCOUNT_STATUS_LOCK_FAIL.getValue())
                .last(" and date_add(lock_time,interval 20 MINUTE)<now() and uId is not null");
        userMapper.update(null,wrapper);
        userMapper.update((UserInf) ActionUtil.objeNull,wrapper);
    }
    public void updateAccountStatus(int status) {
@@ -334,18 +329,18 @@
        wrapper.set("status", status)
                .eq("status",UserConstant.ACCOUNT_STATUS_ACTIVE.getValue())
                .last(" and date_add(last_login_time,interval 3 MONTH)<now() and uId >100");
        userMapper.update(null,wrapper);
        userMapper.update((UserInf) ActionUtil.objeNull,wrapper);
    }
    public void unLock(int uId, int unLockType) {
        UpdateWrapper<UserInf> wrapper = Wrappers.update();
        wrapper.set("status",1).eq("uId",uId);
        if(unLockType==1){
            wrapper.set("lock_time",null);
            wrapper.set("lock_time",ActionUtil.objeNull);
        }else{
            wrapper.set("last_login_time",new Date());
        }
        userMapper.update(null,wrapper);
        userMapper.update((UserInf) ActionUtil.objeNull,wrapper);
    }
    public List<UserInf> searchCS_All2() {
@@ -366,7 +361,7 @@
        query.select("uId","uName","uSnId","upassword","unote","UKey_ID","uRole","password_update_time","status","visit_time","visit_ip")
                .eq("uId",uId).last(" limit 1");
        UserInf userInf = userMapper.selectOne(query);
        if(userInf == null){
        if(userInf == ActionUtil.objeNull){
            response.setMsg("对应的用户不存在");
        }else{
            //判断用户状态
@@ -440,7 +435,7 @@
                session.setAttribute("ip",ActionUtil.getRequest().getRemoteAddr());
                List<UserPermitGroup> permitGroupList = permitMapper.getPermitGroupListByUId(uId);
                if(permitGroupList!=null && permitGroupList.size()>0){
                if(permitGroupList!=ActionUtil.objeNull && permitGroupList.size()>0){
                    session.setAttribute("permits", ActionUtil.tojson(permitGroupList));
                }else{
                    response.setMsg("还未分配权限");
@@ -458,4 +453,8 @@
        }
        return response;
    }
    public void updatePasswordsTo3072(List<UserInf> userListWithNewPwd) {
        userMapper.updatePasswordsTo3072(userListWithNewPwd);
    }
}