package cn.lili.modules.lmk.service.impl;
|
|
import cn.lili.base.Result;
|
|
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.*;
|
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;
|
import lombok.RequiredArgsConstructor;
|
|
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;
|
|
/**
|
* 用户权限管理(商家) 服务实现类
|
*
|
* @author zxl
|
* @since 2025-05-30
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class StoreMemberServiceImpl extends ServiceImpl<StoreMemberMapper, StoreMember> implements StoreMemberService {
|
|
private final StoreMemberMapper storeMemberMapper;
|
|
private final MemberService memberService;
|
|
private final ClerkService clerkService;
|
/**
|
* 添加
|
* @param form
|
* @return
|
*/
|
@Override
|
public Result add(StoreMemberForm form) {
|
String storeId =UserContext.getCurrentUser().getStoreId();
|
System.out.println(storeId);
|
// storeId = "1376433565247471616"; //测试用
|
if ( storeId == null){
|
return null;
|
}
|
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());
|
baseMapper.insert(entity);
|
return Result.ok("添加成功");
|
}
|
|
/**
|
* 修改
|
* @param form
|
* @return
|
*/
|
@Override
|
public Result update(StoreMemberForm form) {
|
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());
|
|
baseMapper.updateById(entity);
|
}
|
return Result.ok("修改成功");
|
}
|
|
/**
|
* 批量删除
|
* @param ids
|
* @return
|
*/
|
@Override
|
public Result remove(List<String> ids) {
|
baseMapper.deleteBatchIds(ids);
|
return Result.ok("删除成功");
|
}
|
|
/**
|
* id删除
|
* @param id
|
* @return
|
*/
|
@Override
|
public Result removeById(String 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("删除成功");
|
}
|
|
/**
|
* 分页查询
|
* @param query
|
* @return
|
*/
|
@Override
|
public Result page(StoreMemberQuery query) {
|
String storeId = UserContext.getCurrentUser().getStoreId();
|
|
//TODO 不通过UserContext获得店铺id,通过会员id查询数据库里的商店id
|
// String storeId = "1376433565247471616";
|
if (storeId == null) {
|
return Result.error("当前登录账户未绑定商户或用户id获取异常");
|
}
|
System.out.println(query.getPageNumber());
|
IPage<ClerkVO> page = PageUtil.getPage(query, ClerkVO.class);
|
query.setStoreId(storeId);
|
baseMapper.getClerkPage(page, query);
|
return Result.ok().data(page.getRecords()).total(page.getTotal());
|
}
|
|
/**
|
* 根据id查找
|
* @param id
|
* @return
|
*/
|
@Override
|
public Result detail(String 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(clerkVO, "记录不存在");
|
return Result.ok().data(clerkVO);
|
}
|
|
/**
|
* 列表
|
* @return
|
*/
|
@Override
|
public Result all() {
|
List<StoreMember> entities = baseMapper.selectList(null);
|
List<StoreMemberVO> vos = entities.stream()
|
.map(entity -> StoreMemberVO.getVoByEntity(entity, null))
|
.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);
|
}
|
}
|