From 28aaf2ffa1dbb860a292ba330a7e9362e60e7832 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期五, 12 七月 2024 16:41:03 +0800 Subject: [PATCH] update --- assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java | 172 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 119 insertions(+), 53 deletions(-) diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java index c0cef63..f77f75f 100644 --- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java +++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java @@ -148,23 +148,42 @@ * 清空旧的登录信息,保证同时只有一个用户再登录,后登录用户会挤掉前一个用户 * @param username */ - public void cacheUserToken(String username,Integer identity,String newToken){ - String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity); - String oldToken = (String) redisUtils.get(userKey); - if (StringUtils.isNotBlank(oldToken)) { - String oldTokenkey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + JwtTokenUtil.md5Encode(oldToken)); - redisUtils.del(oldTokenkey); - redisUtils.del(userKey); - } - redisUtils.set(userKey, newToken,(JwtTokenUtil.EXPIRATION*2/1000)+2); +// public void cacheUserToken(String username,Integer identity,String newToken){ +// String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity); +// String oldToken = (String) redisUtils.get(userKey); +// if (StringUtils.isNotBlank(oldToken)) { +// String oldTokenkey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + JwtTokenUtil.md5Encode(oldToken)); +// redisUtils.del(oldTokenkey); +// redisUtils.del(userKey); +// } +// redisUtils.set(userKey, newToken,(JwtTokenUtil.EXPIRATION*2/1000)+2); +// +// +// String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(newToken)); +// // 设置超时时间 +// redisUtils.set(tokenKey,newToken); +// redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000); +// } + + /** + * 清空旧的登录信息,保证同时只有一个用户再登录,后登录用户会挤掉前一个用户 + * @param username + */ + public void cacheUserToken(String username,Integer identity,String newToken){ + // String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity); +// String oldToken = (String) redisUtils.get(userKey); +// if (StringUtils.isNotBlank(oldToken)) { +// String oldTokenkey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + JwtTokenUtil.md5Encode(oldToken)); +// redisUtils.del(oldTokenkey); +// redisUtils.del(userKey); +// } + // redisUtils.set(userKey, newToken,(JwtTokenUtil.EXPIRATION*2/1000)+2); String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(newToken)); // 设置超时时间 - redisUtils.set(tokenKey,newToken); - redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000); + redisUtils.set(tokenKey,newToken,JwtTokenUtil.EXPIRATION*2/1000); } - /** * 校验验证码 @@ -198,11 +217,11 @@ if(StringUtils.isNotBlank(jwtToken)){ String username=JwtTokenUtil.getUsername(jwtToken); Integer identity=JwtTokenUtil.getIdentity(jwtToken); - String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity); + // String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username+"_"+identity); String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken)); //删除redis缓存 redisUtils.del(tokenKey); - redisUtils.del(userKey); + // redisUtils.del(userKey); } } @@ -355,6 +374,17 @@ if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()).setIdentity(UserIdentityEnum.EXPERT.getCode()))){ throw new ApiException("手机号已存在"); } + List<SysAttach> socialAttach=user.getSocialAttach(); + List<SysAttach> medicalAttach=user.getMedicalAttach(); + List<SysAttach> salaryAttach=user.getSalaryAttach(); + //疆外企业必须上传社保、医保、薪资 + SysAgency agency=agencyService.getAgencyById(user.getAgencyId()); + if(agency.getAttribute()==0){ + if(ObjectUtil.isEmpty(socialAttach)||ObjectUtil.isEmpty(medicalAttach)||ObjectUtil.isEmpty(salaryAttach)){ + throw new ApiException("疆内企业必须上传社保、医保、工资照片"); + } + } + String major=user.getMajor(); List<Integer> majors=new ArrayList<>(); JSONObject jsonObject=JSONObject.parseObject(major); @@ -372,26 +402,32 @@ if(!b){ throw new ApiException("创建专家信息失败"); } - List<SysAttach> socialAttach=user.getSocialAttach(); - List<SysAttach> medicalAttach=user.getMedicalAttach(); - List<SysAttach> salaryAttach=user.getSalaryAttach(); + List<SysAttach> attaches=new ArrayList<>(); - for(SysAttach attach:socialAttach){ - attach.setType(AttachTypeEnum.SOCIAL.getCode()); - attach.setUserId(user.getId()); - attaches.add(attach); + if(socialAttach!=null&& !socialAttach.isEmpty()) { + for (SysAttach attach : socialAttach) { + attach.setType(AttachTypeEnum.SOCIAL.getCode()); + attach.setUserId(user.getId()); + attaches.add(attach); + } } - for(SysAttach attach:medicalAttach){ - attach.setType(AttachTypeEnum.MEDICAL.getCode()); - attach.setUserId(user.getId()); - attaches.add(attach); + if(medicalAttach!=null&& !medicalAttach.isEmpty()) { + for (SysAttach attach : medicalAttach) { + attach.setType(AttachTypeEnum.MEDICAL.getCode()); + attach.setUserId(user.getId()); + attaches.add(attach); + } } - for(SysAttach attach:salaryAttach){ - attach.setType(AttachTypeEnum.SALARY.getCode()); - attach.setUserId(user.getId()); - attaches.add(attach); + if(salaryAttach!=null&& !salaryAttach.isEmpty()) { + for (SysAttach attach : salaryAttach) { + attach.setType(AttachTypeEnum.SALARY.getCode()); + attach.setUserId(user.getId()); + attaches.add(attach); + } } - attachService.saveBatch(attaches); + if(!attaches.isEmpty()) { + attachService.saveBatch(attaches); + } return 1; } @@ -435,6 +471,7 @@ } } delCacheByUsername(user.getUsername(),user.getIdentity()); + delCacheByUsername(user.getPhone(),user.getIdentity()); user=new SysUser().setId(userId); user.setUpdateBy(ShiroUtils.getSysUser().getUsername()); user.setDelFlag(DeleteFlagEnum.DELETED.getCode()); @@ -451,6 +488,7 @@ throw new ApiException("手机号已存在"); } delCacheByUsername(user.getUsername(),UserIdentityEnum.MONITOR.getCode()); + delCacheByUsername(user.getPhone(),UserIdentityEnum.MONITOR.getCode()); user.setPassword(null); user.setUpdateBy(ShiroUtils.getSysUser().getUsername()); boolean b=updateById(user); @@ -480,12 +518,19 @@ if(!agencyService.checkAgencyNameUnique(agency)){ throw new ApiException("机构名称已存在"); } + SysUser currentUser=ShiroUtils.getSysUser(); + if(!currentUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){ + if(!user.getId().equals(currentUser.getId())){ + throw new ApiException("只能修改自身数据"); + } + } delCacheByUsername(user.getUsername(),UserIdentityEnum.AGENCY.getCode()); - agency.setUpdateBy(ShiroUtils.getSysUser().getUsername()); + delCacheByUsername(user.getPhone(),UserIdentityEnum.AGENCY.getCode()); + agency.setUpdateBy(currentUser.getUsername()); agencyService.updateById(agency); user.setPassword(null); - user.setUpdateBy(ShiroUtils.getSysUser().getUsername()); + user.setUpdateBy(currentUser.getUsername()); boolean b=updateById(user); if(!b){ throw new ApiException("更新用户失败"); @@ -503,6 +548,17 @@ if(!checkPhoneUnique(user.setIdentity(UserIdentityEnum.EXPERT.getCode()))){ throw new ApiException("手机号已存在"); } + List<SysAttach> socialAttach=user.getSocialAttach(); + List<SysAttach> medicalAttach=user.getMedicalAttach(); + List<SysAttach> salaryAttach=user.getSalaryAttach(); + //疆外企业必须上传社保、医保、薪资 + SysAgency agency=agencyService.getAgencyById(user.getAgencyId()); + if(agency.getAttribute()==0){ + if(ObjectUtil.isEmpty(socialAttach)||ObjectUtil.isEmpty(medicalAttach)||ObjectUtil.isEmpty(salaryAttach)){ + throw new ApiException("疆内企业必须上传社保、医保、工资照片"); + } + } + String major=user.getMajor(); if(StringUtils.isNotBlank(major)){ List<Integer> majors=new ArrayList<>(); @@ -521,38 +577,45 @@ // 刪除旧数据 // attachService.deleteAttachsByUserId(user.getId(),null); - List<SysAttach> socialAttach=user.getSocialAttach(); - List<SysAttach> medicalAttach=user.getMedicalAttach(); - List<SysAttach> salaryAttach=user.getSalaryAttach(); List<SysAttach> attaches=new ArrayList<>(); - for(SysAttach attach:socialAttach){ - attach.setType(AttachTypeEnum.SOCIAL.getCode()); - attach.setUserId(user.getId()); - attaches.add(attach); + if(socialAttach!=null&& !socialAttach.isEmpty()) { + for (SysAttach attach : socialAttach) { + attach.setType(AttachTypeEnum.SOCIAL.getCode()); + attach.setUserId(user.getId()); + attaches.add(attach); + } } - for(SysAttach attach:medicalAttach){ - attach.setType(AttachTypeEnum.MEDICAL.getCode()); - attach.setUserId(user.getId()); - attaches.add(attach); + if(medicalAttach!=null&& !medicalAttach.isEmpty()) { + for (SysAttach attach : medicalAttach) { + attach.setType(AttachTypeEnum.MEDICAL.getCode()); + attach.setUserId(user.getId()); + attaches.add(attach); + } } - for(SysAttach attach:salaryAttach){ - attach.setType(AttachTypeEnum.SALARY.getCode()); - attach.setUserId(user.getId()); - attaches.add(attach); + if(salaryAttach!=null&& !salaryAttach.isEmpty()) { + for (SysAttach attach : salaryAttach) { + attach.setType(AttachTypeEnum.SALARY.getCode()); + attach.setUserId(user.getId()); + attaches.add(attach); + } } - attachService.saveOrUpdateBatch(attaches); + if(!attaches.isEmpty()) { + attachService.saveOrUpdateBatch(attaches); + } - List<Long> newIds=attaches.stream().map(SysAttach::getId).collect(Collectors.toList()); - List<Long> delIds=new ArrayList<>(); - for(SysAttach attach:existAttaches){ - if(!newIds.contains(attach.getId())){ + List<Long> newIds = attaches.stream().map(SysAttach::getId).collect(Collectors.toList()); + List<Long> delIds = new ArrayList<>(); + for (SysAttach attach : existAttaches) { + if (!newIds.contains(attach.getId())) { delIds.add(attach.getId()); } } - if(!delIds.isEmpty()){ + if (!delIds.isEmpty()) { attachService.deleteAttachsByIds(delIds); } + delCacheByUsername(user.getUsername(),UserIdentityEnum.EXPERT.getCode()); + delCacheByUsername(user.getPhone(),UserIdentityEnum.EXPERT.getCode()); return row; } @@ -565,6 +628,7 @@ SysUser newUser=new SysUser().setId(user.getId()).setPassword(JwtTokenUtil.encryptPassword(oldUser.getUsername(),originPsword,oldUser.getSalt())); newUser.setUpdateBy(ShiroUtils.getSysUser().getUsername()); delCacheByUsername(oldUser.getUsername(),oldUser.getIdentity()); + delCacheByUsername(oldUser.getPhone(),oldUser.getIdentity()); return updateById(newUser); } @@ -639,6 +703,7 @@ SysUser su=new SysUser().setId(user.getId()).setStatus(user.getStatus()); su.setUpdateBy(ShiroUtils.getSysUser().getUsername()); delCacheByUsername(existUser.getUsername(),existUser.getIdentity()); + delCacheByUsername(existUser.getPhone(),existUser.getIdentity()); return updateById(su); } @@ -648,6 +713,7 @@ SysUser su=new SysUser().setId(user.getId()).setState(user.getState()); su.setUpdateBy(ShiroUtils.getSysUser().getUsername()); delCacheByUsername(existUser.getUsername(),existUser.getIdentity()); + delCacheByUsername(existUser.getPhone(),existUser.getIdentity()); return updateById(su); } } -- Gitblit v1.9.2