Pu Zhibing
9 小时以前 55132b44cd49f2a312a8fb2523ffda35a7485fd7
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
@@ -5,7 +5,9 @@
import com.heredata.hos.model.bucket.Bucket;
import com.stylefeng.guns.config.properties.GunsProperties;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.base.tips.ErrorTip;
import com.stylefeng.guns.core.base.tips.Tip;
import com.stylefeng.guns.core.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.common.annotion.BussinessLog;
import com.stylefeng.guns.core.common.annotion.Permission;
import com.stylefeng.guns.core.common.constant.Const;
@@ -33,9 +35,16 @@
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.transfer.UserDto;
import com.stylefeng.guns.modular.system.util.OssUploadUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.huawei.OBSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.NCOSSUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.QianYunTongConfig;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -80,6 +89,12 @@
    
    @Autowired
    private QianYunTongConfig qianYunTongConfig;
    @Autowired
    private ITCompanyService companyService;
    @Autowired
    private ShiroExtUtil shiroExtUtil;
    /**
@@ -137,7 +152,7 @@
     */
    @RequestMapping("/user_info")
    public String userInfo(Model model) {
        Integer userId = ShiroKit.getUser().getId();
        Integer userId = shiroExtUtil.getUser().getId();
        if (ToolUtil.isEmpty(userId)) {
            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
        }
@@ -166,7 +181,7 @@
        if (!newPwd.equals(rePwd)) {
            throw new GunsException(BizExceptionEnum.TWO_PWD_NOT_MATCH);
        }
        Integer userId = ShiroKit.getUser().getId();
        Integer userId = shiroExtUtil.getUser().getId();
        User user = userService.selectById(userId);
        String oldMd5 = ShiroKit.md5(oldPwd, user.getSalt());
        if (user.getPassword().equals(oldMd5)) {
@@ -200,8 +215,8 @@
            page.setRecords(userService.getUserListPage(page,null, name, beginTime, endTime, deptid));
            return super.packForBT(page);
        } else {
            Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId();
            Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType();
            Integer objectId = Objects.requireNonNull(shiroExtUtil.getUser()).getObjectId();
            Integer roleType = Objects.requireNonNull(shiroExtUtil.getUser()).getRoleType();
            if(roleType == 3){
                // 查询下级分公司账号
@@ -243,12 +258,44 @@
        if (result.hasErrors()) {
            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
        }
        // 判断账号是否重复
        User theUser = userService.getByAccount(user.getAccount());
        if (theUser != null) {
            throw new GunsException(BizExceptionEnum.USER_ALREADY_REG);
        }
        ShiroUser user1 = shiroExtUtil.getUser();
        User user2 = userService.selectById(user1.getId());
        TCompany tCompany = companyService.selectById(user2.getObjectId());
        List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(user.getPhone(), tCompany.getEnterCode());
        Long empId = null;
        Integer empnew = null;
        if(null == userInfoByPhone || userInfoByPhone.size() == 0){
            SaveStaffNodeRequest request1 = new SaveStaffNodeRequest();
            request1.setMobile(user2.getPhone());
            request1.setEntercode(tCompany.getEnterCode());
            request1.setEmpName(user.getName());
            request1.setEmpNickname(user.getName());
            request1.setLoginNo(user.getAccount());
            request1.setEmpSex(user.getSex() == 1 ? "男" : "女");
            request1.setMphone(user.getPhone());
            request1.setEmail(user.getPhone() + "@qyt.com");
            request1.setDeptId(0);
            request1.setPositionId(1);
            request1.setSuperLevel(0);
            request1.setHideMobile(0);
            ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request1);
            if(200 != resultUtil.getStatus()){
                return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
            }
            SaveStaffNode saveStaffNode = resultUtil.getData();
            empId = saveStaffNode.getEmpId();
            empnew = 1;
        }else{
            empId = userInfoByPhone.get(0).getEmpId();
            empnew = 0;
        }
        // 完善账号信息
        user.setSalt(ShiroKit.getRandomSalt(5));
@@ -257,10 +304,13 @@
        user.setCreatetime(new Date());
        User objectUser = UserFactory.createUser(user);
        ShiroUser user1 = ShiroKit.getUser();
        objectUser.setRoleType(user1.getRoleType());
        objectUser.setObjectId(user1.getObjectId());
        objectUser.setPassWordUpdate(new Date());
        objectUser.setEnterId(empId);
        objectUser.setEmpnew(empnew);
        objectUser.setEntercode(tCompany.getEnterCode());
        objectUser.setEnterId(Long.valueOf(tCompany.getEnterCode()));
        this.userService.insert(objectUser);
        return SUCCESS_TIP;
@@ -279,15 +329,49 @@
            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
        }
        User oldUser = userService.selectById(user.getId());
        ShiroUser user1 = shiroExtUtil.getUser();
        User user2 = userService.selectById(user1.getId());
        TCompany tCompany = companyService.selectById(user2.getObjectId());
        //调用中台接口
        Long empId = null;
        Integer empnew = null;
        List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(oldUser.getPhone(), tCompany.getEnterCode());
        if(null == userInfoByPhone || userInfoByPhone.size() == 0){
            SaveStaffNodeRequest request1 = new SaveStaffNodeRequest();
            request1.setMobile(user2.getPhone());
            request1.setEntercode(tCompany.getEnterCode());
            request1.setEmpName(user.getName());
            request1.setEmpNickname(user.getName());
            request1.setLoginNo(user.getAccount());
            request1.setEmpSex(user.getSex() == 1 ? "男" : "女");
            request1.setMphone(user.getPhone());
            request1.setEmail(user.getPhone() + "@qyt.com");
            request1.setDeptId(0);
            request1.setPositionId(1);
            request1.setSuperLevel(0);
            request1.setHideMobile(0);
            ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request1);
            if(200 != resultUtil.getStatus()){
                return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
            }
            SaveStaffNode saveStaffNode = resultUtil.getData();
            empId = saveStaffNode.getEmpId();
            empnew = 1;
        }else{
            empId = userInfoByPhone.get(0).getEmpId();
            empnew = 0;
        }
        oldUser.setEmpId(empId);
        oldUser.setEntercode(tCompany.getEnterCode());
        oldUser.setEnterId(Long.valueOf(tCompany.getEnterCode()));
        oldUser.setEmpnew(empnew);
        if (ShiroKit.hasRole(Const.ADMIN_NAME)) {
            this.userService.updateById(UserFactory.editUser(user, oldUser));
            return SUCCESS_TIP;
        } else {
            assertAuth(user.getId());
            ShiroUser shiroUser = ShiroKit.getUser();
            ShiroUser shiroUser = shiroExtUtil.getUser();
            if (shiroUser.getId().equals(user.getId())) {
                this.userService.updateById(UserFactory.editUser(user, oldUser));
                return SUCCESS_TIP;
@@ -312,7 +396,24 @@
        if (userId.equals(Const.ADMIN_ID)) {
            throw new GunsException(BizExceptionEnum.CANT_DELETE_ADMIN);
        }
        User user = userService.selectById(userId);
        ShiroUser user1 = shiroExtUtil.getUser();
        User user2 = userService.selectById(user1.getId());
        TCompany tCompany = companyService.selectById(user2.getObjectId());
        //调用中台接口
        if(1 == user.getEmpnew()){
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(user.getPhone(), tCompany.getEnterCode());
            if (null != userInfoByPhone && 0 < userInfoByPhone.size() && 1 == user.getEmpnew()) {
                DeleteStafNodeRequest request1 = new DeleteStafNodeRequest();
                request1.setEmpId(user.getEnterId());
                request1.setMobile(tCompany.getPrincipalPhone());
                request1.setEntercode(tCompany.getEnterCode());
                ResultUtil resultUtil = EmployeeUtil.ecrmDeleteStafNode(request1);
                if(200 != resultUtil.getStatus()){
                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                }
            }
        }
        assertAuth(userId);
        this.userService.setStatus(userId, ManagerStatus.DELETED.getCode());