From b673cbac23efe2bf1176aa52b6203150c78bd921 Mon Sep 17 00:00:00 2001 From: xuwenbo <717567226@qq.com> Date: Tue, 8 Sep 2020 15:18:26 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9B=B4=E6=92=AD?= =?UTF-8?q?=E9=97=B4=E9=A6=96=E9=A1=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/shop/rest/IndexController.java | 3 ++ .../co/yixiang/modules/shop/vo/IndexVo.java | 4 +++ .../mp/service/YxWechatLiveService.java | 11 ++++++ .../mp/service/dto/YxWechatLiveDto.java | 2 ++ .../dto/YxWechatLiveQueryCriteria.java | 5 +++ .../service/impl/YxWechatLiveServiceImpl.java | 35 ++++++++++++++++++- 6 files changed, 59 insertions(+), 1 deletion(-) diff --git a/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java b/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java index e37eb83a..8ed18ac4 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/shop/rest/IndexController.java @@ -17,6 +17,7 @@ import co.yixiang.enums.ProductEnum; import co.yixiang.modules.activity.service.YxStoreCombinationService; import co.yixiang.modules.activity.service.YxStoreSeckillService; import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo; +import co.yixiang.modules.mp.service.YxWechatLiveService; import co.yixiang.modules.product.service.YxStoreProductService; import co.yixiang.modules.product.vo.YxSystemStoreQueryVo; import co.yixiang.modules.shop.param.YxSystemStoreQueryParam; @@ -60,6 +61,7 @@ public class IndexController { private final YxSystemStoreService systemStoreService; private final YxStoreCombinationService storeCombinationService; private final YxStoreSeckillService storeSeckillService; + private final YxWechatLiveService wechatLiveService; @Cacheable(cacheNames = ShopConstants.YSHOP_REDIS_INDEX_KEY) @GetMapping("/index") @@ -76,6 +78,7 @@ public class IndexController { .menus(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_MENUS)) .roll(systemGroupDataService.getDatas(ShopConstants.YSHOP_HOME_ROLL_NEWS)) .seckillList(storeSeckillService.getList(1, 4)) + .liveList(wechatLiveService.getList(1,4,0)) .build(); return ApiResult.ok(indexVo); } diff --git a/yshop-app/src/main/java/co/yixiang/modules/shop/vo/IndexVo.java b/yshop-app/src/main/java/co/yixiang/modules/shop/vo/IndexVo.java index 1597eaaf..fabad305 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/shop/vo/IndexVo.java +++ b/yshop-app/src/main/java/co/yixiang/modules/shop/vo/IndexVo.java @@ -2,6 +2,7 @@ package co.yixiang.modules.shop.vo; import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo; import co.yixiang.modules.activity.vo.YxStoreSeckillQueryVo; +import co.yixiang.modules.mp.service.dto.YxWechatLiveDto; import co.yixiang.modules.product.vo.YxStoreProductQueryVo; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.ApiModel; @@ -49,5 +50,8 @@ public class IndexVo { //首发新品->秒杀 @ApiModelProperty("首发新品->秒杀") private List seckillList; + //直播间信息 + @ApiModelProperty("直播间") + private List liveList; } diff --git a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/YxWechatLiveService.java b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/YxWechatLiveService.java index 05d8dd5e..07f694fc 100644 --- a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/YxWechatLiveService.java +++ b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/YxWechatLiveService.java @@ -14,6 +14,7 @@ import co.yixiang.modules.mp.service.dto.YxWechatLiveDto; import co.yixiang.modules.mp.service.dto.YxWechatLiveQueryCriteria; import co.yixiang.modules.mp.vo.WechatLiveVo; import co.yixiang.modules.mp.domain.YxWechatLive; +import co.yixiang.modules.product.vo.YxStoreProductQueryVo; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; @@ -67,4 +68,14 @@ public interface YxWechatLiveService extends BaseService{ * @return */ List getLiveReplay(Integer roomId); + + + /** + * 商品列表 + * @param page 页码 + * @param limit 条数 + * @param order ProductEnum + * @return List + */ + List getList(int page, int limit, int order); } diff --git a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveDto.java b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveDto.java index 4e38a6f7..a7c1df15 100644 --- a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveDto.java +++ b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveDto.java @@ -93,5 +93,7 @@ public class YxWechatLiveDto implements Serializable { */ private String productId; + + @ApiModelProperty(value = "商品信息") private List product; } diff --git a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveQueryCriteria.java b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveQueryCriteria.java index 8e9dcd71..566cc4bf 100644 --- a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveQueryCriteria.java +++ b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/dto/YxWechatLiveQueryCriteria.java @@ -8,6 +8,8 @@ */ package co.yixiang.modules.mp.service.dto; +import co.yixiang.annotation.Query; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -16,4 +18,7 @@ import lombok.Data; */ @Data public class YxWechatLiveQueryCriteria{ + @ApiModelProperty(value = "直播间状态 101:直播中,102:未开始,103 已结束,104 禁播,105:暂停,106:异常,107:已过期") + @Query + private Integer liveStatus; } diff --git a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/impl/YxWechatLiveServiceImpl.java b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/impl/YxWechatLiveServiceImpl.java index 11666331..09fa306f 100644 --- a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/impl/YxWechatLiveServiceImpl.java +++ b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/impl/YxWechatLiveServiceImpl.java @@ -16,6 +16,7 @@ import cn.hutool.json.JSONUtil; import co.yixiang.common.service.impl.BaseServiceImpl; import co.yixiang.common.utils.QueryHelpPlus; import co.yixiang.dozer.service.IGenerator; +import co.yixiang.enums.ShopCommonEnum; import co.yixiang.exception.BadRequestException; import co.yixiang.modules.mp.domain.YxWechatLiveGoods; import co.yixiang.modules.mp.service.YxWechatLiveGoodsService; @@ -27,10 +28,15 @@ import co.yixiang.modules.mp.service.mapper.YxWechatLiveMapper; import co.yixiang.modules.mp.vo.WechatLiveVo; import co.yixiang.modules.mp.domain.YxWechatLive; import co.yixiang.modules.mp.config.WxMaConfiguration; +import co.yixiang.modules.product.domain.YxStoreProduct; +import co.yixiang.modules.product.vo.YxStoreProductQueryVo; import co.yixiang.utils.FileUtil; import co.yixiang.utils.OrderUtil; import co.yixiang.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -66,9 +72,12 @@ public class YxWechatLiveServiceImpl extends BaseServiceImpl getList(int page, int limit, int order) { + //todo 添加状态判断 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .orderByDesc(YxWechatLive::getStartTime); + + + Page pageModel = new Page<>(page, limit); + + IPage pageList = wechatLiveMapper.selectPage(pageModel,wrapper); + + + return generator.convert(pageList.getRecords(),YxWechatLiveDto.class); + } } From 136e32810ed05b7066b63df3348d5ed5413aeacf Mon Sep 17 00:00:00 2001 From: taozi <552920369@qq.com> Date: Tue, 8 Sep 2020 16:48:39 +0800 Subject: [PATCH 2/6] =?UTF-8?q?bug--=E4=BF=AE=E5=A4=8D=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E8=BF=91=E4=B8=83=E5=A4=A9=E7=BB=9F=E8=AE=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yixiang/modules/services/AuthService.java | 5 ++-- .../service/impl/YxStoreOrderServiceImpl.java | 12 ++++++++ .../order/vo/ShoperOrderTimeDataVo.java | 30 +++++++++++++++---- .../service/impl/LocalStorageServiceImpl.java | 3 +- 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java index 5e306191..9e3a85e8 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java +++ b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java @@ -60,7 +60,6 @@ import java.util.List; public class AuthService { private final YxUserService userService; - private final RedisUtils redisUtil; private final RedisUtils redisUtils; private static Integer expiredTimeIn; @@ -86,8 +85,8 @@ public class AuthService { String spread = loginParam.getSpread(); try { //读取redis配置 - String appId = redisUtil.getY(ShopKeyUtils.getWxAppAppId()); - String secret = redisUtil.getY(ShopKeyUtils.getWxAppSecret()); + String appId = redisUtils.getY(ShopKeyUtils.getWxAppAppId()); + String secret = redisUtils.getY(ShopKeyUtils.getWxAppSecret()); if (StrUtil.isBlank(appId) || StrUtil.isBlank(secret)) { throw new YshopException("请先配置小程序"); } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index f820713d..64c7848d 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -1162,6 +1162,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl wrapperLastWeek = new QueryWrapper<>(); + wrapperLastWeek.lambda() + .lt(YxStoreOrder::getPayTime,today) + .ge(YxStoreOrder::getPayTime,lastWeek) + .eq(YxStoreOrder::getPaid,OrderInfoEnum.PAY_STATUS_1.getValue()) + .eq(YxStoreOrder::getRefundStatus,OrderInfoEnum.REFUND_STATUS_0.getValue()); + orderTimeDataVo.setLastWeekPrice(yxStoreOrderMapper.todayPrice(wrapperLastWeek)); + //上周订单数 + orderTimeDataVo.setLastWeekCount(yxStoreOrderMapper.selectCount(wrapperLastWeek)); + return orderTimeDataVo; } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/order/vo/ShoperOrderTimeDataVo.java b/yshop-mall/src/main/java/co/yixiang/modules/order/vo/ShoperOrderTimeDataVo.java index 6b2f5724..68aa5f1c 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/order/vo/ShoperOrderTimeDataVo.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/order/vo/ShoperOrderTimeDataVo.java @@ -11,10 +11,28 @@ import java.io.Serializable; **/ @Data public class ShoperOrderTimeDataVo implements Serializable { - private Double todayPrice; //今日成交额 - private Integer todayCount; //今日订单数 - private Double proPrice; //昨日成交额 - private Integer proCount;//昨日订单数 - private Double monthPrice;//本月成交额 - private Integer monthCount;//本月订单数 + + /**今日成交额*/ + private Double todayPrice; + + /**今日订单数*/ + private Integer todayCount; + + /**昨日成交额*/ + private Double proPrice; + + /**昨日订单数*/ + private Integer proCount; + + /**本月成交额*/ + private Double monthPrice; + + /**本月订单数*/ + private Integer monthCount; + + /**上周订单数*/ + private Integer lastWeekCount; + + /**上周成交额*/ + private Double lastWeekPrice; } diff --git a/yshop-tools/src/main/java/co/yixiang/tools/service/impl/LocalStorageServiceImpl.java b/yshop-tools/src/main/java/co/yixiang/tools/service/impl/LocalStorageServiceImpl.java index 5e68f06b..64c184f0 100644 --- a/yshop-tools/src/main/java/co/yixiang/tools/service/impl/LocalStorageServiceImpl.java +++ b/yshop-tools/src/main/java/co/yixiang/tools/service/impl/LocalStorageServiceImpl.java @@ -16,6 +16,7 @@ import co.yixiang.tools.service.dto.LocalStorageDto; import co.yixiang.tools.service.dto.LocalStorageQueryCriteria; import co.yixiang.tools.service.mapper.LocalStorageMapper; import co.yixiang.utils.FileUtil; +import co.yixiang.utils.SecurityUtils; import co.yixiang.utils.StringUtils; import com.github.pagehelper.PageInfo; import org.springframework.beans.BeanUtils; @@ -101,7 +102,7 @@ public class LocalStorageServiceImpl extends BaseServiceImpl Date: Tue, 8 Sep 2020 19:19:42 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BC=98=E5=8C=96sku=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/YxStoreCombinationService.java | 18 ----- .../service/YxStoreSeckillService.java | 15 ---- .../impl/YxStoreCombinationServiceImpl.java | 46 ------------- .../impl/YxStoreSeckillServiceImpl.java | 21 ------ .../mapper/YxStoreCombinationMapper.java | 7 -- .../service/mapper/YxStoreSeckillMapper.java | 7 -- .../service/impl/YxStoreOrderServiceImpl.java | 9 +-- .../service/YxStoreProductAttrService.java | 2 +- .../service/YxStoreProductService.java | 2 +- .../impl/YxStoreProductAttrServiceImpl.java | 17 ++++- .../impl/YxStoreProductServiceImpl.java | 29 +++++--- .../mapper/StoreProductAttrValueMapper.java | 69 ++++++++++++++++--- .../service/mapper/StoreProductMapper.java | 61 ++++++++++++---- 13 files changed, 148 insertions(+), 155 deletions(-) diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java index 96ff1606..9343ed9f 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/YxStoreCombinationService.java @@ -29,24 +29,6 @@ public interface YxStoreCombinationService extends BaseService{ - /** - * 退回库存减少销量 - * @param num 数量 - * @param seckillId 秒杀产品id - */ - void incStockDecSales(int num,Long seckillId); - - /** - * 减库存增加销量 - * @param num 数量 - * @param seckillId 秒杀产品id - */ - void decStockIncSales(int num,Long seckillId); - - //YxStoreSeckill getSeckill(int id); /** * 产品详情 diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java index d1ee5804..2a923eb0 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java @@ -97,52 +97,6 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq("id",id).eq("is_del",0).eq("is_show",1); - return yxStoreCombinationMapper.selectOne(wrapper); - } - -// /** -// * 判断库存是否足够 -// * @param combinationId 平团产品id -// * @param cartNum 购物车数量 -// * @return boolean -// */ -// @Override -// public boolean judgeCombinationStock(Long combinationId, Integer cartNum) { -// YxStoreCombination storeCombination = this.getById(combinationId); -// return storeCombination.getStock() >= cartNum; -// } - -// @Override -// public YxStoreCombinationQueryVo getCombinationT(int id) { -// return yxStoreCombinationMapper.getCombDetail(id); -// } /** * 获取拼团详情 diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java index 66fa4b95..db0e7fb4 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java @@ -78,28 +78,7 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl { - @Update("update yx_store_combination set stock=stock-#{num}, sales=sales+#{num}" + - " where id=#{combinationId} and stock >= #{num}") - int decStockIncSales(@Param("num") int num, @Param("combinationId") Long combinationId); - - @Update("update yx_store_combination set stock=stock+#{num}, sales=sales-#{num}" + - " where id=#{combinationId}") - int incStockDecSales(@Param("num") int num,@Param("combinationId") Long combinationId); @Select("SELECT c.id,c.effective_time as effectiveTime,c.image,c.people,c.price, s.sales as sales," + "c.title,c.unit_name as unitName,s.price as productPrice FROM yx_store_combination c " + diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreSeckillMapper.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreSeckillMapper.java index 208cf077..b774c41c 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreSeckillMapper.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/mapper/YxStoreSeckillMapper.java @@ -22,13 +22,6 @@ import org.springframework.stereotype.Repository; */ @Repository public interface YxStoreSeckillMapper extends CoreMapper { - @Update("update yx_store_seckill set stock=stock+#{num}, sales=sales-#{num}" + - " where id=#{seckillId}") - int incStockDecSales(@Param("num") int num, @Param("seckillId") Long seckillId); - - @Update("update yx_store_seckill set stock=stock-#{num}, sales=sales+#{num}" + - " where id=#{seckillId} and stock >= #{num}") - int decStockIncSales(@Param("num") int num,@Param("seckillId") Long seckillId); @Select("SELECT c.id,c.image,c.price,c.title as storeName,c.is_show as isShow,c.cost," + "c.is_postage as isPostage,c.postage,c.sales,c.stock,c.is_del as isDel" + diff --git a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index 64c7848d..6b01f1d8 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -639,9 +639,6 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl 0){//拼团 - combinationService.incStockDecSales(cart.getCartNum(),order.getCombinationId()); + productService.incProductStock(cart.getCartNum(),cart.getProductId(),cart.getProductAttrUnique(),order.getCombinationId(),"combination"); }else if(order.getSeckillId() != null && order.getSeckillId() > 0){//秒杀 - storeSeckillService.incStockDecSales(cart.getCartNum(),order.getSeckillId()); + productService.incProductStock(cart.getCartNum(),cart.getProductId(),cart.getProductAttrUnique(),order.getSeckillId(),"seckill"); }else if(order.getBargainId() != null && order.getBargainId() > 0){//砍价 storeBargainService.incStockDecSales(cart.getCartNum(),order.getBargainId()); }else{ productService.incProductStock(cart.getCartNum(),cart.getProductId() - ,cart.getProductAttrUnique()); + ,cart.getProductAttrUnique(),0L,null); } } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java index 18364384..592abc3c 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java @@ -29,7 +29,7 @@ public interface YxStoreProductAttrService extends BaseService{ * @param productId 商品id * @param unique sku唯一值 */ - void incProductStock(Integer num, Long productId, String unique); + void incProductStock(Integer num, Long productId, String unique,Long activityId, String type); /** * 减少库存与增加销量 diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java index b87ff2c8..44dea941 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java @@ -16,6 +16,7 @@ import co.yixiang.api.BusinessException; import co.yixiang.api.YshopException; import co.yixiang.common.service.impl.BaseServiceImpl; import co.yixiang.dozer.service.IGenerator; +import co.yixiang.exception.BadRequestException; import co.yixiang.modules.product.domain.YxStoreProductAttr; import co.yixiang.modules.product.domain.YxStoreProductAttrValue; import co.yixiang.modules.product.service.YxStoreProductAttrResultService; @@ -93,6 +94,9 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl stringList = productFormatDto.getDetail().values() // .stream() // .collect(Collectors.toList()); + if(productFormatDto.getPinkStock()>productFormatDto.getStock() || productFormatDto.getSeckillStock()>productFormatDto.getStock()){ + throw new BadRequestException("活动商品库存不能大于原有商品库存"); + } List stringList = new ArrayList<>(productFormatDto.getDetail().values()); Collections.sort(stringList); @@ -162,12 +166,19 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl { - @Select("select sum(stock) from yx_store_product_attr_value " + - "where product_id = #{productId}") - Integer sumStock(long productId); + /** + * 正常商品 加库存 减销量 + * @param num + * @param productId + * @param unique + * @return + */ + @Update("update yx_store_product_attr_value set stock=stock+#{num}, sales=sales-#{num}" + + " where product_id=#{productId} and `unique`=#{unique}") + int incStockDecSales(@Param("num") int num,@Param("productId") Long productId, + @Param("unique") String unique); + + + /** + * 拼团商品 加库存 减销量 + * @param num + * @param productId + * @param unique + * @return + */ + + @Update("update yx_store_product_attr_value set stock=stock+#{num}, pink_stock=pink_stock+#{num}, sales=sales-#{num}" + + " where product_id=#{productId} and and `unique`=#{unique}") + int incCombinationStockDecSales(@Param("num") int num,@Param("productId") Long productId, + @Param("unique") String unique); + + + /** + * 秒杀 加库存 减销量 + * @param num + * @param productId + * @param unique + * @return + */ + @Update("update yx_store_product_attr_value set stock=stock+#{num},seckill_stock=seckill_stock+#{num}, sales=sales-#{num}" + + " where product_id=#{productId} and `unique`=#{unique}") + int incSeckillStockDecSales(@Param("num") int num,@Param("productId") Long productId, + @Param("unique") String unique); + + + /** + * 普通商品 减库存 加销量 + * @param num + * @param productId + * @param unique + * @return + */ @Update("update yx_store_product_attr_value set stock=stock-#{num}, sales=sales+#{num}" + " where product_id=#{productId} and `unique`=#{unique} and stock >= #{num}") int decStockIncSales(@Param("num") int num, @Param("productId") Long productId, @Param("unique") String unique); - @Update("update yx_store_product_attr_value set stock=stock+#{num}, sales=sales-#{num}" + - " where product_id=#{productId} and `unique`=#{unique}") - int incStockDecSales(@Param("num") int num,@Param("productId") Long productId, - @Param("unique") String unique); - + /** + * 拼团产品 减库存 加销量 + * @param num + * @param productId + * @param unique + * @return + */ @Update("update yx_store_product_attr_value set stock=stock-#{num}, pink_stock=pink_stock-#{num} ,sales=sales+#{num}" + " where product_id=#{productId} and `unique`=#{unique} and stock >= #{num} and pink_stock>=#{num}") int decCombinationStockIncSales(int num, Long productId, String unique); + /** + * 秒杀产品 减库存 加销量 + * @param num + * @param productId + * @param unique + * @return + */ @Update("update yx_store_product_attr_value set stock=stock-#{num}, seckill_stock=seckill_stock-#{num},sales=sales+#{num}" + " where product_id=#{productId} and `unique`=#{unique} and stock >= #{num} and seckill_stock>=#{num}") int decSeckillStockIncSales(int num, Long productId, String unique); diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/StoreProductMapper.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/StoreProductMapper.java index 97574375..a3093465 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/StoreProductMapper.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/mapper/StoreProductMapper.java @@ -21,35 +21,70 @@ import org.springframework.stereotype.Repository; @Repository public interface StoreProductMapper extends CoreMapper { + /** + * 正常商品库存 减库存 加销量 + * @param num + * @param productId + * @return + */ @Update("update yx_store_product set stock=stock-#{num}, sales=sales+#{num}" + " where id=#{productId} and stock >= #{num}") int decStockIncSales(@Param("num") int num,@Param("productId") Long productId); + /** + * 正常商品库存 加库存 减销量 + * @param num + * @param productId + * @return + */ @Update("update yx_store_product set stock=stock+#{num}, sales=sales-#{num}" + " where id=#{productId}") int incStockDecSales(@Param("num") int num,@Param("productId") Long productId); - @Update("update yx_store_product set sales=sales+#{num}" + - " where id=#{productId}") - int incSales(@Param("num") int num,@Param("productId") int productId); - - @Update("update yx_store_product set sales=sales-#{num}" + - " where id=#{productId}") - int decSales(@Param("num") int num,@Param("productId") Long productId); - - - @Update("update yx_store_product set is_del = #{status} where id = #{id}") - void updateDel(@Param("status")int status,@Param("id") Integer id); @Update("update yx_store_product set is_show = #{status} where id = #{id}") void updateOnsale(@Param("status") Integer status, @Param("id") Long id); - //todo 拼团商品库存+— + /** + * 拼团商品库存,减库存 加销量 + * @param num + * @param productId + * @param activityId + * @return + */ @Update("update yx_store_combination set stock=stock-#{num}, sales=sales+#{num}" + " where id=#{activityId} and stock >= #{num}") int decCombinationStockIncSales(int num, Long productId,Long activityId); - //todo 秒杀商品库存+— + + /** + * 秒杀产品库存 减库存,加销量 + * @param num + * @param productId + * @param activityId + * @return + */ @Update("update yx_store_seckill set stock=stock-#{num}, sales=sales+#{num}" + " where id=#{activityId} and stock >= #{num}") int decSeckillStockIncSales(int num, Long productId,Long activityId); + + /** + * 拼团商品库存,加库存 减销量 + * @param num + * @param productId + * @param activityId + */ + @Update("update yx_store_combination set stock=stock+#{num}, sales=sales-#{num}" + + " where id=#{activityId} and stock >= #{num}") + void incCombinationStockIncSales(Integer num, Long productId, Long activityId); + + /** + * 秒杀产品库存 加库存,减销量 + * @param num + * @param productId + * @param activityId + * @return + */ + @Update("update yx_store_seckill set stock=stock+#{num}, sales=sales-#{num}" + + " where id=#{activityId} and stock >= #{num}") + void incSeckillStockIncSales(Integer num, Long productId, Long activityId); } From ef078b84ed83bc0c7d33a5e62237b041f7a07e4f Mon Sep 17 00:00:00 2001 From: xuwenbo <717567226@qq.com> Date: Tue, 8 Sep 2020 19:35:43 +0800 Subject: [PATCH 4/6] =?UTF-8?q?bug-=E7=A7=92=E6=9D=80=E6=9C=89=E5=BA=93?= =?UTF-8?q?=E5=AD=98,=E4=B8=8B=E5=8D=95=E6=8F=90=E7=A4=BA=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E4=B8=8D=E8=B6=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/order/service/impl/YxStoreOrderServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index 6b01f1d8..34061a6b 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -1590,7 +1590,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl 0){ productService.decProductStock(storeCartVO.getCartNum(),storeCartVO.getProductId(), - storeCartVO.getProductAttrUnique(),combinationId,"seckill"); + storeCartVO.getProductAttrUnique(),seckillId,"seckill"); }else if(bargainId != null && bargainId > 0){ storeBargainService.decStockIncSales(storeCartVO.getCartNum(),bargainId); } else { From 9b0a9528930f9863c6a8db2802e2fa02fad08289 Mon Sep 17 00:00:00 2001 From: xuwenbo <717567226@qq.com> Date: Tue, 8 Sep 2020 21:02:51 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BB=8EAttrValue=E8=A1=A8=E5=8F=96=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dto/YxStoreCombinationDto.java | 2 +- .../service/dto/YxStoreSeckillDto.java | 2 +- .../impl/YxStoreCombinationServiceImpl.java | 32 +++++-------- .../impl/YxStoreSeckillServiceImpl.java | 37 +++++---------- .../service/YxStoreProductAttrService.java | 3 +- .../product/service/dto/ProductDto.java | 4 +- .../product/service/dto/StoreProductDto.java | 4 +- .../impl/YxStoreProductAttrServiceImpl.java | 9 ++-- .../impl/YxStoreProductServiceImpl.java | 26 +++++----- .../rest/StoreCombinationController.java | 45 ++++++------------ .../activity/rest/StoreSeckillController.java | 47 +++++++------------ .../product/rest/StoreProductController.java | 37 ++++++--------- 12 files changed, 93 insertions(+), 155 deletions(-) diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreCombinationDto.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreCombinationDto.java index 9b40b0f6..cb0e647c 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreCombinationDto.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreCombinationDto.java @@ -134,6 +134,6 @@ public class YxStoreCombinationDto implements Serializable { private List items; //sku结果集 - private List> attrs; + private List attrs; } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreSeckillDto.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreSeckillDto.java index 5619eb87..1a854d8f 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreSeckillDto.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/dto/YxStoreSeckillDto.java @@ -131,6 +131,6 @@ public class YxStoreSeckillDto implements Serializable { private List items; //sku结果集 - private List> attrs; + private List attrs; } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java index 2a923eb0..f8574a17 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java @@ -58,13 +58,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - +import java.util.*; /** @@ -290,14 +284,14 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl> attrs = resources.getAttrs(); - Map map = attrs.get(0); - map.put("value1","规格"); - map.put("detail", MapUtil.of(new String[][] { - {"规格", "默认"} - })); + List attrs = resources.getAttrs(); + ProductFormatDto productFormatDto = attrs.get(0); + productFormatDto.setValue1("规格"); + Map map = new HashMap<>(); + map.put("规格","默认"); + productFormatDto.setDetail(map); yxStoreProductAttrService.insertYxStoreProductAttr(ListUtil.toList(fromatDetailDto), - ListUtil.toList(map),resources.getProductId()); + ListUtil.toList(productFormatDto),resources.getProductId()); }else{ yxStoreProductAttrService.insertYxStoreProductAttr(resources.getItems(), resources.getAttrs(),resources.getProductId()); @@ -311,27 +305,27 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl> attrs){ + private ProductResultDto computedProduct(List attrs){ //取最小价格 - Double minPrice = ListMapToListBean(attrs) + Double minPrice = attrs .stream() .map(ProductFormatDto::getPinkPrice) .min(Comparator.naturalOrder()) .orElse(0d); - Double minOtPrice = ListMapToListBean(attrs) + Double minOtPrice = attrs .stream() .map(ProductFormatDto::getOtPrice) .min(Comparator.naturalOrder()) .orElse(0d); - Double minCost = ListMapToListBean(attrs) + Double minCost = attrs .stream() .map(ProductFormatDto::getCost) .min(Comparator.naturalOrder()) .orElse(0d); //计算库存 - Integer stock = ListMapToListBean(attrs) + Integer stock = attrs .stream() .map(ProductFormatDto::getPinkStock) .reduce(Integer::sum) diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java index db0e7fb4..5d4f4f11 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreSeckillServiceImpl.java @@ -268,14 +268,14 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl> attrs = resources.getAttrs(); - Map map = attrs.get(0); - map.put("value1","规格"); - map.put("detail", MapUtil.of(new String[][] { - {"规格", "默认"} - })); + List attrs = resources.getAttrs(); + ProductFormatDto productFormatDto = attrs.get(0); + productFormatDto.setValue1("规格"); + Map map = new HashMap<>(); + map.put("规格","默认"); + productFormatDto.setDetail(map); yxStoreProductAttrService.insertYxStoreProductAttr(ListUtil.toList(fromatDetailDto), - ListUtil.toList(map),resources.getProductId()); + ListUtil.toList(productFormatDto),resources.getProductId()); }else{ yxStoreProductAttrService.insertYxStoreProductAttr(resources.getItems(), resources.getAttrs(),resources.getProductId()); @@ -288,27 +288,27 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl> attrs){ + private ProductResultDto computedProduct(List attrs){ //取最小价格 - Double minPrice = ListMapToListBean(attrs) + Double minPrice = attrs .stream() .map(ProductFormatDto::getSeckillPrice) .min(Comparator.naturalOrder()) .orElse(0d); - Double minOtPrice = ListMapToListBean(attrs) + Double minOtPrice = attrs .stream() .map(ProductFormatDto::getOtPrice) .min(Comparator.naturalOrder()) .orElse(0d); - Double minCost = ListMapToListBean(attrs) + Double minCost = attrs .stream() .map(ProductFormatDto::getCost) .min(Comparator.naturalOrder()) .orElse(0d); //计算库存 - Integer stock = ListMapToListBean(attrs) + Integer stock = attrs .stream() .map(ProductFormatDto::getSeckillStock) .reduce(Integer::sum) @@ -326,17 +326,4 @@ public class YxStoreSeckillServiceImpl extends BaseServiceImpl ListMapToListBean(List> listMap){ - List list = new ArrayList<>(); - // 循环遍历出map对象 - for (Map m : listMap) { - list.add(BeanUtil.mapToBean(m,ProductFormatDto.class,true)); - } - return list; - } } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java index 592abc3c..a4d541f5 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/YxStoreProductAttrService.java @@ -12,6 +12,7 @@ import co.yixiang.common.service.BaseService; import co.yixiang.modules.product.domain.YxStoreProductAttr; import co.yixiang.modules.product.domain.YxStoreProductAttrValue; import co.yixiang.modules.product.service.dto.FromatDetailDto; +import co.yixiang.modules.product.service.dto.ProductFormatDto; import java.util.List; import java.util.Map; @@ -60,6 +61,6 @@ public interface YxStoreProductAttrService extends BaseService items, List> attrs, + void insertYxStoreProductAttr(List items, List attrs, Long productId); } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/ProductDto.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/ProductDto.java index 7be3f323..dd3250ab 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/ProductDto.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/ProductDto.java @@ -12,7 +12,7 @@ import java.util.Map; /** * 商品对象VO - * + * * @author hupeng * @date 2020-04-25 */ @@ -138,7 +138,7 @@ public class ProductDto private List items; - private List> attrs; + private List attrs; diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/StoreProductDto.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/StoreProductDto.java index fb65a4ae..6434025e 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/StoreProductDto.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/dto/StoreProductDto.java @@ -13,7 +13,7 @@ import java.util.Map; /** * 商品对象DTO - * + * * @author hupeng * @date 2020-04-23 */ @@ -140,7 +140,7 @@ public class StoreProductDto private List items; //sku结果集 - private List> attrs; + private List attrs; } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java index 44dea941..bb72c42f 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductAttrServiceImpl.java @@ -73,7 +73,7 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl items, List> attrs, + public void insertYxStoreProductAttr(List items, List attrs, Long productId) { List attrGroup = new ArrayList<>(); @@ -89,11 +89,8 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl valueGroup = new ArrayList<>(); - for (Map m : attrs) { - ProductFormatDto productFormatDto = BeanUtil.mapToBean(m,ProductFormatDto.class,true); -// List stringList = productFormatDto.getDetail().values() -// .stream() -// .collect(Collectors.toList()); + for (ProductFormatDto productFormatDto : attrs) { + if(productFormatDto.getPinkStock()>productFormatDto.getStock() || productFormatDto.getSeckillStock()>productFormatDto.getStock()){ throw new BadRequestException("活动商品库存不能大于原有商品库存"); } diff --git a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java index b5c61850..f84b97a3 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/product/service/impl/YxStoreProductServiceImpl.java @@ -534,17 +534,17 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl> attrs = storeProductDto.getAttrs(); - Map map = attrs.get(0); - map.put("value1","规格"); - map.put("detail", MapUtil.of(new String[][] { - {"规格", "默认"} - })); + List attrs = storeProductDto.getAttrs(); + ProductFormatDto productFormatDto = attrs.get(0); + productFormatDto.setValue1("规格"); + Map map = new HashMap<>(); + map.put("规格","默认"); + productFormatDto.setDetail(map); yxStoreProductAttrService.insertYxStoreProductAttr(ListUtil.toList(fromatDetailDto), - ListUtil.toList(map),yxStoreProduct.getId()); + ListUtil.toList(productFormatDto),storeProductDto.getId()); }else{ yxStoreProductAttrService.insertYxStoreProductAttr(storeProductDto.getItems(), - storeProductDto.getAttrs(),yxStoreProduct.getId()); + storeProductDto.getAttrs(),storeProductDto.getId()); } @@ -688,27 +688,27 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl> attrs){ + private ProductResultDto computedProduct(List attrs){ //取最小价格 - Double minPrice = ListMapToListBean(attrs) + Double minPrice = attrs .stream() .map(ProductFormatDto::getPrice) .min(Comparator.naturalOrder()) .orElse(0d); - Double minOtPrice = ListMapToListBean(attrs) + Double minOtPrice = attrs .stream() .map(ProductFormatDto::getOtPrice) .min(Comparator.naturalOrder()) .orElse(0d); - Double minCost = ListMapToListBean(attrs) + Double minCost = attrs .stream() .map(ProductFormatDto::getCost) .min(Comparator.naturalOrder()) .orElse(0d); //计算库存 - Integer stock = ListMapToListBean(attrs) + Integer stock = attrs .stream() .map(ProductFormatDto::getStock) .reduce(Integer::sum) diff --git a/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java b/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java index cf4fc4cc..1d63d38b 100644 --- a/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java +++ b/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java @@ -8,6 +8,7 @@ package co.yixiang.modules.activity.rest; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import co.yixiang.constant.ShopConstants; +import co.yixiang.dozer.service.IGenerator; import co.yixiang.enums.SpecTypeEnum; import co.yixiang.logging.aop.log.Log; import co.yixiang.modules.activity.domain.YxStoreCombination; @@ -16,13 +17,16 @@ import co.yixiang.modules.activity.service.dto.YxStoreCombinationDto; import co.yixiang.modules.activity.service.dto.YxStoreCombinationQueryCriteria; import co.yixiang.modules.aop.ForbidSubmit; import co.yixiang.modules.product.domain.YxStoreProductAttrResult; +import co.yixiang.modules.product.domain.YxStoreProductAttrValue; import co.yixiang.modules.product.service.YxStoreProductAttrResultService; +import co.yixiang.modules.product.service.YxStoreProductAttrValueService; import co.yixiang.modules.product.service.YxStoreProductRuleService; import co.yixiang.modules.product.service.dto.ProductFormatDto; import co.yixiang.modules.template.domain.YxShippingTemplates; import co.yixiang.modules.template.service.YxShippingTemplatesService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -60,11 +64,15 @@ public class StoreCombinationController { private final YxShippingTemplatesService yxShippingTemplatesService; private final YxStoreProductRuleService yxStoreProductRuleService; private final YxStoreProductAttrResultService yxStoreProductAttrResultService; - public StoreCombinationController(YxStoreCombinationService yxStoreCombinationService, YxShippingTemplatesService yxShippingTemplatesService, YxStoreProductRuleService yxStoreProductRuleService, YxStoreProductAttrResultService yxStoreProductAttrResultService) { + private final YxStoreProductAttrValueService storeProductAttrValueService; + private final IGenerator generator; + public StoreCombinationController(YxStoreCombinationService yxStoreCombinationService, YxShippingTemplatesService yxShippingTemplatesService, YxStoreProductRuleService yxStoreProductRuleService, YxStoreProductAttrResultService yxStoreProductAttrResultService, YxStoreProductAttrValueService storeProductAttrValueService, IGenerator generator) { this.yxStoreCombinationService = yxStoreCombinationService; this.yxShippingTemplatesService = yxShippingTemplatesService; this.yxStoreProductRuleService = yxStoreProductRuleService; this.yxStoreProductAttrResultService = yxStoreProductAttrResultService; + this.storeProductAttrValueService = storeProductAttrValueService; + this.generator = generator; } @Log("查询拼团") @@ -93,14 +101,6 @@ public class StoreCombinationController { List shippingTemplatesList = yxShippingTemplatesService.list(); map.put("tempList", shippingTemplatesList); -// //商品分类 -// List storeCategories = yxStoreCategoryService.lambdaQuery() -// .eq(YxStoreCategory::getIsShow, ShopCommonEnum.SHOW_1.getValue()) -// .list(); - -// List> cateList = new ArrayList<>(); -// map.put("cateList", this.makeCate(storeCategories,cateList,0,1)); - //商品规格 map.put("ruleList",yxStoreProductRuleService.list()); @@ -118,33 +118,16 @@ public class StoreCombinationController { .getOne(Wrappers.lambdaQuery() .eq(YxStoreProductAttrResult::getProductId,yxStoreCombination.getProductId()).last("limit 1")); JSONObject result = JSON.parseObject(storeProductAttrResult.getResult()); - + List attrValues = storeProductAttrValueService.list(new LambdaQueryWrapper().eq(YxStoreProductAttrValue::getProductId, yxStoreCombination.getProductId())); + List productFormatDtos = generator.convert(attrValues, ProductFormatDto.class); if(SpecTypeEnum.TYPE_1.getValue().equals(yxStoreCombination.getSpecType())){ productDto.setAttr(new ProductFormatDto()); - productDto.setAttrs(result.getObject("value",ArrayList.class)); + productDto.setAttrs(productFormatDtos); productDto.setItems(result.getObject("attr",ArrayList.class)); }else{ - Map mapAttr = (Map)result.getObject("value",ArrayList.class).get(0); - ProductFormatDto productFormatDto = ProductFormatDto.builder() - .pic(mapAttr.get("pic").toString()) - .price(Double.valueOf(mapAttr.get("price").toString())) - .pinkPrice(Double.valueOf(mapAttr.get("pink_price").toString())) - .cost(Double.valueOf(mapAttr.get("cost").toString())) - .otPrice(Double.valueOf(mapAttr.get("ot_price").toString())) - .barCode(mapAttr.get("bar_code").toString()) - .weight(Double.valueOf(mapAttr.get("weight").toString())) - .volume(Double.valueOf(mapAttr.get("volume").toString())) - .brokerage(Double.valueOf(mapAttr.get("brokerage").toString())) - .brokerageTwo(Double.valueOf(mapAttr.get("brokerage_two").toString())) - .pinkPrice(Double.valueOf(mapAttr.get("pink_price").toString())) - .pinkStock(Integer.valueOf(mapAttr.get("pink_stock").toString())) - .stock(Integer.valueOf(mapAttr.get("stock").toString())) - .seckillPrice(Double.valueOf(mapAttr.get("seckill_price").toString())) - .seckillStock(Integer.valueOf(mapAttr.get("seckill_stock").toString())) - .build(); - productDto.setAttr(productFormatDto); - } + productDto.setAttr(productFormatDtos.get(0)); + } map.put("productInfo",productDto); diff --git a/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java b/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java index dd04b06c..8c5e058c 100644 --- a/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java +++ b/yshop-shop/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java @@ -8,23 +8,25 @@ package co.yixiang.modules.activity.rest; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import co.yixiang.constant.ShopConstants; +import co.yixiang.dozer.service.IGenerator; import co.yixiang.enums.SpecTypeEnum; import co.yixiang.logging.aop.log.Log; import co.yixiang.modules.activity.domain.YxStoreSeckill; -import co.yixiang.modules.activity.domain.YxStoreSeckill; import co.yixiang.modules.activity.service.YxStoreSeckillService; import co.yixiang.modules.activity.service.dto.YxStoreSeckillDto; -import co.yixiang.modules.activity.service.dto.YxStoreSeckillDto; import co.yixiang.modules.activity.service.dto.YxStoreSeckillQueryCriteria; import co.yixiang.modules.aop.ForbidSubmit; import co.yixiang.modules.product.domain.YxStoreProductAttrResult; +import co.yixiang.modules.product.domain.YxStoreProductAttrValue; import co.yixiang.modules.product.service.YxStoreProductAttrResultService; +import co.yixiang.modules.product.service.YxStoreProductAttrValueService; import co.yixiang.modules.product.service.YxStoreProductRuleService; import co.yixiang.modules.product.service.dto.ProductFormatDto; import co.yixiang.modules.template.domain.YxShippingTemplates; import co.yixiang.modules.template.service.YxShippingTemplatesService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -47,14 +49,20 @@ import java.util.*; @RequestMapping("api") public class StoreSeckillController { + private final IGenerator generator; private final YxStoreSeckillService yxStoreSeckillService; private final YxShippingTemplatesService yxShippingTemplatesService; private final YxStoreProductRuleService yxStoreProductRuleService; + private final YxStoreProductAttrValueService storeProductAttrValueService; private final YxStoreProductAttrResultService yxStoreProductAttrResultService; - public StoreSeckillController(YxStoreSeckillService yxStoreSeckillService, YxShippingTemplatesService yxShippingTemplatesService, YxStoreProductRuleService yxStoreProductRuleService, YxStoreProductAttrResultService yxStoreProductAttrResultService) { + public StoreSeckillController(IGenerator generator, YxStoreSeckillService yxStoreSeckillService, YxShippingTemplatesService yxShippingTemplatesService, + YxStoreProductRuleService yxStoreProductRuleService, YxStoreProductAttrValueService storeProductAttrValueService, + YxStoreProductAttrResultService yxStoreProductAttrResultService) { + this.generator = generator; this.yxStoreSeckillService = yxStoreSeckillService; this.yxShippingTemplatesService = yxShippingTemplatesService; this.yxStoreProductRuleService = yxStoreProductRuleService; + this.storeProductAttrValueService = storeProductAttrValueService; this.yxStoreProductAttrResultService = yxStoreProductAttrResultService; } @@ -108,14 +116,6 @@ public class StoreSeckillController { List shippingTemplatesList = yxShippingTemplatesService.list(); map.put("tempList", shippingTemplatesList); -// //商品分类 -// List storeCategories = yxStoreCategoryService.lambdaQuery() -// .eq(YxStoreCategory::getIsShow, ShopCommonEnum.SHOW_1.getValue()) -// .list(); - -// List> cateList = new ArrayList<>(); -// map.put("cateList", this.makeCate(storeCategories,cateList,0,1)); - //商品规格 map.put("ruleList",yxStoreProductRuleService.list()); @@ -134,30 +134,15 @@ public class StoreSeckillController { .eq(YxStoreProductAttrResult::getProductId,yxStoreSeckill.getProductId()).last("limit 1")); JSONObject result = JSON.parseObject(storeProductAttrResult.getResult()); + List attrValues = storeProductAttrValueService.list(new LambdaQueryWrapper().eq(YxStoreProductAttrValue::getProductId, yxStoreSeckill.getProductId())); + List productFormatDtos = generator.convert(attrValues, ProductFormatDto.class); + if(SpecTypeEnum.TYPE_1.getValue().equals(yxStoreSeckill.getSpecType())){ productDto.setAttr(new ProductFormatDto()); - productDto.setAttrs(result.getObject("value", ArrayList.class)); + productDto.setAttrs(productFormatDtos); productDto.setItems(result.getObject("attr",ArrayList.class)); }else{ - Map mapAttr = (Map)result.getObject("value",ArrayList.class).get(0); - ProductFormatDto productFormatDto = ProductFormatDto.builder() - .pic(mapAttr.get("pic").toString()) - .price(Double.valueOf(mapAttr.get("price").toString())) - .pinkPrice(Double.valueOf(mapAttr.get("pink_price").toString())) - .cost(Double.valueOf(mapAttr.get("cost").toString())) - .otPrice(Double.valueOf(mapAttr.get("ot_price").toString())) - .barCode(mapAttr.get("bar_code").toString()) - .weight(Double.valueOf(mapAttr.get("weight").toString())) - .volume(Double.valueOf(mapAttr.get("volume").toString())) - .stock(Integer.valueOf(mapAttr.get("stock").toString())) - .brokerage(Double.valueOf(mapAttr.get("brokerage").toString())) - .brokerageTwo(Double.valueOf(mapAttr.get("brokerage_two").toString())) - .pinkPrice(Double.valueOf(mapAttr.get("pink_price").toString())) - .pinkStock(Integer.valueOf(mapAttr.get("pink_stock").toString())) - .seckillPrice(Double.valueOf(mapAttr.get("seckill_price").toString())) - .seckillStock(Integer.valueOf(mapAttr.get("seckill_stock").toString())) - .build(); - productDto.setAttr(productFormatDto); + productDto.setAttr(productFormatDtos.get(0)); } diff --git a/yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java b/yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java index ac91c585..6acd1793 100644 --- a/yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java +++ b/yshop-shop/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java @@ -10,6 +10,7 @@ package co.yixiang.modules.product.rest; import cn.hutool.core.bean.BeanUtil; import co.yixiang.constant.ShopConstants; +import co.yixiang.dozer.service.IGenerator; import co.yixiang.enums.ShopCommonEnum; import co.yixiang.enums.SpecTypeEnum; import co.yixiang.logging.aop.log.Log; @@ -18,7 +19,9 @@ import co.yixiang.modules.category.domain.YxStoreCategory; import co.yixiang.modules.category.service.YxStoreCategoryService; import co.yixiang.modules.product.domain.YxStoreProduct; import co.yixiang.modules.product.domain.YxStoreProductAttrResult; +import co.yixiang.modules.product.domain.YxStoreProductAttrValue; import co.yixiang.modules.product.service.YxStoreProductAttrResultService; +import co.yixiang.modules.product.service.YxStoreProductAttrValueService; import co.yixiang.modules.product.service.YxStoreProductRuleService; import co.yixiang.modules.product.service.YxStoreProductService; import co.yixiang.modules.product.service.dto.ProductDto; @@ -29,6 +32,7 @@ import co.yixiang.modules.template.domain.YxShippingTemplates; import co.yixiang.modules.template.service.YxShippingTemplatesService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -68,17 +72,20 @@ public class StoreProductController { private final YxShippingTemplatesService yxShippingTemplatesService; private final YxStoreProductRuleService yxStoreProductRuleService; private final YxStoreProductAttrResultService yxStoreProductAttrResultService; - + private final YxStoreProductAttrValueService storeProductAttrValueService; + private final IGenerator generator; public StoreProductController(YxStoreProductService yxStoreProductService, YxStoreCategoryService yxStoreCategoryService, YxShippingTemplatesService yxShippingTemplatesService, YxStoreProductRuleService yxStoreProductRuleService, - YxStoreProductAttrResultService yxStoreProductAttrResultService) { + YxStoreProductAttrResultService yxStoreProductAttrResultService, YxStoreProductAttrValueService storeProductAttrValueService, IGenerator generator) { this.yxStoreProductService = yxStoreProductService; this.yxStoreCategoryService = yxStoreCategoryService; this.yxShippingTemplatesService = yxShippingTemplatesService; this.yxStoreProductRuleService = yxStoreProductRuleService; this.yxStoreProductAttrResultService = yxStoreProductAttrResultService; + this.storeProductAttrValueService = storeProductAttrValueService; + this.generator = generator; } @Log("查询商品") @@ -178,32 +185,16 @@ public class StoreProductController { .getOne(Wrappers.lambdaQuery() .eq(YxStoreProductAttrResult::getProductId,id).last("limit 1")); JSONObject result = JSON.parseObject(storeProductAttrResult.getResult()); - + List attrValues = storeProductAttrValueService.list(new LambdaQueryWrapper().eq(YxStoreProductAttrValue::getProductId, yxStoreProduct.getId())); + List productFormatDtos = generator.convert(attrValues, ProductFormatDto.class); if(SpecTypeEnum.TYPE_1.getValue().equals(yxStoreProduct.getSpecType())){ productDto.setAttr(new ProductFormatDto()); - productDto.setAttrs(result.getObject("value",ArrayList.class)); + productDto.setAttrs(productFormatDtos); productDto.setItems(result.getObject("attr",ArrayList.class)); }else{ - Map mapAttr = (Map)result.getObject("value",ArrayList.class).get(0); - ProductFormatDto productFormatDto = ProductFormatDto.builder() - .pic(mapAttr.get("pic").toString()) - .price(Double.valueOf(mapAttr.get("price").toString())) - .cost(Double.valueOf(mapAttr.get("cost").toString())) - .otPrice(Double.valueOf(mapAttr.get("ot_price").toString())) - .stock(Integer.valueOf(mapAttr.get("stock").toString())) - .barCode(mapAttr.get("bar_code").toString()) - .weight(Double.valueOf(mapAttr.get("weight").toString())) - .volume(Double.valueOf(mapAttr.get("volume").toString())) - .brokerage(Double.valueOf(mapAttr.get("brokerage").toString())) - .brokerageTwo(Double.valueOf(mapAttr.get("brokerage_two").toString())) - .pinkPrice(Double.valueOf(mapAttr.get("pink_price").toString())) - .pinkStock(Integer.valueOf(mapAttr.get("pink_stock").toString())) - .seckillPrice(Double.valueOf(mapAttr.get("seckill_price").toString())) - .seckillStock(Integer.valueOf(mapAttr.get("seckill_stock").toString())) - .build(); - productDto.setAttr(productFormatDto); - } + productDto.setAttr(productFormatDtos.get(0)); + } map.put("productInfo",productDto); From 13b0c6fcb1953ccd9c1be59f54ca3745805ddd91 Mon Sep 17 00:00:00 2001 From: xuwenbo <717567226@qq.com> Date: Tue, 8 Sep 2020 21:11:27 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=8B=BC=E5=9B=A2=E7=A7=92=E6=9D=80?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E5=8E=9F=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/service/impl/YxStoreCombinationServiceImpl.java | 1 + .../modules/activity/service/impl/YxStoreSeckillServiceImpl.java | 1 + 2 files changed, 2 insertions(+) diff --git a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java index f8574a17..20d4786c 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreCombinationServiceImpl.java @@ -270,6 +270,7 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl