From adc8542adeabbcbeff425d6471762c04e8f3cffe Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 25 六月 2025 15:03:38 +0800
Subject: [PATCH] 修改功能和增加上传功能

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java |  210 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 129 insertions(+), 81 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
index 2ea5442..727847e 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
@@ -1,19 +1,17 @@
 package com.stylefeng.guns.modular.system.controller.system;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.config.properties.GunsProperties;
 import com.stylefeng.guns.core.base.controller.BaseController;
 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;
 import com.stylefeng.guns.core.common.constant.dictmap.UserDict;
 import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.common.constant.state.ManagerStatus;
 import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
-import com.stylefeng.guns.core.datascope.DataScope;
 import com.stylefeng.guns.core.db.Db;
 import com.stylefeng.guns.core.exception.GunsException;
 import com.stylefeng.guns.core.log.LogObjectHolder;
@@ -29,6 +27,8 @@
 import com.stylefeng.guns.modular.system.service.ITDriverService;
 import com.stylefeng.guns.modular.system.service.IUserService;
 import com.stylefeng.guns.modular.system.transfer.UserDto;
+import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -40,7 +40,6 @@
 import javax.validation.Valid;
 import java.io.File;
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
@@ -53,19 +52,22 @@
 @Controller
 @RequestMapping("/mgr")
 public class UserMgrController extends BaseController {
-
+    
     private static String PREFIX = "/system/user/";
-
+    
     @Autowired
     private GunsProperties gunsProperties;
-
+    
     @Autowired
     private IUserService userService;
-
+    
     @Autowired
     private ITDriverService itDriverService;
-
-
+    
+    @Autowired
+    private ITCompanyService companyService;
+    
+    
     /**
      * 跳转到查看管理员列表的页面
      */
@@ -73,7 +75,7 @@
     public String index() {
         return PREFIX + "user.html";
     }
-
+    
     /**
      * 跳转到查看管理员列表的页面
      */
@@ -85,8 +87,6 @@
     /**
      * 跳转到角色分配页面
      */
-    //@RequiresPermissions("/mgr/role_assign")  //利用shiro自带的权限检查
-    @Permission
     @RequestMapping("/role_assign/{userId}")
     public String roleAssign(@PathVariable Integer userId, Model model) {
         if (ToolUtil.isEmpty(userId)) {
@@ -101,13 +101,11 @@
     /**
      * 跳转到编辑管理员页面
      */
-    @Permission
     @RequestMapping("/user_edit/{userId}")
     public String userEdit(@PathVariable Integer userId, Model model) {
         if (ToolUtil.isEmpty(userId)) {
             throw new GunsException(BizExceptionEnum.REQUEST_NULL);
         }
-        assertAuth(userId);
         User user = this.userService.selectById(userId);
         model.addAttribute(user);
         model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid()));
@@ -121,7 +119,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);
         }
@@ -150,8 +148,8 @@
         if (!newPwd.equals(rePwd)) {
             throw new GunsException(BizExceptionEnum.TWO_PWD_NOT_MATCH);
         }
-        Integer userId = ShiroKit.getUser().getId();
-        User user = userService.selectById(userId);
+	    Integer userId = ShiroExtUtil.getUser().getId();
+	    User user = userService.selectById(userId);
         String oldMd5 = ShiroKit.md5(oldPwd, user.getSalt());
         if (user.getPassword().equals(oldMd5)) {
             String newMd5 = ShiroKit.md5(newPwd, user.getSalt());
@@ -167,27 +165,25 @@
      * 查询管理员列表
      */
     @RequestMapping("/list")
-    @Permission
     @ResponseBody
     public Object list(@RequestParam(required = false) String name, @RequestParam(required = false) String createTime, @RequestParam(required = false) Integer deptid) {
         //创建日期
         String beginTime = null;
         String endTime = null;
-        if (SinataUtil.isNotEmpty(createTime)){
-            String[] timeArray = createTime.split(" - ");
-            beginTime = timeArray[0];
-            endTime = timeArray[1];
-        }
-        if (ShiroKit.isAdmin()) {
-            Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-            page.setRecords(userService.getUserListPage(page,null, name, beginTime, endTime, deptid));
-            return super.packForBT(page);
-        } else {
-            DataScope dataScope = new DataScope(ShiroKit.getDeptDataScope());
-            Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-            page.setRecords(userService.getUserListPage(page,dataScope, name, beginTime, endTime, deptid));
-            return super.packForBT(page);
-        }
+	    if (SinataUtil.isNotEmpty(createTime)) {
+		    String[] timeArray = createTime.split(" - ");
+		    beginTime = timeArray[0];
+		    endTime = timeArray[1];
+	    }
+	    if (ShiroExtUtil.getUser().isAdmin()) {
+		    Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
+		    page.setRecords(userService.getUserListPage(page, null, name, beginTime, endTime, deptid));
+		    return super.packForBT(page);
+	    } else {
+		    Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
+		    page.setRecords(userService.getUserListPage(page, null, name, beginTime, endTime, deptid));
+		    return super.packForBT(page);
+	    }
     }
 
     /**
@@ -195,33 +191,49 @@
      */
     @RequestMapping("/add")
     @BussinessLog(value = "添加管理员", key = "account", dict = UserDict.class)
-    @Permission(Const.ADMIN_NAME)
     @ResponseBody
     public Tip add(@Valid UserDto user, BindingResult result) {
         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());
+        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);
+        SaveStaffNode saveStaffNode = EmployeeUtil.saveStaffNode(request1);
+        Long empId = saveStaffNode.getEmpId();
+    
         // 完善账号信息
         user.setSalt(ShiroKit.getRandomSalt(5));
         user.setPassword(ShiroKit.md5(user.getPassword(), user.getSalt()));
         user.setStatus(ManagerStatus.OK.getCode());
         user.setCreatetime(new Date());
-
+        user.setEmpId(empId);
+        user.setEntercode(tCompany.getEnterCode());
+        user.setEnterId(Long.valueOf(tCompany.getEnterCode()));
+    
         User objectUser = UserFactory.createUser(user);
-        //查找平台所属公司
-        TCompany company = itCompanyService.selectOne(new EntityWrapper<TCompany>().eq("type", 1).orderBy("id", true).last(" limit 1"));
-        if (SinataUtil.isNotEmpty(company)){
-            objectUser.setObjectId(company.getId());
-        }
+        objectUser.setObjectId(user1.getObjectId());
         this.userService.insert(objectUser);
-
+    
         return SUCCESS_TIP;
     }
 
@@ -237,16 +249,64 @@
         if (result.hasErrors()) {
             throw new GunsException(BizExceptionEnum.REQUEST_NULL);
         }
-
-
         User oldUser = userService.selectById(user.getId());
-
-        if (ShiroKit.hasRole(Const.ADMIN_NAME)) {
+        ShiroUser user1 = ShiroExtUtil.getUser();
+        User user2 = userService.selectById(user1.getId());
+        TCompany tCompany = companyService.selectById(user2.getObjectId());
+        //调用中台接口
+        GetStaffNodeRequest request = new GetStaffNodeRequest();
+        request.setEmpId(oldUser.getEmpId());
+        request.setMobile(user2.getPhone());
+        request.setEntercode(tCompany.getEnterCode());
+        StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
+        Long empId = null;
+        if (null == staffNode || "0".equals(staffNode.getIsValid())) {
+            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);
+            SaveStaffNode saveStaffNode = EmployeeUtil.saveStaffNode(request1);
+            empId = saveStaffNode.getEmpId();
+        } else {
+            EditStaffNodeRequest request1 = new EditStaffNodeRequest();
+            request1.setEmpId(staffNode.getEnterId());
+            request1.setMobile(user2.getPhone());
+            request1.setEntercode(tCompany.getEnterCode());
+            request1.setEnterId(Long.valueOf(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);
+            EmployeeUtil.editStaffNode(request1);
+            empId = staffNode.getEnterId();
+        }
+        oldUser.setEmpId(empId);
+        oldUser.setEntercode(tCompany.getEnterCode());
+        oldUser.setEnterId(Long.valueOf(tCompany.getEnterCode()));
+        user.setEmpId(empId);
+        user.setEntercode(tCompany.getEnterCode());
+        user.setEnterId(Long.valueOf(tCompany.getEnterCode()));
+    
+        if (ShiroExtUtil.getUser().isAdmin) {
             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;
@@ -261,7 +321,6 @@
      */
     @RequestMapping("/delete")
     @BussinessLog(value = "删除管理员", key = "userId", dict = UserDict.class)
-    @Permission
     @ResponseBody
     public Tip delete(@RequestParam Integer userId) {
         if (ToolUtil.isEmpty(userId)) {
@@ -271,9 +330,23 @@
         if (userId.equals(Const.ADMIN_ID)) {
             throw new GunsException(BizExceptionEnum.CANT_DELETE_ADMIN);
         }
-
-
-        assertAuth(userId);
+        User user = userService.selectById(userId);
+        ShiroUser user1 = ShiroExtUtil.getUser();
+        User user2 = userService.selectById(user1.getId());
+        TCompany tCompany = companyService.selectById(user2.getObjectId());
+        //调用中台接口
+        GetStaffNodeRequest request = new GetStaffNodeRequest();
+        request.setEmpId(user.getEmpId());
+        request.setMobile(user2.getPhone());
+        request.setEntercode(tCompany.getEnterCode());
+        StaffNodeInfo staffNode = EmployeeUtil.getStaffNode(request);
+        if (null != staffNode && "1".equals(staffNode.getIsValid())) {
+            DeleteStafNodeRequest request1 = new DeleteStafNodeRequest();
+            request1.setEmpId(user.getEnterId());
+            request1.setMobile(user2.getPhone());
+            request1.setEntercode(tCompany.getEnterCode());
+            EmployeeUtil.ecrmDeleteStafNode(request1);
+        }
         this.userService.setStatus(userId, ManagerStatus.DELETED.getCode());
         return SUCCESS_TIP;
     }
@@ -287,7 +360,6 @@
         if (ToolUtil.isEmpty(userId)) {
             throw new GunsException(BizExceptionEnum.REQUEST_NULL);
         }
-        assertAuth(userId);
         return this.userService.selectById(userId);
     }
 
@@ -296,13 +368,11 @@
      */
     @RequestMapping("/reset")
     @BussinessLog(value = "重置管理员密码", key = "userId", dict = UserDict.class)
-    @Permission(Const.ADMIN_NAME)
     @ResponseBody
     public Tip reset(@RequestParam Integer userId) {
         if (ToolUtil.isEmpty(userId)) {
             throw new GunsException(BizExceptionEnum.REQUEST_NULL);
         }
-        assertAuth(userId);
         User user = this.userService.selectById(userId);
         user.setSalt(ShiroKit.getRandomSalt(5));
         user.setPassword(ShiroKit.md5(Const.DEFAULT_PWD, user.getSalt()));
@@ -319,7 +389,6 @@
      */
     @RequestMapping("/freeze")
     @BussinessLog(value = "冻结用户", key = "userId", dict = UserDict.class)
-    @Permission(Const.ADMIN_NAME)
     @ResponseBody
     public Tip freeze(@RequestParam Integer userId) {
         if (ToolUtil.isEmpty(userId)) {
@@ -329,7 +398,6 @@
         if (userId.equals(Const.ADMIN_ID)) {
             throw new GunsException(BizExceptionEnum.CANT_FREEZE_ADMIN);
         }
-        assertAuth(userId);
         this.userService.setStatus(userId, ManagerStatus.FREEZED.getCode());
 
         User user = userService.selectById(userId);
@@ -359,13 +427,11 @@
      */
     @RequestMapping("/unfreeze")
     @BussinessLog(value = "解除冻结用户", key = "userId", dict = UserDict.class)
-    @Permission(Const.ADMIN_NAME)
     @ResponseBody
     public Tip unfreeze(@RequestParam Integer userId) {
         if (ToolUtil.isEmpty(userId)) {
             throw new GunsException(BizExceptionEnum.REQUEST_NULL);
         }
-        assertAuth(userId);
         this.userService.setStatus(userId, ManagerStatus.OK.getCode());
 
         User user = userService.selectById(userId);
@@ -395,7 +461,6 @@
      */
     @RequestMapping("/setRole")
     @BussinessLog(value = "分配角色", key = "userId,roleIds", dict = UserDict.class)
-    @Permission(Const.ADMIN_NAME)
     @ResponseBody
     public Tip setRole(@RequestParam("userId") Integer userId, @RequestParam("roleIds") String roleIds) {
         if (ToolUtil.isOneEmpty(userId, roleIds)) {
@@ -405,7 +470,6 @@
         if (userId.equals(Const.ADMIN_ID)) {
             throw new GunsException(BizExceptionEnum.CANT_CHANGE_ADMIN);
         }
-        assertAuth(userId);
         this.userService.setRoles(userId, roleIds);
 
 
@@ -428,22 +492,6 @@
         }
         return pictureName;
     }
-
-    /**
-     * 判断当前登录的用户是否有操作这个用户的权限
-     */
-    private void assertAuth(Integer userId) {
-        if (ShiroKit.isAdmin()) {
-            return;
-        }
-        List<Integer> deptDataScope = ShiroKit.getDeptDataScope();
-        User user = this.userService.selectById(userId);
-        Integer deptid = user.getDeptid();
-        if (deptDataScope.contains(deptid)) {
-            return;
-        } else {
-            throw new GunsException(BizExceptionEnum.NO_PERMITION);
-        }
-
-    }
+	
+	
 }

--
Gitblit v1.7.1