package cn.lili.modules.promotion.serviceimpl; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.security.context.UserContext; import cn.lili.common.utils.BeanUtil; import cn.lili.common.vo.PageVO; import cn.lili.modules.promotion.entity.dos.KanjiaActivity; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods; import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog; import cn.lili.modules.promotion.entity.dto.KanjiaActivityDTO; import cn.lili.modules.promotion.entity.dto.search.KanJiaActivityLogQuery; import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum; import cn.lili.modules.promotion.mapper.KanJiaActivityLogMapper; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityLogService; import cn.lili.modules.promotion.service.KanjiaActivityService; import cn.lili.mybatis.util.PageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * 砍价活动日志业务层实现 * * @author qiuqiu * @date 2021/7/1 */ @Service public class KanjiaActivityLogServiceImpl extends ServiceImpl implements KanjiaActivityLogService { @Autowired private KanjiaActivityGoodsService kanJiaActivityGoodsService; @Autowired private KanjiaActivityService kanJiaActivityService; @Override public IPage getForPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO pageVO) { QueryWrapper queryWrapper = kanJiaActivityLogQuery.wrapper(); return this.page(PageUtil.initPage(pageVO), queryWrapper); } @Override public KanjiaActivityLog addKanJiaActivityLog(KanjiaActivityDTO kanjiaActivityDTO) { //校验当前会员是否已经参与过此次砍价 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); queryWrapper.eq(kanjiaActivityDTO.getKanjiaActivityId() != null, KanjiaActivityLog::getKanjiaActivityId, kanjiaActivityDTO.getKanjiaActivityId()); queryWrapper.eq( KanjiaActivityLog::getKanjiaMemberId, UserContext.getCurrentUser().getId()); long count = this.baseMapper.selectCount(queryWrapper); if (count > 0) { throw new ServiceException(ResultCode.KANJIA_ACTIVITY_LOG_MEMBER_ERROR); } //校验当前砍价商品是否有效 KanjiaActivityGoods kanjiaActivityGoods = kanJiaActivityGoodsService.getById(kanjiaActivityDTO.getKanjiaActivityGoodsId()); //如果当前活动不为空且还在活动时间内 才可以参与砍价活动 if (kanjiaActivityGoods != null && kanjiaActivityGoods.getPromotionStatus().equals(PromotionsStatusEnum.START.name())) { //获取砍价参与者记录 KanjiaActivity kanjiaActivity = kanJiaActivityService.getById(kanjiaActivityDTO.getKanjiaActivityId()); if (kanjiaActivity != null) { KanjiaActivityLog kanJiaActivityLog = new KanjiaActivityLog(); kanJiaActivityLog.setKanjiaActivityId(kanjiaActivity.getId()); BeanUtil.copyProperties(kanjiaActivityDTO, kanJiaActivityLog); boolean result = this.save(kanJiaActivityLog); if (result) { return kanJiaActivityLog; } } throw new ServiceException(ResultCode.KANJIA_ACTIVITY_NOT_FOUND_ERROR); } throw new ServiceException(ResultCode.PROMOTION_STATUS_END); } }