puzhibing
2023-08-14 753c4aede53b07041841d9aa94859b59e366bd5d
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/UserMgrController.java
@@ -25,17 +25,19 @@
import com.stylefeng.guns.modular.system.controller.util.UUIDUtil;
import com.stylefeng.guns.modular.system.dao.UserMapper;
import com.stylefeng.guns.modular.system.factory.UserFactory;
import com.stylefeng.guns.modular.system.model.TAgent;
import com.stylefeng.guns.modular.system.model.TBranchOffice;
import com.stylefeng.guns.modular.system.model.TCompany;
import com.stylefeng.guns.modular.system.model.User;
import com.stylefeng.guns.modular.system.service.ITCompanyService;
import com.stylefeng.guns.modular.system.service.ITDriverService;
import com.stylefeng.guns.modular.system.service.IUserService;
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.huawei.OBSUtil;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -46,6 +48,7 @@
import java.io.File;
import java.io.InputStream;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 系统管理员控制器
@@ -67,6 +70,10 @@
    @Autowired
    private ITDriverService itDriverService;
    @Autowired
    private ITAgentService agentService;
    @Autowired
    private ITBranchOfficeService branchOfficeService;
    /**
@@ -187,10 +194,36 @@
            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);
            Integer objectId = Objects.requireNonNull(ShiroKit.getUser()).getObjectId();
            Integer roleType = Objects.requireNonNull(ShiroKit.getUser()).getRoleType();
            if(roleType == 3){
                // 查询下级分公司账号
                TAgent tAgent = agentService.selectById(objectId);
                List<TBranchOffice> branchOffices = branchOfficeService.selectList(new EntityWrapper<TBranchOffice>()
                        .eq("agentId", tAgent.getId()));
                List<Integer> officeIds = branchOffices.stream().map(TBranchOffice::getId).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(officeIds)){
                    Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
                    page.setRecords(new ArrayList<>());
                    return super.packForBT(page);
                }
//                List<User> userList = userService.selectList(new EntityWrapper<User>()
//                        .in("object_id", officeIds));
//                List<Integer> userIds = userList.stream().map(User::getId).collect(Collectors.toList());
                DataScope dataScope = new DataScope(ShiroKit.getDeptDataScope());
                Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
                List<Map<String, Object>> userListPage = userService.getUserListPageAgent(page, null, name, beginTime, endTime, deptid,officeIds);
                page.setRecords(userListPage);
                return super.packForBT(page);
            }else {
                Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
                page.setRecords(new ArrayList<>());
                return super.packForBT(page);
            }
        }
    }
@@ -199,7 +232,6 @@
     */
    @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()) {
@@ -219,11 +251,9 @@
        user.setCreatetime(new Date());
        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());
        }
        ShiroUser user1 = ShiroKit.getUser();
        objectUser.setRoleType(user1.getRoleType());
        objectUser.setObjectId(user1.getObjectId());
        objectUser.setPassWordUpdate(new Date());
        this.userService.insert(objectUser);
@@ -301,7 +331,6 @@
     */
    @RequestMapping("/reset")
    @BussinessLog(value = "重置管理员密码", key = "userId", dict = UserDict.class)
    @Permission(Const.ADMIN_NAME)
    @ResponseBody
    public Tip reset(@RequestParam Integer userId) {
        if (ToolUtil.isEmpty(userId)) {
@@ -316,15 +345,11 @@
        return SUCCESS_TIP;
    }
    @Autowired
    private ITCompanyService itCompanyService;
    /**
     * 冻结用户
     */
    @RequestMapping("/freeze")
    @BussinessLog(value = "冻结用户", key = "userId", dict = UserDict.class)
    @Permission(Const.ADMIN_NAME)
    @ResponseBody
    public Tip freeze(@RequestParam Integer userId) {
        if (ToolUtil.isEmpty(userId)) {
@@ -336,26 +361,6 @@
        }
        assertAuth(userId);
        this.userService.setStatus(userId, ManagerStatus.FREEZED.getCode());
        User user = userService.selectById(userId);
        if (user.getRoleType() == 2){
            //查询分公司
            TCompany company = itCompanyService.selectById(user.getObjectId());
            company.setState(1);
            itCompanyService.updateById(company);
            //设置该分公司下的所有司机状态
//            itDriverService.updateCompanyDriverState(3,company.getId());
        }else if (user.getRoleType() == 3){
            //查询加盟商
            TCompany franchisee = itCompanyService.selectById(user.getObjectId());
            franchisee.setState(1);
            itCompanyService.updateById(franchisee);
            //设置该加盟商下的所有司机状态
//            itDriverService.updateFranchiseeDriverState(3,franchisee.getId());
        }
        return SUCCESS_TIP;
    }
@@ -364,7 +369,6 @@
     */
    @RequestMapping("/unfreeze")
    @BussinessLog(value = "解除冻结用户", key = "userId", dict = UserDict.class)
    @Permission(Const.ADMIN_NAME)
    @ResponseBody
    public Tip unfreeze(@RequestParam Integer userId) {
        if (ToolUtil.isEmpty(userId)) {
@@ -374,24 +378,6 @@
        this.userService.setStatus(userId, ManagerStatus.OK.getCode());
        User user = userService.selectById(userId);
        if (user.getRoleType() == 2){
            //查询分公司
            TCompany company = itCompanyService.selectById(user.getObjectId());
            company.setState(0);
            itCompanyService.updateById(company);
            //设置该分公司下的所有司机状态
//            itDriverService.updateCompanyDriverState(2,company.getId());
        }else if (user.getRoleType() == 3){
            //查询加盟商
            TCompany franchisee = itCompanyService.selectById(user.getObjectId());
            franchisee.setState(0);
            itCompanyService.updateById(franchisee);
            //设置该加盟商下的所有司机状态
//            itDriverService.updateFranchiseeDriverState(2,franchisee.getId());
        }
        return SUCCESS_TIP;
    }
@@ -400,7 +386,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)) {