购物车后台完成
parent
3d665a91bf
commit
702046bc3e
|
@ -52,6 +52,12 @@ public class ProjectSkuDataRemoteImpl implements ProjectSkuData {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ProjectSkuInfo getData (Long projectId, String projectSku) {
|
public ProjectSkuInfo getData (Long projectId, String projectSku) {
|
||||||
return new ProjectSkuInfo();
|
Result<ProjectSkuInfo> projectSkuInfoResult = remoteProjectSkuService.getInfoByProjectIdAndSku(
|
||||||
|
projectId, projectSku
|
||||||
|
);
|
||||||
|
if (Result.isError(projectSkuInfoResult)){
|
||||||
|
return new ProjectSkuInfo();
|
||||||
|
}
|
||||||
|
return projectSkuInfoResult.getData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,3 +3,6 @@ com.muyu.product.cache.ProjectSkuCache
|
||||||
com.muyu.product.cache.ProjectSkuStockCache
|
com.muyu.product.cache.ProjectSkuStockCache
|
||||||
com.muyu.product.cache.RuleInfoCache
|
com.muyu.product.cache.RuleInfoCache
|
||||||
com.muyu.product.cache.datasource.impl.RuleCacheDataRemoteImpl
|
com.muyu.product.cache.datasource.impl.RuleCacheDataRemoteImpl
|
||||||
|
com.muyu.product.cache.datasource.impl.ProjectInfoDataRemoteImpl
|
||||||
|
com.muyu.product.cache.datasource.impl.ProjectSkuDataRemoteImpl
|
||||||
|
com.muyu.product.cache.datasource.impl.ProjectSkuStockDataRemoteImpl
|
||||||
|
|
|
@ -5,6 +5,8 @@ import com.muyu.product.domain.ProjectSkuInfo;
|
||||||
import com.muyu.product.remote.RemoteProjectSkuService;
|
import com.muyu.product.remote.RemoteProjectSkuService;
|
||||||
import org.springframework.cloud.openfeign.FallbackFactory;
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author DongZl
|
* @author DongZl
|
||||||
* @description: 远程调熔断器
|
* @description: 远程调熔断器
|
||||||
|
@ -18,6 +20,18 @@ public class RemoteProjectSkuFactory implements FallbackFactory<RemoteProjectSku
|
||||||
public Result<ProjectSkuInfo> getInfoByProjectIdAndSku (Long projectId, String projectSku) {
|
public Result<ProjectSkuInfo> getInfoByProjectIdAndSku (Long projectId, String projectSku) {
|
||||||
return Result.error(cause.getMessage());
|
return Result.error(cause.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过商品ID和SKU获取SKU信息
|
||||||
|
*
|
||||||
|
* @param projectId 商品ID
|
||||||
|
*
|
||||||
|
* @return 商品SKU信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Result<List<ProjectSkuInfo>> listByProjectId (Long projectId) {
|
||||||
|
return Result.error(cause.getMessage());
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.muyu.product.cache.datasource.ProjectInfoData;
|
||||||
import com.muyu.product.domain.ProjectInfo;
|
import com.muyu.product.domain.ProjectInfo;
|
||||||
import com.muyu.product.service.ProjectInfoService;
|
import com.muyu.product.service.ProjectInfoService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,6 +13,7 @@ import org.springframework.stereotype.Service;
|
||||||
* @Date 2024-3-27 下午 03:37
|
* @Date 2024-3-27 下午 03:37
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Primary
|
||||||
public class ProjectInfoDataImpl implements ProjectInfoData {
|
public class ProjectInfoDataImpl implements ProjectInfoData {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.muyu.product.cache.datasource.ProjectSkuData;
|
||||||
import com.muyu.product.domain.ProjectSkuInfo;
|
import com.muyu.product.domain.ProjectSkuInfo;
|
||||||
import com.muyu.product.service.ProjectSkuInfoService;
|
import com.muyu.product.service.ProjectSkuInfoService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -18,6 +19,7 @@ import java.util.stream.Collectors;
|
||||||
* @Date 2024-4-1 上午 11:38
|
* @Date 2024-4-1 上午 11:38
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Primary
|
||||||
public class ProjectSkuDataImpl implements ProjectSkuData {
|
public class ProjectSkuDataImpl implements ProjectSkuData {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
|
@ -6,6 +6,7 @@ import com.muyu.product.cache.key.SkuStockKey;
|
||||||
import com.muyu.product.domain.ProjectSkuInfo;
|
import com.muyu.product.domain.ProjectSkuInfo;
|
||||||
import com.muyu.product.service.ProjectSkuInfoService;
|
import com.muyu.product.service.ProjectSkuInfoService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -14,6 +15,7 @@ import org.springframework.stereotype.Service;
|
||||||
* @Date 2024-4-2 上午 10:53
|
* @Date 2024-4-2 上午 10:53
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Primary
|
||||||
public class ProjectSkuStockDataImpl implements ProjectSkuStockData {
|
public class ProjectSkuStockDataImpl implements ProjectSkuStockData {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
|
@ -180,6 +180,7 @@ public class CartInfoServiceImpl extends ServiceImpl<CartInfoMapper, CartInfo>
|
||||||
.name(projectInfo.getName())
|
.name(projectInfo.getName())
|
||||||
.image(projectSkuInfo.getImage())
|
.image(projectSkuInfo.getImage())
|
||||||
.stock(stock)
|
.stock(stock)
|
||||||
|
.subtotal(projectSkuInfo.getPrice().multiply(new BigDecimal(cartInfo.getNum())))
|
||||||
.skuRuleList(ruleModelList)
|
.skuRuleList(ruleModelList)
|
||||||
.price(projectSkuInfo.getPrice())
|
.price(projectSkuInfo.getPrice())
|
||||||
.cartInfoId(cartInfo.getId())
|
.cartInfoId(cartInfo.getId())
|
||||||
|
@ -190,10 +191,29 @@ public class CartInfoServiceImpl extends ServiceImpl<CartInfoMapper, CartInfo>
|
||||||
|
|
||||||
|
|
||||||
StatisticsCartModel statisticsCartModel = StatisticsCartModel.builder()
|
StatisticsCartModel statisticsCartModel = StatisticsCartModel.builder()
|
||||||
.total(0L)
|
.total(
|
||||||
.selectTotal(0L)
|
cartSkuModelList.stream()
|
||||||
.priceTotal(BigDecimal.ZERO)
|
.mapToLong(CartSkuModel::getNum)
|
||||||
.actualTotal(BigDecimal.ZERO)
|
.sum()
|
||||||
|
)
|
||||||
|
.selectTotal(
|
||||||
|
cartSkuModelList.stream()
|
||||||
|
.filter(cartSkuModel -> "Y".equals(cartSkuModel.getIsSelected()))
|
||||||
|
.mapToLong(CartSkuModel::getNum)
|
||||||
|
.sum()
|
||||||
|
)
|
||||||
|
.priceTotal(
|
||||||
|
cartSkuModelList.stream()
|
||||||
|
.filter(cartSkuModel -> "Y".equals(cartSkuModel.getIsSelected()))
|
||||||
|
.map(CartSkuModel::getSubtotal)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||||
|
)
|
||||||
|
.actualTotal(
|
||||||
|
cartSkuModelList.stream()
|
||||||
|
.filter(cartSkuModel -> "Y".equals(cartSkuModel.getIsSelected()))
|
||||||
|
.map(CartSkuModel::getSubtotal)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||||
|
)
|
||||||
.build();
|
.build();
|
||||||
return CartDetailResp.builder()
|
return CartDetailResp.builder()
|
||||||
.cartSkuList(cartSkuModelList)
|
.cartSkuList(cartSkuModelList)
|
||||||
|
|
Loading…
Reference in New Issue