From 1b8098b7f79b66a80e5ca49d8765606cb5fa0408 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 30 十一月 2023 19:11:00 +0800 Subject: [PATCH] 操作日志完善 --- Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java | 80 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 72 insertions(+), 8 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java index 6de7864..ff717d9 100644 --- a/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-user/src/main/java/com/vci/ubcs/system/user/service/impl/UserServiceImpl.java @@ -20,8 +20,10 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.vci.ubcs.starter.web.util.VciBaseUtil; import com.vci.ubcs.system.cache.DictCache; import com.vci.ubcs.system.cache.NacosConfigCache; import com.vci.ubcs.system.cache.ParamCache; @@ -34,6 +36,7 @@ import com.vci.ubcs.system.user.cache.UserCache; import com.vci.ubcs.system.user.entity.*; import com.vci.ubcs.system.user.enums.UserEnum; +import com.vci.ubcs.system.user.enums.UserStatus; import com.vci.ubcs.system.user.excel.UserExcel; import com.vci.ubcs.system.user.mapper.UserMapper; import com.vci.ubcs.system.user.service.IUserDeptService; @@ -42,6 +45,7 @@ import com.vci.ubcs.system.user.vo.UserVO; import com.vci.ubcs.system.user.wrapper.UserWrapper; import lombok.RequiredArgsConstructor; +import org.springblade.core.log.annotation.GrantLog; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.support.Condition; @@ -77,21 +81,21 @@ private final IUserOauthService userOauthService; private final ISysClient sysClient; private final BladeTenantProperties tenantProperties; - //鎷垮埌閰嶇疆鐨勮秴绠� - private final NacosConfigCache nacosConfigCache; @Override @Transactional(rollbackFor = Exception.class) public boolean submit(User user) { if (StringUtil.isBlank(user.getTenantId())) { - // user.setTenantId(nacosConfigCache.getAdminUserInfo().getTenantId()); // 榛樿璁剧疆涓虹鐞嗙粍涓嬬殑鐢ㄦ埛 - user.setTenantId(nacosConfigCache.getAdminUserInfo().getTenantId()); + user.setTenantId(NacosConfigCache.getAdminUserInfo().getTenantId()); } String tenantId = user.getTenantId(); //Tenant tenant = SysCache.getTenant(tenantId); if (Func.isNotEmpty(user.getPassword())) { user.setPassword(DigestUtil.encrypt(user.getPassword())); + } + if(Func.isEmpty(user.getUserStatus())){ + user.setUserStatus(UserStatus.Enable.getValue()); } Long userCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount())); if (userCount > 0L && Func.isEmpty(user.getId())) { @@ -106,7 +110,7 @@ Boolean flag = true; for (User user : users){ if (StringUtil.isBlank(user.getTenantId())) { - user.setTenantId(nacosConfigCache.getAdminUserInfo().getTenantId()); + user.setTenantId(NacosConfigCache.getAdminUserInfo().getTenantId()); } String tenantId = user.getTenantId(); if (Func.isNotEmpty(user.getPassword())) { @@ -124,6 +128,7 @@ @Override @Transactional(rollbackFor = Exception.class) + @GrantLog("grantUser") public boolean updateUser(User user) { String tenantId = user.getTenantId(); Long userCount = baseMapper.selectCount( @@ -132,6 +137,7 @@ .eq(User::getAccount, user.getAccount()) .notIn(User::getId, user.getId()) ); + // 鍒ゆ柇鏄惁琚慨鏀逛负宸插瓨鍦ㄧ殑鐢ㄦ埛鍚� if (userCount > 0L) { throw new ServiceException(StringUtil.format("褰撳墠鐢ㄦ埛 [{}] 宸插瓨鍦�!", user.getAccount())); } @@ -144,8 +150,41 @@ return updateById(user); } + /** + * 鏍规嵁鏃ц处鍙凤紝淇敼涓烘柊璐﹀彿鍚� + * @param oldAccount + * @param newAccount + * @return + */ + @Override + public boolean updateByAccount(String oldAccount,String newAccount) { + User user = this.userByAccount(AuthUtil.getTenantId(), oldAccount); + if(Func.isEmpty(user)){ + return true; + } + user.setAccount(newAccount); + return this.updateUser(user); + } + + /** + * 鎹处鍙凤紝淇敼涓虹敤鎴风姸鎬� + * @param accounts + * @param status + * @return + */ + @Override + public boolean updateStatusByAccount(String accounts, String status) { + LambdaUpdateWrapper<User> updateWrapper = Wrappers.<User>update() + .lambda().in(User::getAccount, accounts) + .set(User::getUserStatus, status); + return this.update(updateWrapper); + } + private boolean submitUserDept(User user) { List<Long> deptIdList = Func.toLongList(user.getDeptId()); + if(deptIdList.isEmpty()){ + return true; + } List<UserDept> userDeptList = new ArrayList<>(); deptIdList.forEach(deptId -> { UserDept userDept = new UserDept(); @@ -166,7 +205,7 @@ @Override public List<User> selectAllUser(User user, Long deptId){ List<Long> deptIdList = SysCache.getDeptChildIds(deptId); - List<User> users = baseMapper.selectUserPage(user, deptIdList, (AuthUtil.getTenantId().equals(nacosConfigCache.getAdminUserInfo().getTenantId()) ? StringPool.EMPTY : AuthUtil.getTenantId())); + List<User> users = baseMapper.selectUserPage(user, deptIdList, (VciBaseUtil.checkAdminTenant() ? StringPool.EMPTY : AuthUtil.getTenantId())); return users; } @@ -313,6 +352,16 @@ User user = new User(); user.setRoleId(roleIds); return this.update(user, Wrappers.<User>update().lambda().in(User::getId, Func.toLongList(userIds))); + } + + /** + * 鎺堟潈鏃ュ織鎻掑叆鎿嶄綔 + * @param res + */ + @Override + @GrantLog("grantUser") + public boolean grantLog(String res, boolean isException){ + return true; } @Override @@ -514,7 +563,7 @@ @Override public Long checkRenAndExpr(Long userId) { //瓒呯骇绠$悊鍛樼洿鎺ヨ繑鍥炰笉闇�瑕佹彁閱掑瘑鐮佷慨鏀� - if(nacosConfigCache.getAdminUserInfo().getUserId().equals(userId)){ + if(NacosConfigCache.getAdminUserInfo().getUserId().equals(userId)){ return 0L; } QueryWrapper<User> wrapper = Wrappers.<User>query().eq("ID", userId); @@ -526,7 +575,7 @@ pwdupdateday = dateToDay(pwdUpdateTime); } Strategy strategy = sysClient.getByUserId(userId).getData(); - if(Func.isNotEmpty(strategy)){ + if(Func.isEmpty(strategy)){ throw new ServiceException("瀵嗙爜绛栫暐鏌ヨ涓虹┖锛岃妫�鏌ュ綋鍓嶇鎴蜂笅鏄惁瀛樺湪榛樿瀵嗙爜绛栫暐锛�"); } //鏄惁鎻愰啋閫氳繃鏈�鍚庝竴娆′慨鏀瑰瘑鐮佺殑鏃堕棿鍔犱笂杩囨湡鏃堕棿鍑忓幓褰撳墠鏃堕棿锛屽鏋滃皬浜庤繃鏈熸彁閱掓椂闂村氨杩涜鎻愰啋锛屽鏋�<=0灏辨彁閱掑繀椤讳慨鏀瑰瘑鐮� @@ -573,6 +622,21 @@ return list.stream().distinct().collect(Collectors.toList()); } + /*** + * 鏇存柊鐢ㄦ埛鍚敤鍋滅敤鐘舵�� + * @param userIds + * @param status + * @return + */ + @Override + public boolean updateUserStatus(String userIds, boolean status) { + Integer userStatus = 0; + if(!status){ + userStatus = 1; + } + return this.update(Wrappers.<User>lambdaUpdate().in(User::getId, Func.toLongList(userIds)).set(User::getUserStatus,userStatus)); + } + /** * 鏃ユ湡鏃堕棿鏍煎紡杞ぉ * @param date -- Gitblit v1.9.3