From 1c40baaf9ca0183945b9881d11ceed5aeebc8290 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 23 十月 2025 11:35:44 +0800
Subject: [PATCH] 修改bug
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/shunfeng/controller/rideCommentController.java | 209 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 150 insertions(+), 59 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 5aa9a5d..a0bb97d 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
@@ -13,9 +13,8 @@
import com.stylefeng.guns.modular.shunfeng.util.OrdersUtil;
import com.stylefeng.guns.modular.shunfeng.util.SensitiveWordUtil;
import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
-import com.stylefeng.guns.modular.system.model.SensitiveWords;
-import com.stylefeng.guns.modular.system.model.TCarBrand;
-import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.ICompanyService;
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
import com.stylefeng.guns.modular.system.service.ITCarBrandService;
import com.stylefeng.guns.modular.system.service.IUserInfoService;
@@ -23,7 +22,9 @@
import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
import com.stylefeng.guns.modular.system.util.PushUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
import io.swagger.annotations.*;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +36,7 @@
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.*;
/**
@@ -88,6 +90,12 @@
@Autowired
private IFinancialService financialService;
+
+ @Autowired
+ private ICompanyService companyService;
+
+ @Autowired
+ private IOrderInvitationService orderInvitationService;
@@ -647,6 +655,7 @@
driverRide.setBrandId(brandId);
driverRide.setUserId(userId);
driverRide.setByInviteCode(inviteCodeRide);
+ driverRide.setCompanyId(1);
driverRide.setCarType(carType);
driverRide.setCarNum(carNum);
driverRide.setLicense(license);
@@ -845,12 +854,34 @@
}
return ResultUtil.error("异常");
}
+
+
+ private Integer getState(Integer state){
+ switch (state){
+ case 1:
+ return 7;
+ case 2:
+ return 1;
+ case 3:
+ return 4;
+ case 4:
+ return 5;
+ case 5:
+ return 8;
+ case 6:
+ return 10;
+ }
+ return null;
+ }
+
+
+
//用户取消退款
public void userCancelTuik(OrderRide orderRide){
if(orderRide.getState()==2){//用户已经支付了订单但司机没有接单
orderRide.setTuiMoney(orderRide.getMoney());
}
- if(orderRide.getTuiMoney()>0){
+ if(null != orderRide.getTuiMoney() && orderRide.getTuiMoney()>0){
Financial financial= financialService.selectOne(new EntityWrapper<Financial>().eq("orderNum",orderRide.getOrderNum()));
String finNum=OrdersUtil.getOrderNoForPrefix("fin");
//todo 退款金额大于0需要退款
@@ -861,8 +892,40 @@
}else if(orderRide.getPayType()==2){
//微信
Integer money = new Double(orderRide.getMoney() * 100).intValue();
- Integer tMoney_ = new Double(orderRide.getTuiMoney()* 100).intValue();
- PayUtil.refundForWxpay(1, financial.getLsType(), orderRide.getOrderNum(), finNum, money,tMoney_ , "2");
+// Integer tMoney_ = new Double(orderRide.getTuiMoney()* 100).intValue();
+// PayUtil.refundForWxpay(1, financial.getLsType(), orderRide.getOrderNum(), finNum, money,tMoney_ , "2");
+
+ //中台订单退款操作
+ if(ToolUtil.isNotEmpty(orderRide.getZttravelId())){
+ UserInfo userInfo = userInfoService.selectById(orderRide.getUserId());
+ 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);
+ }
+
+
}else if(orderRide.getPayType()==3){
}
@@ -878,6 +941,11 @@
f.setOrderType(4);
f.setLx(1);
financialService.insert(f);
+ }else{
+ //未支付的情况取消订单
+ if(ToolUtil.isNotEmpty(orderRide.getZttravelId())){
+ OrderUtil.tradeOrderCancel(orderRide.getZttravelId());
+ }
}
/*添加系统消息*/
try {
@@ -903,57 +971,58 @@
return ResultUtil.paranErr("orderId不能为空");
}
OrderTravel orderTravel=orderTravelService.selectById(orderId);
- if(orderTravel!=null){
- if(orderTravel.getState()==6){
- return ResultUtil.error("该订单已取消");
+ if(null == orderTravel){
+ return ResultUtil.error("无效的订单ID");
+ }
+ if(orderTravel.getState()==6){
+ return ResultUtil.error("该订单已取消");
+ }
+ DriverRide driverRide=driverRideService.selectById(orderTravel.getDriverId());
+ if(orderTravel.getServiceMoney()!=null && orderTravel.getServiceMoney()>0){
+ /*todo 更新司机余额*/
+ driverRide.setBalance(driverRide.getBalance()-orderTravel.getServiceMoney());
+ driverRideService.updateById(driverRide);
+ /* 更新司机用户余额(用户和司机用户一个账号余额)*/
+ UserInfo userInfo=userInfoService.selectOne(new EntityWrapper<UserInfo>().eq("driverId",orderTravel.getDriverId()));
+ if(userInfo!=null){
+ //用户余额可以为负数
+ userInfo.setBalance(userInfo.getBalance()-orderTravel.getServiceMoney());
+ userInfoService.updateById(userInfo);
}
- DriverRide driverRide=driverRideService.selectById(orderTravel.getDriverId());
- if(orderTravel.getServiceMoney()!=null && orderTravel.getServiceMoney()>0){
- /*todo 更新司机余额*/
- driverRide.setBalance(driverRide.getBalance()-orderTravel.getServiceMoney());
- driverRideService.updateById(driverRide);
- /* 更新司机用户余额(用户和司机用户一个账号余额)*/
- UserInfo userInfo=userInfoService.selectOne(new EntityWrapper<UserInfo>().eq("driverId",orderTravel.getDriverId()));
- if(userInfo!=null){
- //用户余额可以为负数
- userInfo.setBalance(userInfo.getBalance()-orderTravel.getServiceMoney());
- userInfoService.updateById(userInfo);
- }
- /*财务明细*/
- Financial f=new Financial();
- f.setAddTime(new Date());
- f.setType(1);//类型 1=收入 2=支出
- f.setMoney(orderTravel.getServiceMoney());
- f.setPwType(9);//9=顺风车取消服务费
- f.setOrderNum(orderTravel.getOrderNum());
- String finNum=OrdersUtil.getOrderNoForPrefix("fin");
- f.setLsType(finNum);
- f.setUserId(driverRide.getUserId());
- f.setOrderType(4);
- f.setLx(1);
- financialService.insert(f);
- //司机取消给用户推送
- }
- /*添加系统消息*/
- try {
- systemNoticeService.addSystemNotice(1, "您从"+orderTravel.getStartName()+"到"+orderTravel.getEndName()+"的顺风车行程已取消", driverRide.getUserId(), 1);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- orderTravel.setState(6);//取消状态
- orderTravelService.updateById(orderTravel);
- //todo 推送
- /*司机接单给用户发送消息*/
- OrderRide orderRide=orderRideService.selectOne(new EntityWrapper<OrderRide>().eq("travelId",orderId));
- if(orderRide!=null) {
- pushUtil.pushOrderState(1, orderRide.getUserId(), orderRide.getId(), 8, 6, null);
- }
- //取消乘客订单
- if(orderRide!=null && orderRide.getState()!=6){
- orderRide.setTuiMoney(orderRide.getMoney());
- orderRideService.updateById(orderRide);
- userCancelTuik(orderRide);
- }
+ /*财务明细*/
+ Financial f=new Financial();
+ f.setAddTime(new Date());
+ f.setType(1);//类型 1=收入 2=支出
+ f.setMoney(orderTravel.getServiceMoney());
+ f.setPwType(9);//9=顺风车取消服务费
+ f.setOrderNum(orderTravel.getOrderNum());
+ String finNum=OrdersUtil.getOrderNoForPrefix("fin");
+ f.setLsType(finNum);
+ f.setUserId(driverRide.getUserId());
+ f.setOrderType(4);
+ f.setLx(1);
+ financialService.insert(f);
+ //司机取消给用户推送
+ }
+ /*添加系统消息*/
+ try {
+ systemNoticeService.addSystemNotice(1, "您从"+orderTravel.getStartName()+"到"+orderTravel.getEndName()+"的顺风车行程已取消", driverRide.getUserId(), 1);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ orderTravel.setState(6);//取消状态
+ orderTravelService.updateById(orderTravel);
+ //todo 推送
+ /*司机接单给用户发送消息*/
+ OrderRide orderRide=orderRideService.selectOne(new EntityWrapper<OrderRide>().eq("travelId",orderId));
+ if(orderRide!=null) {
+ pushUtil.pushOrderState(1, orderRide.getUserId(), orderRide.getId(), 8, 6, null);
+ }
+ //取消乘客订单
+ if(orderRide!=null && orderRide.getState()!=6){
+ orderRide.setTuiMoney(orderRide.getMoney());
+ orderRideService.updateById(orderRide);
+ userCancelTuik(orderRide);
}
return ResultUtil.success("");
@@ -1002,6 +1071,7 @@
if(orderRide!=null && orderRide.getState()==6){
return ResultUtil.error("用户已取消该行程");
}
+ UserInfo userInfo=userInfoService.selectById(driverRide.getUserId());
if(orderTravel!=null){
if(type==1){//1确认同行 一个行程只能匹配一个订单
if(orderTravel.getState()==3){
@@ -1022,8 +1092,9 @@
driverRide.setTotalOrders(driverRide.getTotalOrders()+1);
driverRideService.updateById(driverRide);
/*修改用户接单数和司机提成*/
- UserInfo userInfo=userInfoService.selectById(driverRide.getUserId());
+
userInfo.setBalance(userInfo.getBalance()+(orderRide.getMoney()-orderRide.getPlatformMoney()));
+ userInfo.setTotalOrders(userInfo.getTotalOrders() + 1);
userInfoService.updateById(userInfo);
Financial f=new Financial();
f.setAddTime(new Date());
@@ -1069,6 +1140,18 @@
throw new RuntimeException(e);
}
}
+
+ if(null != orderRide.getZttravelId()){
+ //中台修改订单状态
+ ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+ request.setOrderId(orderRide.getZttravelId());
+ request.setStatus(getState(orderRide.getState()));
+ if (null != orderRide.getDriverId()) {
+ request.setDriverId(driverRide.getEmpId().toString());
+ }
+ OrderUtil.modifyTravelItinerary(request);
+ }
+
pushUtil.pushOrderState(1, orderRide.getUserId(), orderRide.getId(), 8, orderRide.getState(), null);
return ResultUtil.success("");
} catch (Exception e) {
@@ -1139,8 +1222,8 @@
DriverRide driverRide=driverRideService.selectById(driverId);
if(driverRide!=null){
/*计算司机的评分*/
- driverRide.setEvaluateNum(driverRide.getEvaluateNum()+1);
- driverRide.setEvaluateScore(driverRide.getEvaluateScore()+score);
+ driverRide.setEvaluateNum((null != driverRide.getEvaluateNum() ? driverRide.getEvaluateNum() : 0 )+1);
+ driverRide.setEvaluateScore((null == driverRide.getEvaluateScore() ? 0 : driverRide.getEvaluateScore())+score);
driverRideService.updateById(driverRide);
}
/*标记订单已评价*/
@@ -1263,6 +1346,11 @@
OrderRide orderRide=orderRideService.selectOne(new EntityWrapper<OrderRide>().eq("userId",userId)
.eq("state",2));
if(orderRide!=null){
+ OrderInvitation orderInvitation = new OrderInvitation();
+ orderInvitation.setOrderRideId(orderRide.getId());
+ orderInvitation.setOrderTravelId(orderTravel.getId());
+ orderInvitation.setInsertTime(new Date());
+ orderInvitationService.insert(orderInvitation);
String message="您发布的"+DateUtil.getDateToString(orderTravel.getStartTime(),"MM月dd日")+"的行程有乘客邀请您同行";
/*添加系统消息*/
try {
@@ -1277,6 +1365,8 @@
}
return ResultUtil.error("异常");
}
+
+
/**
* 用户订单匹配列表页面,用户订单去匹配司机的行程
* @param type 搜索条件:1默认排序(根据线路、时间,人数综合匹配排序721),2时间最早,3距离最近
@@ -1311,6 +1401,7 @@
orderRideVo.setLon(orderRide.getStartLon());
orderRideVo.setLat(orderRide.getStartLat());
orderRideVo.setNum(orderRide.getNum());
+ orderRideVo.setId(orderId);
orderRideVo.setType(type+1);//搜索条件:1默认排序(根据线路、时间,人数综合匹配排序721),2时间最早,3距离最近
List<OrderRideVo> orderRides=orderTravelService.getOrderTravel(orderRideVo);
return ResultUtil.success(orderRides);
--
Gitblit v1.7.1