package com.ruoyi.goods.service.impl.goods;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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>
|
* 商品统计 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@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);
|
}
|
}
|
}
|
}
|