提交 dfe1bd40 作者: 张小凤

Requ(update)

上级 48ffea81
......@@ -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(700);
publisherWalletFlowVO.setModeOfPayment(900);
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(700);
flyerWalletFlowVO.setModeOfPayment(900);
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, "");
......
......@@ -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);
}
......@@ -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 {
//云享金和佣金扣除完成,但是还不足支付订单金额,并且没有选择微信支付,所以支付不合法
......
......@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论