提交 bcc350db 作者: zhenjie

购物车多商家商品下单

上级 de8e5ad1
...@@ -21,6 +21,4 @@ public interface UserAddressDao { ...@@ -21,6 +21,4 @@ public interface UserAddressDao {
UserAddressDO selectById(Integer userAddressId); UserAddressDO selectById(Integer userAddressId);
List<UserAddressDO> selectList(UserAddressDO userAddressDO); List<UserAddressDO> selectList(UserAddressDO userAddressDO);
void batchAddOrderExpress(List<UavOrderExpressDO> expressDOS);
} }
...@@ -18,4 +18,6 @@ public interface UavOrderExpressDao { ...@@ -18,4 +18,6 @@ public interface UavOrderExpressDao {
int updateUavOrderExpressDO(UavOrderExpressDO uavOrderExpressDO); int updateUavOrderExpressDO(UavOrderExpressDO uavOrderExpressDO);
List<UavOrderExpressDO> listNoReceive(); List<UavOrderExpressDO> listNoReceive();
void batchAddOrderExpress(List<UavOrderExpressDO> expressDOS);
} }
...@@ -81,8 +81,8 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -81,8 +81,8 @@ public class UavCartServiceImpl implements UavCartService {
// 同步商品信息,价格及是否展示 // 同步商品信息,价格及是否展示
// 根据规格查询商品信息 // 根据规格查询商品信息
buildUavCartCompany(uavCartQO.getOrderType(), uavCartCompanyDTOS); buildUavCartCompany(uavCartQO.getOrderType(), uavCartCompanyDTOS);
List<UavCartCompanyDTO> collect = uavCartCompanyDTOS.stream().filter(i -> CollectionUtils.isNotEmpty(i.getUavCartDOS())).collect(Collectors.toList()); uavCartCompanyDTOS.removeIf(i -> CollectionUtils.isEmpty(i.getUavCartDOS()));
return ResultBody.success(PageResult.buildPage(pageNo, uavCartQO.getPageSize(), list.size(), collect)); return ResultBody.success(PageResult.buildPage(pageNo, uavCartQO.getPageSize(), list.size(), uavCartCompanyDTOS));
} }
@Override @Override
...@@ -96,9 +96,7 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -96,9 +96,7 @@ public class UavCartServiceImpl implements UavCartService {
} }
// 最新规格信息 // 最新规格信息
List<UavCartDTO> uavCartDTOS = pmsAppApi.listPriceStock(priceStockQOS); List<UavCartDTO> uavCartDTOS = pmsAppApi.listPriceStock(priceStockQOS);
if (CollectionUtils.isEmpty(uavCartDTOS)) {
return;
}
// 更新最新的规格信息 // 更新最新的规格信息
for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) { for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) {
uavCartCompanyDTO.setCompanyName(uavCartCompanyDTO.getUavCartDOS().get(0).getCompanyName()); uavCartCompanyDTO.setCompanyName(uavCartCompanyDTO.getUavCartDOS().get(0).getCompanyName());
...@@ -120,15 +118,17 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -120,15 +118,17 @@ public class UavCartServiceImpl implements UavCartService {
// 找不到或被删除则置为失效 // 找不到或被删除则置为失效
if (!flag || uavCartDTO.getDeleted().equals(1)) { if (!flag || uavCartDTO.getDeleted().equals(1)) {
uavCartDTO.setShelfStatus(0); uavCartDTO.setShelfStatus(0);
uavCartDTO.setDeleted(1);
} }
} }
for (UavCartCompanyDTO cartCompanyDTO : uavCartCompanyDTOS) { // for (UavCartCompanyDTO cartCompanyDTO : uavCartCompanyDTOS) {
if (UavOrderType.PAY.getCode().equals(orderType)) { // List<UavCartDTO> cartDOS = cartCompanyDTO.getUavCartDOS();
cartCompanyDTO.setUavCartDOS(cartCompanyDTO.getUavCartDOS().stream().filter( item -> item.getPriceShow().equals(1)).collect(Collectors.toList())); // if (UavOrderType.PAY.getCode().equals(orderType)) {
}else { // cartDOS.removeIf(i -> i.getPriceShow() != null && i.getPriceShow().equals(0));
cartCompanyDTO.setUavCartDOS(cartCompanyDTO.getUavCartDOS().stream().filter( item -> item.getPriceShow().equals(0)).collect(Collectors.toList())); // }else {
} // cartDOS.removeIf(i -> i.getPriceShow() != null && i.getPriceShow().equals(1));
} // }
// }
} }
} }
} }
...@@ -659,20 +659,14 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -659,20 +659,14 @@ public class UavOrderServiceImpl implements UavOrderService {
if (orderByCartQO.getOrderType().equals(UavOrderType.SIGN.getCode()) && orderByCartQO.getCartCompanyDTOS().size() > 1) { if (orderByCartQO.getOrderType().equals(UavOrderType.SIGN.getCode()) && orderByCartQO.getCartCompanyDTOS().size() > 1) {
return ResultBody.error("意向订单仅限下单个商家的商品"); return ResultBody.error("意向订单仅限下单个商家的商品");
} }
// 正常订单可以抵扣云享金和余额、意向订单不能扣
if (orderByCartQO.getOrderType().equals(UavOrderType.PAY.getCode())){
}else {
}
// 购物车id
List<Integer> cartIds = new ArrayList<>();
// 云享金、余额扣除相关 // 云享金、余额扣除相关
ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken()); ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken());
if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payResInfo.getResult() == null){ if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payResInfo.getResult() == null) {
return payResInfo; return payResInfo;
} }
PayWalletDTO payWalletDTO = payResInfo.getResult(); PayWalletDTO payWalletDTO = payResInfo.getResult();
// 购物车id
List<Integer> cartIds = new ArrayList<>();
// 可以多商家多商品,为每个商家生成一个订单 // 可以多商家多商品,为每个商家生成一个订单
List<UavOrderDO> orders = new ArrayList<UavOrderDO>(); List<UavOrderDO> orders = new ArrayList<UavOrderDO>();
BigDecimal allOtherAmount = BigDecimal.ZERO; BigDecimal allOtherAmount = BigDecimal.ZERO;
...@@ -698,9 +692,16 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -698,9 +692,16 @@ public class UavOrderServiceImpl implements UavOrderService {
UavOrderSkuDO uavOrderSkuDO = new UavOrderSkuDO(uavCartDTO); UavOrderSkuDO uavOrderSkuDO = new UavOrderSkuDO(uavCartDTO);
skuDOS.add(uavOrderSkuDO); skuDOS.add(uavOrderSkuDO);
orderAmount = orderAmount.add(uavCartDTO.getSalePrice().multiply(BigDecimal.valueOf(uavCartDTO.getOrderNum()))); orderAmount = orderAmount.add(uavCartDTO.getSalePrice().multiply(BigDecimal.valueOf(uavCartDTO.getOrderNum())));
if (uavCartDTO.getShelfStatus().equals(0)) {
return ResultBody.error("所选规格无效");
}
} }
}else {
return ResultBody.error("所选规格无效");
} }
otherAmount = otherAmount.add(orderAmount); otherAmount = otherAmount.add(orderAmount);
// 正常订单可以抵扣云享金和余额、意向订单不能扣
if (orderByCartQO.getOrderType().equals(UavOrderType.PAY.getCode())){
// 抵扣云享金 // 抵扣云享金
if (companyDTO.getDeductShareAmount().equals(1) && payWalletDTO.getCashAmt().compareTo(BigDecimal.ZERO) > 0) { if (companyDTO.getDeductShareAmount().equals(1) && payWalletDTO.getCashAmt().compareTo(BigDecimal.ZERO) > 0) {
if (payWalletDTO.getCashAmt().compareTo(otherAmount) > 0) { if (payWalletDTO.getCashAmt().compareTo(otherAmount) > 0) {
...@@ -729,6 +730,9 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -729,6 +730,9 @@ public class UavOrderServiceImpl implements UavOrderService {
}else { }else {
statusCode = UavOrderStatus.PAYING.getCode(); statusCode = UavOrderStatus.PAYING.getCode();
} }
}else {
statusCode = UavOrderStatus.CONFIRM.getCode();
}
// 设置订单状态 // 设置订单状态
uavOrderDO.setStatusCode(statusCode); uavOrderDO.setStatusCode(statusCode);
uavOrderDO.setOrderTotalAmount(orderAmount); uavOrderDO.setOrderTotalAmount(orderAmount);
...@@ -747,7 +751,9 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -747,7 +751,9 @@ public class UavOrderServiceImpl implements UavOrderService {
allOtherAmount = allOtherAmount.add(otherAmount); allOtherAmount = allOtherAmount.add(otherAmount);
} }
// 抵扣余额 // 抵扣余额
if (allShareAmount.compareTo(BigDecimal.ZERO) > 0 || allSalaryAmount.compareTo(BigDecimal.ZERO) > 0) {
this.deductWallet(allShareAmount, allSalaryAmount, currentAccount); this.deductWallet(allShareAmount, allSalaryAmount, currentAccount);
}
// 添加订单信息 // 添加订单信息
uavOrderDao.batchAddOrder(orders); uavOrderDao.batchAddOrder(orders);
// 全部规格信息 // 全部规格信息
...@@ -758,6 +764,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -758,6 +764,7 @@ public class UavOrderServiceImpl implements UavOrderService {
allSkuDOS.add(skuDO); allSkuDOS.add(skuDO);
} }
} }
log.info("allSkuDOS:{}", JSONObject.toJSONString(allSkuDOS));
// 批量添加规格 // 批量添加规格
uavOrderDao.addOrderSku(allSkuDOS); uavOrderDao.addOrderSku(allSkuDOS);
// 多个添加收货地址 // 多个添加收货地址
...@@ -769,7 +776,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -769,7 +776,7 @@ public class UavOrderServiceImpl implements UavOrderService {
expressDOS.add(uavOrderExpressDO); expressDOS.add(uavOrderExpressDO);
} }
// 批量添加收货地址 // 批量添加收货地址
userAddressDao.batchAddOrderExpress(expressDOS); uavOrderExpressDao.batchAddOrderExpress(expressDOS);
// 批量标识购物车 // 批量标识购物车
uavCartService.batchRemove(cartIds); uavCartService.batchRemove(cartIds);
return ResultBody.success(); return ResultBody.success();
......
...@@ -26,14 +26,6 @@ ...@@ -26,14 +26,6 @@
values (#{userAccountId}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress},#{type},#{flag},#{districtCode}) values (#{userAccountId}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress},#{type},#{flag},#{districtCode})
</insert> </insert>
<insert id="batchAddOrderExpress">
insert into user_address(user_account_id, take_name, take_phone, take_region, take_address,`type`,flag,district_code)
values
<foreach item="item" collection="list" separator=",">
(#{item.userAccountId}, #{item.takeName}, #{item.takePhone}, #{item.takeRegion}, #{item.takeAddress},#{item.type},#{item.flag},#{item.districtCode})
</foreach>
</insert>
<!-- 通过主键修改数据 --> <!-- 通过主键修改数据 -->
<update id="update" parameterType="com.mmc.oms.entity.mall.UserAddressDO"> <update id="update" parameterType="com.mmc.oms.entity.mall.UserAddressDO">
update user_address update user_address
......
...@@ -13,6 +13,14 @@ ...@@ -13,6 +13,14 @@
values (#{uavOrderId}, #{sendExpNo}, #{sendExpCode}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress}, NOW()) values (#{uavOrderId}, #{sendExpNo}, #{sendExpCode}, #{takeName}, #{takePhone}, #{takeRegion}, #{takeAddress}, NOW())
</insert> </insert>
<insert id="batchAddOrderExpress">
insert into uav_order_express(uav_order_id, send_exp_no, send_exp_code, take_name, take_phone, take_region, take_address, create_time)
values
<foreach item="item" collection="list" separator=",">
(#{item.uavOrderId}, #{item.sendExpNo}, #{item.sendExpCode}, #{item.takeName}, #{item.takePhone}, #{item.takeRegion}, #{item.takeAddress}, NOW())
</foreach>
</insert>
<update id="updateUavOrderExpressDO" parameterType="com.mmc.oms.entity.uav.UavOrderExpressDO"> <update id="updateUavOrderExpressDO" parameterType="com.mmc.oms.entity.uav.UavOrderExpressDO">
update uav_order_express update uav_order_express
<set> <set>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论