zwhui 2 лет назад
Родитель
Сommit
e8fca9d607

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/UpgradePackage.java

@@ -24,7 +24,7 @@ public class UpgradePackage extends BaseEntity{
     /**
      * 商品规格id
      */
-    private Long skuId;
+    private String skuIds;
 
     /**
      * 套餐价格

+ 6 - 6
netflix-dao/src/main/java/com/cyksj/model/views/UpgradePackageView.java

@@ -1,7 +1,7 @@
 package com.cyksj.model.views;
 
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Data;
 
@@ -12,8 +12,8 @@ import java.math.BigDecimal;
  * @date 2024/4/24 15:20
  */
 @Data
-@SearchBean(tables = "upgrade_package up left join goods_don g on up.goods_id = g.id " +
-        "left join goods_don_sku s on up.sku_id = s.id", where = "up.deleted = true")
+@SearchBean(tables = "upgrade_package up left join goods_don g on up.goods_id = g.id "
+        , where = "up.deleted = true :sku:")
 public class UpgradePackageView {
     @DbField("up.id")
     private Long id;
@@ -39,13 +39,13 @@ public class UpgradePackageView {
     /**
      * 商品规格id
      */
-    @DbField("up.sku_id")
-    private Long skuId;
+    @DbField("up.sku_ids")
+    private String skuIds;
 
     /**
      * 商品规格名称
      */
-    @DbField("s.spec_val")
+    @DbIgnore
     private String specVal;
 
     /**

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -235,7 +235,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				ticket.setPayTime(payTime);
 			}
 			if (ticket.getGoodsId() == 26 && ticket.getIsMirror()){
-				List<UpgradePackage> upgradePackages = upgradePackageMapper.selectList(Wrappers.lambdaQuery(UpgradePackage.class).eq(UpgradePackage::getSkuId, ticket.getSkuId()).eq(UpgradePackage::getStatus, Boolean.TRUE));
+				List<UpgradePackage> upgradePackages = upgradePackageMapper.selectList(Wrappers.lambdaQuery(UpgradePackage.class).apply("JSON_CONTAINS(sku_ids,'\""+ticket.getSkuId()+"\"')").eq(UpgradePackage::getStatus, Boolean.TRUE));
 				if (CollectionUtil.isNotEmpty(upgradePackages)){
 					upgradePackages.stream().map(e -> e.getPrice().divide(BigDecimal.valueOf(e.getNum()), 2, RoundingMode.HALF_UP)).min(BigDecimal::compareTo).ifPresent(ticket::setMjPackagePrice);
 				}

+ 4 - 1
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -1252,9 +1252,12 @@ public class GoodsDonController {
 	 * 获取套餐列表
 	 */
 	@GetMapping("/get/upgradePackage")
-	public Result<SearchResult<UpgradePackageView>> list() {
+	public Result<SearchResult<UpgradePackageView>> list(Long skuId) {
 		log.info("获取套餐列表");
 		Map<String, Object> build = MapUtils.flatBuilder(request.getParameterMap()).build();
+		if (skuId != null) {
+			build.put("sku", String.format(" and JSON_CONTAINS(up.sku_ids,'\"%s\"')", skuId));
+		}
 		SearchResult<UpgradePackageView> search = beanSearcher.search(UpgradePackageView.class, build);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}

+ 0 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/goods/CmsGoodsDonController.java

@@ -16,7 +16,6 @@ import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.manage.request.ReqGoodsSpuInsert;
 import com.cyksj.model.manage.views.GoodsDonViewer;
 import com.cyksj.model.views.GoodsDonCategoryDetailView;
-import com.cyksj.model.views.UpgradePackageView;
 import com.cyksj.service.mange.CmsGoodsDonService;
 import com.cyksj.service.mange.GoodsDonCategoryService;
 import com.cyksj.service.mange.RefreshCacheService;
@@ -33,7 +32,6 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 

+ 19 - 1
netflix-web/src/main/java/com/cyksj/web/controller/manage/upgrade/UpgradePackageController.java

@@ -2,11 +2,15 @@ package com.cyksj.web.controller.manage.upgrade;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.map.MapUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.Log;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.Jsons;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.GoodsDonSkuMapper;
+import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.UpgradePackage;
 import com.cyksj.model.views.UpgradePackageView;
 import com.cyksj.service.mange.upgrade.UpgradePackageService;
@@ -20,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
@@ -38,6 +43,8 @@ public class UpgradePackageController {
 
     private final BeanSearcher beanSearcher;
 
+    private final GoodsDonSkuMapper goodsDonSkuMapper;
+
     /**
      * 新增套餐
      */
@@ -110,10 +117,21 @@ public class UpgradePackageController {
      * 获取套餐列表
      */
     @GetMapping
-    public Result<SearchResult<UpgradePackageView>> list() {
+    public Result<SearchResult<UpgradePackageView>> list(Long skuId) {
         log.info("获取套餐列表");
         Map<String, Object> build = MapUtils.flatBuilder(request.getParameterMap()).build();
+        if (skuId != null) {
+            build.put("sku", String.format(" and JSON_CONTAINS(up.sku_ids,'\"%s\"')", skuId));
+        }
         SearchResult<UpgradePackageView> search = beanSearcher.search(UpgradePackageView.class, build);
+        search.getDataList().forEach(upgradePackageView -> {
+            try {
+                String specVal = goodsDonSkuMapper.selectList(Wrappers.lambdaQuery(GoodsDonSku.class).in(GoodsDonSku::getId, Jsons.parseList(upgradePackageView.getSkuIds(), Long.class))).stream().map(GoodsDonSku::getSpecVal).collect(Collectors.joining(","));
+                upgradePackageView.setSpecVal(specVal);
+            } catch (Exception e) {
+                throw BusinessRuntimeException.getInstance("获取套餐规格失败");
+            }
+        });
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }