From 159186d038c5bf296e2a9fed601e39eb931ff6dd Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 24 十一月 2025 09:00:03 +0800
Subject: [PATCH] 修改bug
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java | 86 +++++++++++++++++++++++++-----------------
1 files changed, 51 insertions(+), 35 deletions(-)
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
index 1405d7d..730e53c 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java
@@ -1,5 +1,6 @@
package com.stylefeng.guns.modular.shunfeng.controller;
+import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.shunfeng.model.*;
@@ -26,6 +27,7 @@
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -37,11 +39,16 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
/**
* 顺风车相关接口
*/
+@Slf4j
@Api(tags = "顺风车相关接口")
@Controller
@RequestMapping("/api/rideComment")
@@ -348,7 +355,8 @@
} catch (Exception e1) {
e1.printStackTrace();
}
- Double distance=Double.valueOf(map1.get("distance"))/1000;//距离公里
+ log.info("顺风车预估里程:{}", JSON.toJSONString(map1));
+ Double distance = new BigDecimal(map1.get("distance")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();//距离公里
Integer distanceType=1;
//距离类型(1-100==1,100-200==2,200-500==3,500-800==4,800以上==5)
if(distance<100){
@@ -365,8 +373,9 @@
ParamRide paramRide=paramRideService.selectOne(new EntityWrapper<ParamRide>().eq("type",1).eq("distanceType",distanceType));
Double price=0d;
if(paramRide!=null){
+ log.info("获取的价格配置规则:{}", JSON.toJSONString(paramRide));
JSONObject jsonObject =JSONObject.fromObject(paramRide.getContext());
- String priceStr=jsonObject.getString("person"+num+"");
+ String priceStr=jsonObject.getString("person"+num);
if(priceStr!=null){
price=Double.valueOf(priceStr)*distance;
}
@@ -828,9 +837,11 @@
/*查看这个订单是否在进行中*/
OrderRide orderRide=orderRideService.selectById(orderId);
if(orderRide!=null){
- /*查询该订单是否已经取消*/
- if(orderRide.getState()==6){
- return ResultUtil.error("该订单已取消");
+ if(orderRide.getState() == 4){
+ return ResultUtil.error("订单行程中,不能取消订单");
+ }
+ if(orderRide.getState() == 6){
+ return ResultUtil.error("订单已取消,不能重复操作");
}
//用户取消给司机推送
if(orderRide.getDriverId()!=null) {
@@ -843,10 +854,8 @@
//取消司机行程
if(orderRide.getTravelId()!=null){
OrderTravel orderTravel=orderTravelService.selectById(orderRide.getTravelId());
- if(orderTravel.getState()!=6){
- orderTravel.setState(6);
- orderTravelService.updateById(orderTravel);
- }
+ orderTravel.setState(2);
+ orderTravelService.updateById(orderTravel);
}
return ResultUtil.success("");
} catch (Exception e) {
@@ -899,31 +908,34 @@
//中台订单退款操作
if(ToolUtil.isNotEmpty(orderRide.getZttravelId())){
- TradeOrderRefundRequest request = new TradeOrderRefundRequest();
- request.setPartnerPayId(orderRide.getZttravelId());
- request.setPayId(financial.getLsType());
- request.setRefundTotalFee(money + "");
- request.setRemark("顺风车订单取消退款");
- request.setRefundType("RF");
+ ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(1, 1, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
+ threadPoolExecutor.execute(()->{
+ TradeOrderRefundRequest request = new TradeOrderRefundRequest();
+ request.setPartnerPayId(orderRide.getZttravelId());
+ request.setPayId(financial.getLsType());
+ request.setRefundTotalFee(money + "");
+ request.setRemark("顺风车订单取消退款");
+ request.setRefundType("RF");
- RefundInfoRequest refundInfo = new RefundInfoRequest();
- refundInfo.setPayItemId(orderRide.getZttravelId());
- refundInfo.setPayId(financial.getLsType());
- refundInfo.setTradeFee(money + "");
- request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{
- add(refundInfo);
- }});
- TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
- //退款通知
- OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
- request2.setOrderId(orderRide.getZttravelId());
- request2.setRefundPayNum(tradeOrderRefund.getRefundId());
- request2.setRefundType("5");
- request2.setApplyRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
- request2.setActualRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
- request2.setRefundAccount(userInfo.getOnconUUID());
- request2.setRemark("顺风车订单取消退款");
- OrderUtil.orderRefundNotice(request2);
+ RefundInfoRequest refundInfo = new RefundInfoRequest();
+ refundInfo.setPayItemId(orderRide.getZttravelId());
+ refundInfo.setPayId(financial.getLsType());
+ refundInfo.setTradeFee(money + "");
+ request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{
+ add(refundInfo);
+ }});
+ TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
+ //退款通知
+ OrderRefundNoticeRequest request2 = new OrderRefundNoticeRequest();
+ request2.setOrderId(orderRide.getZttravelId());
+ request2.setRefundPayNum(tradeOrderRefund.getRefundId());
+ request2.setRefundType("5");
+ request2.setApplyRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
+ request2.setActualRefundCharge(BigDecimal.valueOf(orderRide.getMoney()));
+ request2.setRefundAccount(userInfo.getOnconUUID());
+ request2.setRemark("顺风车订单取消退款");
+ OrderUtil.orderRefundNotice(request2);
+ });
}
@@ -955,7 +967,8 @@
throw new RuntimeException(e);
}
orderRide.setState(6);//取消状态
- orderRideService.updateById(orderRide);
+ orderRide.setTravelId(null);
+ orderRideService.updateAllColumnById(orderRide);
}
@@ -1025,6 +1038,9 @@
}
if(orderTravel.getState()==6){
return ResultUtil.error("该订单已取消");
+ }
+ if(orderTravel.getState()==4){
+ return ResultUtil.error("出行中不能取消订单");
}
DriverRide driverRide=driverRideService.selectById(orderTravel.getDriverId());
if(orderTravel.getServiceMoney()!=null && orderTravel.getServiceMoney()>0){
@@ -1132,7 +1148,7 @@
}
OrderRide orderRide=orderRideService.selectById(userOrderId);
if(orderRide!=null && orderRide.getState()==6){
- return ResultUtil.error("用户已取消该行程");
+ return ResultUtil.error("用户已取消该行程");
}
UserInfo userInfo=userInfoService.selectById(driverRide.getUserId());
if(orderTravel!=null){
--
Gitblit v1.7.1