| | |
| | | import com.ruoyi.goods.domain.vo.*; |
| | | import com.ruoyi.goods.mapper.goods.GoodsMapper; |
| | | import com.ruoyi.goods.service.activity.ActivityGoodsService; |
| | | import com.ruoyi.goods.service.activity.ActivityRecordService; |
| | | import com.ruoyi.goods.service.activity.ActivityService; |
| | | import com.ruoyi.goods.service.goods.GoodsFileService; |
| | | import com.ruoyi.goods.service.goods.GoodsService; |
| | | import com.ruoyi.goods.service.goods.GoodsTotalService; |
| | | import com.ruoyi.goods.service.goods.ShopGoodsService; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto; |
| | | import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; |
| | | import com.ruoyi.system.api.domain.poji.config.SysClassification; |
| | | import com.ruoyi.system.api.domain.poji.goods.Goods; |
| | |
| | | |
| | | @Resource |
| | | private ActivityService activityService; |
| | | |
| | | @Resource |
| | | private ActivityRecordService activityRecordService; |
| | | |
| | | /** |
| | | * @description 获取推荐商品列表 |
| | |
| | | } |
| | | //活动商品判断 |
| | | if(appGoodsInfoGetDto.getActivityFlag()==1){ |
| | | ActivityGoods activityGoods = activityGoodsService.getByGoodsId(goods.getGoodsId()); |
| | | ActivityGoods activityGoods = activityGoodsService.getByGoodsId(appGoodsInfoGetDto.getActivityId(),goods.getGoodsId()); |
| | | //原价取较大值 |
| | | if(shopGoods!=null&&goods.getSalesPrice().compareTo(shopGoods.getSalesPrice())>0){ |
| | | appGoodsInfoVo.setSalesPrice(goods.getSalesPrice()); |
| | |
| | | appGoodsInfoVo.setActivityPrice(activityGoods.getActivityPrice()); |
| | | appGoodsInfoVo.setSalesNum(activityGoods.getSalesNumber()); |
| | | appGoodsInfoVo.setActivityDeadline(activityGoods.getActivityDeadline()); |
| | | appGoodsInfoVo.setTimestamp(activityGoods.getActivityDeadline().getTime()); |
| | | Integer availableBuyNum = 0; |
| | | //售罄判断 |
| | | if(activityGoods.getActivityNumber().equals(activityGoods.getSalesNumber())){ |
| | | appGoodsInfoVo.setSellOutFlag(1); |
| | | }else{ |
| | | availableBuyNum = activityGoods.getActivityNumber() - activityGoods.getSalesNumber(); |
| | | appGoodsInfoVo.setSellOutFlag(0); |
| | | } |
| | | appGoodsInfoVo.setActivityId(appGoodsInfoGetDto.getActivityId()); |
| | | //限购判断 |
| | | appGoodsInfoVo.setPurchaseLimitationFlag(activityGoods.getPurchaseLimitationFlag()); |
| | | if(activityGoods.getPurchaseLimitationFlag()==1){ |
| | | Integer buyNum = activityRecordService.getUserActivityGoodsNum(goods.getGoodsId(),activityGoods.getActivityId(),appGoodsInfoGetDto.getUserId()); |
| | | Integer limitBuyNum = activityGoods.getLimitNumber() - buyNum; |
| | | if(limitBuyNum<availableBuyNum){ |
| | | availableBuyNum = limitBuyNum; |
| | | } |
| | | } |
| | | appGoodsInfoVo.setAvailableBuyNum(availableBuyNum); |
| | | }else{ |
| | | appGoodsInfoVo.setActivityFlag(0); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public MgtGoodsTotalVo getMgtGoodsTotal(){ |
| | | return goodsMapper.getMgtGoodsTotal(); |
| | | MgtGoodsTotalVo goodsTotalVo = goodsMapper.getMgtGoodsTotal(); |
| | | LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Goods::getDelFlag,0); |
| | | goodsTotalVo.setGoodsTotal(this.count(queryWrapper)); |
| | | return goodsTotalVo; |
| | | } |
| | | |
| | | /** |
| | |
| | | public List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(String goodsIds){ |
| | | return goodsMapper.listGoodsPriceByGoodsId(goodsIds); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description 分页获取活动商品 |
| | | * @author jqs |
| | | * @date 2023/7/6 9:40 |
| | | * @param page |
| | | * @param appActivityGoodsPageDto |
| | | * @return List<AppSimpleActivityGoodsVo> |
| | | */ |
| | | @Override |
| | | public List<AppSimpleActivityGoodsVo> pageAppActivityGoods(Page page, AppActivityGoodsPageDto appActivityGoodsPageDto){ |
| | | // 获取搜索结果的商品列表 |
| | | List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsMapper.pageAppActivityGoods(page, appActivityGoodsPageDto); |
| | | // 计算销售百分比和设置时间戳 |
| | | for (AppSimpleActivityGoodsVo appSimpleActivityGoodsVo : appSimpleGoodsVoList) { |
| | | int activityNumber = appSimpleActivityGoodsVo.getActivityNumber(); |
| | | int salesNumber = appSimpleActivityGoodsVo.getSalesNumber(); |
| | | BigDecimal salesPercent = BigDecimal.ZERO; |
| | | // 计算销售百分比 |
| | | if (activityNumber != 0) { |
| | | salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber), 2, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | // 设置销售百分比和时间戳 |
| | | appSimpleActivityGoodsVo.setSalesPercent(salesPercent); |
| | | appSimpleActivityGoodsVo.setTimestamp(appSimpleActivityGoodsVo.getEndTime().getTime()); |
| | | } |
| | | // 返回结果 |
| | | return appSimpleGoodsVoList; |
| | | } |
| | | } |