Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
ims
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
ims
Commits
dfe1bd40
提交
dfe1bd40
authored
9月 09, 2023
作者:
张小凤
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Requ(update)
上级
48ffea81
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
110 行增加
和
9 行删除
+110
-9
RedisKeyExpirationListener.java
...ease/controller/countDown/RedisKeyExpirationListener.java
+27
-3
RequirementsDao.java
...rc/main/java/com/mmc/csf/release/dao/RequirementsDao.java
+6
-0
RequirementsServiceImpl.java
...mmc/csf/release/service/impl/RequirementsServiceImpl.java
+33
-6
RequirementsDao.xml
...rc/main/resources/mapper/requirements/RequirementsDao.xml
+44
-0
没有找到文件。
release-service/src/main/java/com/mmc/csf/release/controller/countDown/RedisKeyExpirationListener.java
浏览文件 @
dfe1bd40
...
...
@@ -6,6 +6,7 @@ import com.mmc.csf.common.util.web.ResultEnum;
import
com.mmc.csf.config.IsNullConvertZeroUtil
;
import
com.mmc.csf.infomation.vo.*
;
import
com.mmc.csf.release.dao.RequirementsDao
;
import
com.mmc.csf.release.entity.requirements.RequirementsAmountUpdateDO
;
import
com.mmc.csf.release.entity.requirements.RequirementsInfoDO
;
import
com.mmc.csf.release.entity.requirements.RequirementsServiceDO
;
import
com.mmc.csf.release.entity.requirements.ServiceSettleAccountsDO
;
...
...
@@ -54,6 +55,11 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
super
(
listenerContainer
);
}
/**
* 飞手未确认按照钱的计算
* @param message
* @param pattern
*/
@Override
public
void
onMessage
(
Message
message
,
byte
[]
pattern
)
{
// 获取失效的key
...
...
@@ -78,7 +84,9 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
ServiceSettleAccountsVO
settleAccountsVO
=
new
ServiceSettleAccountsVO
();
settleAccountsVO
.
setRequirementsInfoId
(
infoDO
.
getId
());
// RequirementsInfoDO infoDO = requirementsDao.selectSettleAccounts(settleAccountsVO);
RequirementsInfoDO
requirementsInfoDO
=
requirementsDao
.
publisherCancel
(
infoDO
.
getId
(),
infoDO
.
getUserAccountId
());
RequirementsServiceDO
requirementsServiceDO
=
requirementsDao
.
serviceSettleAccounts
(
settleAccountsVO
);
RequirementsAmountUpdateDO
updateAmount
=
requirementsDao
.
findUpdateAmount
(
infoDO
.
getId
());
IsNullConvertZeroUtil
.
checkIsNull
(
infoDO
);
IsNullConvertZeroUtil
.
checkIsNull
(
requirementsServiceDO
);
...
...
@@ -97,11 +105,25 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
BigDecimal
orderAmount
=
infoDO
.
getOrderAmount
();
BigDecimal
bigDecimal
=
new
BigDecimal
(
0.9
);
BigDecimal
bigDecimal1
=
orderAmount
.
multiply
(
bigDecimal
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
publisherWalletFlowVO
.
setModeOfPayment
(
7
00
);
publisherWalletFlowVO
.
setModeOfPayment
(
9
00
);
publisherWalletFlowVO
.
setFlyerSalaryAmount
(
bigDecimal1
);
publisherWalletFlowVO
.
setCashAmount
(
infoDO
.
getCashAmount
().
negate
());
publisherWalletFlowVO
.
setSalaryAmount
(
infoDO
.
getSalaryAmount
().
negate
());
//需要退回后面支付的金额
if
(
updateAmount
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
||
updateAmount
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
){
publisherWalletFlowVO
.
setRefundCashAmount
(
updateAmount
.
getCashAmount
());
publisherWalletFlowVO
.
setRefundSalaryAmount
(
updateAmount
.
getSalaryAmount
());
}
//推发布者微信支付的金额
if
(
updateAmount
.
getWeChat
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
){
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
applyRefundVO
.
setReason
(
"飞手未确认退款"
);
applyRefundVO
.
setRefund
(
updateAmount
.
getWeChat
().
multiply
(
new
BigDecimal
(
100
)).
longValue
());
applyRefundVO
.
setOutTradeNo
(
updateAmount
.
getWechatPayOrderNumber
());
applyRefund
(
applyRefundVO
,
""
);
}
publisherWalletFlowVO
.
setUserAccountId
(
infoDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setOperateUserAccountId
(
0
);
...
...
@@ -114,7 +136,7 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
}
//退飞手钱
flyerWalletFlowVO
.
setModeOfPayment
(
7
00
);
flyerWalletFlowVO
.
setModeOfPayment
(
9
00
);
flyerWalletFlowVO
.
setCashAmount
(
requirementsServiceDO
.
getCashAmount
());
flyerWalletFlowVO
.
setSalaryAmount
(
requirementsServiceDO
.
getSalaryAmount
());
flyerWalletFlowVO
.
setUserAccountId
(
requirementsServiceDO
.
getPilotCertificationUserId
());
...
...
@@ -131,6 +153,8 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
applyRefundVO
.
setRefund
(
longValueWeChat
);
applyRefund
(
applyRefundVO
,
""
);
}
//推发布者微信账户
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
walletFlowVO
.
setFlyerWalletFlowVO
(
flyerWalletFlowVO
);
flyerCancel
(
walletFlowVO
,
""
);
...
...
release-service/src/main/java/com/mmc/csf/release/dao/RequirementsDao.java
浏览文件 @
dfe1bd40
...
...
@@ -195,4 +195,10 @@ public interface RequirementsDao {
RequirementsServiceDO
serviceReq
(
Integer
requirementsInfoId
);
void
updateRepertory
(
Integer
requirementsInfoId
);
int
findAmountUpdate
(
Integer
requirementsInfoId
);
void
updateRequirementsAmountUpdate
(
RequirementsAmountUpdateDO
amountUpdateDO
);
RequirementsAmountUpdateDO
findUpdateAmount
(
Integer
requirementsInfoId
);
}
release-service/src/main/java/com/mmc/csf/release/service/impl/RequirementsServiceImpl.java
浏览文件 @
dfe1bd40
...
...
@@ -1332,6 +1332,8 @@ public class RequirementsServiceImpl implements RequirementsService {
if
(
requirementsInfoDO
==
null
)
{
return
ResultBody
.
error
(
"只能修改自己发布的服务需求"
);
}
String
json
=
stringRedisTemplate
.
opsForValue
().
get
(
amountVO
.
getWechatPayOrderNumber
()
+
amountVO
.
getUserAccountId
());
GetOrderNumberDTO
numberDTO
=
JSONObject
.
parseObject
(
json
,
GetOrderNumberDTO
.
class
);
//用户钱包信息接口
...
...
@@ -1354,6 +1356,7 @@ public class RequirementsServiceImpl implements RequirementsService {
BigDecimal
tempTotalAmount
=
orderAmount
;
RequirementsAmountUpdateDO
amountUpdateDO
=
new
RequirementsAmountUpdateDO
(
amountVO
,
requirementsInfoDO
);
IsNullConvertZeroUtil
.
checkIsNull
(
amountUpdateDO
);
//校验是退款还是需要继续支付
//继续支付 需要增加冻结的任务佣金
if
(
amountVO
.
getUpdateOrderAmount
().
compareTo
(
requirementsInfoDO
.
getOrderAmount
())
==
1
)
{
...
...
@@ -1476,20 +1479,44 @@ public class RequirementsServiceImpl implements RequirementsService {
WalletFlowVO
walletFlowVO
=
new
WalletFlowVO
();
PublisherWalletFlowVO
publisherWalletFlowVO
=
new
PublisherWalletFlowVO
();
IsNullConvertZeroUtil
.
checkIsNull
(
publisherWalletFlowVO
);
ApplyRefundVO
applyRefundVO
=
new
ApplyRefundVO
();
//RequirementsServiceDO requirementsServiceDO = new RequirementsServiceDO();
System
.
out
.
println
(
amountUpdateDO
);
publisherWalletFlowVO
.
setModeOfPayment
(
800
);
publisherWalletFlowVO
.
setSalaryAmount
(
amountUpdateDO
.
getSalaryAmount
().
negate
());
publisherWalletFlowVO
.
setCashAmount
(
amountUpdateDO
.
getCashAmount
().
negate
());
publisherWalletFlowVO
.
setUserAccountId
(
amountUpdateDO
.
getUserAccountId
());
publisherWalletFlowVO
.
setOperateUserAccountId
(
amountUpdateDO
.
getUserAccountId
());
String
wechatPayOrderNumber
=
amountUpdateDO
.
getWechatPayOrderNumber
();
if
(
wechatPayOrderNumber
!=
null
){
UserPayInfoVO
userPayInfoVO
=
queryUserPayInfo
(
amountUpdateDO
.
getWechatPayOrderNumber
(),
request
);
if
(!
userPayInfoVO
.
getTradeState
().
equals
(
"SUCCESS"
)){
return
ResultBody
.
error
(
"支付失败,请重新支付"
);
}
}
if
(
tempTotalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
//表示订单计算完成,需要支付的钱都算出来了
if
(
numberDTO
!=
null
)
{
amountUpdateDO
.
setWechatPayOrderNumber
(
numberDTO
.
getPaymentOrderNumber
());
}
requirementsDao
.
updateScene
(
amountVO
.
getRequirementsInfoId
(),
8
);
requirementsDao
.
updateInfo
(
amountVO
.
getRequirementsInfoId
(),
8
);
requirementsDao
.
requirementsAmountUpdate
(
amountUpdateDO
);
redisUtil
.
ins
(
"order_"
+
requirementsInfoDO
.
getPublisherNumber
(),
String
.
valueOf
(
requirementsInfoDO
),
1
,
TimeUnit
.
HOURS
);
int
amountUpdate
=
requirementsDao
.
findAmountUpdate
(
amountUpdateDO
.
getRequirementsInfoId
());
if
(
amountUpdate
!=
0
){
return
ResultBody
.
error
(
"只能修改一次不能重复修改"
);
}
else
{
requirementsDao
.
requirementsAmountUpdate
(
amountUpdateDO
);
}
if
(
amountUpdateDO
.
getSalaryAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
||
amountUpdateDO
.
getCashAmount
().
compareTo
(
BigDecimal
.
ZERO
)!=
0
){
walletFlowVO
.
setPublisherWalletFlowVO
(
publisherWalletFlowVO
);
flyerCancelNO
(
walletFlowVO
,
request
.
getHeader
(
"token"
));
}
//倒计时
// redisUtil.ins("order_" + requirementsInfoDO.getPublisherNumber(), String.valueOf(requirementsInfoDO), 1, TimeUnit.HOURS);
redisUtil
.
ins
(
"order_"
+
requirementsInfoDO
.
getPublisherNumber
(),
String
.
valueOf
(
requirementsInfoDO
),
2
,
TimeUnit
.
SECONDS
);
return
ResultBody
.
success
();
}
else
{
//云享金和佣金扣除完成,但是还不足支付订单金额,并且没有选择微信支付,所以支付不合法
...
...
release-service/src/main/resources/mapper/requirements/RequirementsDao.xml
浏览文件 @
dfe1bd40
...
...
@@ -57,6 +57,46 @@
#{returnSalaryAmount})
</insert>
<update
id=
"updateRequirementsAmountUpdate"
parameterType=
"com.mmc.csf.release.entity.requirements.RequirementsAmountUpdateDO"
>
update requirements_amount_update
<set>
<if
test=
" orderAmount != null "
>
order_amount = #{orderAmount},
</if>
<if
test=
" cashAmount != null "
>
cash_amount = #{cashAmount},
</if>
<if
test=
" weChat != null "
>
we_chat = #{weChat},
</if>
<if
test=
" salaryAmount != null "
>
salary_amount = #{salaryAmount},
</if>
<if
test=
"wechatPayOrderNumber!=null"
>
wechat_pay_order_number= #{wechatPayOrderNumber},
</if>
create_time=NOW(),
update_time=NOW(),
reason=#{reason},
url=#{url},
user_account_id=#{userAccountId},
<if
test=
"updateOrderAmount!=null"
>
update_order_amount=#{updateOrderAmount},
</if>
return_cash_amount=#{returnCashAmount},
return_we_chat =#{returnWeChat},
return_salary_amount=#{returnSalaryAmount}
</set>
where requirements_info_id=#{requirementsInfoId}
</update>
<select
id=
"findUpdateAmount"
resultType=
"com.mmc.csf.release.entity.requirements.RequirementsAmountUpdateDO"
>
select requirements_info_id,order_amount,update_order_amount,return_cash_amount,return_we_chat,return_salary_amount,
cash_amount,cash_amount,we_chat,salary_amount,wechat_pay_order_number from requirements_info_id=#{requirementsInfoId}
</select>
<insert
id=
"insertPlatformOrderEarnings"
>
INSERT INTO platform_order_earnings(liquidated_damages, requirements_info_id, user_account_id, create_time,
update_time)
...
...
@@ -1378,4 +1418,8 @@
set repertory=1
where id = #{requirementsInfoId}
</update>
<select
id=
"findAmountUpdate"
resultType=
"java.lang.Integer"
>
select count(*) from requirements_amount_update where requirements_info_id=#{requirementsInfoId}
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论