From 0fb6b9d8d414822668c401a2b507df1fe6d1fa2d Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期一, 16 六月 2025 14:28:08 +0800
Subject: [PATCH] 用户权限管理

---
 framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreMemberServiceImpl.java |  130 +++++++++++++++++++++++++++++-------------
 1 files changed, 89 insertions(+), 41 deletions(-)

diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreMemberServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreMemberServiceImpl.java
index bc19a15..2555f5d 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreMemberServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreMemberServiceImpl.java
@@ -4,18 +4,23 @@
 
 import cn.lili.common.security.AuthUser;
 import cn.lili.common.security.context.UserContext;
+import cn.lili.common.vo.PageVO;
 import cn.lili.modules.lmk.domain.entity.StoreMember;
 import cn.lili.modules.lmk.domain.form.StoreMemberForm;
 import cn.lili.modules.lmk.domain.query.StoreMemberQuery;
+import cn.lili.modules.lmk.domain.vo.CheckClerkPermissionVO;
 import cn.lili.modules.lmk.domain.vo.StoreMemberVO;
 import cn.lili.modules.lmk.mapper.StoreMemberMapper;
 import cn.lili.modules.lmk.service.StoreMemberService;
+import cn.lili.modules.member.entity.dos.Clerk;
 import cn.lili.modules.member.entity.dos.Member;
-import cn.lili.modules.member.entity.dto.ManagerMemberEditDTO;
-import cn.lili.modules.member.entity.dto.MemberAddDTO;
+import cn.lili.modules.member.entity.dto.*;
+import cn.lili.modules.member.entity.vo.ClerkVO;
+import cn.lili.modules.member.service.ClerkService;
 import cn.lili.modules.member.service.MemberService;
 import cn.lili.utils.PageUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import org.springframework.stereotype.Service;
@@ -24,6 +29,8 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.Assert;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -40,6 +47,8 @@
     private final StoreMemberMapper storeMemberMapper;
 
     private final MemberService memberService;
+
+    private final ClerkService clerkService;
     /**
      * 娣诲姞
      * @param form
@@ -47,29 +56,25 @@
      */
     @Override
     public Result add(StoreMemberForm form) {
-        //鎻掑叆鍒扮敤鎴疯〃涓�
-        AuthUser currentUser = UserContext.getCurrentUser();
-        String id = currentUser.getId();
-//        String storeId = currentUser.getStoreId();
-        String storeId = "12312323123";
-        if (id == null || storeId == null) {
-            return Result.error("褰撳墠鐧诲綍璐︽埛鏈粦瀹氬晢鎴锋垨鐢ㄦ埛id鑾峰彇寮傚父");
+       String storeId =UserContext.getCurrentUser().getStoreId();
+        System.out.println(storeId);
+//        storeId = "1376433565247471616"; //娴嬭瘯鐢�
+        if ( storeId == null){
+            return null;
         }
-
-        //鎻掑叆浼氬憳琛�
-        MemberAddDTO addDTO = new MemberAddDTO();
-        addDTO.setMobile(form.getMobile());
-        addDTO.setPassword(form.getPassword());
-        addDTO.setUsername(form.getMobile());
-
-        Member member = memberService.addMember(addDTO);
+        ClerkAddDTO clerkAddDTO = new ClerkAddDTO();
+        clerkAddDTO.setPassword(form.getPassword());
+        clerkAddDTO.setRoles(form.getRole());
+        clerkAddDTO.setUsername(form.getMobile());
+        clerkAddDTO.setMobile(form.getMobile());
+        clerkAddDTO.setDepartmentId(form.getDepartmentId());
+        clerkAddDTO.setIsSuper(form.getIsSuper());
+        Member member = clerkService.addClerkReturnMember(clerkAddDTO);
 
         //鎻掑叆鐢ㄦ埛鏉冮檺琛�
         //id鎻掑叆闂
         StoreMember entity = StoreMemberForm.getEntityByForm(form, null);
         entity.setMemberId(member.getId());
-        entity.setStoreId(storeId);
-
         baseMapper.insert(entity);
         return Result.ok("娣诲姞鎴愬姛");
     }
@@ -81,16 +86,27 @@
      */
     @Override
     public Result update(StoreMemberForm form) {
-        StoreMember entity = baseMapper.selectById(form.getId());
+        ClerkEditDTO clerkEditDTO = new ClerkEditDTO();
+        clerkEditDTO.setId(form.getId());
+        clerkEditDTO.setRoles(form.getRole());
+        clerkEditDTO.setDepartmentId(form.getDepartmentId());
+        clerkEditDTO.setIsSuper(form.getIsSuper());
+        Clerk clerk = clerkService.updateClerk(clerkEditDTO);
+        StoreMember entity = new LambdaQueryChainWrapper<>(baseMapper)
+                .eq(StoreMember::getMemberId,clerk.getMemberId())
+                        .one();
+        if (entity == null){
+            //鎻掑叆
+            entity = new StoreMember();
+            entity.setMemberId(clerk.getMemberId());
+            entity.setRealName(form.getRealName());
+            baseMapper.insert(entity);
+        }else {
+            //淇敼鐪熷疄濮撳悕
+            entity.setRealName(form.getRealName());
 
-        //TODO 鏄惁闇�瑕佸垽鏂瘑鐮佹柊瀵嗙爜
-        //浼氬憳淇敼瀵嗙爜锛岀數璇�
-        memberService.updateMemberPartProperties(entity.getMemberId(),form.getPassword(),form.getMobile());
-
-        //淇敼鐪熷疄濮撳悕
-        entity.setRealName(form.getRealName());
-        entity.setRole(form.getRole());
-        baseMapper.updateById(entity);
+            baseMapper.updateById(entity);
+        }
         return Result.ok("淇敼鎴愬姛");
     }
 
@@ -112,11 +128,15 @@
      */
     @Override
     public Result removeById(String id) {
-        StoreMember entity = baseMapper.selectById(id);
-        memberService.removeById(entity.getMemberId());
-        baseMapper.deleteById(id);
-        //鍚屾椂鍒犻櫎鐢ㄦ埛
+        ClerkVO clerkVO =clerkService.get(id);
+        List<String> ids = new ArrayList<>();
+        ids.add(id);
+        clerkService.deleteClerk(ids);
 
+        baseMapper.delete(new LambdaQueryChainWrapper<>(baseMapper)
+                .eq(StoreMember::getMemberId,clerkVO.getMemberId()));
+        //鍚屾椂鍒犻櫎鐢ㄦ埛
+        // 鐢ㄦ埛瑙掕壊
 
         return Result.ok("鍒犻櫎鎴愬姛");
     }
@@ -128,15 +148,17 @@
      */
     @Override
     public Result page(StoreMemberQuery query) {
-        AuthUser currentUser = UserContext.getCurrentUser();
-//        String storeId = currentUser.getStoreId();
-        String storeId = "12312323123";
+        String storeId = UserContext.getCurrentUser().getStoreId();
+
+        //TODO 涓嶉�氳繃UserContext鑾峰緱搴楅摵id锛岄�氳繃浼氬憳id鏌ヨ鏁版嵁搴撻噷鐨勫晢搴梚d
+//        String storeId = "1376433565247471616";
         if (storeId == null) {
             return Result.error("褰撳墠鐧诲綍璐︽埛鏈粦瀹氬晢鎴锋垨鐢ㄦ埛id鑾峰彇寮傚父");
         }
-        IPage<StoreMemberVO> page = PageUtil.getPage(query, StoreMemberVO.class);
+        System.out.println(query.getPageNumber());
+        IPage<ClerkVO> page = PageUtil.getPage(query, ClerkVO.class);
         query.setStoreId(storeId);
-        baseMapper.getPage(page, query);
+        baseMapper.getClerkPage(page, query);
         return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
@@ -147,11 +169,17 @@
      */
     @Override
     public Result detail(String id) {
-        StoreMemberVO vo = baseMapper.getById(id);
-        //瀵嗙爜鏄惁闇�瑕佽В瀵�
+        ClerkVO clerkVO = clerkService.get(id);
+        StoreMember storeMember = new LambdaQueryChainWrapper<>(baseMapper)
+                .eq(StoreMember::getMemberId, clerkVO.getMemberId())
+                .one();
+        if (storeMember != null) {
+            clerkVO.setRealName(storeMember.getRealName());
+        }
 
-        Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
-        return Result.ok().data(vo);
+        //瀵嗙爜鏄惁闇�瑕佽В瀵�
+        Assert.notNull(clerkVO, "璁板綍涓嶅瓨鍦�");
+        return Result.ok().data(clerkVO);
     }
 
     /**
@@ -166,4 +194,24 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+    // 鑾峰緱褰撳墠璐﹀彿鐨勭敤鎴峰簵鍛樹俊鎭�
+    public ClerkVO getUserContextClerkInfo(){
+        String id = UserContext.getCurrentUser().getId();
+        Clerk clerk = clerkService.getClerkByMemberId(id);
+        if (clerk == null){
+            throw new RuntimeException("鑾峰彇搴楀憳淇℃伅寮傚父");
+        }
+        return clerkService.get(clerk.getId());
+    }
+
+    @Override
+    public Result checkDelAndUpdatePermission() {
+
+        ClerkVO clerkVO = getUserContextClerkInfo();
+        CheckClerkPermissionVO permissionVO  = new CheckClerkPermissionVO();
+        permissionVO.setClerkId(clerkVO.getId());
+        permissionVO.setIsShopkeeper(clerkVO.getShopkeeper());
+        permissionVO.setIsSuper(clerkVO.getIsSuper());
+        return Result.ok().data(permissionVO);
+    }
 }

--
Gitblit v1.8.0