|
|
@@ -2590,7 +2590,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
@Override
|
|
|
public R createSalesOrder(CompanyUser companyUser, String cateIds, Integer orderType, Integer orderMedium) {
|
|
|
- List<FsStoreCartScrmQueryVO> carts = cartMapper.selectFsStoreCartMultiStoreListByIds(cateIds,null);
|
|
|
+ List<FsStoreCartQueryVO> carts = cartMapper.selectFsStoreCartListByIds(cateIds);
|
|
|
String uuid = IdUtil.randomUUID();
|
|
|
redisCache.setCacheObject("createOrderKey:" + uuid, companyUser.getCompanyId() + "-" + companyUser.getUserId(), 24, TimeUnit.HOURS);
|
|
|
redisCache.setCacheObject("orderCarts:" + uuid, carts, 24, TimeUnit.HOURS);
|
|
|
@@ -2604,7 +2604,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
//计算总价
|
|
|
BigDecimal totalMoney = BigDecimal.ZERO;
|
|
|
- for (FsStoreCartScrmQueryVO vo : carts) {
|
|
|
+ for (FsStoreCartQueryVO vo : carts) {
|
|
|
totalMoney = totalMoney.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
|
|
|
}
|
|
|
redisCache.setCacheObject("orderKey:" + uuid, carts.stream().map(c->c.getId().toString()).collect(Collectors.joining(",")) , 24, TimeUnit.HOURS);//处理订单过期问题
|
|
|
@@ -2684,12 +2684,12 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
@Transactional
|
|
|
public R addUserCartMulti(long userId, String createOrderKey) {
|
|
|
String key = redisCache.getCacheObject("createOrderKey:" + createOrderKey);
|
|
|
- List<FsStoreCartScrmQueryVO> cartsList = redisCache.getCacheObject("orderCarts:" + createOrderKey);
|
|
|
+ List<FsStoreCartQueryVO> cartsList = redisCache.getCacheObject("orderCarts:" + createOrderKey);
|
|
|
if (StringUtils.isEmpty(key)) {
|
|
|
throw new CustomException("订单已过期", 501);
|
|
|
}
|
|
|
List<Long> ids = new ArrayList<>();
|
|
|
- for (FsStoreCartScrmQueryVO vo : cartsList) {
|
|
|
+ for (FsStoreCartQueryVO vo : cartsList) {
|
|
|
FsStoreCartScrm storeCart = FsStoreCartScrm.builder()
|
|
|
.cartNum(vo.getCartNum())
|
|
|
.productAttrValueId(vo.getProductAttrValueId())
|
|
|
@@ -2709,15 +2709,15 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
List<FsStoreCartGroupStoreScrmVO> carts = cartsList.stream()
|
|
|
.filter(vo -> vo.getStoreId() != null)
|
|
|
.collect(Collectors.groupingBy(
|
|
|
- FsStoreCartScrmQueryVO::getStoreId,
|
|
|
+ FsStoreCartQueryVO::getStoreId,
|
|
|
LinkedHashMap::new,
|
|
|
Collectors.toList()
|
|
|
))
|
|
|
.entrySet().stream()
|
|
|
.map(entry -> {
|
|
|
FsStoreCartGroupStoreScrmVO group = new FsStoreCartGroupStoreScrmVO();
|
|
|
- FsStoreCartScrmQueryVO firstItem = entry.getValue().get(0);
|
|
|
- group.setStoreId(firstItem.getStoreId());
|
|
|
+ FsStoreCartQueryVO firstItem = entry.getValue().get(0);
|
|
|
+ group.setStoreId(firstItem.getStoreId().toString());
|
|
|
group.setStoreName(firstItem.getStoreName());
|
|
|
group.setCartQueryList(entry.getValue());
|
|
|
return group;
|
|
|
@@ -2734,6 +2734,12 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
|
|
|
@Override
|
|
|
public R updateSalseOrderMoney(String createOrderKey, BigDecimal money, BigDecimal payAmount, BigDecimal totalAmount, Integer payType, Long userId) {
|
|
|
+ //查询销售是否存在
|
|
|
+ CompanyUser companyUser = companyUserService.selectCompanyUserById(userId);
|
|
|
+ if (companyUser == null) {
|
|
|
+ throw new CustomException("用户不存在", 501);
|
|
|
+ }
|
|
|
+
|
|
|
//货到付款自定义金额
|
|
|
if (payAmount == null) {
|
|
|
String configJson = configService.selectConfigByKey("store.config");
|
|
|
@@ -2755,9 +2761,9 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
if (StringUtils.isEmpty(key)) {
|
|
|
throw new CustomException("订单已过期", 501);
|
|
|
}
|
|
|
- List<FsStoreCartScrmQueryVO> carts = redisCache.getCacheObject("orderCarts:" + createOrderKey);
|
|
|
+ List<FsStoreCartQueryVO> carts = redisCache.getCacheObject("orderCarts:" + createOrderKey);
|
|
|
BigDecimal totalMoney = BigDecimal.ZERO;
|
|
|
- for (FsStoreCartScrmQueryVO vo : carts) {
|
|
|
+ for (FsStoreCartQueryVO vo : carts) {
|
|
|
totalMoney = totalMoney.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
|
|
|
}
|
|
|
if (money.compareTo(totalMoney) == 1) {
|
|
|
@@ -2781,6 +2787,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
preparedPriceChange.setPayType(payType);//支付类型
|
|
|
preparedPriceChange.setTotalAmount(totalAmount);//合计金额
|
|
|
preparedPriceChange.setPayAmount(payAmount);//物流改价金额
|
|
|
+ preparedPriceChange.setCompanyId(companyUser.getCompanyId());//公司ID
|
|
|
preparedPriceChange.setCompanyUserId(userId);//销售ID
|
|
|
preparedPriceChange.setCreateBy(userId.toString());//创建人
|
|
|
preparedPriceChange.setCreateOrderKey(createOrderKey);//唯一key
|
|
|
@@ -5087,13 +5094,13 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
String storeId = null;
|
|
|
if (cartIds != null) {
|
|
|
//获取购物车列表
|
|
|
- List<FsStoreCartScrmQueryVO> carts = redisCache.getCacheObject("orderCarts:" + param.getOrderKey());
|
|
|
+ List<FsStoreCartQueryVO> carts = redisCache.getCacheObject("orderCarts:" + param.getOrderKey());
|
|
|
//获取地址
|
|
|
FsUserAddressScrm address = userAddressMapper.selectFsUserAddressById(param.getAddressId());
|
|
|
//检测库存
|
|
|
//如果是美乳产品,发武汉仓库
|
|
|
Integer meiruCount = 0;
|
|
|
- for (FsStoreCartScrmQueryVO cart : carts) {
|
|
|
+ for (FsStoreCartQueryVO cart : carts) {
|
|
|
cartService.checkProductStocks(cart.getProductId(), cart.getProductAttrValueId(), cart.getCartNum());
|
|
|
totalNum += cart.getCartNum();
|
|
|
integral = NumberUtil.add(integral,
|
|
|
@@ -5101,8 +5108,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
if (cart.getCateId() != null && cart.getCateId().equals(176L)) {
|
|
|
meiruCount++;
|
|
|
}
|
|
|
- if (StringUtils.isNotEmpty(cart.getStoreId())) {
|
|
|
- storeId = cart.getStoreId();
|
|
|
+ if (cart.getStoreId() != null) {
|
|
|
+ storeId = String.valueOf(cart.getStoreId());
|
|
|
}
|
|
|
}
|
|
|
//生成分布式唯一值
|
|
|
@@ -5178,7 +5185,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
storeOrder.setGainIntegral(BigDecimal.ZERO);
|
|
|
storeOrder.setMark(param.getMark());
|
|
|
//todo 获取成本价
|
|
|
- BigDecimal costPrice = this.getOrderSumPriceMultiStore(carts, "costPrice");
|
|
|
+ BigDecimal costPrice = this.getOrderSumPrice(carts, "costPrice");
|
|
|
storeOrder.setCost(costPrice);
|
|
|
storeOrder.setIsChannel(1);
|
|
|
storeOrder.setShippingType(1);
|
|
|
@@ -5220,11 +5227,11 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
this.decIntegral(userId, dto.getUsedIntegral(), dto.getDeductionPrice().doubleValue(), storeOrder.getId().toString());
|
|
|
}
|
|
|
//减库存加销量
|
|
|
- this.deStockIncSales(carts);
|
|
|
+ this.deStockIncSale(carts);
|
|
|
//保存OrderItem
|
|
|
List<FsStoreOrderItemScrm> listOrderItem = new ArrayList<>();
|
|
|
//保存购物车商品信息
|
|
|
- for (FsStoreCartScrmQueryVO vo : carts) {
|
|
|
+ for (FsStoreCartQueryVO vo : carts) {
|
|
|
FsStoreCartDTO fsStoreCartDTO = new FsStoreCartDTO();
|
|
|
fsStoreCartDTO.setProductId(vo.getProductId());
|
|
|
fsStoreCartDTO.setPrice(vo.getPrice());
|
|
|
@@ -5653,8 +5660,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
if (ObjectUtil.isNull(cartIds)) {
|
|
|
throw new CustomException("订单已过期", 501);
|
|
|
}
|
|
|
- List<FsStoreCartScrmQueryVO> carts = redisCache.getCacheObject("orderCarts:" + param.getOrderKey());
|
|
|
- BigDecimal payPrice = getOrderSumPriceMultiStore(carts, "truePrice");
|
|
|
+ List<FsStoreCartQueryVO> carts = redisCache.getCacheObject("orderCarts:" + param.getOrderKey());
|
|
|
+ BigDecimal payPrice = getOrderSumPrice(carts, "truePrice");
|
|
|
if (StringUtils.isNotEmpty(param.getCreateOrderKey())) {
|
|
|
// BigDecimal money = redisCache.getCacheObject("createOrderMoney:" + param.getCreateOrderKey());
|
|
|
// if (money != null) {
|
|
|
@@ -5684,7 +5691,7 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
|
|
|
if (param.getAddressId() != null) {
|
|
|
userAddress = userAddressMapper.selectFsUserAddressById(param.getAddressId());
|
|
|
}
|
|
|
- FsStoreOrderPriceDTO priceGroup = this.getOrderPriceGroupMultiStore(carts, userAddress);
|
|
|
+ FsStoreOrderPriceDTO priceGroup = this.getOrderPriceGroup(carts, userAddress);
|
|
|
BigDecimal payPostage = priceGroup.getStorePostage();
|
|
|
payPrice = NumberUtil.add(payPrice, payPostage);
|
|
|
FsUserScrm user = userService.selectFsUserById(uid);
|