zoujiajian 2 years ago
parent
commit
9008bf4f8a

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/mapper/shop/YhShopGoodsSkuMapper.java

@@ -1,11 +1,18 @@
 package com.cyksj.mapper.shop;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.YhShopGoodsSku;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * @author zwhui
  * @date 2023/9/14 17:43
  */
 public interface YhShopGoodsSkuMapper extends BaseMapper<YhShopGoodsSku> {
+
+	@Select("select sku.*,ygs.price as yhShopSkuPrice from (select user_id from yh_shop where id = #{yhsId} limit 1) ys inner join yh_shop_goods_sku ygs on ygs.user_id = ys.user_id and ygs.sku_id = #{skuId} and ygs.deleted is true and ygs.status is true" +
+			" inner join goods_don_sku sku on sku.id = ygs.sku_id")
+	GoodsDonSku selectGoodsDonSkuBySkuIdAndYhsId(@Param("yhsId") Long yhsId, @Param("skuId") Long skuId);
 }

+ 4 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/GoodsDonSku.java

@@ -156,4 +156,8 @@ public class GoodsDonSku extends BaseEntity {
     @TableField(exist = false)
     @JsonProperty("sname")
     private String sName;
+
+    @DbIgnore
+    @TableField(exist = false)
+    private BigDecimal yhShopSkuPrice;
 }

+ 25 - 3
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -48,6 +48,7 @@ import com.cyksj.mapper.manage.coupon.CouponUserMapper;
 import com.cyksj.mapper.manage.distribute.*;
 import com.cyksj.mapper.market.task.TaskTypeMapper;
 import com.cyksj.mapper.market.task.UserBindDetailMapper;
+import com.cyksj.mapper.shop.YhShopGoodsSkuMapper;
 import com.cyksj.model.dto.*;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.GroupsRelationView;
@@ -225,6 +226,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 
 	private final YhShopDistributeService yhShopDistributeService;
 
+	private final YhShopGoodsSkuMapper yhShopGoodsSkuMapper;
+
 	private final List<String> noChekGoodsTemp = List.of("Apple One", "Youtube", "Spotify");
 
 	@Transactional(rollbackFor = Throwable.class)
@@ -239,7 +242,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			//记录优惠券使用状态
 			couponUser = couponStatusRecord(payRequest.getCouponExCode(), payRequest.getCouponId(), payRequest.getUserId(), couponPopularizeDto);
 		}
-		GoodsDonSku sku = goodsDonSkuMapper.selectById(payRequest.getSkuId());
+		GoodsDonSku sku = adjustGoodsDonSku(yhsId, payRequest.getSkuId());
 		GoodsDon goodsDon = goodsDonMapper.selectById(sku.getGoodsId());
 		if (goodsDon == null || !goodsDon.getStatus()) {
 			throw new BusinessRuntimeException("商品已下架");
@@ -703,8 +706,10 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		if (count > 0) {
 			throw BusinessRuntimeException.getInstance("您有该车票未支付的续费订单..");
 		}
-
-		GoodsDonSku sku = goodsDonSkuMapper.selectById(renewSkuId);
+		String customId = payRequest.getCustomId();
+		//若存在店铺id,校验店铺状态
+		Long yhsId = yhShopFrontService.checkShopCustomIdAndReturnShopId(customId);
+		GoodsDonSku sku = adjustGoodsDonSku(yhsId, renewSkuId);
 
 		GroupsRelation relation = groupsRelationMapper.selectById(relationId);
 		if (relation == null) {
@@ -2165,4 +2170,21 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			}
 		}
 	}
+
+	public GoodsDonSku adjustGoodsDonSku(Long yhsId, Long skuId) {
+		GoodsDonSku sku;
+		if (yhsId != null) {
+			sku = yhShopGoodsSkuMapper.selectGoodsDonSkuBySkuIdAndYhsId(yhsId, skuId);
+		} else {
+			sku = goodsDonSkuMapper.selectById(skuId);
+		}
+		if (sku == null) {
+			throw BusinessRuntimeException.getInstance("商品不存在,请刷新页面重试");
+		}
+		//调整小店的规格价格
+		if (sku.getYhShopSkuPrice() != null) {
+			sku.setPrice(sku.getYhShopSkuPrice());
+		}
+		return sku;
+	}
 }