提交 1d912593 作者: zhenjie

商城订单审核付款、收货解冻及优化

上级 5fe8e08c
...@@ -126,6 +126,8 @@ public class UavOrderController extends BaseController { ...@@ -126,6 +126,8 @@ public class UavOrderController extends BaseController {
return uavOrderService.confirmOrder(uavOrderVO, this.getCurrentAccount(request)); return uavOrderService.confirmOrder(uavOrderVO, this.getCurrentAccount(request));
} }
// 用户删除订单
// 设置订单抽成比例 // 设置订单抽成比例
// 微信完成回调-修改订单状态 // 微信完成回调-修改订单状态
......
...@@ -43,4 +43,8 @@ public interface UavOrderDao { ...@@ -43,4 +43,8 @@ public interface UavOrderDao {
void checkPay(UavOrderPayDO uavOrderPayDO); void checkPay(UavOrderPayDO uavOrderPayDO);
void addRemarkOrder(UavOrderRemarkDO uavOrderRemarkDO); void addRemarkOrder(UavOrderRemarkDO uavOrderRemarkDO);
UavOrderPayDO getUavOrderPayById(Integer id);
void updateUavOrderProportion(Integer id, Integer proportion);
} }
...@@ -28,6 +28,9 @@ public interface UserAppApi { ...@@ -28,6 +28,9 @@ public interface UserAppApi {
@GetMapping("pay/getCurrentUserPayWalletInfo") @GetMapping("pay/getCurrentUserPayWalletInfo")
public ResultBody<PayWalletDTO> getCurrentUserPayWalletInfo(@RequestHeader String token); public ResultBody<PayWalletDTO> getCurrentUserPayWalletInfo(@RequestHeader String token);
@GetMapping("pay/getPayWalletInfo")
public ResultBody<PayWalletDTO> getPayWalletInfo(@RequestParam Integer userAccountId, @RequestHeader String token);
@PostMapping("pay/feignPayUavWallet") @PostMapping("pay/feignPayUavWallet")
public ResultBody feignPayUavWallet(@RequestBody PayUavWalletVO payUavWalletVO, @RequestHeader String token); public ResultBody feignPayUavWallet(@RequestBody PayUavWalletVO payUavWalletVO, @RequestHeader String token);
......
...@@ -33,6 +33,12 @@ public class UserAppApiHystrix implements UserAppApi { ...@@ -33,6 +33,12 @@ public class UserAppApiHystrix implements UserAppApi {
} }
@Override @Override
public ResultBody<PayWalletDTO> getPayWalletInfo(Integer userAccountId, String token) {
log.error("熔断:UserAppApiHystrix.getPayWalletInfo==error");
return ResultBody.error("-1", "远程调用失败");
}
@Override
public ResultBody feignPayUavWallet(PayUavWalletVO payUavWalletVO, String token) { public ResultBody feignPayUavWallet(PayUavWalletVO payUavWalletVO, String token) {
log.error("熔断:UserAppApiHystrix.feignPayUavWallet==error==>param:{}", JSONObject.toJSONString(payUavWalletVO)); log.error("熔断:UserAppApiHystrix.feignPayUavWallet==error==>param:{}", JSONObject.toJSONString(payUavWalletVO));
return ResultBody.error("-1", "远程调用失败"); return ResultBody.error("-1", "远程调用失败");
......
...@@ -29,7 +29,7 @@ public class PayUavWalletVO implements Serializable { ...@@ -29,7 +29,7 @@ public class PayUavWalletVO implements Serializable {
@ApiModelProperty(value = "佣金") @ApiModelProperty(value = "佣金")
private BigDecimal salaryAmount; private BigDecimal salaryAmount;
@ApiModelProperty(value = "订单状态 100:订单支付 1400:商城订单退款") @ApiModelProperty(value = "订单状态 100:订单支付 1400:商城订单退款 1500:订单提成 999:确认收货", required = true)
private Integer orderStatus; private Integer orderStatus;
@ApiModelProperty(value = "订单备注") @ApiModelProperty(value = "订单备注")
......
...@@ -183,7 +183,6 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -183,7 +183,6 @@ public class UavOrderServiceImpl implements UavOrderService {
}else { }else {
uavOrderDO.setStatusCode(UavOrderStatus.CONFIRM.getCode()); uavOrderDO.setStatusCode(UavOrderStatus.CONFIRM.getCode());
} }
log.info("钱包使用情况:salaryAmount-{},shareAmount-{},otherAmount-{}", salaryAmount, shareAmount, otherAmount);
uavOrderDO.setUserAccountId(currentAccount.getUserAccountId()); uavOrderDO.setUserAccountId(currentAccount.getUserAccountId());
uavOrderDO.setThirdBackUserAccountId(param.getThirdBackUserAccountId()); uavOrderDO.setThirdBackUserAccountId(param.getThirdBackUserAccountId());
uavOrderDO.setCompanyName(param.getCompanyName()); uavOrderDO.setCompanyName(param.getCompanyName());
...@@ -321,7 +320,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -321,7 +320,7 @@ public class UavOrderServiceImpl implements UavOrderService {
List<UavOrderDO> uavOrderDOS = uavOrderDao.list(uavOrderQO); List<UavOrderDO> uavOrderDOS = uavOrderDao.list(uavOrderQO);
List<UavOrderDTO> uavOrderDTOS = uavOrderDOS.stream().map(UavOrderDO::buildUavOrderDTO).collect(Collectors.toList()); List<UavOrderDTO> uavOrderDTOS = uavOrderDOS.stream().map(UavOrderDO::buildUavOrderDTO).collect(Collectors.toList());
List<Integer> userIds = uavOrderDTOS.stream().map(UavOrderDTO::getUserAccountId).collect(Collectors.toList()); List<Integer> userIds = uavOrderDTOS.stream().map(UavOrderDTO::getUserAccountId).collect(Collectors.toList());
// TODO 买家信息 // 买家信息
UserAccountQO userAccountQO = new UserAccountQO(); UserAccountQO userAccountQO = new UserAccountQO();
userAccountQO.setUserIds(userIds); userAccountQO.setUserIds(userIds);
List<UserAccountSimpleDTO> userDTOS = userAppApi.feignListAppUserAccount(userAccountQO, currentAccount.getToken()); List<UserAccountSimpleDTO> userDTOS = userAppApi.feignListAppUserAccount(userAccountQO, currentAccount.getToken());
...@@ -399,12 +398,26 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -399,12 +398,26 @@ public class UavOrderServiceImpl implements UavOrderService {
return ResultBody.error("操作有误,请重试!"); return ResultBody.error("操作有误,请重试!");
} }
this.updateUavOrderStatus(id, UavOrderStatus.WAITING_RECEIVE_GOODS); this.updateUavOrderStatus(id, UavOrderStatus.WAITING_RECEIVE_GOODS);
// 解冻用户钱包金额
if (uavOrderDO.getShareAmount().compareTo(BigDecimal.ZERO) > 0 || uavOrderDO.getSalaryAmount().compareTo(BigDecimal.ZERO) > 0) {
PayUavWalletVO userPayUavWalletVO = new PayUavWalletVO();
userPayUavWalletVO.setUserAccountId(uavOrderDO.getUserAccountId());
userPayUavWalletVO.setSalaryAmount(uavOrderDO.getSalaryAmount());
userPayUavWalletVO.setCashAmount(uavOrderDO.getShareAmount());
userPayUavWalletVO.setOrderStatus(999);
userPayUavWalletVO.setRemark("商城订单金额解冻");
ResultBody resultBody = userAppApi.feignPayUavWallet(userPayUavWalletVO, null);
if (!resultBody.getCode().equals(ResultEnum.SUCCESS.getResultCode())) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody;
}
}
// 修改收货信息 // 修改收货信息
UavOrderExpressDO uavOrderExpressDO = uavOrderExpressDao.getUavOrderExpressDO(id); UavOrderExpressDO uavOrderExpressDO = uavOrderExpressDao.getUavOrderExpressDO(id);
uavOrderExpressDO.setReceive(1); uavOrderExpressDO.setReceive(1);
uavOrderExpressDO.setReceiveTime(new Date()); uavOrderExpressDO.setReceiveTime(new Date());
uavOrderExpressDao.updateUavOrderExpressDO(uavOrderExpressDO); uavOrderExpressDao.updateUavOrderExpressDO(uavOrderExpressDO);
if (uavOrderDO.getOrderType().equals(0)) { if (uavOrderDO.getOrderType().equals(UavOrderType.PAY.getCode())) {
// 订单抽成设置 // 订单抽成设置
BigDecimal thirdAmount = uavOrderDO.getOrderTotalAmount().multiply( BigDecimal thirdAmount = uavOrderDO.getOrderTotalAmount().multiply(
BigDecimal.valueOf(100).subtract(UavOrderProportion.PROPORTION).divide(BigDecimal.valueOf(100))); BigDecimal.valueOf(100).subtract(UavOrderProportion.PROPORTION).divide(BigDecimal.valueOf(100)));
...@@ -425,6 +438,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -425,6 +438,7 @@ public class UavOrderServiceImpl implements UavOrderService {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return resultBody; return resultBody;
} }
uavOrderDao.updateUavOrderProportion(uavOrderDO.getId(), UavOrderProportion.PROPORTION.intValue());
} }
return ResultBody.success(); return ResultBody.success();
} }
...@@ -483,19 +497,20 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -483,19 +497,20 @@ public class UavOrderServiceImpl implements UavOrderService {
@Transactional @Transactional
@Override @Override
public ResultBody checkPay(UavOrderPayVO uavOrderPayVO) { public ResultBody checkPay(UavOrderPayVO uavOrderPayVO) {
UavOrderPayDO beforeUavOrderPayDO = uavOrderDao.getUavOrderPayById(uavOrderPayVO.getId());
// 一个订单可能会多次上传付款凭证,因此单独审核 // 一个订单可能会多次上传付款凭证,因此单独审核
UavOrderDO uavOrderDO = uavOrderDao.detail(uavOrderPayVO.getUavOrderId()); UavOrderDO uavOrderDO = uavOrderDao.detail(beforeUavOrderPayDO.getUavOrderId());
if (uavOrderPayVO.getCheckStatus().equals(1)){ if (uavOrderPayVO.getCheckStatus().equals(1)){
// 第一次审核通过,则要把订单状态改为待发货;意向订单还要生成采购订单 // 第一次审核通过,则要把订单状态改为待发货;意向订单还要生成采购订单
if (uavOrderDO.getStatusCode().equals(UavOrderStatus.FINISH_PAYING.getCode())) { if (uavOrderDO.getStatusCode().equals(UavOrderStatus.FINISH_PAYING.getCode())) {
this.updateUavOrderStatus(uavOrderPayVO.getUavOrderId(), UavOrderStatus.FINISH_PAYING); this.updateUavOrderStatus(beforeUavOrderPayDO.getUavOrderId(), UavOrderStatus.FINISH_PAYING);
// TODO 生成采购订单 // 生成采购订单
UavPurchaseOrderDO uavPurchaseOrderDO = new UavPurchaseOrderDO(); UavPurchaseOrderDO uavPurchaseOrderDO = new UavPurchaseOrderDO();
uavPurchaseOrderDO.setBackUserAccountId(1); uavPurchaseOrderDO.setBackUserAccountId(1);
uavPurchaseOrderDO.setThirdUserAccountId(uavOrderDO.getThirdBackUserAccountId()); uavPurchaseOrderDO.setThirdUserAccountId(uavOrderDO.getThirdBackUserAccountId());
uavPurchaseOrderDO.setOrderAmount(uavOrderDO.getOrderTotalAmount()); uavPurchaseOrderDO.setOrderAmount(uavOrderDO.getOrderTotalAmount());
uavPurchaseOrderDO.setOrderNo(CodeUtil.uavPOrderCode()); uavPurchaseOrderDO.setOrderNo(CodeUtil.uavPOrderCode());
uavPurchaseOrderDO.setUavOrderId(uavOrderDO.getId()); uavPurchaseOrderDO.setUavOrderId(beforeUavOrderPayDO.getUavOrderId());
uavPurchaseOrderDO.setStatusCode(UavOrderStatus.CONFIRM.getCode()); uavPurchaseOrderDO.setStatusCode(UavOrderStatus.CONFIRM.getCode());
uavPODao.addPurchaseOrder(uavPurchaseOrderDO); uavPODao.addPurchaseOrder(uavPurchaseOrderDO);
} }
...@@ -513,7 +528,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -513,7 +528,7 @@ public class UavOrderServiceImpl implements UavOrderService {
if (uavOrderDO == null) { if (uavOrderDO == null) {
throw new RuntimeException(); throw new RuntimeException();
} }
// TODO 有问题 // 有问题
this.updateUavOrderStatus(uavOrderDO.getId(), UavOrderStatus.PAYING); this.updateUavOrderStatus(uavOrderDO.getId(), UavOrderStatus.PAYING);
// 修改订单信息 // 修改订单信息
uavOrderDO.setPayType("wechatpay"); uavOrderDO.setPayType("wechatpay");
...@@ -545,7 +560,7 @@ public class UavOrderServiceImpl implements UavOrderService { ...@@ -545,7 +560,7 @@ public class UavOrderServiceImpl implements UavOrderService {
} }
// 意向订单扣除云享金 // 意向订单扣除云享金
if (uavOrderDO.getOrderType().equals(UavOrderType.SIGN.getCode())) { if (uavOrderDO.getOrderType().equals(UavOrderType.SIGN.getCode())) {
ResultBody<PayWalletDTO> payResInfo = userAppApi.getCurrentUserPayWalletInfo(currentAccount.getToken()); ResultBody<PayWalletDTO> payResInfo = userAppApi.getPayWalletInfo(uavOrderDO.getUserAccountId(), currentAccount.getToken());
PayWalletDTO payWalletDTO = payResInfo.getResult(); PayWalletDTO payWalletDTO = payResInfo.getResult();
if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payWalletDTO == null){ if (!payResInfo.getCode().equals(ResultEnum.SUCCESS.getResultCode()) || payWalletDTO == null){
return payResInfo; return payResInfo;
......
...@@ -38,6 +38,10 @@ ...@@ -38,6 +38,10 @@
pay_time, confirm_receipt_time, version, remark_status, update_time pay_time, confirm_receipt_time, version, remark_status, update_time
</sql> </sql>
<sql id="uav_order_pay_column">
id, uav_order_id, pay_type, pay_img_list, check_status, pay_remark, refuse_reason, create_time, check_time
</sql>
<insert id="addOrder" parameterType="com.mmc.oms.entity.uav.UavOrderDO" useGeneratedKeys="true" keyProperty="id"> <insert id="addOrder" parameterType="com.mmc.oms.entity.uav.UavOrderDO" useGeneratedKeys="true" keyProperty="id">
insert into uav_order(order_no, status_code, user_account_id, third_back_user_account_id, company_name, order_total_amount, insert into uav_order(order_no, status_code, user_account_id, third_back_user_account_id, company_name, order_total_amount,
salary_amount, share_amount, other_amount, pay_type, order_type, user_address_id, user_remark, seller_remark, create_time salary_amount, share_amount, other_amount, pay_type, order_type, user_address_id, user_remark, seller_remark, create_time
...@@ -134,21 +138,17 @@ ...@@ -134,21 +138,17 @@
where id = #{id} where id = #{id}
</update> </update>
<update id="updateUavOrderProportion">
update uav_order set proportion = #{proportion} where id = #{id}
</update>
<select id="detail" resultType="com.mmc.oms.entity.uav.UavOrderDO"> <select id="detail" resultType="com.mmc.oms.entity.uav.UavOrderDO">
select <include refid="uav_order_column" /> from uav_order where id = #{id} select <include refid="uav_order_column" /> from uav_order where id = #{id}
</select> </select>
<select id="listUavOrderPay" resultType="com.mmc.oms.entity.uav.UavOrderPayDO"> <select id="listUavOrderPay" resultType="com.mmc.oms.entity.uav.UavOrderPayDO">
select select
id, <include refid="uav_order_pay_column"/>
uav_order_id,
pay_type,
pay_img_list,
check_status,
pay_remark,
refuse_reason,
create_time,
check_time
from uav_order_pay from uav_order_pay
where uav_order_id = #{uavOrderId} and pay_type = 2 where uav_order_id = #{uavOrderId} and pay_type = 2
</select> </select>
...@@ -239,4 +239,10 @@ ...@@ -239,4 +239,10 @@
select <include refid="uav_order_column" /> from uav_order where order_no = #{orderNo} select <include refid="uav_order_column" /> from uav_order where order_no = #{orderNo}
</select> </select>
<select id="getUavOrderPayById" resultType="com.mmc.oms.entity.uav.UavOrderPayDO">
select <include refid="uav_order_pay_column"/>
from uav_order_pay
where id = #{id} and pay_type = 2
</select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论