| | |
| | | import com.ruoyi.goods.domain.pojo.goods.GoodsTotal; |
| | | import com.ruoyi.goods.mapper.goods.GoodsTotalMapper; |
| | | import com.ruoyi.goods.service.goods.GoodsTotalService; |
| | | import com.ruoyi.system.api.domain.dto.GoodsTotalChangeDto; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class GoodsTotalServiceImpl extends ServiceImpl<GoodsTotalMapper, GoodsTotal> implements GoodsTotalService { |
| | | |
| | | |
| | | /** |
| | | * @description 更新商品统计 |
| | | * @author jqs |
| | | * @date 2023/7/23 18:25 |
| | | * @param goodsTotalChangeDtoList |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void changeGoodsTotal(List<GoodsTotalChangeDto> goodsTotalChangeDtoList){ |
| | | log.error("商品统计变动"+goodsTotalChangeDtoList.toString()); |
| | | if (goodsTotalChangeDtoList != null && !goodsTotalChangeDtoList.isEmpty()) { |
| | | // 创建一个空的GoodsTotal对象 |
| | | GoodsTotal goodsTotal; |
| | | // 创建一个空的GoodsTotal列表 |
| | | List<GoodsTotal> goodsTotalList = new ArrayList<>(); |
| | | // 遍历goodsTotalChangeDtoList列表 |
| | | for (GoodsTotalChangeDto goodsTotalChangeDto : goodsTotalChangeDtoList) { |
| | | // 根据goodsId获取对应的GoodsTotal对象 |
| | | goodsTotal = this.getById(goodsTotalChangeDto.getGoodsId()); |
| | | // 如果GoodsTotal对象不为空 |
| | | if (goodsTotal != null) { |
| | | // 根据changeType判断操作类型 |
| | | if (goodsTotalChangeDto.getChangeType() == 1) { |
| | | // 更新GoodsTotal对象的相关属性 |
| | | goodsTotal.setBuyCount(goodsTotal.getBuyCount() + 1); |
| | | goodsTotal.setBuyNumCount(goodsTotal.getBuyNumCount() + goodsTotalChangeDto.getChangeNum()); |
| | | goodsTotal.setBuyUserCount(goodsTotalChangeDto.getPersonNum()); |
| | | goodsTotal.setBuyMoneyTotal(goodsTotal.getBuyMoneyTotal().add(goodsTotalChangeDto.getMoney())); |
| | | } else { |
| | | // 更新GoodsTotal对象的相关属性 |
| | | goodsTotal.setBuyCount(goodsTotal.getBuyCount() - 1); |
| | | goodsTotal.setBuyNumCount(goodsTotal.getBuyNumCount() - goodsTotalChangeDto.getChangeNum()); |
| | | goodsTotal.setBuyUserCount(goodsTotalChangeDto.getPersonNum()); |
| | | goodsTotal.setBuyMoneyTotal(goodsTotal.getBuyMoneyTotal().subtract(goodsTotalChangeDto.getMoney())); |
| | | } |
| | | // 将更新后的GoodsTotal对象添加到列表中 |
| | | goodsTotalList.add(goodsTotal); |
| | | } |
| | | } |
| | | // 如果goodsTotalList列表不为空,则保存或更新列表中的GoodsTotal对象 |
| | | if (!goodsTotalList.isEmpty()) { |
| | | this.saveOrUpdateBatch(goodsTotalList); |
| | | } |
| | | } |
| | | } |
| | | } |