package cn.lili.modules.member.serviceimpl; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.security.context.UserContext; import cn.lili.common.vo.PageVO; import cn.lili.modules.member.entity.dos.GoodsCollection; import cn.lili.modules.member.entity.vo.GoodsCollectionVO; import cn.lili.modules.member.mapper.GoodsCollectionMapper; import cn.lili.modules.member.service.GoodsCollectionService; import cn.lili.mybatis.util.PageUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; import java.util.Optional; /** * 会员收藏业务层实现 * * @author Chopper * @since 2020/11/18 2:25 下午 */ @Service public class GoodsCollectionServiceImpl extends ServiceImpl implements GoodsCollectionService { @Override public IPage goodsCollection(PageVO pageVo) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("gc.member_id", UserContext.getCurrentUser().getId()); queryWrapper.groupBy("gc.id"); queryWrapper.orderByDesc("gc.create_time"); return this.baseMapper.goodsCollectionVOList(PageUtil.initPage(pageVo), queryWrapper); } @Override public boolean isCollection(String skuId) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("member_id", UserContext.getCurrentUser().getId()); queryWrapper.eq(skuId != null, "sku_id", skuId); return Optional.ofNullable(this.getOne(queryWrapper)).isPresent(); } @Override public GoodsCollection addGoodsCollection(String skuId) { GoodsCollection goodsCollection = this.getOne(new LambdaUpdateWrapper() .eq(GoodsCollection::getMemberId, UserContext.getCurrentUser().getId()) .eq(GoodsCollection::getSkuId, skuId)); if (goodsCollection == null) { goodsCollection = new GoodsCollection(UserContext.getCurrentUser().getId(), skuId); this.save(goodsCollection); return goodsCollection; } throw new ServiceException(ResultCode.USER_COLLECTION_EXIST); } @Override public boolean deleteGoodsCollection(String skuId) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("member_id", UserContext.getCurrentUser().getId()); queryWrapper.eq(skuId != null, "sku_id", skuId); return this.remove(queryWrapper); } @Override public boolean deleteGoodsCollection(List goodsIds) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.in("sku_id", goodsIds); return this.remove(queryWrapper); } @Override public boolean deleteSkuCollection(List skuIds) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.in("sku_id", skuIds); return this.remove(queryWrapper); } }