ZQN
2025-05-19 0e12e4ab45db6768a0f45d8952f78b0ae9190723
project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
@@ -1,6 +1,7 @@
package com.project.admin.controller.system;
import com.project.common.annotation.Log;
import com.project.common.annotation.RepeatSubmit;
import com.project.common.constant.UserConstants;
import com.project.common.core.controller.BaseController;
import com.project.common.core.domain.AjaxResult;
@@ -10,12 +11,15 @@
import com.project.common.core.page.TableDataInfo;
import com.project.common.enums.BusinessType;
import com.project.common.utils.SecurityUtils;
import com.project.common.utils.SensitiveUtil;
import com.project.common.utils.StringUtils;
import com.project.common.utils.poi.ExcelUtil;
import com.project.system.service.ISysDeptService;
import com.project.system.service.ISysPostService;
import com.project.system.service.ISysRoleService;
import com.project.system.service.ISysUserService;
import com.project.system.domain.bo.editBo.UserDeptBo;
import com.project.system.domain.vo.SysUserResultVo;
import com.project.system.domain.vo.SysUserVo;
import com.project.system.service.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -41,6 +45,7 @@
    private final ISysRoleService roleService;
    private final ISysDeptService deptService;
    private final ISysPostService postService;
    private final ISysUserDeptService userDeptService;
    /**
     * 获取用户列表
@@ -50,7 +55,8 @@
    public TableDataInfo list(SysUser user)
    {
        startPage();
        List<SysUser> list = userService.selectUserList(user);
        List<SysUser> list = userService.selectUserListCommon(user);
        list.forEach(SensitiveUtil::desensitize);
        return getDataTable(list);
    }
@@ -59,10 +65,12 @@
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysUser user)
    {
        List<SysUser> list = userService.selectUserList(user);
        List<SysUser> list = userService.selectUserListCommon(user);
        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
        util.exportExcel(response, list, "用户数据");
    }
    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
    @PreAuthorize("@ss.hasPermi('system:user:import')")
@@ -76,12 +84,7 @@
        return success(message);
    }
    @PostMapping("/importTemplate")
    public void importTemplate(HttpServletResponse response)
    {
        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
        util.importTemplateExcel(response, "用户数据");
    }
    /**
     * 根据用户编号获取详细信息
@@ -113,11 +116,15 @@
    @PostMapping
    public AjaxResult add(@Validated @RequestBody SysUser user)
    {
        user.setPassword(user.getPhonenumber());
        if (user.getDeptId()!=null){
            user.setUserType("01");
            SysDept sysDept = deptService.selectDeptById(user.getDeptId());
            if (sysDept.getAncestors().contains("101") || sysDept.getDeptId().equals(101L)){
                user.setUserType("01");
                user.setUserType("00");
                user.setRecommendPhone(deptService.getCheckDeptIdByLoginDeptId(user.getDeptId()).toString());
            } else {
                user.setUserType("01");
            }
        }
@@ -137,8 +144,8 @@
        }
        user.setCreateBy(getUsername());
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        user.setRecommendUser(user.getPassword());
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        return toAjax(userService.insertUser(user));
    }
@@ -152,9 +159,12 @@
    {
        userService.checkUserAllowed(user);
        userService.checkUserDataScope(user.getUserId());
        user.setPassword(user.getPhonenumber());
        if (user.getDeptId()!=null){
            SysDept sysDept = deptService.selectDeptById(user.getDeptId());
            if (sysDept.getAncestors().contains("101") || sysDept.getDeptId().equals(101L)){
                user.setUserType("00");
            } else {
                user.setUserType("01");
            }
        }
@@ -194,7 +204,7 @@
    /**
     * 重置密码
     */
    @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
//    @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PutMapping("/resetPwd")
    public AjaxResult resetPwd(@RequestBody SysUser user)
@@ -206,6 +216,44 @@
        user.setUpdateBy(getUsername());
        return toAjax(userService.resetPwd(user));
    }
    @ApiOperation("用户多机构——回显")
    @GetMapping("/batchUserDeptView")
    public AjaxResult batchUserDeptView(@RequestParam("userId") Long userId)
    {
        return AjaxResult.success(userDeptService.batchUserDeptView(userId));
    }
    @ApiOperation("用户多机构——保存")
    @Log(title = "用户多机构保存", businessType = BusinessType.UPDATE)
    @PostMapping("/batchUserDeptSave")
    public AjaxResult batchUserDeptSave(@RequestBody UserDeptBo bo)
    {
        return AjaxResult.success(userDeptService.batchUserDeptSave(bo));
    }
    @ApiOperation("用户多机构——机构树")
    @GetMapping("/batchUserDeptTree")
    public AjaxResult batchUserDeptTree(@RequestParam("deptId") Long deptId)
    {
        return AjaxResult.success(userDeptService.batchUserDeptTree(deptId));
    }
    @ApiOperation("企业用户重置密码")
    @Log(title = "企业用户重置密码", businessType = BusinessType.UPDATE)
    @PostMapping("/resetCompanyUserPwd")
    public AjaxResult resetCompanyUserPwd(@RequestParam("companyId") Long companyId,@RequestParam("newPassword") String newPassword)
    {
        SysUser user = userService.list(userService.lq().eq(SysUser::getDeptId, companyId)).get(0);
        if (user==null) {
            return AjaxResult.error("没有该企业对应账户");
        }
        if (userService.resetUserPwd(user.getUserName(), SecurityUtils.encryptPassword(newPassword), newPassword) > 0)
        {
            return success();
        }
        return error("修改密码异常,请联系管理员");
    }
    /**
@@ -259,4 +307,43 @@
    {
        return success(deptService.selectDeptTreeList(dept));
    }
    @ApiOperation("用户模板下载")
    @GetMapping("/exportTemplate")
    public AjaxResult exportTemplate()
    {
        ExcelUtil<SysUserVo> util = new ExcelUtil<>(SysUserVo.class);
        return util.exportExcel(null, "用户信息模板");
    }
    @ApiOperation(value = "处理导入信息")
    @Log(title = "导入用户信息处理" , businessType = BusinessType.OTHER)
    @ApiImplicitParam(value = "用户信息", name = "file", dataType = "file", dataTypeClass = MultipartFile.class)
    @PostMapping("/doImport")
    public AjaxResult doImport(@RequestPart(value = "file") MultipartFile file, @RequestParam("deptId") Long deptId) throws Exception
    {
        ExcelUtil<SysUserVo> util = new ExcelUtil<>(SysUserVo.class);
        List<SysUserVo> list = util.importExcel(file.getInputStream());
        return AjaxResult.success(userService.doImport(list, deptId));
    }
    @ApiOperation(value = "校验导入信息")
    @Log(title = "导入用户信息校验" , businessType = BusinessType.OTHER)
    @PostMapping("/checkImport")
    public AjaxResult checkImport(@RequestBody SysUserResultVo resultVo)
    {
        return AjaxResult.success(userService.checkImport(resultVo));
    }
    @ApiOperation(value = "保存导入信息")
    @Log(title = "导入用户信息保存" , businessType = BusinessType.IMPORT)
    @PostMapping("/saveImport")
    @RepeatSubmit
    public AjaxResult saveImport(@RequestBody SysUserResultVo resultVo)
    {
        return toAjax(userService.saveImport(resultVo) ? 1 : 0);
    }
}