Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
ims-ci-test
Commits
efa11216
提交
efa11216
authored
11月 10, 2023
作者:
恶龙咆哮
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改
上级
986e8b46
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
320 行增加
和
277 行删除
+320
-277
RequirementsDao.java
...rc/main/java/com/mmc/csf/release/dao/RequirementsDao.java
+14
-0
RequirementsServiceImpl.java
...mmc/csf/release/service/impl/RequirementsServiceImpl.java
+300
-277
RequirementsDao.xml
...rc/main/resources/mapper/requirements/RequirementsDao.xml
+6
-0
没有找到文件。
release-service/src/main/java/com/mmc/csf/release/dao/RequirementsDao.java
浏览文件 @
efa11216
...
...
@@ -297,4 +297,18 @@ public interface RequirementsDao {
* @return {@link Integer} 2 就是同意 11 是拒绝
*/
Integer
selectServiceIdByRequireIdAndUserId
(
Integer
requirementsId
,
Integer
userAccountId
);
/**
* 根绝订单id获取所需总人数
* @param requirementsId 订单id
* @return {@link Integer}
*/
Integer
selectRequirementsNum
(
Integer
requirementsId
);
/**
* 根据父订单id查询不满足状态条件的子订单数量
* @param requirementsId 父订单id
* @return {@link Integer}
*/
Integer
selectServiceFlowIdByFatherId
(
Integer
requirementsId
);
}
release-service/src/main/java/com/mmc/csf/release/service/impl/RequirementsServiceImpl.java
浏览文件 @
efa11216
...
...
@@ -732,97 +732,105 @@ public class RequirementsServiceImpl implements RequirementsService {
RequirementsServiceDO
requirementsServiceDO
=
requirementsDao
.
droneFlyerCancel
(
requirementsInfoId
,
userAccountId
);
IsNullConvertZeroUtil
.
checkIsNull
(
requirementsServiceDO
);
Integer
serviceFlowId
=
requirementsServiceDO
.
getServiceFlowId
();
if
(
serviceFlowId
!=
2
)
{
if
(
serviceFlowId
!=
10
)
{
return
ResultBody
.
error
(
ResultEnum
.
YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME
.
getResultMsg
());
}
else
{
//修改订单所需人数以及订单状态
requirementsDao
.
updateRequirementsInfoByRefusePilot
(
requirementsInfoId
);
Integer
fatherRequireId
=
requirementsDao
.
selectFatherRequireIdBySonId
(
requirementsInfoId
);
Integer
repertory
=
requirementsDao
.
selectRepertoryByRequireId
(
fatherRequireId
);
requirementsDao
.
updateRequirementsInfoRepertory
(
fatherRequireId
,
repertory
);
return
ResultBody
.
success
();
}
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.9
);
BigDecimal
preemptTotalAmount
=
requirementsServiceDO
.
getPreemptTotalAmount
();
BigDecimal
percentagePenaltyOfOrder
=
preemptTotalAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
//平台抽取百分之十
BigDecimal
earnings
=
preemptTotalAmount
.
multiply
(
new
BigDecimal
(
0.1
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
WalletFlowVO
walletFlowVO
=
new
WalletFlowVO
();
FlyerWalletFlowVO
flyerWalletFlowVO
=
new
FlyerWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
flyerWalletFlowVO
);
IsNullConvertZeroUtil
.
checkIsNull
(
walletFlowVO
);
PublisherWalletFlowVO
publisherWalletFlowVO
=
new
PublisherWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
publisherWalletFlowVO
);
IsNullConvertZeroUtil
.
checkIsNull
(
walletFlowVO
);
flyerWalletFlowVO
.
setModeOfPayment
(
600
);
flyerWalletFlowVO
.
setPercentagePenaltyOfOrder
(
percentagePenaltyOfOrder
.
negate
());
flyerWalletFlowVO
.
setUserAccountId
(
userAccountId
);
flyerWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
//如果微信里面的钱大于需要扣除的钱
/* if (requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 1 ||
requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 0) {
//
}*/
//如果微信里面的钱小于需要扣除的金额
if
(
requirementsServiceDO
.
getWeChat
().
compareTo
(
preemptTotalAmount
)
==
-
1
)
{
//优先扣除微信的钱
BigDecimal
subtract
=
preemptTotalAmount
.
subtract
(
requirementsServiceDO
.
getWeChat
());
if
(
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
subtract
)
==
-
1
)
{
BigDecimal
sub2
=
subtract
.
subtract
(
requirementsServiceDO
.
getSalaryAmount
());
flyerWalletFlowVO
.
setSalaryCashPledge
(
requirementsServiceDO
.
getSalaryAmount
().
negate
());
if
(
sub2
.
compareTo
(
requirementsServiceDO
.
getCashAmount
())
==
0
||
sub2
.
compareTo
(
requirementsServiceDO
.
getCashAmount
())
==
-
1
)
{
//云享金扣除违约多少
flyerWalletFlowVO
.
setYxjCashPledge
(
sub2
.
negate
());
}
}
else
if
(
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
subtract
)
==
1
||
requirementsServiceDO
.
getSalaryAmount
().
compareTo
(
subtract
)
==
0
)
{
flyerWalletFlowVO
.
setSalaryCashPledge
(
subtract
.
negate
());
}
}
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
//给发布者退钱
publisherWalletFlowVO
.
setUserAccountId
(
infoDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setModeOfPayment
(
600
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setSalaryAmount
(
infoDO
.
getSalaryAmount
());
publisherWalletFlowVO
.
setCashAmount
(
infoDO
.
getCashAmount
());
//退云享金和佣金
if
(
infoDO
.
getOrderLevel
().
equals
(
"RUSH_ORDER"
))
{
publisherWalletFlowVO
.
setUrgentYxjAmount
(
infoDO
.
getLevelCashAmount
());
publisherWalletFlowVO
.
setUrgentSalaryAmount
(
infoDO
.
getLevelSalaryAmount
());
}
if
(
infoDO
.
getOrderLevel
().
equals
(
"TOP_ORDER"
))
{
publisherWalletFlowVO
.
setTopYxjAmount
(
infoDO
.
getLevelCashAmount
());
publisherWalletFlowVO
.
setTopSalaryAmount
(
infoDO
.
getLevelSalaryAmount
());
}
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
//给发布者微信退钱
String
wechatPayOrderNumber
=
infoDO
.
getWechatPayOrderNumber
();
if
(
wechatPayOrderNumber
!=
null
)
{
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
BigDecimal
weChat
=
infoDO
.
getWeChat
();
BigDecimal
levelWeChatAmount
=
infoDO
.
getLevelWeChatAmount
();
BigDecimal
add
=
weChat
.
add
(
levelWeChatAmount
);
long
longValue
=
add
.
multiply
(
new
BigDecimal
(
100
)).
longValue
();
applyRefundVO
.
setRefund
(
longValue
);
applyRefundVO
.
setReason
(
"退回微信支付金额"
);
applyRefundVO
.
setOutTradeNo
(
infoDO
.
getWechatPayOrderNumber
());
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
IsNullConvertZeroUtil
.
checkIsNull
(
infoDO
);
//任务佣金
requirementsServiceDO
.
setPercentagePenaltyOfOrder
(
percentagePenaltyOfOrder
);
//飞手单方面取消将20之二十退回到发布者佣金里面
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
requirementsServiceDO
.
setOrderEarnings
(
new
BigDecimal
(
0
));
BigDecimal
orderEarnings
=
requirementsServiceDO
.
getOrderEarnings
();
BigDecimal
add
=
orderEarnings
.
add
(
earnings
);
requirementsServiceDO
.
setOrderEarnings
(
add
);
requirementsServiceDO
.
setRequirementsInfoId
(
requirementsServiceDO
.
getId
());
requirementsDao
.
updateAmounts
(
requirementsServiceDO
);
// requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
requirementsDao
.
updatePlatformOrderEarnings
(
earnings
,
requirementsInfoId
,
userAccountId
);
requirementsDao
.
updateScene
(
requirementsInfoId
,
7
);
requirementsDao
.
updateInfo
(
requirementsInfoId
,
7
);
requirementsDao
.
updateFlow
(
requirementsInfoId
,
7
);
this
.
sendMsgPublishInfoAuth
(
requirementsServiceDO
);
return
ResultBody
.
success
(
ResultEnum
.
PAYMENT_SUCCESS
.
getResultMsg
());
// BigDecimal bigDecimal = new BigDecimal(0.9);
// BigDecimal preemptTotalAmount = requirementsServiceDO.getPreemptTotalAmount();
// BigDecimal percentagePenaltyOfOrder = preemptTotalAmount.multiply(bigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP);
// //平台抽取百分之十
// BigDecimal earnings = preemptTotalAmount.multiply(new BigDecimal(0.1)).setScale(2, BigDecimal.ROUND_HALF_UP);
// WalletFlowVO walletFlowVO = new WalletFlowVO();
// FlyerWalletFlowVO flyerWalletFlowVO = new FlyerWalletFlowVO();
// IsNullConvertZeroUtil.checkIsNull(flyerWalletFlowVO);
// IsNullConvertZeroUtil.checkIsNull(walletFlowVO);
// PublisherWalletFlowVO publisherWalletFlowVO = new PublisherWalletFlowVO();
// IsNullConvertZeroUtil.checkIsNull(publisherWalletFlowVO);
// IsNullConvertZeroUtil.checkIsNull(walletFlowVO);
// flyerWalletFlowVO.setModeOfPayment(600);
// flyerWalletFlowVO.setPercentagePenaltyOfOrder(percentagePenaltyOfOrder.negate());
// flyerWalletFlowVO.setUserAccountId(userAccountId);
// flyerWalletFlowVO.setOperateUserAccountId(userAccountId);
// //如果微信里面的钱大于需要扣除的钱
// /* if (requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 1 ||
// requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == 0) {
// //
// }*/
// //如果微信里面的钱小于需要扣除的金额
// if (requirementsServiceDO.getWeChat().compareTo(preemptTotalAmount) == -1) {
// //优先扣除微信的钱
// BigDecimal subtract = preemptTotalAmount.subtract(requirementsServiceDO.getWeChat());
// if (requirementsServiceDO.getSalaryAmount().compareTo(subtract) == -1) {
// BigDecimal sub2 = subtract.subtract(requirementsServiceDO.getSalaryAmount());
// flyerWalletFlowVO.setSalaryCashPledge(requirementsServiceDO.getSalaryAmount().negate());
// if (sub2.compareTo(requirementsServiceDO.getCashAmount()) == 0 ||
// sub2.compareTo(requirementsServiceDO.getCashAmount()) == -1) {
// //云享金扣除违约多少
// flyerWalletFlowVO.setYxjCashPledge(sub2.negate());
// }
// } else if (requirementsServiceDO.getSalaryAmount().compareTo(subtract) == 1 ||
// requirementsServiceDO.getSalaryAmount().compareTo(subtract) == 0) {
// flyerWalletFlowVO.setSalaryCashPledge(subtract.negate());
// }
// }
// walletFlowVO.setFlyerWalletFlowVO(flyerWalletFlowVO);
// //给发布者退钱
// publisherWalletFlowVO.setUserAccountId(infoDO.getUserAccountId());
// publisherWalletFlowVO.setModeOfPayment(600);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setSalaryAmount(infoDO.getSalaryAmount());
// publisherWalletFlowVO.setCashAmount(infoDO.getCashAmount());
// //退云享金和佣金
// if (infoDO.getOrderLevel().equals("RUSH_ORDER")) {
// publisherWalletFlowVO.setUrgentYxjAmount(infoDO.getLevelCashAmount());
// publisherWalletFlowVO.setUrgentSalaryAmount(infoDO.getLevelSalaryAmount());
// }
// if (infoDO.getOrderLevel().equals("TOP_ORDER")) {
// publisherWalletFlowVO.setTopYxjAmount(infoDO.getLevelCashAmount());
// publisherWalletFlowVO.setTopSalaryAmount(infoDO.getLevelSalaryAmount());
// }
//
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// //给发布者微信退钱
// String wechatPayOrderNumber = infoDO.getWechatPayOrderNumber();
// if (wechatPayOrderNumber != null) {
// ApplyRefundVO applyRefundVO = new ApplyRefundVO();
// BigDecimal weChat = infoDO.getWeChat();
// BigDecimal levelWeChatAmount = infoDO.getLevelWeChatAmount();
// BigDecimal add = weChat.add(levelWeChatAmount);
// long longValue = add.multiply(new BigDecimal(100)).longValue();
// applyRefundVO.setRefund(longValue);
// applyRefundVO.setReason("退回微信支付金额");
// applyRefundVO.setOutTradeNo(infoDO.getWechatPayOrderNumber());
// applyRefund(applyRefundVO, request.getHeader("token"));
// }
// IsNullConvertZeroUtil.checkIsNull(infoDO);
//
// //任务佣金
// requirementsServiceDO.setPercentagePenaltyOfOrder(percentagePenaltyOfOrder);
// //飞手单方面取消将20之二十退回到发布者佣金里面
// flyerCancel(walletFlowVO, request.getHeader("token"));
// requirementsServiceDO.setOrderEarnings(new BigDecimal(0));
// BigDecimal orderEarnings = requirementsServiceDO.getOrderEarnings();
// BigDecimal add = orderEarnings.add(earnings);
// requirementsServiceDO.setOrderEarnings(add);
// requirementsServiceDO.setRequirementsInfoId(requirementsServiceDO.getId());
// requirementsDao.updateAmounts(requirementsServiceDO);
// // requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
// requirementsDao.updatePlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
// requirementsDao.updateScene(requirementsInfoId, 7);
// requirementsDao.updateInfo(requirementsInfoId, 7);
// requirementsDao.updateFlow(requirementsInfoId, 7);
// this.sendMsgPublishInfoAuth(requirementsServiceDO);
// return ResultBody.success(ResultEnum.PAYMENT_SUCCESS.getResultMsg());
}
...
...
@@ -1023,7 +1031,20 @@ public class RequirementsServiceImpl implements RequirementsService {
FlyerWalletFlowVO
flyerWalletFlowVO
=
new
FlyerWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
publisherWalletFlowVO
);
IsNullConvertZeroUtil
.
checkIsNull
(
flyerWalletFlowVO
);
if
(
serviceFlowId
==
1
)
{
Boolean
condition1
=
false
;
Boolean
condition2
=
false
;
//如果是多人订单 需要判断每一个子订单是否是在 1,10 状态
if
(
requirementsDao
.
selectRequirementsNum
(
requirementsInfoId
)
>
1
)
{
if
(
requirementsDao
.
selectServiceFlowIdByFatherId
(
requirementsInfoId
)
==
0
)
{
condition2
=
true
;
condition1
=
true
;
}
}
else
{
condition1
=
serviceFlowId
==
1
;
condition2
=
serviceFlowId
==
10
;
}
if
(
condition1
||
condition2
)
{
//飞手无责取消 将全部退回 不包含加急或者置顶
//支付
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
...
...
@@ -1059,195 +1080,197 @@ public class RequirementsServiceImpl implements RequirementsService {
requirementsDao
.
updateInfo
(
requirementsInfoId
,
7
);
requirementsDao
.
updateFlow
(
requirementsInfoId
,
7
);
return
ResultBody
.
success
(
ResultEnum
.
THE_AMOUNT_OF_THE_MISSION_WILL_BE_RETURNED
.
getResultMsg
());
}
if
(
serviceFlowId
!=
2
&&
serviceFlowId
!=
1
)
{
}
else
{
return
ResultBody
.
error
(
ResultEnum
.
YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME
.
getResultMsg
());
}
//单方面取消订单并且飞手已经抢单
if
(
serviceFlowId
==
2
)
{
BigDecimal
orderAmount
=
requirementsInfoDO
.
getOrderAmount
();
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.7
);
//剩余金额
BigDecimal
residueOrderAmount
=
orderAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
//先退微信 再退任务佣金 最后退云享金
BigDecimal
weChat
=
requirementsInfoDO
.
getWeChat
();
//微信需要退款多少金额
//微信金额大于扣除之后的金额
BigDecimal
refundCashAmount
=
new
BigDecimal
(
0
);
BigDecimal
refundSalaryAmount
=
new
BigDecimal
(
0
);
BigDecimal
refundWeChat
=
new
BigDecimal
(
0
);
//飞手获得的金额
BigDecimal
receiveSalaryAmount
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.2
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
freeze
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.3
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
//微信支付金额大于需要退款金额
if
(
weChat
.
compareTo
(
residueOrderAmount
)
==
1
)
{
//云享金扣除多少
// publisherWalletFlowVO.setCashAmount(requirementsInfoDO.getCashAmount().negate());
//佣金扣除多少
// publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount().negate());
//违约云享金多少
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
//违约佣金
publisherWalletFlowVO
.
setSalaryCashPledge
(
requirementsInfoDO
.
getSalaryAmount
().
negate
());
//用户退百分之七十的费用
refundWeChat
=
residueOrderAmount
;
BigDecimal
multiply
=
refundWeChat
.
multiply
(
new
BigDecimal
(
100
));
Long
longWeChat
=
multiply
.
longValue
();
applyRefundVO
.
setRefund
(
longWeChat
);
applyRefundVO
.
setReason
(
"扣除飞手百分之三十的费用"
);
applyRefundVO
.
setOutTradeNo
(
requirementsInfoDO
.
getWechatPayOrderNumber
());
//退款到微信
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
//微信支付金额小于需要退款金额
if
(
weChat
.
compareTo
(
residueOrderAmount
)
==
-
1
||
weChat
.
compareTo
(
refundCashAmount
)
==
0
)
{
//优先扣除微信里面的钱
BigDecimal
returnToWechat
=
residueOrderAmount
.
subtract
(
requirementsInfoDO
.
getWeChat
());
BigDecimal
residueAmount
=
new
BigDecimal
(
0
);
if
(
returnToWechat
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
1
)
{
//退回佣金
residueAmount
=
returnToWechat
.
subtract
(
requirementsInfoDO
.
getSalaryAmount
());
publisherWalletFlowVO
.
setSalaryAmount
(
requirementsInfoDO
.
getSalaryAmount
());
publisherWalletFlowVO
.
setCashAmount
(
residueAmount
);
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
subtract
(
residueAmount
).
negate
());
}
if
(
returnToWechat
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
0
)
{
publisherWalletFlowVO
.
setSalaryAmount
(
returnToWechat
);
}
//如果退回的佣金小于支付的佣金
if
(
returnToWechat
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
-
1
)
{
residueAmount
=
requirementsInfoDO
.
getSalaryAmount
().
subtract
(
returnToWechat
);
//one
publisherWalletFlowVO
.
setSalaryAmount
(
requirementsInfoDO
.
getSalaryAmount
().
subtract
(
residueAmount
));
publisherWalletFlowVO
.
setSalaryCashPledge
(
residueAmount
.
negate
());
//修改2
//修改三
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
)
{
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
}
}
//如果退回佣金等于0
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
}
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
-
1
)
{
publisherWalletFlowVO
.
setUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setModeOfPayment
(
300
);
publisherWalletFlowVO
.
setSalaryAmount
(
residueAmount
.
negate
());
System
.
out
.
println
(
residueAmount
);
BigDecimal
subtract
=
requirementsInfoDO
.
getSalaryAmount
().
subtract
(
residueAmount
.
negate
());
publisherWalletFlowVO
.
setSalaryCashPledge
(
subtract
.
negate
());
publisherWalletFlowVO
.
setYxjCashPledge
(
requirementsInfoDO
.
getCashAmount
().
negate
());
// BigDecimal subtract = requirementsInfoDO.getSalaryAmount().subtract(residueAmount.negate());
// publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
//flyerCancel(walletFlowVO, request.getHeader("token"));
//退回的佣金大于0
}
else
if
(
residueAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
)
{
// publisherWalletFlowVO.setCashAmount(residueAmount);
publisherWalletFlowVO
.
setUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setModeOfPayment
(
300
);
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
//退回任务佣金
//flyerCancel(walletFlowVO, request.getHeader("token"));
}
BigDecimal
weChatAmount
=
requirementsInfoDO
.
getWeChat
();
long
longWeChat
=
weChatAmount
.
multiply
(
new
BigDecimal
(
100
)).
longValue
();
applyRefundVO
.
setRefund
(
longWeChat
);
applyRefundVO
.
setReason
(
"退回方式——微信佣金云享金"
);
applyRefundVO
.
setOutTradeNo
(
requirementsInfoDO
.
getWechatPayOrderNumber
());
applyRefund
(
applyRefundVO
,
request
.
getHeader
(
"token"
));
}
//平台抽取百分之十
//发布者取消
BigDecimal
earnings
=
orderAmount
.
multiply
(
new
BigDecimal
(
0.1
)).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
BigDecimal
orderEarnings
=
requirementsInfoDO
.
getOrderEarnings
();
BigDecimal
add
=
orderEarnings
.
add
(
earnings
);
requirementsInfoDO
.
setOrderEarnings
(
add
);
requirementsDao
.
updateRequirementsAmount
(
requirementsInfoDO
);
// requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
requirementsDao
.
updatePlatformOrderEarnings
(
earnings
,
requirementsInfoId
,
userAccountId
);
if
(
serviceDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
serviceDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
||
serviceDO
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
System
.
out
.
println
(
freeze
);
//优先扣除微信
BigDecimal
weChat1
=
requirementsInfoDO
.
getWeChat
();
//如果微信扣除的金额小于飞手获得的钱
if
(
weChat1
.
compareTo
(
freeze
)
==
-
1
)
{
//还需要扣除多少
BigDecimal
subtract
=
freeze
.
subtract
(
weChat1
);
if
(
subtract
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
1
)
{
publisherWalletFlowVO
.
setSalaryCashPledge
(
requirementsInfoDO
.
getSalaryAmount
().
negate
());
BigDecimal
subtract1
=
subtract
.
subtract
(
requirementsInfoDO
.
getSalaryAmount
());
if
(
subtract1
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
||
subtract1
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
)
{
publisherWalletFlowVO
.
setYxjCashPledge
(
subtract1
.
negate
());
}
}
if
(
subtract
.
compareTo
(
requirementsInfoDO
.
getSalaryAmount
())
==
-
1
)
{
//update
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
publisherWalletFlowVO
.
setSalaryCashPledge
(
subtract
.
negate
());
}
if
(
requirementsInfoDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
BigDecimal
subtract1
=
requirementsInfoDO
.
getCashAmount
().
subtract
(
publisherWalletFlowVO
.
getCashAmount
());
publisherWalletFlowVO
.
setYxjCashPledge
(
subtract1
.
negate
());
}
//publisherWalletFlowVO.setYxjCashPledge(subtract.negate());
}
}
//飞手应该获得的金额
publisherWalletFlowVO
.
setUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
publisherWalletFlowVO
.
setModeOfPayment
(
300
);
publisherWalletFlowVO
.
setPercentagePenaltyOfOrder
(
receiveSalaryAmount
.
negate
());
flyerWalletFlowVO
.
setCashAmount
(
serviceDO
.
getCashAmount
());
flyerWalletFlowVO
.
setSalaryAmount
(
serviceDO
.
getSalaryAmount
());
flyerWalletFlowVO
.
setUserAccountId
(
requirementsInfoDO
.
getPilotCertificationUserId
());
flyerWalletFlowVO
.
setOperateUserAccountId
(
userAccountId
);
flyerWalletFlowVO
.
setModeOfPayment
(
300
);
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
String
s
=
String
.
valueOf
(
walletFlowVO
);
log
.
info
(
s
);
flyerCancel
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
}
//飞手全额退款
if
(
serviceDO
.
getWechatPayOrderNumber
()
!=
null
)
{
ApplyRefundVO
arv
=
new
ApplyRefundVO
();
arv
.
setReason
(
"全额退款"
);
arv
.
setRefund
(
serviceDO
.
getWeChat
().
multiply
(
new
BigDecimal
(
100
)).
longValue
());
arv
.
setOutTradeNo
(
serviceDO
.
getWechatPayOrderNumber
());
applyRefund
(
arv
,
request
.
getHeader
(
"token"
));
}
requirementsInfoDO
.
setReceiveSalaryAmount
(
receiveSalaryAmount
);
//给飞手发送短信
this
.
sendMsgFlyerInfoAuth
(
requirementsInfoDO
);
requirementsDao
.
updateInfo
(
requirementsInfoId
,
7
);
requirementsDao
.
updateFlow
(
requirementsInfoId
,
7
);
return
ResultBody
.
success
(
ResultEnum
.
REFUND_PERCENTAGE
.
getResultMsg
());
}
return
ResultBody
.
success
();
// if (serviceFlowId != 2 && serviceFlowId != 1) {
// return ResultBody.error(ResultEnum.YOU_CANNOT_CANCEL_THE_ORDER_AT_THIS_TIME.getResultMsg());
// }
// //单方面取消订单并且飞手已经抢单
// if (serviceFlowId == 2) {
// BigDecimal orderAmount = requirementsInfoDO.getOrderAmount();
// BigDecimal bigDecimal = new BigDecimal(0.7);
// //剩余金额
// BigDecimal residueOrderAmount = orderAmount.multiply(bigDecimal).setScale(2, BigDecimal.ROUND_HALF_UP);
// //先退微信 再退任务佣金 最后退云享金
// BigDecimal weChat = requirementsInfoDO.getWeChat();
// //微信需要退款多少金额
// //微信金额大于扣除之后的金额
// BigDecimal refundCashAmount = new BigDecimal(0);
// BigDecimal refundSalaryAmount = new BigDecimal(0);
// BigDecimal refundWeChat = new BigDecimal(0);
// //飞手获得的金额
// BigDecimal receiveSalaryAmount = orderAmount.multiply(new BigDecimal(0.2)).setScale(2, BigDecimal.ROUND_HALF_UP);
// BigDecimal freeze = orderAmount.multiply(new BigDecimal(0.3)).setScale(2, BigDecimal.ROUND_HALF_UP);
// //微信支付金额大于需要退款金额
// if (weChat.compareTo(residueOrderAmount) == 1) {
//
// //云享金扣除多少
// // publisherWalletFlowVO.setCashAmount(requirementsInfoDO.getCashAmount().negate());
// //佣金扣除多少
// // publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount().negate());
// //违约云享金多少
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
// //违约佣金
// publisherWalletFlowVO.setSalaryCashPledge(requirementsInfoDO.getSalaryAmount().negate());
//
// //用户退百分之七十的费用
// refundWeChat = residueOrderAmount;
// BigDecimal multiply = refundWeChat.multiply(new BigDecimal(100));
// Long longWeChat = multiply.longValue();
// applyRefundVO.setRefund(longWeChat);
// applyRefundVO.setReason("扣除飞手百分之三十的费用");
// applyRefundVO.setOutTradeNo(requirementsInfoDO.getWechatPayOrderNumber());
// //退款到微信
// applyRefund(applyRefundVO, request.getHeader("token"));
// }
// //微信支付金额小于需要退款金额
// if (weChat.compareTo(residueOrderAmount) == -1 ||
// weChat.compareTo(refundCashAmount) == 0) {
// //优先扣除微信里面的钱
// BigDecimal returnToWechat = residueOrderAmount.subtract(requirementsInfoDO.getWeChat());
//
// BigDecimal residueAmount = new BigDecimal(0);
// if (returnToWechat.compareTo(requirementsInfoDO.getSalaryAmount()) == 1) {
// //退回佣金
// residueAmount = returnToWechat.subtract(requirementsInfoDO.getSalaryAmount());
// publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount());
// publisherWalletFlowVO.setCashAmount(residueAmount);
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().subtract(residueAmount).negate());
//
// }
// if (returnToWechat.compareTo(requirementsInfoDO.getSalaryAmount()) == 0) {
// publisherWalletFlowVO.setSalaryAmount(returnToWechat);
// }
//
// //如果退回的佣金小于支付的佣金
// if (returnToWechat.compareTo(requirementsInfoDO.getSalaryAmount()) == -1) {
// residueAmount = requirementsInfoDO.getSalaryAmount().subtract(returnToWechat);
// //one
// publisherWalletFlowVO.setSalaryAmount(requirementsInfoDO.getSalaryAmount().subtract(residueAmount));
// publisherWalletFlowVO.setSalaryCashPledge(residueAmount.negate());
// //修改2
// //修改三
//
// if (residueAmount.compareTo(BigDecimal.ZERO) == 1) {
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
// }
// }
// //如果退回佣金等于0
// if (residueAmount.compareTo(BigDecimal.ZERO) == 0) {
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
// }
//
// if (residueAmount.compareTo(BigDecimal.ZERO) == -1) {
// publisherWalletFlowVO.setUserAccountId(userAccountId);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setModeOfPayment(300);
// publisherWalletFlowVO.setSalaryAmount(residueAmount.negate());
// System.out.println(residueAmount);
// BigDecimal subtract = requirementsInfoDO.getSalaryAmount().subtract(residueAmount.negate());
// publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
// publisherWalletFlowVO.setYxjCashPledge(requirementsInfoDO.getCashAmount().negate());
//
// // BigDecimal subtract = requirementsInfoDO.getSalaryAmount().subtract(residueAmount.negate());
// // publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
//
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// //flyerCancel(walletFlowVO, request.getHeader("token"));
// //退回的佣金大于0
// } else if (residueAmount.compareTo(BigDecimal.ZERO) == 1) {
// // publisherWalletFlowVO.setCashAmount(residueAmount);
// publisherWalletFlowVO.setUserAccountId(userAccountId);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setModeOfPayment(300);
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// //退回任务佣金
// //flyerCancel(walletFlowVO, request.getHeader("token"));
//
// }
// BigDecimal weChatAmount = requirementsInfoDO.getWeChat();
// long longWeChat = weChatAmount.multiply(new BigDecimal(100)).longValue();
// applyRefundVO.setRefund(longWeChat);
// applyRefundVO.setReason("退回方式——微信佣金云享金");
// applyRefundVO.setOutTradeNo(requirementsInfoDO.getWechatPayOrderNumber());
// applyRefund(applyRefundVO, request.getHeader("token"));
// }
//
// //平台抽取百分之十
// //发布者取消
// BigDecimal earnings = orderAmount.multiply(new BigDecimal(0.1)).setScale(2, BigDecimal.ROUND_HALF_UP);
// BigDecimal orderEarnings = requirementsInfoDO.getOrderEarnings();
// BigDecimal add = orderEarnings.add(earnings);
// requirementsInfoDO.setOrderEarnings(add);
// requirementsDao.updateRequirementsAmount(requirementsInfoDO);
// // requirementsDao.insertPlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
// requirementsDao.updatePlatformOrderEarnings(earnings, requirementsInfoId, userAccountId);
//
//
// if (serviceDO.getCashAmount().compareTo(BigDecimal.ZERO) != 0 ||
// serviceDO.getSalaryAmount().compareTo(BigDecimal.ZERO) != 0 ||
// serviceDO.getWeChat().compareTo(BigDecimal.ZERO) != 0) {
// System.out.println(freeze);
// //优先扣除微信
// BigDecimal weChat1 = requirementsInfoDO.getWeChat();
// //如果微信扣除的金额小于飞手获得的钱
// if (weChat1.compareTo(freeze) == -1) {
// //还需要扣除多少
// BigDecimal subtract = freeze.subtract(weChat1);
// if (subtract.compareTo(requirementsInfoDO.getSalaryAmount()) == 1) {
// publisherWalletFlowVO.setSalaryCashPledge(requirementsInfoDO.getSalaryAmount().negate());
//
// BigDecimal subtract1 = subtract.subtract(requirementsInfoDO.getSalaryAmount());
// if (subtract1.compareTo(BigDecimal.ZERO) == 0 || subtract1.compareTo(BigDecimal.ZERO) == 1) {
// publisherWalletFlowVO.setYxjCashPledge(subtract1.negate());
// }
// }
// if (subtract.compareTo(requirementsInfoDO.getSalaryAmount()) == -1) {
// //update
// if (requirementsInfoDO.getCashAmount().compareTo(BigDecimal.ZERO) == 0) {
// publisherWalletFlowVO.setSalaryCashPledge(subtract.negate());
// }
// if (requirementsInfoDO.getCashAmount().compareTo(BigDecimal.ZERO) != 0) {
// BigDecimal subtract1 = requirementsInfoDO.getCashAmount().subtract(publisherWalletFlowVO.getCashAmount());
// publisherWalletFlowVO.setYxjCashPledge(subtract1.negate());
// }
// //publisherWalletFlowVO.setYxjCashPledge(subtract.negate());
// }
//
// }
// //飞手应该获得的金额
// publisherWalletFlowVO.setUserAccountId(userAccountId);
// publisherWalletFlowVO.setOperateUserAccountId(userAccountId);
// publisherWalletFlowVO.setModeOfPayment(300);
// publisherWalletFlowVO.setPercentagePenaltyOfOrder(receiveSalaryAmount.negate());
// flyerWalletFlowVO.setCashAmount(serviceDO.getCashAmount());
// flyerWalletFlowVO.setSalaryAmount(serviceDO.getSalaryAmount());
// flyerWalletFlowVO.setUserAccountId(requirementsInfoDO.getPilotCertificationUserId());
// flyerWalletFlowVO.setOperateUserAccountId(userAccountId);
// flyerWalletFlowVO.setModeOfPayment(300);
// walletFlowVO.setPublisherWalletFlowVO(publisherWalletFlowVO);
// walletFlowVO.setFlyerWalletFlowVO(flyerWalletFlowVO);
// String s = String.valueOf(walletFlowVO);
// log.info(s);
// flyerCancel(walletFlowVO, request.getHeader("token"));
// }
// //飞手全额退款
// if (serviceDO.getWechatPayOrderNumber() != null) {
// ApplyRefundVO arv = new ApplyRefundVO();
// arv.setReason("全额退款");
// arv.setRefund(serviceDO.getWeChat().multiply(new BigDecimal(100)).longValue());
// arv.setOutTradeNo(serviceDO.getWechatPayOrderNumber());
// applyRefund(arv, request.getHeader("token"));
// }
//
// requirementsInfoDO.setReceiveSalaryAmount(receiveSalaryAmount);
// //给飞手发送短信
// this.sendMsgFlyerInfoAuth(requirementsInfoDO);
// requirementsDao.updateInfo(requirementsInfoId, 7);
// requirementsDao.updateFlow(requirementsInfoId, 7);
// return ResultBody.success(ResultEnum.REFUND_PERCENTAGE.getResultMsg());
// }
//
// return ResultBody.success();
}
/**
...
...
@@ -2898,7 +2921,7 @@ public class RequirementsServiceImpl implements RequirementsService {
BigDecimal
cashAndSalary
=
cashAmt
.
add
(
salaryAmt
);
//需要支付的总金额(任务佣金)
BigDecimal
totalAmount
=
requirementsInfoDO
.
getOrderAmount
();
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.
3
);
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.
0
);
totalAmount
=
totalAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
grabTheOrderVO
.
getWechatPayOrderNumber
()
+
grabTheOrderVO
.
getUserAccountId
());
GetOrderNumberDTO
orderNumberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
...
...
release-service/src/main/resources/mapper/requirements/RequirementsDao.xml
浏览文件 @
efa11216
...
...
@@ -1686,4 +1686,10 @@
select service_flow_id from agree_pilot_order
where require_info_id = #{requirementsId} and pilot_certification_user_id = #{userAccountId}
</select>
<select
id=
"selectRequirementsNum"
resultType=
"java.lang.Integer"
>
select count(id) from requirements_info where id =#{requirementsId}
</select>
<select
id=
"selectServiceFlowIdByFatherId"
resultType=
"java.lang.Integer"
>
select count(id) from requirements_info where father_require_id = #{requirementsId} and service_flow_id not in (1,10)
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论