From 1e24c67a5b3cdbcce65754f96b7c37e398211c96 Mon Sep 17 00:00:00 2001 From: wxy Date: Sun, 31 Mar 2024 21:29:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/remote/RemoteFileService.java | 3 + .../com/muyu/product/domain/DTO/Product.java | 1 + .../muyu/product/domain/Resp/ProductResp.java | 3 + .../muyu/product/MuYuProductApplication.java | 3 + .../muyu/product/mapper/ProductMapper.java | 2 + .../muyu/product/mapper/ProductSkuMapper.java | 2 + .../service/impl/ProductServiceImpl.java | 70 +++++++++++++++++-- .../mapper/product/ProductMapper.xml | 6 +- .../mapper/product/ProductSkuMapper.xml | 6 ++ 9 files changed, 90 insertions(+), 6 deletions(-) diff --git a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteFileService.java b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteFileService.java index d7ebb90..1f20555 100644 --- a/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteFileService.java +++ b/muyu-common/muyu-common-system/src/main/java/com/muyu/common/system/remote/RemoteFileService.java @@ -4,8 +4,10 @@ import com.muyu.common.core.constant.ServiceNameConstants; import com.muyu.common.core.domain.R; import com.muyu.common.system.domain.SysFile; import com.muyu.common.system.remote.factory.RemoteFileFallbackFactory; +import org.apache.ibatis.annotations.Mapper; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.multipart.MultipartFile; @@ -15,6 +17,7 @@ import org.springframework.web.multipart.MultipartFile; * * @author muyu */ + @FeignClient(contextId = "remoteFileService", value = ServiceNameConstants.FILE_SERVICE, fallbackFactory = RemoteFileFallbackFactory.class) public interface RemoteFileService { /** diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/Product.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/Product.java index 06753db..d3dca6b 100644 --- a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/Product.java +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/DTO/Product.java @@ -102,4 +102,5 @@ public class Product extends BaseEntity { @ApiModelProperty(value = "PC端信息") private String pcInformation; + } diff --git a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/Resp/ProductResp.java b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/Resp/ProductResp.java index 25da95c..243b0a4 100644 --- a/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/Resp/ProductResp.java +++ b/muyu-modules/muyu-product/muyu-product-commo/src/main/java/com/muyu/product/domain/Resp/ProductResp.java @@ -109,4 +109,7 @@ public class ProductResp { @ApiModelProperty(value = "类型名称") private String typeName; + @ApiModelProperty(value = "图片") + private String imagesUrl; + } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java index 3cd91cd..e27d1f3 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/MuYuProductApplication.java @@ -6,6 +6,9 @@ import com.muyu.common.swagger.annotation.EnableCustomSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +/** + * @author A3385 + */ @EnableCustomConfig @EnableCustomSwagger2 @EnableMyFeignClients diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductMapper.java index c6bbeb4..4bbd40c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductMapper.java @@ -18,4 +18,6 @@ public interface ProductMapper { void insertProduct(Product product); void updateMothodId(Integer id); + + Integer findProductNumber(ProductReq productReq); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java index 084d3c4..13b290f 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/mapper/ProductSkuMapper.java @@ -15,4 +15,6 @@ public interface ProductSkuMapper { void insertProductSku(List productSkuList); void insertProductSkuAttr(List productSkuAttrs); + + Integer findSkuId(List productSkus); } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java index 5dfcfa8..1f2828c 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/java/com/muyu/product/service/impl/ProductServiceImpl.java @@ -9,7 +9,6 @@ import com.muyu.product.domain.DTO.*; import com.muyu.product.domain.DTO.Number; import com.muyu.product.domain.Resp.ProductResp; import com.muyu.product.domain.req.ProductReq; -import com.muyu.product.domain.req.ProductSkuNew; import com.muyu.product.domain.req.QueryProductReq; import com.muyu.product.mapper.ProductMapper; import com.muyu.product.mapper.ProductSkuMapper; @@ -22,12 +21,12 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; +import java.util.concurrent.CompletableFuture; + -/** - * @Author: wangxinyuan - * @Date: 2024/3/29 17:06 - */ @Service @Log4j2 public class ProductServiceImpl implements ProductService { @@ -49,6 +48,49 @@ public class ProductServiceImpl implements ProductService { private ProductSkuMapper productSkuMapper; + public void checkProductParams(ProductReq productReq){ + CompletableFuturemethodTypeFuture = + CompletableFuture.supplyAsync(() -> checkMethodType(productReq)); + CompletableFutureskuIdFuture = + CompletableFuture.supplyAsync(() -> findSkuId(productReq)); + CompletableFutureproductNumberFuture = + CompletableFuture.supplyAsync(() -> checkProductNumber(productReq)); + CompletableFutureallValidFuture = + methodTypeFuture.thenCombine(skuIdFuture, + (methodTypeResult,skuIdResult)-> + methodTypeResult.isValid()&& skuIdResult.isValid()) + .thenCombine(productNumberFuture,(previousResult,productNumberResult) + ->previousResult&&productNumberResult.isValid()) + .thenApply(allValid->allValid ? "所有检查通过":"存在检查未通过") + .exceptionally(throwable -> "检验过程发送异常" + throwable.getMessage()); + + allValidFuture.thenAccept(System.out::println); + } + + private ValidationResult checkProductNumber(ProductReq productReq) { + Integer productNumber = productMapper.findProductNumber(productReq); + if(productNumber>=Integer.valueOf(Number.zero.getValue())){ + return new ValidationResult(false,"productNumber不能重复"); + } + return new ValidationResult(true,"通过"); + } + + private ValidationResult findSkuId(ProductReq productReq) { + Integer skuId = productSkuMapper.findSkuId(productReq.getProductSkus()); + if(skuId>=Integer.valueOf(Number.zero.getValue())){ + return new ValidationResult(false,"skuID不能重复"); + } + return new ValidationResult(true,"通过"); + } + + private ValidationResult checkMethodType(ProductReq productReq) { + if(productReq.getProduct().getMethodType() == null){ + return new ValidationResult(false,"method type 不能空"); + } + return new ValidationResult(true,"通过"); + } + + @Override public PageInfo queryProduct(QueryProductReq productReq) { PageHelper.startPage(productReq.getPageNum(),productReq.getPageSize()); @@ -156,4 +198,22 @@ public class ProductServiceImpl implements ProductService { private void insertProduct(Product product) { productMapper.insertProduct(product); } + + private void calculateProductPrice(ProductReq productReq){ + Integer methodType = productReq.getProduct().getMethodType(); + + //特价 + if(Number.one.getValue().equals(String.valueOf(methodType))){ + + LocalDateTime now=LocalDateTime.now(); + + LocalDateTime start = productReq.getPreference().getPreferenceStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + LocalDateTime end = productReq.getPreference().getPreferenceEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + + + if(now.isAfter(start)&&now.isBefore(end)){ + + } + } + } } diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductMapper.xml index e86e796..6a8ba60 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductMapper.xml @@ -10,7 +10,7 @@ product_information,product_unit,product_weight,product_sort,product_points, product_growth,product_max_points,product_foreknow,product_status,product_new, product_recommended,details_title,details_information,details_key_word,details_remark, - method_type,t_product_brand.brand_name,t_product_type.type_name,sale_price + method_type,t_product_brand.brand_name,t_product_type.type_name,sale_price,images_url @@ -74,6 +74,7 @@ LEFT JOIN t_product_brand ON t_product.brand_id = t_product_brand.id LEFT join t_product_type ON t_product.type_id = t_product_type.id left JOIN t_product_sku on t_product_sku.product_id = t_product.id + left join t_product_images on t_product.id = t_product_images.product_id t_product.id_delete = 1 @@ -97,6 +98,9 @@ order by product_sort + diff --git a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml index b267e8c..7cb60c6 100644 --- a/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml +++ b/muyu-modules/muyu-product/muyu-product-server/src/main/resources/mapper/product/ProductSkuMapper.xml @@ -45,5 +45,11 @@ ) +