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.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.StoreMemberVO; import cn.lili.modules.lmk.mapper.StoreMemberMapper; import cn.lili.modules.lmk.service.StoreMemberService; 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.service.MemberService; import cn.lili.utils.PageUtil; import com.baomidou.mybatisplus.core.metadata.IPage; 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.List; import java.util.stream.Collectors; /** * 用户权限管理(商家) 服务实现类 * * @author zxl * @since 2025-05-30 */ @Service @RequiredArgsConstructor public class StoreMemberServiceImpl extends ServiceImpl implements StoreMemberService { private final StoreMemberMapper storeMemberMapper; private final MemberService memberService; /** * 添加 * @param form * @return */ @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获取异常"); } //插入会员表 MemberAddDTO addDTO = new MemberAddDTO(); addDTO.setMobile(form.getMobile()); addDTO.setPassword(form.getPassword()); addDTO.setUsername(form.getMobile()); Member member = memberService.addMember(addDTO); //插入用户权限表 //id插入问题 StoreMember entity = StoreMemberForm.getEntityByForm(form, null); entity.setMemberId(member.getId()); entity.setStoreId(storeId); baseMapper.insert(entity); return Result.ok("添加成功"); } /** * 修改 * @param form * @return */ @Override public Result update(StoreMemberForm form) { StoreMember entity = baseMapper.selectById(form.getId()); //TODO 是否需要判断密码新密码 //会员修改密码,电话 memberService.updateMemberPartProperties(entity.getMemberId(),form.getPassword(),form.getMobile()); //修改真实姓名 entity.setRealName(form.getRealName()); entity.setRole(form.getRole()); baseMapper.updateById(entity); return Result.ok("修改成功"); } /** * 批量删除 * @param ids * @return */ @Override public Result remove(List ids) { baseMapper.deleteBatchIds(ids); return Result.ok("删除成功"); } /** * id删除 * @param id * @return */ @Override public Result removeById(String id) { StoreMember entity = baseMapper.selectById(id); memberService.removeById(entity.getMemberId()); baseMapper.deleteById(id); //同时删除用户 return Result.ok("删除成功"); } /** * 分页查询 * @param query * @return */ @Override public Result page(StoreMemberQuery query) { AuthUser currentUser = UserContext.getCurrentUser(); // String storeId = currentUser.getStoreId(); String storeId = "12312323123"; if (storeId == null) { return Result.error("当前登录账户未绑定商户或用户id获取异常"); } IPage page = PageUtil.getPage(query, StoreMemberVO.class); query.setStoreId(storeId); baseMapper.getPage(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); } /** * 根据id查找 * @param id * @return */ @Override public Result detail(String id) { StoreMemberVO vo = baseMapper.getById(id); //密码是否需要解密 Assert.notNull(vo, "记录不存在"); return Result.ok().data(vo); } /** * 列表 * @return */ @Override public Result all() { List entities = baseMapper.selectList(null); List vos = entities.stream() .map(entity -> StoreMemberVO.getVoByEntity(entity, null)) .collect(Collectors.toList()); return Result.ok().data(vos); } }