提交 c693b50a 作者: zhenjie

购物车多商家商品下单

上级 bcc350db
...@@ -236,6 +236,14 @@ public class CodeUtil { ...@@ -236,6 +236,14 @@ public class CodeUtil {
return sb.toString(); return sb.toString();
} }
public static String multiUavOrderPayCode() {
StringBuffer sb = new StringBuffer();
sb.append("m");
sb.append(TDateUtil.getCurrentDateByType("yyyyMMddHHmmss"));
sb.append(CodeUtil.getRandomNum(4));
return sb.toString();
}
/** /**
* 活动编号 * 活动编号
*/ */
......
...@@ -2,6 +2,7 @@ package com.mmc.oms.controller.uav; ...@@ -2,6 +2,7 @@ package com.mmc.oms.controller.uav;
import com.mmc.oms.common.result.ResultBody; import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.controller.BaseController; import com.mmc.oms.controller.BaseController;
import com.mmc.oms.feign.UserAppApi;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO; import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.uav.UavCartDTO; import com.mmc.oms.model.dto.uav.UavCartDTO;
import com.mmc.oms.model.dto.uav.UavOrderDTO; import com.mmc.oms.model.dto.uav.UavOrderDTO;
...@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
......
...@@ -3,6 +3,7 @@ package com.mmc.oms.controller.uav; ...@@ -3,6 +3,7 @@ package com.mmc.oms.controller.uav;
import com.mmc.oms.common.result.ResultBody; import com.mmc.oms.common.result.ResultBody;
import com.mmc.oms.controller.BaseController; import com.mmc.oms.controller.BaseController;
import com.mmc.oms.model.dto.ContractInfoDTO; import com.mmc.oms.model.dto.ContractInfoDTO;
import com.mmc.oms.model.dto.uav.MultiUavOrderDTO;
import com.mmc.oms.model.dto.uav.UavCartCompanyDTO; import com.mmc.oms.model.dto.uav.UavCartCompanyDTO;
import com.mmc.oms.model.dto.uav.UavOrderDTO; import com.mmc.oms.model.dto.uav.UavOrderDTO;
import com.mmc.oms.model.dto.uav.UavOrderStatusDTO; import com.mmc.oms.model.dto.uav.UavOrderStatusDTO;
...@@ -38,10 +39,10 @@ public class UavOrderController extends BaseController { ...@@ -38,10 +39,10 @@ public class UavOrderController extends BaseController {
} }
@ApiOperation(value = "提交订单-购物车") @ApiOperation(value = "提交订单-购物车")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = UavOrderDTO.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = MultiUavOrderDTO.class)})
@PostMapping("addOrderByCart") @PostMapping("addOrderByCart")
public ResultBody<UavOrderDTO> addOrderByCart(@RequestBody AddUavOrderByCartQO orderByCartQO, public ResultBody<MultiUavOrderDTO> addOrderByCart(@RequestBody AddUavOrderByCartQO orderByCartQO,
HttpServletRequest request) { HttpServletRequest request) {
return uavOrderService.addOrderByCart(orderByCartQO, this.getCurrentAccount(request)); return uavOrderService.addOrderByCart(orderByCartQO, this.getCurrentAccount(request));
} }
......
package com.mmc.oms.dao.uav;
import com.mmc.oms.entity.uav.UavPayWxDO;
import com.mmc.oms.entity.uav.UavPayWxSubDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author: zj
* @Date: 2023/9/21 19:36
*/
@Mapper
public interface UavPayWxDao {
UavPayWxDO getUavPayWx(String payNo);
void addUavPayWx(UavPayWxDO uavPayWx);
void batchAddUavPayWxSub(List<UavPayWxSubDO> payWxSubDOS);
List<UavPayWxSubDO> listUavPayWxSub(Integer uavPayWxId);
}
package com.mmc.oms.entity.uav;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author: zj
* @Date: 2023/9/21 16:59
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("多订单支付总记录")
public class UavPayWxDO implements Serializable {
private static final long serialVersionUID = 3003931182943391633L;
private Integer id;
private String payNo;
private BigDecimal amount;
private String tradeState;
private Date createTime;
private List<UavPayWxSubDO> payWxSubDOS;
}
package com.mmc.oms.entity.uav;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/9/21 19:27
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("订单微信支付记录")
public class UavPayWxSubDO implements Serializable {
private static final long serialVersionUID = -1446318972494082705L;
private Integer id;
private Integer uavPayWxId;
private Integer uavOrderId;
private BigDecimal amount;
private Date createTime;
}
...@@ -38,6 +38,9 @@ public interface UserAppApi { ...@@ -38,6 +38,9 @@ public interface UserAppApi {
@GetMapping("company/getManagerIdByBackUserId") @GetMapping("company/getManagerIdByBackUserId")
public ResultBody getManagerIdByBackUserId(@RequestParam Integer backUserAccountId, @RequestHeader String token); public ResultBody getManagerIdByBackUserId(@RequestParam Integer backUserAccountId, @RequestHeader String token);
@PostMapping("user-account/feignListUserAccountByIds")
List<UserAccountSimpleDTO> feignListUserAccountByIds(@RequestBody List<Integer> ids, @RequestHeader("token") String token);
/** /**
* 获取小程序用户集合列表页面 * 获取小程序用户集合列表页面
* *
......
...@@ -52,6 +52,12 @@ public class UserAppApiHystrix implements UserAppApi { ...@@ -52,6 +52,12 @@ public class UserAppApiHystrix implements UserAppApi {
} }
@Override @Override
public List<UserAccountSimpleDTO> feignListUserAccountByIds(List<Integer> ids, String token) {
log.error("熔断:UserAppApiHystrix.feignListUserAccountByIds:{}", ids);
return null;
}
@Override
public List<UserAccountSimpleDTO> feignListAppUserAccount(UserAccountQO userAccountQO, String token) { public List<UserAccountSimpleDTO> feignListAppUserAccount(UserAccountQO userAccountQO, String token) {
log.error("熔断:UserAppApiHystrix.feignListAppUserAccount:{}", userAccountQO); log.error("熔断:UserAppApiHystrix.feignListAppUserAccount:{}", userAccountQO);
return null; return null;
......
package com.mmc.oms.model.dto.uav;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @author: zj
* @Date: 2023/9/21 16:11
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MultiUavOrderDTO implements Serializable {
private static final long serialVersionUID = -935420087357754202L;
private BigDecimal allOtherAmount;
private String payNo;
private List<UavOrderDTO> uavOrderDTOS;
}
...@@ -24,9 +24,9 @@ public class UavCartDTO implements Serializable { ...@@ -24,9 +24,9 @@ public class UavCartDTO implements Serializable {
private Integer id; private Integer id;
@ApiModelProperty(value = "用户ID") @ApiModelProperty(value = "用户ID")
private Integer userAccountId; private Integer userAccountId;
@ApiModelProperty(value = "商家id") @ApiModelProperty(value = "商家id", hidden = true)
private Integer thirdBackUserAccountId; private Integer thirdBackUserAccountId;
@ApiModelProperty(value = "商家名称") @ApiModelProperty(value = "商家名称", hidden = true)
private String companyName; private String companyName;
@ApiModelProperty(value = "商品id") @ApiModelProperty(value = "商品id")
private Integer mallGoodsId; private Integer mallGoodsId;
......
...@@ -19,8 +19,6 @@ import java.io.Serializable; ...@@ -19,8 +19,6 @@ import java.io.Serializable;
@AllArgsConstructor @AllArgsConstructor
public class UavCartQO implements Serializable { public class UavCartQO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "订单类型,0正常订单,1意向订单", required = true)
private Integer orderType;
@ApiModelProperty(value = "页码", required = true) @ApiModelProperty(value = "页码", required = true)
@NotNull(message = "页码不能为空", groups = Page.class) @NotNull(message = "页码不能为空", groups = Page.class)
......
...@@ -11,12 +11,14 @@ import com.mmc.oms.dao.demand.DemandReleaseOrderDao; ...@@ -11,12 +11,14 @@ import com.mmc.oms.dao.demand.DemandReleaseOrderDao;
import com.mmc.oms.dao.demand.PublishServiceOrderDao; import com.mmc.oms.dao.demand.PublishServiceOrderDao;
import com.mmc.oms.dao.topup.TopUpOrderDao; import com.mmc.oms.dao.topup.TopUpOrderDao;
import com.mmc.oms.dao.uav.UavOrderDao; import com.mmc.oms.dao.uav.UavOrderDao;
import com.mmc.oms.dao.uav.UavPayWxDao;
import com.mmc.oms.entity.demand.DemandReleaseOrderDO; import com.mmc.oms.entity.demand.DemandReleaseOrderDO;
import com.mmc.oms.entity.demand.GetOrderNumberDO; import com.mmc.oms.entity.demand.GetOrderNumberDO;
import com.mmc.oms.entity.demand.GetOrderNumberDTO; import com.mmc.oms.entity.demand.GetOrderNumberDTO;
import com.mmc.oms.entity.demand.ServiceRequirementsDO; import com.mmc.oms.entity.demand.ServiceRequirementsDO;
import com.mmc.oms.entity.topup.TopUpOrderDO; import com.mmc.oms.entity.topup.TopUpOrderDO;
import com.mmc.oms.entity.uav.UavOrderDO; import com.mmc.oms.entity.uav.UavOrderDO;
import com.mmc.oms.entity.uav.UavPayWxDO;
import com.mmc.oms.enums.UavOrderStatus; import com.mmc.oms.enums.UavOrderStatus;
import com.mmc.oms.feign.UserAppApi; import com.mmc.oms.feign.UserAppApi;
import com.mmc.oms.model.dto.uav.PayWalletDTO; import com.mmc.oms.model.dto.uav.PayWalletDTO;
...@@ -81,6 +83,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService ...@@ -81,6 +83,9 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
private TopUpOrderDao topUpOrderDao; private TopUpOrderDao topUpOrderDao;
@Autowired @Autowired
private UavPayWxDao uavPayWxDao;
@Autowired
private UserAppApi userAppApi; private UserAppApi userAppApi;
@Override @Override
...@@ -109,17 +114,25 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService ...@@ -109,17 +114,25 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
} }
} }
public ResultBody payUavOrder(CommonPaymentVO commonPaymentVO, String token) { private ResultBody multiUavOrderPay(OrderRequestParamsVO orderRequestParamsVO, String token) {
UavOrderDO uavOrderDO = uavOrderDao.detailByNo(commonPaymentVO.getOrderNumber()); UavPayWxDO uavPayWxDO = uavPayWxDao.getUavPayWx(orderRequestParamsVO.getOrderNo());
if (uavOrderDO.getOtherAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(commonPaymentVO.getAmount())) !=0 ){ if (uavPayWxDO.getAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(orderRequestParamsVO.getAmount())) !=0 ){
return ResultBody.error("发起支付金额不正确");
}
orderRequestParamsVO.setDescription("商城多订单" + orderRequestParamsVO.getOrderNo());
ResultBody resultBody = releaseOrder(orderRequestParamsVO, token);
if (!"200".equals(resultBody.getCode())) {
throw new RuntimeException("调用微信支付方法失败!");
}
return resultBody;
}
private ResultBody singleUavOrderPay(OrderRequestParamsVO orderRequestParamsVO, String token) {
UavOrderDO uavOrderDO = uavOrderDao.detailByNo(orderRequestParamsVO.getOrderNo());
if (uavOrderDO.getOtherAmount().multiply(BigDecimal.valueOf(100)).compareTo(BigDecimal.valueOf(orderRequestParamsVO.getAmount())) !=0 ){
return ResultBody.error("发起支付金额不正确"); return ResultBody.error("发起支付金额不正确");
} }
OrderRequestParamsVO orderRequestParamsVO = new OrderRequestParamsVO();
orderRequestParamsVO.setOrderNo(commonPaymentVO.getOrderNumber());
orderRequestParamsVO.setAmount(commonPaymentVO.getAmount());
orderRequestParamsVO.setAttach("PAY_UAV_ORDER");
orderRequestParamsVO.setDescription("商城订单" + uavOrderDO.getOrderNo()); orderRequestParamsVO.setDescription("商城订单" + uavOrderDO.getOrderNo());
orderRequestParamsVO.setOrderPort(commonPaymentVO.getOrderPort());
ResultBody resultBody = releaseOrder(orderRequestParamsVO, token); ResultBody resultBody = releaseOrder(orderRequestParamsVO, token);
if (!"200".equals(resultBody.getCode())) { if (!"200".equals(resultBody.getCode())) {
throw new RuntimeException("调用微信支付方法失败!"); throw new RuntimeException("调用微信支付方法失败!");
...@@ -127,6 +140,20 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService ...@@ -127,6 +140,20 @@ public class DemandReleaseOrderServiceImpl implements DemandReleaseOrderService
return resultBody; return resultBody;
} }
public ResultBody payUavOrder(CommonPaymentVO commonPaymentVO, String token) {
OrderRequestParamsVO orderRequestParamsVO = new OrderRequestParamsVO();
orderRequestParamsVO.setOrderNo(commonPaymentVO.getOrderNumber());
orderRequestParamsVO.setAmount(commonPaymentVO.getAmount());
orderRequestParamsVO.setAttach("PAY_UAV_ORDER");
orderRequestParamsVO.setOrderPort(commonPaymentVO.getOrderPort());
// 购物车下单涉及多订单
if (commonPaymentVO.getOrderNumber().startsWith("m")) {
return multiUavOrderPay(orderRequestParamsVO, token);
}else {
return singleUavOrderPay(orderRequestParamsVO, token);
}
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResultBody topUpOrder(CommonPaymentVO commonPaymentVO, String token, Integer userAccountId) { public ResultBody topUpOrder(CommonPaymentVO commonPaymentVO, String token, Integer userAccountId) {
// 生成充值订单编号 规则T加时间戳加用户id加随机数4位 // 生成充值订单编号 规则T加时间戳加用户id加随机数4位
......
...@@ -21,5 +21,5 @@ public interface UavCartService { ...@@ -21,5 +21,5 @@ public interface UavCartService {
ResultBody list(UavCartQO uavCartQO, BaseAccountDTO currentAccount); ResultBody list(UavCartQO uavCartQO, BaseAccountDTO currentAccount);
void buildUavCartCompany(Integer orderType, List<UavCartCompanyDTO> uavCartCompanyDTOS); void buildUavCartCompany(List<UavCartCompanyDTO> uavCartCompanyDTOS);
} }
...@@ -80,13 +80,13 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -80,13 +80,13 @@ public class UavCartServiceImpl implements UavCartService {
List<UavCartCompanyDTO> uavCartCompanyDTOS = uavCartCompanyDOS.stream().map(UavCartCompanyDO::buildUavCartCompanyDTO).collect(Collectors.toList()); List<UavCartCompanyDTO> uavCartCompanyDTOS = uavCartCompanyDOS.stream().map(UavCartCompanyDO::buildUavCartCompanyDTO).collect(Collectors.toList());
// 同步商品信息,价格及是否展示 // 同步商品信息,价格及是否展示
// 根据规格查询商品信息 // 根据规格查询商品信息
buildUavCartCompany(uavCartQO.getOrderType(), uavCartCompanyDTOS); buildUavCartCompany(uavCartCompanyDTOS);
uavCartCompanyDTOS.removeIf(i -> CollectionUtils.isEmpty(i.getUavCartDOS())); uavCartCompanyDTOS.removeIf(i -> CollectionUtils.isEmpty(i.getUavCartDOS()));
return ResultBody.success(PageResult.buildPage(pageNo, uavCartQO.getPageSize(), list.size(), uavCartCompanyDTOS)); return ResultBody.success(PageResult.buildPage(pageNo, uavCartQO.getPageSize(), list.size(), uavCartCompanyDTOS));
} }
@Override @Override
public void buildUavCartCompany(Integer orderType, List<UavCartCompanyDTO> uavCartCompanyDTOS){ public void buildUavCartCompany(List<UavCartCompanyDTO> uavCartCompanyDTOS){
List<PriceStockQO> priceStockQOS = new ArrayList<>(); List<PriceStockQO> priceStockQOS = new ArrayList<>();
for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) { for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) {
for (UavCartDTO uavCartDO : uavCartCompanyDTO.getUavCartDOS()) { for (UavCartDTO uavCartDO : uavCartCompanyDTO.getUavCartDOS()) {
...@@ -96,7 +96,6 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -96,7 +96,6 @@ public class UavCartServiceImpl implements UavCartService {
} }
// 最新规格信息 // 最新规格信息
List<UavCartDTO> uavCartDTOS = pmsAppApi.listPriceStock(priceStockQOS); List<UavCartDTO> uavCartDTOS = pmsAppApi.listPriceStock(priceStockQOS);
// 更新最新的规格信息 // 更新最新的规格信息
for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) { for (UavCartCompanyDTO uavCartCompanyDTO : uavCartCompanyDTOS) {
uavCartCompanyDTO.setCompanyName(uavCartCompanyDTO.getUavCartDOS().get(0).getCompanyName()); uavCartCompanyDTO.setCompanyName(uavCartCompanyDTO.getUavCartDOS().get(0).getCompanyName());
...@@ -121,14 +120,6 @@ public class UavCartServiceImpl implements UavCartService { ...@@ -121,14 +120,6 @@ public class UavCartServiceImpl implements UavCartService {
uavCartDTO.setDeleted(1); uavCartDTO.setDeleted(1);
} }
} }
// for (UavCartCompanyDTO cartCompanyDTO : uavCartCompanyDTOS) {
// List<UavCartDTO> cartDOS = cartCompanyDTO.getUavCartDOS();
// if (UavOrderType.PAY.getCode().equals(orderType)) {
// cartDOS.removeIf(i -> i.getPriceShow() != null && i.getPriceShow().equals(0));
// }else {
// cartDOS.removeIf(i -> i.getPriceShow() != null && i.getPriceShow().equals(1));
// }
// }
} }
} }
} }
...@@ -14,6 +14,7 @@ import com.mmc.oms.dao.UserAddressDao; ...@@ -14,6 +14,7 @@ import com.mmc.oms.dao.UserAddressDao;
import com.mmc.oms.dao.uav.UavOrderDao; import com.mmc.oms.dao.uav.UavOrderDao;
import com.mmc.oms.dao.uav.UavOrderExpressDao; import com.mmc.oms.dao.uav.UavOrderExpressDao;
import com.mmc.oms.dao.uav.UavPODao; import com.mmc.oms.dao.uav.UavPODao;
import com.mmc.oms.dao.uav.UavPayWxDao;
import com.mmc.oms.entity.mall.UserAddressDO; import com.mmc.oms.entity.mall.UserAddressDO;
import com.mmc.oms.entity.uav.*; import com.mmc.oms.entity.uav.*;
import com.mmc.oms.enums.UavOrderStatus; import com.mmc.oms.enums.UavOrderStatus;
...@@ -68,6 +69,9 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -68,6 +69,9 @@ public class UavOrderServiceImpl implements UavOrderService {
private UavPODao uavPODao; private UavPODao uavPODao;
@Autowired @Autowired
private UavPayWxDao uavPayWxDao;
@Autowired
private DemandReleaseOrderService demandReleaseOrderService; private DemandReleaseOrderService demandReleaseOrderService;
@Autowired @Autowired
...@@ -654,7 +658,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -654,7 +658,7 @@ public class UavOrderServiceImpl implements UavOrderService {
@Transactional @Transactional
@Override @Override
public ResultBody addOrderByCart(AddUavOrderByCartQO orderByCartQO, BaseAccountDTO currentAccount) { public ResultBody addOrderByCart(AddUavOrderByCartQO orderByCartQO, BaseAccountDTO currentAccount) {
uavCartService.buildUavCartCompany(orderByCartQO.getOrderType(), orderByCartQO.getCartCompanyDTOS()); uavCartService.buildUavCartCompany(orderByCartQO.getCartCompanyDTOS());
// 意向订单只能下一个商家的 // 意向订单只能下一个商家的
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("意向订单仅限下单个商家的商品");
...@@ -693,7 +697,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -693,7 +697,7 @@ public class UavOrderServiceImpl implements UavOrderService {
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)) { if (uavCartDTO.getShelfStatus().equals(0)) {
return ResultBody.error("所选规格无效"); return ResultBody.error(uavCartDTO.getTradeName() + " 已下架,请重新选择");
} }
} }
}else { }else {
...@@ -764,7 +768,6 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -764,7 +768,6 @@ public class UavOrderServiceImpl implements UavOrderService {
allSkuDOS.add(skuDO); allSkuDOS.add(skuDO);
} }
} }
log.info("allSkuDOS:{}", JSONObject.toJSONString(allSkuDOS));
// 批量添加规格 // 批量添加规格
uavOrderDao.addOrderSku(allSkuDOS); uavOrderDao.addOrderSku(allSkuDOS);
// 多个添加收货地址 // 多个添加收货地址
...@@ -779,7 +782,34 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -779,7 +782,34 @@ public class UavOrderServiceImpl implements UavOrderService {
uavOrderExpressDao.batchAddOrderExpress(expressDOS); uavOrderExpressDao.batchAddOrderExpress(expressDOS);
// 批量标识购物车 // 批量标识购物车
uavCartService.batchRemove(cartIds); uavCartService.batchRemove(cartIds);
return ResultBody.success(); List<UavOrderDTO> collect = orders.stream().map(UavOrderDO::buildUavOrderDTO).collect(Collectors.toList());
long unFinishPay = collect.stream().filter(i -> i.getStatusCode().equals(UavOrderStatus.PAYING.getCode())).count();
MultiUavOrderDTO multiUavOrderDTO = new MultiUavOrderDTO();
multiUavOrderDTO.setAllOtherAmount(allOtherAmount);
multiUavOrderDTO.setUavOrderDTOS(collect);
// 待订单个数大于1
if (unFinishPay > 1) {
String payNo = CodeUtil.multiUavOrderPayCode();
multiUavOrderDTO.setPayNo(payNo);
UavPayWxDO uavPayWx = new UavPayWxDO();
uavPayWx.setPayNo(payNo);
uavPayWx.setAmount(allOtherAmount);
uavPayWx.setTradeState("WAIT");
List<UavPayWxSubDO> payWxSubDOS = new ArrayList<>();
uavPayWxDao.addUavPayWx(uavPayWx);
collect.stream().forEach(i -> {
if (i.getStatusCode().equals(UavOrderStatus.PAYING.getCode())) {
UavPayWxSubDO uavPayWxSubDO = new UavPayWxSubDO();
uavPayWxSubDO.setUavPayWxId(uavPayWx.getId());
uavPayWxSubDO.setUavOrderId(i.getId());
uavPayWxSubDO.setAmount(i.getOtherAmount());
payWxSubDOS.add(uavPayWxSubDO);
}
});
uavPayWxDao.batchAddUavPayWxSub(payWxSubDOS);
}
return ResultBody.success(multiUavOrderDTO);
} }
public ResultBody deductWallet(BigDecimal allShareAmount, BigDecimal allSalaryAmount, BaseAccountDTO currentAccount){ public ResultBody deductWallet(BigDecimal allShareAmount, BigDecimal allSalaryAmount, BaseAccountDTO currentAccount){
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.oms.dao.uav.UavPayWxDao">
<sql id="UAV_PAY_WX_COLUMN">
id, pay_no, amount, trade_state, create_time
</sql>
<sql id="UAV_PAY_WX_SUB_COLUMN">
id, uav_pay_wx_id, uav_order_id, amount, create_time
</sql>
<insert id="addUavPayWx" parameterType="com.mmc.oms.entity.uav.UavPayWxDO" keyProperty="id" useGeneratedKeys="true">
insert into uav_pay_wx (pay_no, amount, trade_state, create_time)
values (#{payNo}, #{amount}, #{tradeState}, NOW())
</insert>
<insert id="batchAddUavPayWxSub" keyProperty="id" useGeneratedKeys="true">
insert into uav_pay_wx_sub( uav_pay_wx_id, uav_order_id, amount, create_time)
values
<foreach item="item" collection="list" separator=",">
(#{item.uavPayWxId}, #{item.uavOrderId}, #{item.amount}, NOW())
</foreach>
</insert>
<select id="getUavPayWx" resultType="com.mmc.oms.entity.uav.UavPayWxDO">
select <include refid="UAV_PAY_WX_COLUMN"/>
from uav_pay_wx where pay_no = #{payNo}
</select>
<select id="listUavPayWxSub" resultType="com.mmc.oms.entity.uav.UavPayWxSubDO">
select <include refid="UAV_PAY_WX_SUB_COLUMN"/>
from uav_pay_wx_sub where uav_pay_wx_id = #{uavPayWxId}
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论