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/member/serviceimpl/StoreRoleServiceImpl.java | 18 + framework/src/main/java/cn/lili/modules/lmk/service/StoreMemberService.java | 7 seller-api/src/main/java/cn/lili/controller/permission/ClerkStoreController.java | 41 ---- framework/src/main/java/cn/lili/modules/member/service/StoreRoleService.java | 2 framework/src/main/java/cn/lili/modules/lmk/domain/entity/StoreMember.java | 8 framework/src/main/java/cn/lili/modules/lmk/domain/query/CheckClerkMobileQuery.java | 17 + framework/src/main/java/cn/lili/modules/lmk/mapper/StoreMemberMapper.java | 3 framework/src/main/java/cn/lili/modules/member/service/ClerkService.java | 15 + seller-api/src/main/java/cn/lili/controller/permission/StoreRoleController.java | 2 framework/src/main/java/cn/lili/modules/member/entity/vo/ClerkVO.java | 2 framework/src/main/java/cn/lili/modules/member/serviceimpl/ClerkServiceImpl.java | 145 +++++++++++++++ buyer-api/src/main/java/cn/lili/controller/lmk/StoreMemberController.java | 43 ++++ framework/src/main/java/cn/lili/modules/lmk/domain/query/StoreMemberQuery.java | 8 framework/src/main/java/cn/lili/modules/lmk/domain/vo/CheckClerkPermissionVO.java | 23 ++ framework/src/main/java/cn/lili/modules/lmk/domain/form/StoreMemberForm.java | 10 framework/src/main/java/cn/lili/modules/lmk/service/impl/StoreMemberServiceImpl.java | 130 +++++++++---- framework/src/main/resources/mapper/lmk/StoreMemberMapper.xml | 49 ++++- 17 files changed, 414 insertions(+), 109 deletions(-) diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/StoreMemberController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/StoreMemberController.java index 87891a6..6501fb8 100644 --- a/buyer-api/src/main/java/cn/lili/controller/lmk/StoreMemberController.java +++ b/buyer-api/src/main/java/cn/lili/controller/lmk/StoreMemberController.java @@ -2,13 +2,26 @@ import cn.lili.base.Result; +import cn.lili.common.enums.ResultUtil; +import cn.lili.common.security.context.UserContext; +import cn.lili.common.utils.StringUtils; +import cn.lili.common.validation.Phone; +import cn.lili.common.vo.ResultMessage; +import cn.lili.common.vo.SearchVO; import cn.lili.group.Add; import cn.lili.group.Update; import cn.lili.modules.lmk.domain.form.StoreMemberForm; +import cn.lili.modules.lmk.domain.query.CheckClerkMobileQuery; import cn.lili.modules.lmk.domain.query.StoreMemberQuery; import cn.lili.modules.lmk.service.StoreMemberService; import cn.lili.modules.member.entity.dos.Member; +import cn.lili.modules.member.entity.dos.StoreDepartment; +import cn.lili.modules.member.entity.vo.StoreDepartmentVO; +import cn.lili.modules.member.service.ClerkService; import cn.lili.modules.member.service.MemberService; +import cn.lili.modules.member.service.StoreDepartmentService; +import cn.lili.modules.member.service.StoreRoleService; +import cn.lili.mybatis.util.PageUtil; import org.springframework.validation.annotation.Validated; import lombok.RequiredArgsConstructor; import java.util.List; @@ -33,6 +46,23 @@ private final StoreMemberService storeMemberService; private final MemberService memberService; + private final StoreRoleService storeRoleService; + private final StoreDepartmentService storeDepartmentService; + private final ClerkService clerkService; + + @GetMapping + @RequestMapping("/getStoreRoleList") + public Result getStoreRoleList(){ + return Result.ok().data(storeRoleService.getSelectList()); + } + + @PostMapping("/check") + @ApiOperation(value = "妫�娴嬫墜鏈哄彿鐮佹湁鏁堟��") + public Result check(@RequestBody CheckClerkMobileQuery checkClerkMobileQuery) { + System.out.println(checkClerkMobileQuery); + return Result.ok().data(clerkService.checkClerk(checkClerkMobileQuery.getMemberId(),checkClerkMobileQuery.getMobile())); + } + @PostMapping @ApiOperation(value = "娣诲姞", notes = "娣诲姞") @@ -44,6 +74,13 @@ @ApiOperation(value = "閲嶇疆瀵嗙爜", notes = "閲嶇疆瀵嗙爜") public Result restPassword(@PathVariable String id){ return memberService.resetPassword(id); + } + @GetMapping("/store/department") + @ApiOperation(value = "鑾峰彇鏍戠姸缁撴瀯") + public Result getByPage(StoreDepartment entity, SearchVO searchVo) { + entity.setStoreId(UserContext.getCurrentUser().getStoreId()); + return Result.ok().data(storeDepartmentService.tree(PageUtil.initWrapper(entity, searchVo))); + } @PutMapping @@ -70,6 +107,12 @@ return storeMemberService.page(query); } + @GetMapping("/checkPermission") + @ApiOperation(value = "鑾峰緱褰撳墠鐢ㄦ埛鐨勫簵鍛樻潈闄�", notes = "鑾峰緱褰撳墠鐢ㄦ埛鐨勫簵鍛樻潈闄�") + public Result checkDelAndUpdatePermission(){ + return storeMemberService.checkDelAndUpdatePermission(); + } + @GetMapping("/{id}") @ApiOperation(value = "璇︽儏", notes = "璇︽儏") public Result detail(@PathVariable("id") String id) { diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/StoreMember.java b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/StoreMember.java index c024434..aa3d72a 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/StoreMember.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/StoreMember.java @@ -22,14 +22,8 @@ /** 鐪熷疄濮撳悕 */ private String realName; - @TableField("role") - /** 瑙掕壊 */ - private String role; - @TableField("member_id") /** 浼氬憳鐢ㄦ埛id */ private String memberId; - /** 鍟嗘埛id */ - @TableField("store_id") - private String storeId; + } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/StoreMemberForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/StoreMemberForm.java index 8a1e5d3..5b334dc 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/form/StoreMemberForm.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/StoreMemberForm.java @@ -12,6 +12,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * 鐢ㄦ埛鏉冮檺绠$悊(鍟嗗)琛ㄥ崟 * @@ -33,11 +35,15 @@ @ApiModelProperty("瀵嗙爜") private String password; + @ApiModelProperty("鏄惁鏄鐞嗗憳") + private Boolean isSuper; - @NotBlank(message = "瑙掕壊涓嶈兘涓虹┖", groups = {Add.class, Update.class}) @ApiModelProperty("瑙掕壊Json瀛楃涓�") - private String role; + private List<String> role; + + @ApiModelProperty("閮ㄩ棬id") + private String departmentId; public static StoreMember getEntityByForm(@NonNull StoreMemberForm form, StoreMember entity) { if(entity == null) { diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/CheckClerkMobileQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/CheckClerkMobileQuery.java new file mode 100644 index 0000000..cb0f971 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/CheckClerkMobileQuery.java @@ -0,0 +1,17 @@ +package cn.lili.modules.lmk.domain.query; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * 搴楀憳鐢佃瘽鏈夋晥鎬ф娴嬪弬鏁� + * + */ +@Data +@ApiModel(value = "搴楀憳鐢佃瘽鏈夋晥鎬ф娴嬪弬鏁�", description = "搴楀憳鐢佃瘽鏈夋晥鎬ф娴嬪弬鏁�") +public class CheckClerkMobileQuery { + + private String mobile; + + private String memberId; +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/StoreMemberQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/StoreMemberQuery.java index b5f9686..da36965 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/query/StoreMemberQuery.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/StoreMemberQuery.java @@ -14,9 +14,15 @@ @ApiModel(value = "LmkUserPermissions鏌ヨ鍙傛暟", description = "鐢ㄦ埛鏉冮檺绠$悊(鍟嗗)鏌ヨ鍙傛暟") public class StoreMemberQuery extends AbsQuery { - /** 鐪熷疄濮撳悕*/ + /** 鐪熷疄濮撳悕 */ private String realName; /** 搴楅摵id */ private String storeId; + /** 鐢佃瘽 */ + private String mobile; + /** 閮ㄩ棬id*/ + private String departmentId; + + } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CheckClerkPermissionVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CheckClerkPermissionVO.java new file mode 100644 index 0000000..eb2ef70 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/CheckClerkPermissionVO.java @@ -0,0 +1,23 @@ +package cn.lili.modules.lmk.domain.vo; + +import lombok.Data; + +/** + * 搴楀憳鏉冮檺鍝嶅簲瀵硅薄 + */ +@Data +public class CheckClerkPermissionVO { + /** + * 搴楀憳id + */ + private String clerkId; + /** + * 鏄惁鏄簵涓� + */ + private Boolean isShopkeeper; + /** + * 鏄惁鏄秴绾х鐞嗗憳 + */ + private Boolean isSuper; + +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/StoreMemberMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/StoreMemberMapper.java index 23e19c2..5ca3185 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/mapper/StoreMemberMapper.java +++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/StoreMemberMapper.java @@ -3,6 +3,7 @@ import cn.lili.modules.lmk.domain.entity.StoreMember; import cn.lili.modules.lmk.domain.query.StoreMemberQuery; import cn.lili.modules.lmk.domain.vo.StoreMemberVO; +import cn.lili.modules.member.entity.dto.ClerkQueryDTO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -30,4 +31,6 @@ */ IPage getPage(IPage page, @Param("query") StoreMemberQuery query); + IPage getClerkPage(IPage page, @Param("query") StoreMemberQuery query); + } diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/StoreMemberService.java b/framework/src/main/java/cn/lili/modules/lmk/service/StoreMemberService.java index 7eb7339..cea27c7 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/StoreMemberService.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/StoreMemberService.java @@ -5,6 +5,7 @@ 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.member.entity.dto.ClerkQueryDTO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -64,4 +65,10 @@ * @return */ Result all(); + + /** + * 妫�鏌ョ敤鎴锋潈闄愮鐞嗚兘鍙戝垹闄ゆ垨淇敼鐢ㄦ埛 + * @return + */ + Result checkDelAndUpdatePermission(); } 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); + } } diff --git a/framework/src/main/java/cn/lili/modules/member/entity/vo/ClerkVO.java b/framework/src/main/java/cn/lili/modules/member/entity/vo/ClerkVO.java index 6a695b2..9b662ff 100644 --- a/framework/src/main/java/cn/lili/modules/member/entity/vo/ClerkVO.java +++ b/framework/src/main/java/cn/lili/modules/member/entity/vo/ClerkVO.java @@ -36,6 +36,8 @@ @ApiModelProperty(value = "鐢ㄦ埛鎷ユ湁鐨勬潈闄�") private List<StoreMenu> menus; + /** 鐪熷疄濮撳悕*/ + private String realName; public ClerkVO(Clerk clerk) { BeanUtil.copyProperties(clerk, this); diff --git a/framework/src/main/java/cn/lili/modules/member/service/ClerkService.java b/framework/src/main/java/cn/lili/modules/member/service/ClerkService.java index 17bf036..8b43997 100644 --- a/framework/src/main/java/cn/lili/modules/member/service/ClerkService.java +++ b/framework/src/main/java/cn/lili/modules/member/service/ClerkService.java @@ -1,6 +1,8 @@ package cn.lili.modules.member.service; +import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.PageVO; +import cn.lili.common.vo.ResultMessage; import cn.lili.modules.member.entity.dos.Clerk; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dto.ClerkAddDTO; @@ -23,6 +25,11 @@ * @date 2021/12/28 7:42 涓嬪崍 */ public interface ClerkService extends IService<Clerk> { + + + ResultMessage<Object> addClerk(ClerkAddDTO clerkAddDTO); + + Member addClerkReturnMember(ClerkAddDTO clerkAddDTO); /** * 搴楀憳鏌ヨ @@ -88,6 +95,14 @@ Member checkClerk(String mobile); /** + * 灏忕▼搴忕妫�娴嬬數璇濆彿鐮佹湁鏁堟�� + * @param memberId + * @param mobile + * @return + */ + Member checkClerk(String memberId, String mobile); + + /** * 搴楀憳鐘舵�佹搷浣� * * @param id 搴楀憳id diff --git a/framework/src/main/java/cn/lili/modules/member/service/StoreRoleService.java b/framework/src/main/java/cn/lili/modules/member/service/StoreRoleService.java index 74c9804..4f5e027 100644 --- a/framework/src/main/java/cn/lili/modules/member/service/StoreRoleService.java +++ b/framework/src/main/java/cn/lili/modules/member/service/StoreRoleService.java @@ -14,6 +14,8 @@ */ public interface StoreRoleService extends IService<StoreRole> { + List<StoreRole> getSelectList(); + /** * 鑾峰彇榛樿瑙掕壊 * 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 481b812..2d9ebf6 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 @@ -1,14 +1,16 @@ package cn.lili.modules.member.serviceimpl; - +import lombok.extern.slf4j.Slf4j; import cn.hutool.core.text.CharSequenceUtil; import cn.lili.cache.Cache; import cn.lili.cache.CachePrefix; import cn.lili.common.enums.ResultCode; +import cn.lili.common.enums.ResultUtil; import cn.lili.common.exception.ServiceException; import cn.lili.common.security.context.UserContext; import cn.lili.common.security.enums.UserEnums; import cn.lili.common.utils.StringUtils; import cn.lili.common.vo.PageVO; +import cn.lili.common.vo.ResultMessage; import cn.lili.modules.member.entity.dos.Clerk; import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.StoreClerkRole; @@ -16,6 +18,7 @@ import cn.lili.modules.member.entity.dto.ClerkAddDTO; import cn.lili.modules.member.entity.dto.ClerkEditDTO; import cn.lili.modules.member.entity.dto.ClerkQueryDTO; +import cn.lili.modules.member.entity.dto.MemberAddDTO; import cn.lili.modules.member.entity.vo.ClerkVO; import cn.lili.modules.member.mapper.ClerkMapper; import cn.lili.modules.member.service.*; @@ -43,6 +46,7 @@ */ @Service @Transactional(rollbackFor = Exception.class) +@Slf4j public class ClerkServiceImpl extends ServiceImpl<ClerkMapper, Clerk> implements ClerkService { @Autowired @@ -57,7 +61,100 @@ private Cache cache; @Override + public ResultMessage<Object> addClerk(ClerkAddDTO clerkAddDTO) { + int rolesMaxSize = 10; + try { + //瑙掕壊蹇呴�夛紝骞朵笖鏈�鍚庤缃�10涓� + if (clerkAddDTO.getRoles() != null && clerkAddDTO.getRoles().size() >= rolesMaxSize) { + throw new ServiceException(ResultCode.PERMISSION_BEYOND_TEN); + } + //鏍¢獙鏄惁宸茬粡鏄細鍛� + Member member = memberService.findByMobile(clerkAddDTO.getMobile()); + if (member == null) { + //娣诲姞浼氬憳 + MemberAddDTO memberAddDTO = new MemberAddDTO(); + memberAddDTO.setMobile(clerkAddDTO.getMobile()); + memberAddDTO.setPassword(clerkAddDTO.getPassword()); + memberAddDTO.setUsername(clerkAddDTO.getUsername()); + member = memberService.addMember(memberAddDTO); + } else { + //鏍¢獙瑕佹坊鍔犵殑浼氬憳鏄惁宸茬粡鏄簵涓� + if (Boolean.TRUE.equals(member.getHaveStore())) { + throw new ServiceException(ResultCode.STORE_APPLY_DOUBLE_ERROR); + } + //鏍¢獙浼氬憳鐨勬湁鏁堟�� + if (Boolean.FALSE.equals(member.getDisabled())) { + throw new ServiceException(ResultCode.USER_STATUS_ERROR); + } + } + //娣诲姞搴楀憳 + clerkAddDTO.setMemberId(member.getId()); + clerkAddDTO.setShopkeeper(false); + clerkAddDTO.setStoreId(UserContext.getCurrentUser().getStoreId()); + this.saveClerk(clerkAddDTO); + //淇敼姝や細鍛樻嫢鏈夊簵閾� + List<String> ids = new ArrayList<>(); + ids.add(member.getId()); + memberService.updateHaveShop(true, UserContext.getCurrentUser().getStoreId(), ids); + } catch (ServiceException se) { + log.info(se.getMsg(), se); + throw se; + } catch (Exception e) { + log.error("娣诲姞搴楀憳鍑洪敊", e); + } + return ResultUtil.success(); + } + @Override + public Member addClerkReturnMember(ClerkAddDTO clerkAddDTO) { + int rolesMaxSize = 10; + Member member = null; + try { + //瑙掕壊蹇呴�夛紝骞朵笖鏈�鍚庤缃�10涓� + if (clerkAddDTO.getRoles() != null && clerkAddDTO.getRoles().size() >= rolesMaxSize) { + throw new ServiceException(ResultCode.PERMISSION_BEYOND_TEN); + } + //鏍¢獙鏄惁宸茬粡鏄細鍛� + member = memberService.findByMobile(clerkAddDTO.getMobile()); + if (member == null) { + //娣诲姞浼氬憳 + MemberAddDTO memberAddDTO = new MemberAddDTO(); + memberAddDTO.setMobile(clerkAddDTO.getMobile()); + memberAddDTO.setPassword(clerkAddDTO.getPassword()); + memberAddDTO.setUsername(clerkAddDTO.getUsername()); + member = memberService.addMember(memberAddDTO); + } else { + //鏍¢獙瑕佹坊鍔犵殑浼氬憳鏄惁宸茬粡鏄簵涓� + if (Boolean.TRUE.equals(member.getHaveStore())) { + throw new ServiceException(ResultCode.STORE_APPLY_DOUBLE_ERROR); + } + //鏍¢獙浼氬憳鐨勬湁鏁堟�� + if (Boolean.FALSE.equals(member.getDisabled())) { + throw new ServiceException(ResultCode.USER_STATUS_ERROR); + } + } + //娣诲姞搴楀憳 + clerkAddDTO.setMemberId(member.getId()); + clerkAddDTO.setShopkeeper(false); + String storeId = UserContext.getCurrentUser().getStoreId(); +// storeId = "1376433565247471616"; //娴嬭瘯鐢� + clerkAddDTO.setStoreId(storeId); + this.saveClerk(clerkAddDTO); + //淇敼姝や細鍛樻嫢鏈夊簵閾� + List<String> ids = new ArrayList<>(); + ids.add(member.getId()); + memberService.updateHaveShop(true,storeId, ids); + + } catch (ServiceException se) { + log.info(se.getMsg(), se); + throw se; + } catch (Exception e) { + log.error("娣诲姞搴楀憳鍑洪敊", e); + } + return member; + } + @Override public IPage<ClerkVO> clerkForPage(PageVO page, ClerkQueryDTO clerkQueryDTO) { + QueryWrapper<ClerkVO> clerkVOQueryWrapper = new QueryWrapper<>(); clerkVOQueryWrapper.eq("li_clerk.store_id", UserContext.getCurrentUser().getStoreId()); @@ -159,9 +256,10 @@ if (Boolean.TRUE.equals(clerk.getShopkeeper())) { throw new ServiceException(ResultCode.CANT_EDIT_CLERK_SHOPKEEPER); } - + String storeId = UserContext.getCurrentUser().getStoreId(); +// storeId = "1376433565247471616"; //鏍¢獙褰撳墠搴楀憳鏄惁鏄綋鍓嶅簵閾虹殑 - if (!clerk.getStoreId().equals(UserContext.getCurrentUser().getStoreId())) { + if (!clerk.getStoreId().equals(storeId)) { throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR); } if (Boolean.TRUE.equals(clerkEditDTO.getIsSuper())) { @@ -186,8 +284,11 @@ //閮ㄩ棬鏍¢獙 if (CharSequenceUtil.isNotEmpty(clerkEditDTO.getDepartmentId())) { + System.out.println(clerkEditDTO.getDepartmentId()); + System.out.println(storeDepartmentService.getById(clerkEditDTO.getDepartmentId())); if (storeDepartmentService.getById(clerkEditDTO.getDepartmentId()) != null) { clerk.setDepartmentId(clerkEditDTO.getDepartmentId()); + System.out.println(clerk); } else { throw new ServiceException(ResultCode.PERMISSION_NOT_FOUND_ERROR); } @@ -226,6 +327,7 @@ //瑙掕壊鏍¢獙 if (clerkAddDTO.getRoles() != null && !clerkAddDTO.getRoles().isEmpty()) { List<StoreRole> storeRoles = storeRoleService.list(clerkAddDTO.getRoles()); + System.out.println(storeRoles); if (storeRoles.size() != clerkAddDTO.getRoles().size()) { throw new ServiceException(ResultCode.USER_AUTHORITY_ERROR); } @@ -277,7 +379,9 @@ @Override public void deleteClerk(List<String> ids) { QueryWrapper<Clerk> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("store_id", UserContext.getCurrentUser().getStoreId()); + ; +// String storeId = "1376433565247471616"; + queryWrapper.eq("store_id", UserContext.getCurrentUser().getId()); queryWrapper.in("id", ids); List<Clerk> clerks = this.baseMapper.selectList(queryWrapper); if (!clerks.isEmpty()) { @@ -291,6 +395,7 @@ List<String> memberIds = new ArrayList<>(); clerks.forEach(clerk -> { //鏃犳硶鍒犻櫎褰撳墠鐧诲綍鐨勫簵鍛� + System.out.println(UserContext.getCurrentUser()); if (UserContext.getCurrentUser().getClerkId().equals(clerk.getId())) { throw new ServiceException(ResultCode.CLERK_CURRENT_SUPPER); } @@ -331,6 +436,38 @@ } @Override + public Member checkClerk(String memberId, String mobile) { + //鏍¢獙鏄惁宸茬粡鏄細鍛� + Member member = memberService.findByMobile(mobile); + System.out.println(member); + if (member != null) { + // 鏄綋鍓嶈处鍙蜂慨鏀� + if (memberId !=null && memberId.equals(member.getId())) { + return member; + } + + //鏍¢獙瑕佹坊鍔犵殑浼氬憳鏄惁宸茬粡鏄簵涓� + if (Boolean.TRUE.equals(member.getHaveStore())) { + throw new ServiceException(ResultCode.STORE_APPLY_DOUBLE_ERROR); + } + //鏍¢獙浼氬憳鐨勬湁鏁堟�� + if (Boolean.FALSE.equals(member.getDisabled())) { + throw new ServiceException(ResultCode.USER_STATUS_ERROR); + } + //鏍¢獙姝や細鍛樻槸鍚﹀凡缁忔槸搴楀憳 + Clerk clerk = this.getClerkByMemberId(member.getId()); + if (clerk != null && !clerk.getStoreId().equals(UserContext.getCurrentUser().getStoreId())) { + throw new ServiceException(ResultCode.CLERK_USER_ERROR); + } + if (clerk != null && clerk.getStoreId().equals(UserContext.getCurrentUser().getStoreId())) { + throw new ServiceException(ResultCode.CLERK_ALREADY_EXIT_ERROR); + } + return member; + } + return new Member(); + } + + @Override public void disable(String id, Boolean status) { Clerk clerk = this.getById(id); if (clerk == null) { diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreRoleServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreRoleServiceImpl.java index 0283f2b..6408262 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreRoleServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/StoreRoleServiceImpl.java @@ -12,6 +12,7 @@ import cn.lili.modules.member.service.StoreDepartmentRoleService; import cn.lili.modules.member.service.StoreMenuRoleService; import cn.lili.modules.member.service.StoreRoleService; +import cn.lili.mybatis.util.PageUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -29,7 +30,21 @@ @Service @Transactional(rollbackFor = Exception.class) public class StoreRoleServiceImpl extends ServiceImpl<StoreRoleMapper, StoreRole> implements StoreRoleService { + @Override + public List<StoreRole> getSelectList() { + String storeId = UserContext.getCurrentUser().getStoreId(); +// System.out.println(UserContext.getCurrentUser().getId()); +// System.out.println(storeId); +// String storeId = "1376433565247471616"; + if ( storeId == null) { + return null; + } + StoreRole storeRole = new StoreRole(); + storeRole.setStoreId(storeId); + + return this.list(PageUtil.initWrapper(storeRole)); + } /** * 閮ㄩ棬瑙掕壊 */ @@ -109,7 +124,8 @@ @Override public List<StoreRole> list(List<String> ids) { QueryWrapper<StoreRole> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("store_id", UserContext.getCurrentUser().getStoreId()); + String storeId = UserContext.getCurrentUser().getStoreId(); + queryWrapper.eq("store_id", storeId); queryWrapper.in("id", ids); return this.baseMapper.selectList(queryWrapper); } diff --git a/framework/src/main/resources/mapper/lmk/StoreMemberMapper.xml b/framework/src/main/resources/mapper/lmk/StoreMemberMapper.xml index e40eeb7..ee9aed1 100644 --- a/framework/src/main/resources/mapper/lmk/StoreMemberMapper.xml +++ b/framework/src/main/resources/mapper/lmk/StoreMemberMapper.xml @@ -24,8 +24,6 @@ SELECT LSM.id, LSM.real_name, - LSM.role, - LSM.store_id, LSM.member_id, LM.mobile, LM.username @@ -38,24 +36,49 @@ </select> + + <select id="getPage" resultMap="BaseResultMap"> SELECT - LSM.id, - LSM.real_name, - LSM.role, - LSM.store_id, - LSM.member_id, - LM.mobile, - LM.username - FROM lmk_store_member LSM - LEFT JOIN li_member LM - ON LM.id = LSM.member_id + LM.id, + LSM.real_name, + LM.store_id, + LM.mobile + FROM li_member LM + LEFT JOIN li_clerk LC + ON LC.member_id = LM.id + LEFT JOIN lmk_store_member LSM + ON LSM.member_id = LM.id where LSM.delete_flag = 0 AND LM.delete_flag = 0 + AND LC.delete_flag = 0 <if test="query.realName != null and query.realName != ''"> AND LSM.real_name LIKE CONCAT('%', #{query.realName}, '%') </if> - AND LSM.store_id = #{query.storeId} + AND LM.store_id = #{query.storeId} </select> + <select id="getClerkPage" resultType="cn.lili.modules.member.entity.vo.ClerkVO"> + SELECT + LC.*, + m.id, + m.mobile as mobile, + LSM.real_name as realName + FROM + li_clerk LC + Inner JOIN li_member m ON LC.member_id = m.id + LEFT JOIN lmk_store_member LSM ON LSM.member_id = m.id + <where> + LC.store_id = #{query.storeId} + <if test="query.departmentId != null and query.departmentId != ''"> + AND LC.department_id = #{query.departmentId} + </if> + <if test="query.realName != null and query.realName != ''"> + AND LSM.real_name LIKE CONCAT('%', #{query.realName}, '%') + </if> + <if test="query.mobile != null and query.mobile != ''"> + AND m.mobile LIKE CONCAT('%', #{query.mobile}, '%') + </if> + </where> + </select> </mapper> diff --git a/seller-api/src/main/java/cn/lili/controller/permission/ClerkStoreController.java b/seller-api/src/main/java/cn/lili/controller/permission/ClerkStoreController.java index c60c98a..a799996 100644 --- a/seller-api/src/main/java/cn/lili/controller/permission/ClerkStoreController.java +++ b/seller-api/src/main/java/cn/lili/controller/permission/ClerkStoreController.java @@ -80,46 +80,7 @@ @PostMapping @ApiOperation(value = "娣诲姞搴楀憳") public ResultMessage<Object> add(@Valid ClerkAddDTO clerkAddDTO) { - int rolesMaxSize = 10; - try { - if (clerkAddDTO.getRoles() != null && clerkAddDTO.getRoles().size() >= rolesMaxSize) { - throw new ServiceException(ResultCode.PERMISSION_BEYOND_TEN); - } - //鏍¢獙鏄惁宸茬粡鏄細鍛� - Member member = memberService.findByMobile(clerkAddDTO.getMobile()); - if (member == null) { - //娣诲姞浼氬憳 - MemberAddDTO memberAddDTO = new MemberAddDTO(); - memberAddDTO.setMobile(clerkAddDTO.getMobile()); - memberAddDTO.setPassword(clerkAddDTO.getPassword()); - memberAddDTO.setUsername(clerkAddDTO.getUsername()); - member = memberService.addMember(memberAddDTO); - } else { - //鏍¢獙瑕佹坊鍔犵殑浼氬憳鏄惁宸茬粡鏄簵涓� - if (Boolean.TRUE.equals(member.getHaveStore())) { - throw new ServiceException(ResultCode.STORE_APPLY_DOUBLE_ERROR); - } - //鏍¢獙浼氬憳鐨勬湁鏁堟�� - if (Boolean.FALSE.equals(member.getDisabled())) { - throw new ServiceException(ResultCode.USER_STATUS_ERROR); - } - } - //娣诲姞搴楀憳 - clerkAddDTO.setMemberId(member.getId()); - clerkAddDTO.setShopkeeper(false); - clerkAddDTO.setStoreId(UserContext.getCurrentUser().getStoreId()); - clerkService.saveClerk(clerkAddDTO); - //淇敼姝や細鍛樻嫢鏈夊簵閾� - List<String> ids = new ArrayList<>(); - ids.add(member.getId()); - memberService.updateHaveShop(true, UserContext.getCurrentUser().getStoreId(), ids); - } catch (ServiceException se) { - log.info(se.getMsg(), se); - throw se; - } catch (Exception e) { - log.error("娣诲姞搴楀憳鍑洪敊", e); - } - return ResultUtil.success(); + return clerkService.addClerk(clerkAddDTO); } diff --git a/seller-api/src/main/java/cn/lili/controller/permission/StoreRoleController.java b/seller-api/src/main/java/cn/lili/controller/permission/StoreRoleController.java index 83e5761..62c7d0a 100644 --- a/seller-api/src/main/java/cn/lili/controller/permission/StoreRoleController.java +++ b/seller-api/src/main/java/cn/lili/controller/permission/StoreRoleController.java @@ -46,6 +46,8 @@ return ResultUtil.data(page); } + + @PutMapping("/{roleId}") @ApiOperation(value = "缂栬緫搴楅摵瑙掕壊") public ResultMessage<StoreRole> edit(@PathVariable String roleId, StoreRole storeRole) { -- Gitblit v1.8.0