package com.ruoyi.order.service.impl.goods;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.order.domain.dto.AppGoodsInfoGetDto;
|
import com.ruoyi.order.domain.dto.AppSearchGoodsPageDto;
|
import com.ruoyi.order.domain.dto.AppShopGoodsPageDto;
|
import com.ruoyi.order.domain.pojo.goods.Goods;
|
import com.ruoyi.order.domain.pojo.goods.ShopGoods;
|
import com.ruoyi.order.domain.vo.AppGoodsInfoVo;
|
import com.ruoyi.order.domain.vo.AppSimpleActivityGoodsVo;
|
import com.ruoyi.order.domain.vo.AppSimpleGoodsVo;
|
import com.ruoyi.order.mapper.goods.GoodsMapper;
|
import com.ruoyi.order.service.activity.ActivityGoodsService;
|
import com.ruoyi.order.service.goods.GoodsService;
|
import com.ruoyi.order.service.goods.ShopGoodsService;
|
import com.ruoyi.system.api.RemoteActivityService;
|
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 商品表 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@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;
|
}
|
}
|