From f2070facdb5715e7349df69cfe257289c680d292 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期三, 23 四月 2025 18:12:46 +0800 Subject: [PATCH] 前端联调 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java | 124 +++++++++++++++++++++++------------------ 1 files changed, 70 insertions(+), 54 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java index 6823bf4..dee2baf 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java @@ -18,6 +18,7 @@ import com.ruoyi.order.feignClient.RemoteOrderGoodsClient; import com.ruoyi.order.vo.Price; import com.ruoyi.other.api.domain.*; +import com.ruoyi.other.dto.AddGoodsDTO; import com.ruoyi.other.enums.GoodsStatus; import com.ruoyi.other.mapper.GoodsMapper; import com.ruoyi.other.mapper.GoodsShopMapper; @@ -28,13 +29,17 @@ import com.ruoyi.other.vo.NearbyShopVO; import com.ruoyi.system.api.domain.SysConfig; import com.ruoyi.system.api.feignClient.SysConfigClient; +import com.ruoyi.system.api.model.LoginUser; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -89,16 +94,23 @@ } //查找满足条件的商品 分类、名称、附近十家店 List<GoodsVO> list = this.baseMapper.goodsList(search.getGoodsCategoryId(), search.getName(),shopIds); + //去重 + Map<Integer, GoodsVO> uniqueGoodsMap = new LinkedHashMap<>(); + for (GoodsVO goods : list) { + uniqueGoodsMap.putIfAbsent(goods.getGoodsId(), goods); + } + list = new ArrayList<>(uniqueGoodsMap.values()); for (GoodsVO goods : list) { //计算所需价格和积分 - Price price = getPrice( goods.getGoodsId(), 1); + Price price = getPrice( goods.getGoodsId()); if(null != price){ //秒杀活动 goods.setSellingPrice(price.getCash()); goods.setIntegral(price.getPoint()); goods.setStartTime(price.getStartTime()); goods.setEndTime(price.getEndTime()); + goods.setPurchaseLimit(price.getPurchaseLimit()); } //已售数量 Integer data = orderClient.getGoodsSaleNum(goods.getGoodsId(), 1).getData(); @@ -185,6 +197,7 @@ } Goods goods = this.getById(goodsId); + if(null == goods || goods.getDelFlag() == 1){ throw new RuntimeException("商品不存在"); } @@ -198,13 +211,14 @@ goodsVO.setGoodsName(goods.getName()); //计算所需价格和积分 - Price price = getPrice( goods.getId(), 1); + Price price = getPrice( goods.getId()); if(null != price){ //秒杀活动 goodsVO.setSellingPrice(price.getCash()); goodsVO.setIntegral(price.getPoint()); goodsVO.setStartTime(price.getStartTime()); goodsVO.setEndTime(price.getEndTime()); + goodsVO.setPurchaseLimit(price.getPurchaseLimit()); } //已售数量 Integer data = orderClient.getGoodsSaleNum(goods.getId(), 1).getData(); @@ -214,12 +228,12 @@ GoodsShop goodsShop = goodsShopMapper.selectOne(new LambdaQueryWrapper<GoodsShop>() .eq(GoodsShop::getGoodsId, goodsId)); Shop shop1 = shopMapper.selectById(goodsShop.getShopId()); - ArrayList<Shop> shops = new ArrayList<>(); - shops.add(shop1); - goodsVO.setShopList(shops); + + goodsVO.setShop(shop1); //已售数量 Integer integer = orderClient.getGoodsSaleNum(goods.getId(), 1).getData(); goodsVO.setSaleNum(integer); + return goodsVO; } @@ -229,13 +243,17 @@ public List<GoodsVO> getGoodsListByShopId(PageInfo<GoodsVO> pageInfo, Integer shopId) { //查询该门店商品 List<GoodsVO> goods = goodsMapper.selectListByShopId(pageInfo, shopId); + if (goods == null) { + return null; + } for (GoodsVO good : goods) { //价格 - Price price = getPrice( good.getGoodsId(), 1); + Price price = getPrice( good.getGoodsId()); if(null != price){ //秒杀活动 good.setSellingPrice(price.getCash()); good.setIntegral(price.getPoint()); + good.setPurchaseLimit(price.getPurchaseLimit()); good.setStartTime(price.getStartTime()); good.setEndTime(price.getEndTime()); } @@ -246,42 +264,43 @@ } @Override - public IPage<Goods> getManageGoodsList(Page<Goods> page, Goods goods) { - IPage<Goods> goodsIPage = goodsMapper.selectManageGoodsList(page, goods); - goodsIPage.getRecords().forEach(goods1 -> { - Integer data = orderClient.getGoodsSaleNum(goods1.getId(), 1).getData(); - goods1.setSaleNum(data); - }); - return goodsIPage; + public R getManageGoodsList(Integer pageNum,Integer pageSize, Goods goods) { + PageInfo<Goods> pageInfo = new PageInfo<>(pageNum,pageSize); + List<Goods> list = goodsMapper.selectManageGoodsList(pageInfo, goods); + pageInfo.setRecords(list); + return R.ok(pageInfo); } @Override @Transactional(rollbackFor = Exception.class) public void addGoods(Goods goods) { - /* goods.setSaleNum(0); - goods.setStatus(GoodsStatus.DOWN.getCode()); + goodsMapper.insert(goods); - // 指定门店 - Integer appointStore = goods.getAppointStore(); - if (null != appointStore && appointStore == 1){ - List<GoodsShop> goodsShopList = goods.getGoodsShopList(); - if (CollectionUtils.isEmpty(goodsShopList)){ - throw new NullPointerException("请选择指定门店"); - } - saveGoodsShopList(goodsShopList, goods.getId()); - }*/ + //保存商品门店关系 + GoodsShop goodsShop = new GoodsShop(); + goodsShop.setGoodsId(goods.getId()); + goodsShop.setShopId(goods.getShopId()); + Shop shop = shopMapper.selectById(goods.getShopId()); + goodsShop.setShopName(shop.getName()); + goodsShop.setOwnerName(shop.getShopManager()); + goodsShop.setPhone(shop.getPhone()); + goodsShop.setAddress(shop.getAddress()); + goodsShopService.save(goodsShop); + + //判断是否参加秒杀活动 + + } @Override public void updateManageGoods(Goods goods) { - /* this.updateById(goods); + this.updateById(goods); //修改个别字段 this.update(new LambdaUpdateWrapper<Goods>().eq(Goods::getId, goods.getId()).set(Goods::getSellingPrice, goods.getSellingPrice()) .set(Goods::getIntegral, goods.getIntegral())); - // 指定门店 - List<GoodsShop> goodsShopList = goods.getGoodsShopList(); - saveGoodsShopList(goodsShopList, goods.getId());*/ + // 保存门店 + saveGoodsShop(goods.getShopId(),goods.getId()); } @@ -291,16 +310,16 @@ - private void saveGoodsShopList(List<GoodsShop> goodsShopList, Integer goodsId) { + private void saveGoodsShop(Integer shopId, Integer goodsId) { goodsShopService.remove(new LambdaQueryWrapper<GoodsShop>() .eq(GoodsShop::getGoodsId, goodsId)); - if (!CollectionUtils.isEmpty(goodsShopList)){ - for (GoodsShop goodsShop : goodsShopList) { - goodsShop.setGoodsId(goodsId); - goodsShop.setId(null); - } - } - goodsShopService.saveBatch(goodsShopList); + + GoodsShop goodsShop = new GoodsShop(); + goodsShop.setGoodsId(goodsId); + goodsShop.setShopId(shopId); + goodsShop.setId(null); + + goodsShopService.save(goodsShop); } @Override @@ -309,32 +328,28 @@ if (goods == null){ return null; } - // 指定门店 - List<GoodsShop> goodsShops = goodsShopService.list(new LambdaQueryWrapper<GoodsShop>() + // 获取指定门店 + GoodsShop goodsShop = goodsShopService.getOne(new LambdaQueryWrapper<GoodsShop>() .eq(GoodsShop::getGoodsId, goodsId)); - - for (GoodsShop goodsShop : goodsShops) { - Shop shop = shopMapper.selectById(goodsShop.getShopId()); - if(null != shop){ - goodsShop.setShopName(shop.getName()); - goodsShop.setOwnerName(shop.getShopManager()); - goodsShop.setPhone(shop.getPhone()); - goodsShop.setAddress(shop.getAddress()); - } + goods.setShopId(goodsShop.getShopId()); + Shop shop = shopService.getById(goodsShop.getShopId()); + if(null != shop){ + goodsShop.setShopName(shop.getName()); + goodsShop.setPhone(shop.getPhone()); + goodsShop.setAddress(shop.getAddress()); + goodsShop.setOwnerName(shop.getShopManager()); } -// goods.setGoodsShopList(goodsShops); + goods.setGoodsShop(goodsShop); return goods; } + /** - * 根据商品的价格配置体系获取商品当前的价格 - * @param goodsId - * @param type 1普通商品,2秒杀商品 - * @return + * 获取商品当前的价格,就是判断是否在秒杀活动中 */ - public Price getPrice( Integer goodsId, Integer type){ + public Price getPrice( Integer goodsId ){ //判断是否有在秒杀活动时间中 Price price = new Price(); SeckillActivityInfo one = seckillActivityInfoService.getOne(new LambdaQueryWrapper<SeckillActivityInfo>().eq(SeckillActivityInfo::getGoodId, goodsId) @@ -346,7 +361,7 @@ goodsSeckill = goodsSeckillService.getOne(new LambdaQueryWrapper<GoodsSeckill>().eq(GoodsSeckill::getSeckillActivityInfoId, one.getId())); } //没有秒杀活动或者添加的普通商品则使用秒杀活动价格 - if(null == goodsSeckill || type == 1){ + if(null == goodsSeckill ){ return null; } //秒杀活动价格 @@ -355,6 +370,7 @@ price.setPoint(getPoint(price.getCash())); price.setStartTime(one.getStartTime()); price.setEndTime(one.getEndTime()); + price.setPurchaseLimit(one.getMaxNum()); return price; } -- Gitblit v1.7.1