提交 cd4ba190 作者: 张小凤

Requirements(update)

上级 14b79f8e
......@@ -1870,87 +1870,91 @@ public class RequirementsServiceImpl implements RequirementsService {
@Override
public ResultBody flyHandAgree(FlyHandAgreeVO agreeVO, HttpServletRequest request) {
RequirementsInfoDO requirementsInfoDO = requirementsDao.publisherCancelFlyers(agreeVO.getRequirementsInfoId());
ServiceSettleAccountsVO settleAccountsVO = new ServiceSettleAccountsVO();
settleAccountsVO.setRequirementsInfoId(agreeVO.getRequirementsInfoId());
RequirementsInfoDO infoDO = requirementsDao.flyHandAgree(agreeVO.getRequirementsInfoId());
RequirementsServiceDO requirementsServiceDO = requirementsDao.serviceSettleAccounts(settleAccountsVO);
RequirementsAmountUpdateDO amountUpdateDO = requirementsDao.selectAmountUpdate(agreeVO.getRequirementsInfoId());
IsNullConvertZeroUtil.checkIsNull(infoDO);
IsNullConvertZeroUtil.checkIsNull(requirementsServiceDO);
IsNullConvertZeroUtil.checkIsNull(amountUpdateDO);
ServiceSettleAccountsDO settleAccountsDO = new ServiceSettleAccountsDO(settleAccountsVO);
requirementsDao.settleAccounts(settleAccountsDO);
requirementsDao.updateScene(settleAccountsVO.getRequirementsInfoId(), 5);
requirementsDao.updateInfo(settleAccountsVO.getRequirementsInfoId(), 5);
//正常结算
RequirementsServiceDO serviceDO = requirementsDao.serviceSettleAccounts(settleAccountsVO);
RequirementsAmountUpdateDO updateAmount = requirementsDao.findUpdateAmount(agreeVO.getRequirementsInfoId());
WalletFlowVO walletFlowVO = new WalletFlowVO();
PublisherWalletFlowVO publisherWalletFlowVO = new PublisherWalletFlowVO();
FlyerWalletFlowVO flyerWalletFlowVO = new FlyerWalletFlowVO();
IsNullConvertZeroUtil.checkIsNull(publisherWalletFlowVO);
FlyerWalletFlowVO flyerWalletFlowVO = new FlyerWalletFlowVO();
IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO);
//给发布者发送
BigDecimal orderAmount = infoDO.getUpdateOrderAmount();
BigDecimal bigDecimal = new BigDecimal(0.9);
BigDecimal bigDecimal1 = orderAmount.multiply(bigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP);
publisherWalletFlowVO.setModeOfPayment(700);
publisherWalletFlowVO.setFlyerSalaryAmount(bigDecimal1);
IsNullConvertZeroUtil.checkIsNull(serviceDO);
IsNullConvertZeroUtil.checkIsNull(requirementsInfoDO);
//如果修改金额小于订单金额
if (infoDO.getOrderAmount().compareTo(infoDO.getUpdateOrderAmount()) == 1) {
BigDecimal cashAmount = infoDO.getCashAmount().add(amountUpdateDO.getCashAmount());
BigDecimal salaryAmount = infoDO.getSalaryAmount().add(amountUpdateDO.getSalaryAmount());
publisherWalletFlowVO.setCashAmount(cashAmount.negate());
publisherWalletFlowVO.setSalaryAmount(salaryAmount.negate());
publisherWalletFlowVO.setUserAccountId(infoDO.getUserAccountId());
publisherWalletFlowVO.setOperateUserAccountId(agreeVO.getUserAccountId());
} else if (infoDO.getOrderAmount().compareTo(infoDO.getUpdateOrderAmount()) == -1) {
BigDecimal cashAmount = infoDO.getCashAmount().subtract(amountUpdateDO.getReturnCashAmount());
BigDecimal salaryAmount = infoDO.getSalaryAmount().subtract(amountUpdateDO.getReturnSalaryAmount());
publisherWalletFlowVO.setCashAmount(cashAmount.negate());
publisherWalletFlowVO.setSalaryAmount(salaryAmount.negate());
publisherWalletFlowVO.setUserAccountId(settleAccountsVO.getUserAccountId());
publisherWalletFlowVO.setOperateUserAccountId(agreeVO.getUserAccountId());
if (requirementsInfoDO == null) {
return ResultBody.error("结算失败");
}
BigDecimal earnings=BigDecimal.ZERO;
//修改金额
if (updateAmount!=null){
//继续支付需要扣除金额
IsNullConvertZeroUtil.checkIsNull(updateAmount);
publisherWalletFlowVO.setCashAmount(requirementsInfoDO.getCashAmount().negate());
publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount().negate());
publisherWalletFlowVO.setUserAccountId(requirementsInfoDO.getUserAccountId());
publisherWalletFlowVO.setOperateUserAccountId(agreeVO.getUserAccountId());
publisherWalletFlowVO.setModeOfPayment(1000);
if (updateAmount.getCashAmount().compareTo(BigDecimal.ZERO)!=0||
updateAmount.getSalaryAmount().compareTo(BigDecimal.ZERO)!=0){
if ("TOP_ORDER".equals(infoDO.getOrderLevel())) {
publisherWalletFlowVO.setTopYxjAmount(infoDO.getLevelCashAmount().negate());
publisherWalletFlowVO.setTopSalaryAmount(infoDO.getLevelSalaryAmount().negate());
} else if ("RUSH_ORDER".equals(infoDO.getOrderLevel())) {
publisherWalletFlowVO.setUrgentYxjAmount(infoDO.getLevelCashAmount().negate());
publisherWalletFlowVO.setUrgentSalaryAmount(infoDO.getLevelSalaryAmount().negate());
}
ApplyRefundVO applyRefundVO = new ApplyRefundVO();
//推发布者微信钱
if (amountUpdateDO.getReturnWeChat().compareTo(BigDecimal.ZERO) != 0) {
applyRefundVO.setReason("推发布者微信金额");
applyRefundVO.setOutTradeNo(infoDO.getWechatPayOrderNumber());
BigDecimal weChat = amountUpdateDO.getWeChat();
long longValueWeChat = weChat.multiply(new BigDecimal(100)).longValue();
applyRefundVO.setRefund(longValueWeChat);
applyRefund(applyRefundVO, request.getHeader("token"));
}
BigDecimal cash = publisherWalletFlowVO.getCashAmount().negate();
BigDecimal salary = publisherWalletFlowVO.getSalaryAmount().negate();
BigDecimal add = cash.add(updateAmount.getCashAmount());
BigDecimal addSalary = salary.add(updateAmount.getSalaryAmount());
publisherWalletFlowVO.setCashAmount(add.negate());
publisherWalletFlowVO.setSalaryAmount(addSalary.negate());
//退飞手钱
flyerWalletFlowVO.setModeOfPayment(700);
flyerWalletFlowVO.setCashAmount(requirementsServiceDO.getCashAmount());
flyerWalletFlowVO.setSalaryAmount(requirementsServiceDO.getSalaryAmount());
flyerWalletFlowVO.setUserAccountId(requirementsServiceDO.getPilotCertificationUserId());
flyerWalletFlowVO.setOperateUserAccountId(settleAccountsVO.getUserAccountId());
// publisherWalletFlowVO.setRefundSalaryAmount(updateAmount.getSalaryAmount().negate());
//publisherWalletFlowVO.setRefundCashAmount(updateAmount.getCashAmount().negate());
}if(updateAmount.getReturnCashAmount().compareTo(BigDecimal.ZERO)!=0 ||
updateAmount.getReturnSalaryAmount().compareTo(BigDecimal.ZERO)!=0){
publisherWalletFlowVO.setRefundCashAmount(updateAmount.getReturnCashAmount());
publisherWalletFlowVO.setRefundSalaryAmount(updateAmount.getReturnSalaryAmount());
}
if (updateAmount.getReturnWeChat().compareTo(BigDecimal.ZERO)!=0){
ApplyRefundVO applyRefundVO = new ApplyRefundVO();
applyRefundVO.setReason("飞手确认退款");
applyRefundVO.setOutTradeNo(updateAmount.getWechatPayOrderNumber());
applyRefundVO.setRefund(updateAmount.getReturnWeChat().multiply(new BigDecimal(100)).longValue());
applyRefund(applyRefundVO, request.getHeader("token"));
}
//给飞手金额
BigDecimal updateOrderAmount = updateAmount.getUpdateOrderAmount();
if (requirementsServiceDO.getWeChat().compareTo(BigDecimal.ZERO) != 0) {
BigDecimal multiply = updateOrderAmount.multiply(new BigDecimal(0.9)).setScale(2, BigDecimal.ROUND_HALF_UP);
publisherWalletFlowVO.setFlyerSalaryAmount(multiply);
//平台收益
earnings = updateOrderAmount.multiply(new BigDecimal(0.1)).setScale(2, BigDecimal.ROUND_HALF_UP);
}
flyerWalletFlowVO.setSalaryAmount(serviceDO.getSalaryAmount());
flyerWalletFlowVO.setCashAmount(serviceDO.getCashAmount());
flyerWalletFlowVO.setUserAccountId(serviceDO.getPilotCertificationUserId());
flyerWalletFlowVO.setOperateUserAccountId(agreeVO.getUserAccountId());
flyerWalletFlowVO.setModeOfPayment(1000);
if (serviceDO.getWeChat().compareTo(BigDecimal.ZERO)!=0){
ApplyRefundVO applyRefundVO = new ApplyRefundVO();
applyRefundVO.setReason("原路退回");
applyRefundVO.setOutTradeNo(requirementsServiceDO.getWechatPayOrderNumber());
BigDecimal weChat = requirementsServiceDO.getWeChat();
BigDecimal decimal = new BigDecimal(100);
applyRefundVO.setOutTradeNo(serviceDO.getWechatPayOrderNumber());
BigDecimal weChat = serviceDO.getWeChat();
long longValueWeChat = weChat.multiply(new BigDecimal(100)).longValue();
applyRefundVO.setRefund(longValueWeChat);
applyRefund(applyRefundVO, request.getHeader("token"));
}
walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
walletFlowVO.setFlyerWalletFlowVO(flyerWalletFlowVO);
flyerCancel(walletFlowVO, request.getHeader("token"));
flyerCancelNO(walletFlowVO,request.getHeader("token"));
BigDecimal orderEarnings = requirementsInfoDO.getOrderEarnings();
BigDecimal add = orderEarnings.add(earnings);
requirementsDao.updateOrderEarnings(add,agreeVO.getRequirementsInfoId());
requirementsDao.updateInfo(agreeVO.getRequirementsInfoId(), 5);
requirementsDao.updateScene(agreeVO.getRequirementsInfoId(), 5);
return ResultBody.success();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论