From 5a73ff491e81d43e1dacb44177b603a3b59bdb53 Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期五, 10 十月 2025 11:24:03 +0800
Subject: [PATCH] 添加字段建立枚举
---
framework/src/main/java/cn/lili/modules/member/serviceimpl/ClerkServiceImpl.java | 145 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 141 insertions(+), 4 deletions(-)
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) {
--
Gitblit v1.8.0