| | |
| | | package com.hrt.system.service.impl; |
| | | |
| | | 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.service.impl.ServiceImpl; |
| | | 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> |
| | |
| | | @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; |
| | | } |
| | | } |