BUG
jiangqs
2023-04-24 aa2eae024f8f251c8e2b9eace5351dea7e315ed7
hrt-modules/hrt-system/src/main/java/com/hrt/system/service/impl/GoodsServiceImpl.java
@@ -1,10 +1,26 @@
package com.hrt.system.service.impl;
import com.hrt.system.domain.poji.Goods;
import com.hrt.system.mapper.GoodsMapper;
import com.hrt.system.service.GoodsService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hrt.common.core.utils.bean.BeanUtils;
import com.hrt.system.domain.dto.AppGoodsInfoGetDto;
import com.hrt.system.domain.dto.AppSearchGoodsPageDto;
import com.hrt.system.domain.dto.AppShopGoodsPageDto;
import com.hrt.system.domain.poji.activity.ActivityGoods;
import com.hrt.system.domain.poji.goods.Goods;
import com.hrt.system.domain.poji.shop.ShopGoods;
import com.hrt.system.domain.vo.AppGoodsInfoVo;
import com.hrt.system.domain.vo.AppSimpleActivityGoodsVo;
import com.hrt.system.domain.vo.AppSimpleGoodsVo;
import com.hrt.system.mapper.goods.GoodsMapper;
import com.hrt.system.service.activity.ActivityGoodsService;
import com.hrt.system.service.goods.GoodsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hrt.system.service.shop.ShopGoodsService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
/**
 * <p>
@@ -17,4 +33,111 @@
@Service
public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements GoodsService {
    @Resource
    private GoodsMapper goodsMapper;
    @Resource
    private ActivityGoodsService activityGoodsService;
    @Resource
    private ShopGoodsService shopGoodsService;
    /**
     * 获取推荐商品列表
     * @param page
     * @return
     */
    @Override
    public List<AppSimpleGoodsVo> pageRecommendGoods(Page page,Long shopId){
        List<AppSimpleGoodsVo> appSimpleGoodsVoList = goodsMapper.pageRecommendGoods(page,shopId);
        return appSimpleGoodsVoList;
    }
    /**
     * 获取商城商品列表
     * @param page
     * @param appShopGoodsPageDto
     * @return
     */
    @Override
    public List<AppSimpleGoodsVo> pageShopGoods(Page page, AppShopGoodsPageDto appShopGoodsPageDto){
        List<AppSimpleGoodsVo> appSimpleGoodsVoList = goodsMapper.pageShopGoods(page,appShopGoodsPageDto);
        return appSimpleGoodsVoList;
    }
    /**
     * 获取搜索商品列表
     * @param page
     * @param appSearchGoodsPageDto
     * @return
     */
    @Override
    public List<AppSimpleGoodsVo> pageSearchGoods(Page page, AppSearchGoodsPageDto appSearchGoodsPageDto){
        List<AppSimpleGoodsVo> appSimpleGoodsVoList = goodsMapper.pageSearchGoods(page,appSearchGoodsPageDto);
        return appSimpleGoodsVoList;
    }
    /**
     * 获取搜索商品列表
     * @param page
     * @param appSearchGoodsPageDto
     * @return
     */
    @Override
    public List<AppSimpleActivityGoodsVo> pageSearchActivityGoods(Page page, AppSearchGoodsPageDto appSearchGoodsPageDto){
        List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsMapper.pageSearchActivityGoods(page,appSearchGoodsPageDto);
        Integer activityNumber;
        BigDecimal activityNumberBig;
        Integer salesNumber;
        BigDecimal salesNumberBig;
        BigDecimal salesPercent;
        for(AppSimpleActivityGoodsVo appSimpleActivityGoodsVo : appSimpleGoodsVoList){
            activityNumber = appSimpleActivityGoodsVo.getActivityNumber();
            salesNumber = appSimpleActivityGoodsVo.getSalesNumber();
            activityNumberBig = BigDecimal.valueOf(activityNumber);
            salesNumberBig = BigDecimal.valueOf(salesNumber);
            salesPercent = salesNumberBig.divide(activityNumberBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100.00"));
            appSimpleActivityGoodsVo.setSalesPercent(salesPercent);
        }
        return appSimpleGoodsVoList;
    }
    /**
     * 获取商品详情
     * @param appGoodsInfoGetDto
     * @return
     */
    @Override
    public AppGoodsInfoVo getGoodsInfo(AppGoodsInfoGetDto appGoodsInfoGetDto){
        AppGoodsInfoVo appGoodsInfoVo = new AppGoodsInfoVo();
        Goods goods = this.getById(appGoodsInfoGetDto.getId());
        BeanUtils.copyProperties(goods, appGoodsInfoVo);
        //商户定制价格
        ShopGoods shopGoods = shopGoodsService.getByShopIdAndGoodsId(appGoodsInfoGetDto.getShopId(),goods.getGoodsId());
        if(shopGoods!=null){
            appGoodsInfoVo.setSalesPrice(shopGoods.getSalesPrice());
            appGoodsInfoVo.setSalesNum(shopGoods.getServiceNum());
        }
        //活动商品判断
        if(appGoodsInfoGetDto.getActivityFlag()==1){
            ActivityGoods activityGoods = activityGoodsService.getByGoodsId(goods.getGoodsId());
            //原价取较大值
            if(shopGoods!=null&&goods.getSalesPrice().compareTo(shopGoods.getSalesPrice())>0){
                appGoodsInfoVo.setSalesPrice(goods.getSalesPrice());
            }
            appGoodsInfoVo.setActivityFlag(1);
            appGoodsInfoVo.setActivityPrice(activityGoods.getActivityPrice());
            appGoodsInfoVo.setSalesNum(activityGoods.getSalesNumber());
            appGoodsInfoVo.setActivityDeadline(activityGoods.getActivityDeadline());
            //售罄判断
            if(activityGoods.getActivityNumber()==activityGoods.getSalesNumber()){
                appGoodsInfoVo.setSellOutFlag(1);
            }else{
                appGoodsInfoVo.setSellOutFlag(0);
            }
        }else{
            appGoodsInfoVo.setActivityFlag(0);
        }
        return appGoodsInfoVo;
    }
}