zxl
7 天以前 0fb6b9d8d414822668c401a2b507df1fe6d1fa2d
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());
        //TODO 是否需要判断密码新密码
        //会员修改密码,电话
        memberService.updateMemberPartProperties(entity.getMemberId(),form.getPassword(),form.getMobile());
        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());
        entity.setRole(form.getRole());
        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查询数据库里的商店id
//        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);
    }
}