|
@@ -179,14 +179,15 @@ public class ProductInfoFacade implements IProductInfoFacade {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public ProductFastSaleRes fastSale(String sku) {
|
|
public ProductFastSaleRes fastSale(String sku) {
|
|
|
- ProductInfo productInfo = productInfo(sku);
|
|
|
|
|
|
|
+ productInfo(sku);
|
|
|
ProductFastSale productFastSale = productFastSaleService.lambdaQuery().eq(ProductFastSale::getSku, sku).one();
|
|
ProductFastSale productFastSale = productFastSaleService.lambdaQuery().eq(ProductFastSale::getSku, sku).one();
|
|
|
ProductPermission productPermission = productPermissionService.lambdaQuery().eq(ProductPermission::getRelationSku, sku).one();
|
|
ProductPermission productPermission = productPermissionService.lambdaQuery().eq(ProductPermission::getRelationSku, sku).one();
|
|
|
if (Objects.nonNull(productFastSale)) {
|
|
if (Objects.nonNull(productFastSale)) {
|
|
|
return ProductFastSaleRes.builder()
|
|
return ProductFastSaleRes.builder()
|
|
|
- .recycleFlag(productInfo.getFastSaleFlag() == StatusEnum.TRUE.getCode() ? Boolean.TRUE : Boolean.FALSE)
|
|
|
|
|
|
|
+ .recycleFlag(productFastSale.getRecycleFlag() == StatusEnum.TRUE.getCode() ? Boolean.TRUE : Boolean.FALSE)
|
|
|
.recycleInventory(productFastSale.getRecycleInventory())
|
|
.recycleInventory(productFastSale.getRecycleInventory())
|
|
|
.saleTime(productFastSale.getSaleTime())
|
|
.saleTime(productFastSale.getSaleTime())
|
|
|
|
|
+ .saleType(productFastSale.getSaleType())
|
|
|
.permission(Objects.nonNull(productPermission) ? productPermission.getPermission() : null)
|
|
.permission(Objects.nonNull(productPermission) ? productPermission.getPermission() : null)
|
|
|
.build();
|
|
.build();
|
|
|
}
|
|
}
|
|
@@ -203,8 +204,20 @@ public class ProductInfoFacade implements IProductInfoFacade {
|
|
|
|
|
|
|
|
sysDictDataService.validateOptions(ProductConstant.DICT_KEY_WHETHER, fastSaleReq.getRecycleFlag() ? StrUtil.toString(WhetherEnum.YES.getCode()) : StrUtil.toString(WhetherEnum.NO.getCode()));
|
|
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()));
|
|
sysDictDataService.validateOptions(ProductConstant.DICT_KEY_PERMISSION, StrUtil.toString(fastSaleReq.getPermission()));
|
|
|
- sysDictDataService.validateOptions(ProductConstant.DICT_KEY_PERMISSION, fastSaleReq.getSpotFlag() ? StrUtil.toString(SaleTypeEnum.SPOT.getCode()) : StrUtil.toString(SaleTypeEnum.PRE_SALE.getCode()));
|
|
|
|
|
|
|
+ sysDictDataService.validateOptions(ProductConstant.DICT_KEY_SALES_TYPE, fastSaleReq.getSpotFlag() ? StrUtil.toString(SaleTypeEnum.SPOT.getCode()) : StrUtil.toString(SaleTypeEnum.PRE_SALE.getCode()));
|
|
|
LocalDateTime saleTimeUtc = LocaleTimeZoneUtil.toUtc(fastSaleReq.getSaleTime());
|
|
LocalDateTime saleTimeUtc = LocaleTimeZoneUtil.toUtc(fastSaleReq.getSaleTime());
|
|
|
|
|
+ ProductPermission productPermission = productPermissionService.lambdaQuery().eq(ProductPermission::getRelationSku, fastSaleReq.getSku()).one();
|
|
|
|
|
+ if (Objects.isNull(productPermission)) {
|
|
|
|
|
+ productPermission = ProductPermission.builder()
|
|
|
|
|
+ .permission(fastSaleReq.getPermission())
|
|
|
|
|
+ .createTime(LocaleTimeZoneUtil.nowUtc())
|
|
|
|
|
+ .relationSku(fastSaleReq.getSku()).build();
|
|
|
|
|
+ productPermissionService.save(productPermission);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ productPermission.setPermission(fastSaleReq.getPermission());
|
|
|
|
|
+ productPermission.setUpdateTime(LocaleTimeZoneUtil.nowUtc());
|
|
|
|
|
+ productPermissionService.updateById(productPermission);
|
|
|
|
|
+ }
|
|
|
if (Objects.isNull(existingFastSale)) {
|
|
if (Objects.isNull(existingFastSale)) {
|
|
|
ProductFastSale newFastSale = ProductFastSale.builder()
|
|
ProductFastSale newFastSale = ProductFastSale.builder()
|
|
|
.saleType(fastSaleReq.getSpotFlag() ? SaleTypeEnum.SPOT.getCode() : SaleTypeEnum.PRE_SALE.getCode())
|
|
.saleType(fastSaleReq.getSpotFlag() ? SaleTypeEnum.SPOT.getCode() : SaleTypeEnum.PRE_SALE.getCode())
|
|
@@ -239,6 +252,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
|
|
|
}
|
|
}
|
|
|
String sku = SKU_PREFIX + IdUtil.getSnowflakeNextId() % 1000000000000000000L;
|
|
String sku = SKU_PREFIX + IdUtil.getSnowflakeNextId() % 1000000000000000000L;
|
|
|
ProductInfo productInfo;
|
|
ProductInfo productInfo;
|
|
|
|
|
+ ProductMedia productMedia;
|
|
|
switch (productTypeEnum) {
|
|
switch (productTypeEnum) {
|
|
|
case STAR_CARD:
|
|
case STAR_CARD:
|
|
|
CardAttribute cardAttribute = CardAttribute.builder()
|
|
CardAttribute cardAttribute = CardAttribute.builder()
|
|
@@ -250,7 +264,7 @@ public class ProductInfoFacade implements IProductInfoFacade {
|
|
|
.createTime(LocaleTimeZoneUtil.nowUtc())
|
|
.createTime(LocaleTimeZoneUtil.nowUtc())
|
|
|
.relationSku(sku)
|
|
.relationSku(sku)
|
|
|
.build();
|
|
.build();
|
|
|
- ProductMedia productMedia = ProductMedia.builder()
|
|
|
|
|
|
|
+ productMedia= ProductMedia.builder()
|
|
|
.mainImage(productInfoAddReq.getDefaultImage())
|
|
.mainImage(productInfoAddReq.getDefaultImage())
|
|
|
.relationSku(sku)
|
|
.relationSku(sku)
|
|
|
.createTime(LocaleTimeZoneUtil.nowUtc())
|
|
.createTime(LocaleTimeZoneUtil.nowUtc())
|
|
@@ -286,6 +300,13 @@ public class ProductInfoFacade implements IProductInfoFacade {
|
|
|
.relationCode(productInfoAddReq.getRelationCode())
|
|
.relationCode(productInfoAddReq.getRelationCode())
|
|
|
.createTime(LocaleTimeZoneUtil.nowUtc())
|
|
.createTime(LocaleTimeZoneUtil.nowUtc())
|
|
|
.build();
|
|
.build();
|
|
|
|
|
+ productMedia = ProductMedia.builder()
|
|
|
|
|
+ .mainImage(productInfoAddReq.getDefaultImage())
|
|
|
|
|
+ .relationSku(sku)
|
|
|
|
|
+ .createTime(LocaleTimeZoneUtil.nowUtc())
|
|
|
|
|
+ .otherImages(StrUtil.join(",", productInfoAddReq.getOtherImages()))
|
|
|
|
|
+ .build();
|
|
|
|
|
+ this.productMediaService.save(productMedia);
|
|
|
this.productInfoService.save(productInfo);
|
|
this.productInfoService.save(productInfo);
|
|
|
break;
|
|
break;
|
|
|
default:
|
|
default:
|