package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.mall.dto.MemberFootprintListDto; import cc.mrbird.febs.mall.entity.MallGoods; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.MallMemberCollection; import cc.mrbird.febs.mall.entity.MallMemberFootprint; import cc.mrbird.febs.mall.mapper.MallMemberFootprintMapper; import cc.mrbird.febs.mall.service.IApiMallGoodsService; import cc.mrbird.febs.mall.service.IMallMemberFootprintService; import cc.mrbird.febs.mall.vo.CollectionListVo; import cc.mrbird.febs.mall.vo.FootprintListVo; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor public class MallMemberFootprintServiceImpl extends ServiceImpl implements IMallMemberFootprintService { private final IApiMallGoodsService apiMallGoodsService; @Override public void add(Long goodsId, Long memberId) { MallGoods mallgoods = apiMallGoodsService.getById(goodsId); if (mallgoods == null) { throw new FebsException("商品不存在"); } LambdaQueryWrapper query = new LambdaQueryWrapper<>(); query.eq(MallMemberFootprint::getGoodsId, goodsId); query.eq(MallMemberFootprint::getMemberId, memberId); MallMemberFootprint mallMemberFootprint = this.baseMapper.selectOne(query); if (mallMemberFootprint == null) { mallMemberFootprint = new MallMemberFootprint(); mallMemberFootprint.setGoodsId(goodsId); mallMemberFootprint.setMemberId(memberId); this.baseMapper.insert(mallMemberFootprint); } else { mallMemberFootprint.setUpdatedTime(new Date()); this.baseMapper.updateById(mallMemberFootprint); } } @Override public List findMemberFootprintList(MemberFootprintListDto memberFootprintListDto) { MallMember member = LoginUserUtil.getLoginUser(); MallMemberFootprint footprint = new MallMemberFootprint(); footprint.setMemberId(member.getId()); Page page = new Page<>(memberFootprintListDto.getPageNow(), memberFootprintListDto.getPageSize()); IPage result = this.baseMapper.selectMemberFootprintListInPage(footprint, page); if (CollUtil.isEmpty(result.getRecords())) { return new ArrayList<>(); } return result.getRecords().stream().map(item -> BeanUtil.copyProperties(item, FootprintListVo.class)).collect(Collectors.toList()); } @Override public void del(String ids) { MallMember member = LoginUserUtil.getLoginUser(); List idsList = StrUtil.split(ids, ','); LambdaQueryWrapper delQuery = new LambdaQueryWrapper<>(); delQuery.in(MallMemberFootprint::getId, idsList); delQuery.eq(MallMemberFootprint::getMemberId, member.getId()); this.baseMapper.delete(delQuery); } @Override public void empty() { MallMember member = LoginUserUtil.getLoginUser(); LambdaQueryWrapper delQuery = new LambdaQueryWrapper<>(); delQuery.eq(MallMemberFootprint::getMemberId, member.getId()); this.baseMapper.delete(delQuery); } }