diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/ClerkServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/ClerkServiceImpl.java index 0ebdce68..481b8125 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/ClerkServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/ClerkServiceImpl.java @@ -20,6 +20,7 @@ import cn.lili.modules.member.entity.vo.ClerkVO; import cn.lili.modules.member.mapper.ClerkMapper; import cn.lili.modules.member.service.*; import cn.lili.mybatis.util.PageUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -169,6 +170,17 @@ public class ClerkServiceImpl extends ServiceImpl implements //角色赋值 if (!clerkEditDTO.getRoles().isEmpty()) { clerk.setRoleIds(CharSequenceUtil.join(",", clerkEditDTO.getRoles())); + //添加店员用户角色 + List storeClerkRoleList = new ArrayList<>(); + + clerkEditDTO.getRoles().forEach(a -> storeClerkRoleList.add(StoreClerkRole.builder().clerkId(clerk.getId()).roleId(a).build())); + + storeClerkRoleService.saveBatch(storeClerkRoleList); + } else { + clerk.setRoleIds(""); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StoreClerkRole::getClerkId, clerk.getId()); + storeClerkRoleService.remove(queryWrapper); } } @@ -179,19 +191,12 @@ public class ClerkServiceImpl extends ServiceImpl implements } else { throw new ServiceException(ResultCode.PERMISSION_NOT_FOUND_ERROR); } + } else { + clerk.setDepartmentId(""); } - //判断用户角色权限不为超级会员且权限路径不为空 - if (Boolean.FALSE.equals(clerkEditDTO.getIsSuper()) && clerkEditDTO.getRoles() != null) { - //添加店员用户角色 - List storeClerkRoleList = new ArrayList<>(); - - clerkEditDTO.getRoles().forEach(a -> storeClerkRoleList.add(StoreClerkRole.builder().clerkId(clerk.getId()).roleId(a).build())); - - storeClerkRoleService.saveBatch(storeClerkRoleList); - cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + UserContext.getCurrentUser().getId()); - cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix() + UserContext.getCurrentUser().getId()); - } + cache.vagueDel(CachePrefix.PERMISSION_LIST.getPrefix(UserEnums.STORE) + clerk.getMemberId()); + cache.vagueDel(CachePrefix.STORE_USER_MENU.getPrefix() + clerk.getMemberId()); clerk.setIsSuper(clerkEditDTO.getIsSuper()); this.updateById(clerk); return clerk; diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreMenuServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreMenuServiceImpl.java index 1a315cce..0b343b2d 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreMenuServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreMenuServiceImpl.java @@ -86,9 +86,9 @@ public class StoreMenuServiceImpl extends ServiceImpl findUserList(String userId, String clerkId) { - String cacheKey = CachePrefix.STORE_USER_MENU.getPrefix() + clerkId; + String cacheKey = CachePrefix.STORE_USER_MENU.getPrefix() + userId; List menuList = (List) cache.get(cacheKey); - if (menuList == null) { + if (menuList == null || menuList.isEmpty()) { menuList = this.baseMapper.findByUserId(clerkId); cache.put(cacheKey, menuList); }