hr~ 9 hodín pred
rodič
commit
cc5f7778ec

+ 6 - 0
product-common/src/main/java/com/poyee/domain/ProductPermission.java

@@ -40,6 +40,12 @@ public class ProductPermission implements Serializable {
      */
     private Integer permission;
 
+
+    /**
+     * 权限类型 1闲置 2闪购
+     */
+    private Integer permissionType;
+
     /**
      * 创建时间
      */

+ 22 - 0
product-common/src/main/java/com/poyee/enums/PermissionType.java

@@ -0,0 +1,22 @@
+package com.poyee.enums;
+
+import lombok.Getter;
+
+/**
+ * @author huang_run
+ * @date 2026/3/23 16:11
+ */
+public enum PermissionType {
+    IDLE(1,"闲置"),
+    FAST_SALE(2, "闪购"),;
+
+    @Getter
+    private final int code;
+    @Getter
+    private final String name;
+
+    PermissionType(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+}

+ 20 - 14
product-web/src/main/java/com/poyee/facade/impl/ProductInfoFacade.java

@@ -148,8 +148,13 @@ public class ProductInfoFacade implements IProductInfoFacade {
     @Override
     public IdleAttributeRes idleAttribute(String sku) {
         ProductInfo productInfo = productInfo(sku);
+
+        ProductPermission productPermission = this.productPermissionService.lambdaQuery().eq(ProductPermission::getRelationSku, productInfo.getSku())
+                .eq(ProductPermission::getPermission, PermissionType.IDLE.getCode()).one();
+        Assert.notNull(productPermission, "the_product_permission_does_not_exist");
         return IdleAttributeRes.builder()
                 .idleFlag(productInfo.getIdleFlag())
+                .permission(productPermission.getPermission())
                 .build();
     }
 
@@ -167,6 +172,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
             productPermission = ProductPermission.builder()
                     .permission(idleAttributeReq.getPermission())
                     .createTime(LocaleTimeZoneUtil.nowUtc())
+                    .permissionType(PermissionType.IDLE.getCode())
                     .relationSku(productInfo.getSku()).build();
             productPermissionService.save(productPermission);
         } else {
@@ -181,17 +187,16 @@ public class ProductInfoFacade implements IProductInfoFacade {
     public ProductFastSaleRes fastSale(String sku) {
         productInfo(sku);
         ProductFastSale productFastSale = productFastSaleService.lambdaQuery().eq(ProductFastSale::getSku, sku).one();
-        ProductPermission productPermission = productPermissionService.lambdaQuery().eq(ProductPermission::getRelationSku, sku).one();
-        if (Objects.nonNull(productFastSale)) {
-            return ProductFastSaleRes.builder()
-                    .recycleFlag(productFastSale.getRecycleFlag() == StatusEnum.TRUE.getCode() ? Boolean.TRUE : Boolean.FALSE)
-                    .recycleInventory(productFastSale.getRecycleInventory())
-                    .saleTime(productFastSale.getSaleTime())
-                    .saleType(productFastSale.getSaleType())
-                    .permission(Objects.nonNull(productPermission) ? productPermission.getPermission() : null)
-                    .build();
-        }
-        return ProductFastSaleRes.builder().build();
+        ProductPermission productPermission = productPermissionService.lambdaQuery().eq(ProductPermission::getRelationSku, sku)
+                .eq(ProductPermission::getPermissionType, PermissionType.FAST_SALE.getCode()).one();
+        Assert.notNull(productFastSale, "the_product_fast_sale_does_not_exist");
+        return ProductFastSaleRes.builder()
+                .recycleFlag(productFastSale.getRecycleFlag() == StatusEnum.TRUE.getCode() ? Boolean.TRUE : Boolean.FALSE)
+                .recycleInventory(productFastSale.getRecycleInventory())
+                .saleTime(productFastSale.getSaleTime())
+                .saleType(productFastSale.getSaleType())
+                .permission(Objects.nonNull(productPermission) ? productPermission.getPermission() : null)
+                .build();
     }
 
     @Transactional
@@ -211,6 +216,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
             productPermission = ProductPermission.builder()
                     .permission(fastSaleReq.getPermission())
                     .createTime(LocaleTimeZoneUtil.nowUtc())
+                    .permissionType(PermissionType.FAST_SALE.getCode())
                     .relationSku(fastSaleReq.getSku()).build();
             productPermissionService.save(productPermission);
         } else {
@@ -266,7 +272,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
                         .createTime(LocaleTimeZoneUtil.nowUtc())
                         .relationSku(sku)
                         .build();
-                productMedia= ProductMedia.builder()
+                productMedia = ProductMedia.builder()
                         .mainImage(productInfoAddReq.getDefaultImage())
                         .relationSku(sku)
                         .createTime(LocaleTimeZoneUtil.nowUtc())
@@ -302,13 +308,13 @@ public class ProductInfoFacade implements IProductInfoFacade {
                         .relationCode(productInfoAddReq.getRelationCode())
                         .createTime(LocaleTimeZoneUtil.nowUtc())
                         .build();
-                 productMedia = ProductMedia.builder()
+                productMedia = ProductMedia.builder()
                         .mainImage(productInfoAddReq.getDefaultImage())
                         .relationSku(sku)
                         .createTime(LocaleTimeZoneUtil.nowUtc())
                         .otherImages(StrUtil.join(",", productInfoAddReq.getOtherImages()))
                         .build();
-                 this.productMediaService.save(productMedia);
+                this.productMediaService.save(productMedia);
                 this.productInfoService.save(productInfo);
                 break;
             default:

+ 3 - 0
product-web/src/main/resources/i18n/messages.properties

@@ -29,3 +29,6 @@ id_cannot_be_empty=ID\u4E0D\u80FD\u4E3A\u7A7A
 not_found_value_for_current_dict=\u5F53\u524D\u5B57\u5178\u6CA1\u6709\u5BF9\u5E94\u7684\u503C
 product_type_error=\u5546\u54C1\u7C7B\u578B\u9519\u8BEF
 sale_type_can_not_be_empty=\u9500\u552E\u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A
+the_product_permission_does_not_exist=\u5F53\u524D\u5546\u54C1\u95F2\u7F6E\u6743\u9650\u4E0D\u5B58\u5728
+the_product_fast_sale_does_not_exist=\u5F53\u524D\u5546\u54C1\u95EA\u8D2D\u6743\u9650\u4E0D\u5B58\u5728
+

+ 3 - 1
product-web/src/main/resources/i18n/messages_en_US.properties

@@ -28,4 +28,6 @@ failed_to_retrieve_checkList_basic_database_data=failed to retrieve checkList ba
 id_cannot_be_empty=id cannot be empty
 not_found_value_for_current_dict=no found value for current dict
 product_type_error=product type error
-sale_type_can_not_be_empty=spot flag can not be empty
+sale_type_can_not_be_empty=spot flag can not be empty
+the_product_permission_does_not_exist=the product idle permission does not exist
+the_product_fast_sale_does_not_exist=the product fast sale  does not exist

+ 3 - 1
product-web/src/main/resources/i18n/messages_zh_TW.properties

@@ -28,4 +28,6 @@ failed_to_retrieve_checkList_basic_database_data=\u7372\u53D6checkList\u57FA\u79
 id_cannot_be_empty=ID\u4E0D\u80FD\u70BA\u7A7A
 not_found_value_for_current_dict=\u7576\u524D\u5B57\u5178\u6C92\u6709\u5C0D\u61C9\u7684\u503C
 product_type_error=\u5546\u54C1\u985E\u578B\u932F\u8AA4
-sale_type_can_not_be_empty=\u92B7\u552E\u985E\u578B\u4E0D\u80FD\u70BA\u7A7A
+sale_type_can_not_be_empty=\u92B7\u552E\u985E\u578B\u4E0D\u80FD\u70BA\u7A7A
+the_product_permission_does_not_exist=\u7576\u524D\u5546\u54C1\u9592\u7F6E\u6B0A\u9650\u4E0D\u5B58\u5728
+the_product_fast_sale_does_not_exist=\u7576\u524D\u5546\u54C1\u9583\u8CFC\u6B0A\u9650\u4E0D\u5B58\u5728