瀏覽代碼

用户相关

sqg 3 年之前
父節點
當前提交
1ca99b1be6

+ 48 - 5
tianhu-system/src/main/java/com/tianhu/system/controller/OwnSysUserController.java

@@ -7,6 +7,7 @@ import com.tianhu.common.core.utils.CommonUtil;
 import com.tianhu.common.core.utils.DateUtils;
 import com.tianhu.common.core.utils.IdUtils;
 import com.tianhu.common.core.utils.StringUtils;
+import com.tianhu.common.core.utils.file.ExcelFileUtils;
 import com.tianhu.common.core.utils.poi.ExcelUtil;
 import com.tianhu.common.core.web.controller.BaseController;
 import com.tianhu.common.core.web.domain.AjaxResult;
@@ -21,6 +22,8 @@ import com.tianhu.system.api.model.LoginUser;
 import com.tianhu.system.domain.*;
 import com.tianhu.system.mapper.SysProductMenuMapper;
 import com.tianhu.system.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -42,6 +45,7 @@ import java.util.Map;
  *
  * @author tianhu
  */
+@Slf4j
 @RestController
 @RequestMapping("/ownUser")
 public class OwnSysUserController extends BaseController
@@ -98,7 +102,7 @@ public class OwnSysUserController extends BaseController
                 ownSysUser.setCompanyId(companyId);
             }
         }
-        List<OwnSysUser> list = ownSysUserService.selectUserList(ownSysUser);
+        List<Map<String, Object>> list = ownSysUserService.selectUserList(ownSysUser);
         return getDataTable(list);
     }
 
@@ -112,7 +116,6 @@ public class OwnSysUserController extends BaseController
                        @RequestParam(required=false) String deptId,
                        @RequestParam(required=false) String userName,
                        @RequestParam(required=false) String nickName,
-                       @RequestParam(required=false) String phonenumber,
                        @RequestParam(required=false) String status,
                        @RequestParam (required = false) Map dateRange) throws IOException
     {
@@ -139,9 +142,49 @@ public class OwnSysUserController extends BaseController
         if(!SalaryConstants.OPEX.equals(companyId)){
             ownSysUser.setCompanyId(companyId);
         }
-        List<OwnSysUser> list = ownSysUserService.selectUserList(ownSysUser);
-        ExcelUtil<OwnSysUser> util = new ExcelUtil<OwnSysUser>(OwnSysUser.class);
-        util.exportExcel(response, list, "inf");
+        List<Map<String, Object>> list = ownSysUserService.selectUserList(ownSysUser);
+        for (Map map : list){
+            String state = map.get("status") + "";
+            if ("0".equals(state)) {
+                status = "正常";
+            } else if ("1".equals(state)) {
+                status = "停用";
+            } else if ("2".equals(state)) {
+                status = "冻结";
+            } else {
+                status = "";
+            }
+            map.put("status", status);
+        }
+        String fileName = "用户信息";
+        //查询表头
+        List<String> columnName = new ArrayList<>();
+        columnName.add("用户姓名#nickName");
+        columnName.add("手机号#userName");
+        columnName.add("企业名称#scyName");
+        columnName.add("所属部门#deptName");
+        columnName.add("备注#remark");
+        columnName.add("用户状态#status");
+        try {
+            HSSFWorkbook wb = ExcelFileUtils.export(response, fileName, columnName, list);
+            response.setCharacterEncoding("UTF-8");
+            // 设置contentType为excel格式
+            response.setContentType("application/vnd.ms-excel;charset=utf-8");
+            //默认Excel名称
+            response.setHeader("Content-disposition", "attachment;filename=" + "用户信息.xls");
+            response.flushBuffer();
+            OutputStream outputStream = response.getOutputStream();
+            wb.write(outputStream);
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException var20) {
+                    var20.printStackTrace();
+                }
+            }
+        } catch (Exception var22) {
+            log.error("导出Excel异常{}", var22.getMessage());
+        }
     }
     /**
      * 安心签用户信息变更申请表

+ 50 - 16
tianhu-system/src/main/java/com/tianhu/system/controller/SysUserController.java

@@ -105,6 +105,8 @@ public class SysUserController extends BaseController
     @Autowired
     private IMessageUtilsService messageUtilsService;
     @Autowired
+    private ISysUserCompanyRelService iSysUserCompanyRelService;
+    @Autowired
     private ISysCompanyService sysCompanyService;
     @Autowired
     private RemoteSystemService remoteSystemService;
@@ -310,7 +312,7 @@ public class SysUserController extends BaseController
             }
             //登录错误到达五次就转为冻结
             BigDecimal bigDecimal = new BigDecimal(frozenSecond);
-            BigDecimal decimal = new BigDecimal("4");
+            BigDecimal decimal = new BigDecimal("5");
             if (decimal.compareTo(bigDecimal) == 0) {
                 SysUser user = new SysUser();
                 user.setUserId(sysUser.getUserId());
@@ -339,6 +341,11 @@ public class SysUserController extends BaseController
                 remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号状态异常,请联系管理员",sysUser.getCompanyId());
                 return R.fail("对不起,您的账号:" + username + " 状态异常,请联系管理员");
             }
+            if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus()))
+            {
+                remoteLogService.saveLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号状态异常,请联系管理员",sysUser.getCompanyId());
+                return R.fail("对不起,您的账号:" + username + " 状态已停用,请联系管理员");
+            }
             // 密码如果不在指定范围内 错误
             if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
                     || password.length() > UserConstants.PASSWORD_MAX_LENGTH)
@@ -398,6 +405,7 @@ public class SysUserController extends BaseController
             Nullable dtiTime = null;
             SysUser suser = new SysUser();
             suser.setUserId(sysUser.getUserId());
+            suser.setStatus("0");
             suser.setFrozen_second("0");
             suser.setFrozen_date((Date) dtiTime);
             userService.updateUserLogin(suser);
@@ -571,28 +579,32 @@ public class SysUserController extends BaseController
      * 根据用户编号获取详细信息
      */
     @PreAuthorize(hasPermi = "system:user:query")
-    @GetMapping(value = { "/", "/{userId}" })
-    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
+    @GetMapping(value = { "/", "/{userId}/{scyId}" })
+    public AjaxResult getInfo(
+            @PathVariable(value = "userId", required = false) Long userId,
+            @PathVariable(value = "scyId", required = false) String scyId
+    )
     {
         //获取当前操作人员
         LoginUser userInfo = tokenService.getLoginUser();
-        String companyId = userInfo.getSysUser().getCompanyId();
         AjaxResult ajax = AjaxResult.success();
+
         //角色
         SysRole role = new SysRole();
         role.setIsAuto("0");
         Map map = new HashMap<>();
-//        if(!SalaryConstants.OPEX.equals(companyId)){
-            map.put("companyId",companyId);
-            role.setCompanyId(companyId);
-//        }
+        map.put("companyId",scyId);
+        if(CommonUtil.isNotEmpty(scyId)) {
+            role.setCompanyId(scyId);
+        }else {
+            role.setCompanyId(userInfo.getSysUser().getCompanyId());
+        }
         List<SysRole> roles = roleService.selectRoleAll(role);
         ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin() ).collect(Collectors.toList()));
         if (StringUtils.isNotNull(userId))
         {
-            ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId, companyId));
+            ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId, scyId));
             ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
-
         }
         return ajax;
     }
@@ -705,14 +717,21 @@ public class SysUserController extends BaseController
     @Transactional(rollbackFor=Exception.class)
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@Validated @RequestBody SysUser user)
+    public AjaxResult edit(@Validated @RequestBody SysUser user)throws Exception
     {
         LoginUser userInfo = tokenService.getLoginUser();
         SysUser use = userInfo.getSysUser();
         String companyId = use.getCompanyId();
+        //当前修改企业
+        String company = user.getCompanyId();
+        //查询之前的deptId
+        LambdaQueryWrapper<SysUserCompanyRel> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SysUserCompanyRel::getSucrUserId,user.getUserName());
+        queryWrapper.eq(SysUserCompanyRel::getSucrCompanyId,company);
+        List<SysUserCompanyRel> list = iSysUserCompanyRelService.findSysUserCompanyRels(queryWrapper);
+
         if(SalaryConstants.OPEX.equals(companyId)) {
-            String com = user.getCompanyId();
-            if (CommonUtil.isEmpty(com)) {
+            if (CommonUtil.isEmpty(company)) {
                 return AjaxResult.error("修改用户'" + user.getNickName() + "'失败,请选择公司");
             }
             userService.checkUserAllowed(user);
@@ -733,7 +752,22 @@ public class SysUserController extends BaseController
             }
             user.setUpdateBy(CommonUtil.objToString(SecurityUtils.getUserId()));
         }
-        return toAjax(userService.updateUser(user));
+        userService.updateUser(user);
+        // 审批表删除部门分组数据()
+        if(list.size() > 0){
+            String deptId = CommonUtil.objToString(list.get(0).getSucrDeptId());
+            Map<String, Object> flowableRes = flowableService.deleteFlowableUserGroup(String.valueOf(user.getUserId()), deptId);
+            if (!"200".equals(flowableRes.get("code"))) {
+                throw new Exception("审批数据新增失败!");
+            }
+        }
+        //审批表增加部门分组数据
+        SysDept dept = deptMapper.selectDeptById(user.getDeptId());
+        Map<String, Object> flowableRes = flowableService.addFlowableUser(String.valueOf(user.getUserId()), user.getNickName(), dept.getAlternateNumber());
+        if (!"200".equals(flowableRes.get("code"))) {
+            throw new Exception("审批数据新增失败!");
+        }
+        return AjaxResult.success();
     }
 
     /**
@@ -755,11 +789,11 @@ public class SysUserController extends BaseController
     @PutMapping("/resetPwd")
     public AjaxResult resetPwd(@RequestBody SysUser user)
     {
-        String regEx = "[\u4e00-\u9fa5]";
+        String regEx = "^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,20}$";
         Pattern p = Pattern.compile(regEx);
         Matcher m = p.matcher(user.getPassword());
         if(m.find()){
-            return AjaxResult.error("请输入字母、数字、特殊符号格式编码");
+            return AjaxResult.error("密码请包含数字,英文,字符中的两种以上,长度6-20位");
         }
         userService.checkUserAllowed(user);
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));

+ 1 - 1
tianhu-system/src/main/java/com/tianhu/system/mapper/OwnSysUserMapper.java

@@ -19,7 +19,7 @@ public interface OwnSysUserMapper
      * @param ownSysUser 用户信息
      * @return 用户信息集合信息
      */
-    public List<OwnSysUser> selectUserList(OwnSysUser ownSysUser);
+    public List<Map<String, Object>> selectUserList(OwnSysUser ownSysUser);
 
     /**
      * 查询员工

+ 1 - 1
tianhu-system/src/main/java/com/tianhu/system/service/IOwnSysUserService.java

@@ -19,7 +19,7 @@ public interface IOwnSysUserService
      * @param ownSysUser 用户信息
      * @return 用户信息集合信息
      */
-    public List<OwnSysUser> selectUserList(OwnSysUser ownSysUser);
+    public List<Map<String, Object>> selectUserList(OwnSysUser ownSysUser);
 
     /**
      * 查询员工

+ 1 - 1
tianhu-system/src/main/java/com/tianhu/system/service/impl/OwnSysUserServiceImpl.java

@@ -32,7 +32,7 @@ public class OwnSysUserServiceImpl implements IOwnSysUserService
      */
     @Override
     @DataScope(deptAlias = "d", userAlias = "u")
-    public List<OwnSysUser> selectUserList(OwnSysUser ownSysUser)
+    public List<Map<String, Object>> selectUserList(OwnSysUser ownSysUser)
     {
         return ownSysUserMapper.selectUserList(ownSysUser);
     }

+ 34 - 33
tianhu-system/src/main/resources/mapper/system/OwnSysUserMapper.xml

@@ -43,39 +43,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="endTime"     column="create_time"     />
 	</resultMap>
 
-	<select id="selectUserList"   resultMap="OwnSysUserResult" parameterType="OwnSysUser">
+	<select id="selectUserList"   resultType="map" parameterType="OwnSysUser">
 		SELECT
-		u.user_id,
-		u.nick_name,
-		u.user_name,
-		u.email,
-		u.avatar,
-		u.password,
-		u.sex,
-		u.status,
-		u.del_flag,
-		u.login_ip,
-		u.login_date,
-		u.create_by,
-		u.create_time,
-		u.remark,
-		c.scy_type,
-		c.scy_id,
-		h.zhc_status
-		FROM sys_user u
-		left join
-			sys_user_company_rel ucr
-		on
-			(ucr.sucr_user_id = u.user_id
-			<if test="companyId != '000000'">
-				and ucr.sucr_company_id = #{companyId}
-			</if>
-			)
+		u.user_id userId,
+		u.nick_name nickName,
+		u.user_name userName,
+		u.email email,
+		u.avatar avatar,
+		u.password password,
+		u.sex sex,
+		u.status status,
+		u.del_flag delFlag,
+		u.login_ip loginIp,
+		u.login_date loginDate,
+		u.create_by createBy,
+		DATE_FORMAT(u.create_time,'%Y-%m-%d %T')	createTime,
+		u.remark remark,
+		c.scy_type scyType,
+		c.scy_id scyId,
+		c.scy_name scyName,
+		d.dept_name deptName,
+		cast(d.dept_id as char) deptId
+		FROM sys_user_company_rel ucr
+		left join sys_user u
+		on ucr.sucr_user_id = u.user_id
 		left join sys_company c
-		on  c.scy_id =ucr.sucr_company_id
-		left join zc_handler_change h
-		on  c.scy_id =h.zhc_company_id
+		on  c.scy_id = ucr.sucr_company_id
+		left join sys_dept d
+		on  d.dept_id = ucr.sucr_dept_id
 		WHERE u.del_flag = '0'
+		<if test="deptId != null and deptId != ''">
+			AND d.dept_id = #{deptId}
+		</if>
 		<if test="companyId != '000000'">
 			and ucr.sucr_company_id = #{companyId}
 		</if>
@@ -88,8 +87,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<if test="userId != null and userId != ''">
 			AND u.user_id = #{userId}
 		</if>
-		<if test="status != null and status != ''">
-			AND u.status = #{status}
+		<if test="status != null and status != '' and status == '1' ">
+			AND (u.status = '1' OR u.status = '2')
+		</if>
+		<if test="status != null and status != '' and status == '0' ">
+			AND u.status = '0'
 		</if>
 		<if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
 			AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
@@ -99,7 +101,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		</if>
 		<!-- 数据范围过滤 -->
 		${params.dataScope}
-		group by u.user_id
 		order by u.create_time desc
 	</select>
 

+ 1 - 0
tianhu-system/src/main/resources/mapper/system/SysUserRoleMapper.xml

@@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		from sys_user_role r
 		left join sys_role s on s.role_id = r.role_id
 		where r.user_id = #{userId}
+		and s.is_auto = '0'
 		<if test="companyId != null and companyId != ''">
 		and s.company_id = #{companyId}
 		</if>