Răsfoiți Sursa

Remove imports

hr~ 2 zile în urmă
părinte
comite
430968ea01

+ 2 - 0
product-common/src/main/java/com/poyee/constant/ProductConstant.java

@@ -22,4 +22,6 @@ public class ProductConstant {
     public static final String DICT_KEY_ITEM_STATUS = "ITEM_STATUS";
 
     public static final String DICT_KEY_SALES_TYPE = "SALE_TYPE";
+
+    public static final String SUB = "sub";
 }

+ 2 - 0
product-common/src/main/java/com/poyee/res/ProductListRes.java

@@ -41,4 +41,6 @@ public class ProductListRes {
     private LocalDateTime createTime;
     @ApiModelProperty("更新时间")
     private LocalDateTime updateTime;
+    @ApiModelProperty("sku")
+    private String sku;
 }

+ 10 - 0
product-common/src/main/java/com/poyee/utils/LocaleTimeZoneUtil.java

@@ -10,6 +10,7 @@ import java.time.ZoneId;
 import java.time.ZoneOffset;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 多语言 → 时区工具类
@@ -180,4 +181,13 @@ public class LocaleTimeZoneUtil {
         }
         return UTC;
     }
+    public static LocalDateTime toUtc(LocalDateTime localTime) {
+        if (Objects.isNull(localTime)) {
+            return null;
+        }
+        ZoneId clientZone = LocaleTimeZoneUtil.resolveZoneId();
+        return localTime.atZone(clientZone)
+                .withZoneSameInstant(ZoneOffset.UTC)
+                .toLocalDateTime();
+    }
 }

+ 18 - 19
product-web/src/main/java/com/poyee/facade/impl/ProductInfoFacade.java

@@ -12,10 +12,7 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.poyee.constant.ProductConstant;
 import com.poyee.domain.*;
-import com.poyee.enums.ProductTypeEnum;
-import com.poyee.enums.ReviewStatusEnum;
-import com.poyee.enums.SaleTypeEnum;
-import com.poyee.enums.StatusEnum;
+import com.poyee.enums.*;
 import com.poyee.exception.BusinessException;
 import com.poyee.facade.IProductInfoFacade;
 import com.poyee.mapstruct.ProductInfoMapstruct;
@@ -33,6 +30,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -84,7 +82,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
                 .collect(Collectors.toMap(ProductFastSale::getSku, Function.identity()));
         List<ProductListRes> productListResList = productInfos.stream()
                 .map(productInfo -> {
-                    ProductListBO productBO = productInfoMapstruct.productDo2Bo(productInfo);
+                     ProductListBO productBO = productInfoMapstruct.productDo2Bo(productInfo);
                     ProductListRes productListRes = productInfoMapstruct.productBO2Res(productBO);
                     if (Objects.nonNull(productInfo.getFastSaleFlag()) && productInfo.getFastSaleFlag() == StatusEnum.TRUE.getCode() && Objects.nonNull(fastSaleMap.get(productInfo.getSku()))) {
                         productListRes.setSaleTime(fastSaleMap.get(productInfo.getSku()).getSaleTime());
@@ -92,7 +90,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
                     }
                     return productListRes;
                 })
-                .collect(Collectors.toList());
+                 .collect(Collectors.toList());
         return PageInfo.of(productListResList);
     }
 
@@ -106,7 +104,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
                 Arrays.asList(productMedia.getOtherImages().split(",")) : Lists.newArrayList();
         if (Objects.equals(productTypeEnum, ProductTypeEnum.STAR_CARD)) {
             CardAttribute cardAttribute = cardAttributeService.lambdaQuery().eq(CardAttribute::getRelationSku, productInfo.getSku()).one();
-            Assert.notNull(cardAttribute, "The_product_attribute_does_not_exist");
+            Assert.notNull(cardAttribute, "the_product_attribute_does_not_exist");
             return ProductDetailRes.builder()
                     .productType(productInfo.getProductType())
                     .year(cardAttribute.getYear())
@@ -141,7 +139,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
         validateReviewStatus(productInfo, productReviewReq.getStatus());
         sysDictDataService.validateOptions(ProductConstant.DICT_KEY_PRODUCT_STATUS, StrUtil.toString(productReviewReq.getStatus()));
         productInfo.setStatus(productReviewReq.getStatus());
-        productInfo.setUpdateBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString("sub") : null);
+        productInfo.setUpdateBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString(ProductConstant.SUB) : null);
         productInfo.setUpdateTime(LocaleTimeZoneUtil.nowUtc());
         return productInfoService.updateById(productInfo);
     }
@@ -159,7 +157,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
     public Boolean idleAttribute(IdleAttributeReq idleAttributeReq) {
         ProductInfo productInfo = productInfo(idleAttributeReq.getSku());
 
-        sysDictDataService.validateOptions(ProductConstant.DICT_KEY_WHETHER, idleAttributeReq.getIdleFlag() ? "1" : "0");
+        sysDictDataService.validateOptions(ProductConstant.DICT_KEY_WHETHER, idleAttributeReq.getIdleFlag() ? StrUtil.toString(WhetherEnum.YES.getCode()) : StrUtil.toString(WhetherEnum.NO.getCode()));
         sysDictDataService.validateOptions(ProductConstant.DICT_KEY_PERMISSION, StrUtil.toString(idleAttributeReq.getPermission()));
 
         productInfo.setIdleFlag(BooleanUtil.isTrue(idleAttributeReq.getIdleFlag()) ? StatusEnum.TRUE.getCode() : StatusEnum.FALSE.getCode());
@@ -201,28 +199,29 @@ public class ProductInfoFacade implements IProductInfoFacade {
                 .eq(ProductFastSale::getSku, fastSaleReq.getSku())
                 .one();
 
-        sysDictDataService.validateOptions(ProductConstant.DICT_KEY_WHETHER, fastSaleReq.getRecycleFlag() ? "1" : "0");
+        sysDictDataService.validateOptions(ProductConstant.DICT_KEY_WHETHER, fastSaleReq.getRecycleFlag() ? StrUtil.toString(WhetherEnum.YES.getCode()) : StrUtil.toString(WhetherEnum.NO.getCode()));
         sysDictDataService.validateOptions(ProductConstant.DICT_KEY_PERMISSION, StrUtil.toString(fastSaleReq.getPermission()));
-
+        LocalDateTime saleTimeUtc = LocaleTimeZoneUtil.toUtc(fastSaleReq.getSaleTime());
+        int saleType = Objects.nonNull(saleTimeUtc) ? SaleTypeEnum.PRE_SALE.getCode() : SaleTypeEnum.SPOT.getCode();
         if (Objects.isNull(existingFastSale)) {
             ProductFastSale newFastSale = ProductFastSale.builder()
-                    .saleType(Objects.nonNull(fastSaleReq.getSaleTime()) ? SaleTypeEnum.PRE_SALE.getCode() : SaleTypeEnum.SPOT.getCode())
+                    .saleType(saleType)
                     .sku(fastSaleReq.getSku())
                     .recycleFlag(BooleanUtil.isTrue(fastSaleReq.getRecycleFlag()) ? StatusEnum.TRUE.getCode() : StatusEnum.FALSE.getCode())
                     .recycleInventory(fastSaleReq.getRecycleInventory())
-                    .saleTime(fastSaleReq.getSaleTime())
-                    .createBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString("sub") : null)
+                    .saleTime(saleTimeUtc)
+                    .createBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString(ProductConstant.SUB) : null)
                     .createTime(LocaleTimeZoneUtil.nowUtc())
                     .build();
             this.productFastSaleService.save(newFastSale);
             productInfo.setFastSaleFlag(StatusEnum.TRUE.getCode());
             return this.productInfoService.updateById(productInfo);
         } else {
-            existingFastSale.setSaleType(Objects.nonNull(fastSaleReq.getSaleTime()) ? SaleTypeEnum.PRE_SALE.getCode() : SaleTypeEnum.SPOT.getCode());
+            existingFastSale.setSaleType(saleType);
             existingFastSale.setRecycleFlag(BooleanUtil.isTrue(fastSaleReq.getRecycleFlag()) ? StatusEnum.TRUE.getCode() : StatusEnum.FALSE.getCode());
             existingFastSale.setRecycleInventory(fastSaleReq.getRecycleInventory());
-            existingFastSale.setSaleTime(fastSaleReq.getSaleTime());
-            existingFastSale.setUpdateBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString("sub") : null);
+            existingFastSale.setSaleTime(saleTimeUtc);
+            existingFastSale.setUpdateBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString(ProductConstant.SUB) : null);
             existingFastSale.setUpdateTime(LocaleTimeZoneUtil.nowUtc());
             return this.productFastSaleService.updateById(existingFastSale);
         }
@@ -264,7 +263,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
                         .relationCode(productInfoAddReq.getRelationCode())
                         .productProperties(productInfoAddReq.getProductProperties())
                         .sort(productInfoAddReq.getSort())
-                        .createBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString("sub") : null)
+                        .createBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString(ProductConstant.SUB) : null)
                         .createTime(LocaleTimeZoneUtil.nowUtc())
                         .build();
                 this.productInfoService.save(productInfo);
@@ -279,7 +278,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
                         .productType(productInfoAddReq.getProductType())
                         .label(productInfoAddReq.getLabelKey())
                         .sort(productInfoAddReq.getSort())
-                        .createBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString("sub") : null)
+                        .createBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString(ProductConstant.SUB) : null)
                         .productProperties(productInfoAddReq.getProductProperties())
                         .productDesc(productInfoAddReq.getProductDesc())
                         .relationCode(productInfoAddReq.getRelationCode())

+ 2 - 2
product-web/src/main/java/com/poyee/facade/impl/ProductItemFacade.java

@@ -89,7 +89,7 @@ public class ProductItemFacade implements IProductItemFacade {
                 .inventory(productItemSearchReq.getInventory())
                 .frozenInventory(0)
                 .sales(0)
-                .publisher(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString("sub") : null)
+                .publisher(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString(ProductConstant.SUB) : null)
                 .createTime(LocaleTimeZoneUtil.nowUtc())
                 .build();
         return this.productItemService.save(productItem);
@@ -117,7 +117,7 @@ public class ProductItemFacade implements IProductItemFacade {
             productItem.setInventory(productItemEditReq.getInventory());
         }
         productItem.setUpdateTime(LocaleTimeZoneUtil.nowUtc());
-        productItem.setUpdateBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString("sub") : null);
+        productItem.setUpdateBy(Objects.nonNull(ServletUtils.getCurrentUser()) ? ServletUtils.getCurrentUser().getString(ProductConstant.SUB) : null);
         return this.productItemService.updateById(productItem);
     }
 

+ 2 - 1
product-web/src/main/resources/i18n/messages.properties

@@ -1,6 +1,6 @@
 the_product_does_not_exist=\u5546\u54C1\u4E0D\u5B58\u5728
 the_product_image_does_not_exist=\u5546\u54C1\u56FE\u7247\u4E0D\u5B58\u5728
-The_product_attribute_does_not_exist=\u5546\u54C1\u5C5E\u6027\u4E0D\u5B58\u5728
+the_product_attribute_does_not_exist=\u5546\u54C1\u5C5E\u6027\u4E0D\u5B58\u5728
 review_status_cannot_be_null=\u5BA1\u6838\u72B6\u6001\u4E0D\u80FD\u4E3A\u7A7A
 can_only_list_down_or_rejected_product=\u5F53\u524D\u72B6\u6001\u53EA\u80FD\u4E0A\u67B6\u4EE5\u53CA\u62D2\u7EDD
 can_only_down_listed_product=\u5F53\u524D\u72B6\u6001\u53EA\u80FD\u4E0B\u67B6\u5546\u54C1
@@ -27,3 +27,4 @@ failed_to_call_dictionary_table_api=\u8C03\u7528\u5B57\u5178\u8868\u63A5\u53E3\u
 failed_to_retrieve_checkList_basic_database_data=\u83B7\u53D6checkList\u57FA\u7840\u5E93\u6570\u636E\u5931\u8D25
 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

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

@@ -1,6 +1,6 @@
 the_product_does_not_exist=the product does not exist
 the_product_image_does_not_exist=the product image does not exist
-The_product_attribute_does_not_exist=The product attribute does not exist
+the_product_attribute_does_not_exist=The product attribute does not exist
 review_status_cannot_be_null=review status cannot be null
 can_only_list_down_or_rejected_product=can only list down or rejected product
 can_only_down_listed_product=can only down listed product
@@ -26,4 +26,5 @@ inventory_can_not_be_empty=inventory can not be empty
 failed_to_call_dictionary_table_api=failed to call dictionary table api
 failed_to_retrieve_checkList_basic_database_data=failed to retrieve checkList basic database data
 id_cannot_be_empty=id cannot be empty
-not_found_value_for_current_dict=no found value for current dict
+not_found_value_for_current_dict=no found value for current dict
+product_type_error=product type error

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

@@ -1,6 +1,6 @@
 the_product_does_not_exist=\u5546\u54C1\u4E0D\u5B58\u5728
 the_product_image_does_not_exist=\u5546\u54C1\u5716\u7247\u4E0D\u5B58\u5728
-The_product_attribute_does_not_exist=\u5546\u54C1\u5C6C\u6027\u4E0D\u5B58\u5728
+the_product_attribute_does_not_exist=\u5546\u54C1\u5C6C\u6027\u4E0D\u5B58\u5728
 review_status_cannot_be_null=\u7A3D\u6838\u72C0\u614B\u4E0D\u80FD\u70BA\u7A7A
 can_only_list_down_or_rejected_product=\u7576\u524D\u72C0\u614B\u53EA\u80FD\u4E0A\u67B6\u4EE5\u53CA\u62D2\u7D55
 can_only_down_listed_product=\u7576\u524D\u72C0\u614B\u53EA\u80FD\u4E0B\u67B6\u5546\u54C1
@@ -26,4 +26,5 @@ inventory_can_not_be_empty=\u5EAB\u5B58\u4E0D\u80FD\u7232\u7A7A
 failed_to_call_dictionary_table_api=\u8ABF\u7528\u5B57\u5178\u9336\u4ECB\u9762\u5931\u6557
 failed_to_retrieve_checkList_basic_database_data=\u7372\u53D6checkList\u57FA\u790E\u5EAB\u6578\u64DA\u5931\u6557
 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
+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