From 2ac8ec95387490c5ccfa0b1724e412dc9aadf4a8 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 09 七月 2023 06:23:53 +0800
Subject: [PATCH] 更新支付功能
---
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 68 +++---
/dev/null | 403 ----------------------------------------
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 47 ++++
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml | 6
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java | 11 +
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 4
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java | 3
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java | 42 ++-
8 files changed, 123 insertions(+), 461 deletions(-)
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 6dadc7a..1ba8ed6 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -12,6 +12,7 @@
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.OrderCancel;
import com.stylefeng.guns.modular.system.model.OrderPosition;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.*;
@@ -19,8 +20,10 @@
import com.stylefeng.guns.modular.system.util.Tingg.model.*;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -89,6 +92,9 @@
@Autowired
private ITransactionDetailsService transactionDetailsService;
+
+ @Autowired
+ private IPaymentRecordService paymentRecordService;
@Autowired
private IOrderCancelService orderCancelService;
@@ -871,6 +877,47 @@
}
+ /**
+ * 取消订单退款回调
+ * @param request
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/base/orderCancelRefundCallback")
+ public PayoutCallbackResponse orderCancelRefundCallback(@RequestBody PayoutCallbackRequest request){
+ try {
+ System.err.println("转账回调>>>>" + JSON.toJSONString(request));
+ PayoutCallbackResponse payoutCallbackResponse = new PayoutCallbackResponse();
+ AuthStatus authStatus = new AuthStatus();
+ authStatus.setAuthStatusCode(131);
+ authStatus.setAuthStatusDescription("Authentication was successful");
+ payoutCallbackResponse.setAuthStatus(authStatus);
+ Results results = new Results();
+ PayoutPacket packet = request.getPayload().getPacket();
+ String statusCode = packet.getStatusCode();
+ String beepTransactionID = packet.getBeepTransactionID();
+ String payerTransactionID = packet.getPayerTransactionID();
+
+ String id = payerTransactionID.substring(17);
+ OrderCancel orderCancel = orderCancelService.selectById(id);
+ OrderLogistics orderLogistics = orderLogisticsService.selectById(orderCancel.getOrderId());
+ PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 1, 2);
+ transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", query.getAmount(), 1, 1, 1, 4, orderLogistics.getId());
+
+ results.setBeepTransactionID(beepTransactionID);
+ results.setPayerTransactionID(payerTransactionID);
+ results.setStatusCode("188");
+ results.setStatusDescription("Response was received");
+ payoutCallbackResponse.setResults(results);
+ return payoutCallbackResponse;
+ }catch (Exception e){
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+
+
/**
* 取消操作支付
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index deffbbc..e205b87 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -17,7 +17,11 @@
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.*;
import com.stylefeng.guns.modular.system.util.Tingg.TinggPayUtil;
+import com.stylefeng.guns.modular.system.util.Tingg.TinggPayoutUtil;
+import com.stylefeng.guns.modular.system.util.Tingg.model.AuthStatus;
import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest;
+import com.stylefeng.guns.modular.system.util.Tingg.model.PayoutResponse;
+import com.stylefeng.guns.modular.system.util.Tingg.model.Results;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
@@ -112,6 +116,9 @@
@Autowired
private IBankCardService bankCardService;
+
+ @Autowired
+ private TinggPayoutUtil tinggPayoutUtil;
@Value("${callbackPath}")
private String callbackPath;
@@ -1205,24 +1212,21 @@
orderCancelService.insert(orderCancel);
orderLogistics.setState(10);
this.updateById(orderLogistics);
- integer = orderCancel.getId();
//调用回退接口
PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 1, 2);
- Map<String, String> merrefund = payMoneyUtil.wxRefund(query.getCode(),orderLogistics.getId() + "," + orderLogistics.getType(),query.getAmount()+"",query.getAmount()+"","");
- //Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), orderLogistics.getId() + "_" + orderLogistics.getType(), orderLogistics.getOrderNum());
- if ("SUCCESS".equals(merrefund.get("return_code"))) {//成功
- //添加交易明细
- transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", query.getAmount(), 1, 1, 1, 4, orderLogistics.getId());
- }else{
- return ResultUtil.error("退款返回未知异常");
+ UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId());
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String payerTransactionID = sdf.format(new Date()) + orderCancel.getId();
+ PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout(userInfo.getPhoneOperator(), "+" + userInfo.getPhone(), payerTransactionID, query.getAmount().doubleValue(), callbackPath + "/base/orderCancelRefundCallback", "取消订单退款");
+ AuthStatus authStatus = payoutResponse.getAuthStatus();
+ Results results = payoutResponse.getResults().get(0);
+ String statusCode = results.getStatusCode();
+ if(!"131".equals(authStatus.getAuthStatusCode())){
+ return ResultUtil.error(authStatus.getAuthStatusDescription());
}
- /*if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1) {//失败
- return ResultUtil.error("订单取消失败(退款不成功)");
+ if(!"139".equals(statusCode)){
+ return ResultUtil.error(results.getStatusDescription());
}
- if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2) {//未知
-
-
- }*/
}
if(null != orderLogistics.getPayType() && orderLogistics.getPayType() == 2){//支付宝
OrderCancel orderCancel = new OrderCancel();
@@ -1238,29 +1242,19 @@
this.updateById(orderLogistics);
integer = orderCancel.getId();
//调用回退接口
- PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 2, 2);
- /*Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), orderLogistics.getId() + "_" + orderLogistics.getType(), orderLogistics.getOrderNum());
- if (Integer.valueOf(merrefund.get("code").toString()) == 0) {
- Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderLogistics.getOrderNum());
- if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0) {//成功
- //添加交易明细
- transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", query.getAmount(), 1, 1, 1, 4, orderLogistics.getId());
- }
- if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1) {//失败
- return ResultUtil.error("订单取消失败(退款不成功)");
- }
- if (Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2) {//未知
- return ResultUtil.error("退款返回未知异常");
-
- }
- }*/
- Map<String, String> merrefund = payMoneyUtil.aliRefund(query.getCode(),query.getAmount()+"");
- //Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), orderLogistics.getId() + "_" + orderLogistics.getType(), orderLogistics.getOrderNum());
- if ("SUCCESS".equals(merrefund.get("return_code"))) {//成功
- //添加交易明细
- transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", query.getAmount(), 1, 1, 1, 4, orderLogistics.getId());
- }else{
- return ResultUtil.error("退款返回未知异常");
+ PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), 1, 2);
+ UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId());
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String payerTransactionID = sdf.format(new Date()) + orderCancel.getId();
+ PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout(userInfo.getPhoneOperator(), "+" + userInfo.getPhone(), payerTransactionID, query.getAmount().doubleValue(), callbackPath + "/base/orderCancelRefundCallback", "取消订单退款");
+ AuthStatus authStatus = payoutResponse.getAuthStatus();
+ Results results = payoutResponse.getResults().get(0);
+ String statusCode = results.getStatusCode();
+ if(!"131".equals(authStatus.getAuthStatusCode())){
+ return ResultUtil.error(authStatus.getAuthStatusDescription());
+ }
+ if(!"139".equals(statusCode)){
+ return ResultUtil.error(results.getStatusDescription());
}
}
if(null != orderLogistics.getPayType() && orderLogistics.getPayType() == 3){//余额
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index ebfbd21..bedb5b1 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -605,10 +605,10 @@
ResultUtil resultUtil = ResultUtil.success("");
if(null == orderPrivateCar){
- return ResultUtil.error("取消订单失败,订单信息有误", "");
+ return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Order cancellation failed because the order information is incorrect" : "Annulation échouée, informations de commande incorrectes", "");
}
if(orderPrivateCar.getState() != 12){
- return ResultUtil.error("取消订单失败,不合法的操作", "");
+ return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Order cancellation failed, illegal operation" : "Annulation de la commande échouée, opération illégale", "");
}
OrderCancel orderCancel = null;
if(null == cancleId || cancleId==0){
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml
index ab62b3d..035e8c7 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml
@@ -51,6 +51,7 @@
id as id,
registIp as registIp,
registAreaCode as registAreaCode,
+ phoneOperator as phoneOperator,
phone as phone,
nickName as nickName,
avatar as avatar,
@@ -87,6 +88,7 @@
id as id,
registIp as registIp,
registAreaCode as registAreaCode,
+ phoneOperator as phoneOperator,
phone as phone,
nickName as nickName,
avatar as avatar,
@@ -124,6 +126,7 @@
id as id,
registIp as registIp,
registAreaCode as registAreaCode,
+ phoneOperator as phoneOperator,
phone as phone,
nickName as nickName,
avatar as avatar,
@@ -163,6 +166,7 @@
id as id,
registIp as registIp,
registAreaCode as registAreaCode,
+ phoneOperator as phoneOperator,
phone as phone,
nickName as nickName,
avatar as avatar,
@@ -200,6 +204,7 @@
<select id="queryUserInfo" resultType="map">
select
a.id as id,
+ a.phoneOperator as phoneOperator,
a.phone as phone,
a.email as email,
a.lastName as lastName,
@@ -246,6 +251,7 @@
<select id="queryMyInviteUserList" resultType="map">
select
id as id,
+ phoneOperator as phoneOperator,
phone as phone,
IFNULL(lastName,nickName) as name,
avatar as avatar,
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java
index 6a1503c..e3ab507 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java
@@ -64,6 +64,11 @@
@TableField("userType")
private Integer userType;
/**
+ * 提现类型(1=活动收入体现,2=业务收入体现)
+ */
+ @TableField("type")
+ private Integer type;
+ /**
* 申请时间
*/
@TableField("insertTime")
@@ -85,6 +90,11 @@
*/
@TableField("serialNo")
private String serialNo;
+ /**
+ * 开户行名称
+ */
+ @TableField("bankName")
+ private String bankName;
public Integer getId() {
return id;
@@ -198,23 +208,19 @@
this.serialNo = serialNo;
}
- @Override
- public String toString() {
- return "Withdrawal{" +
- "id=" + id +
- ", userId=" + userId +
- ", handleTime=" + handleTime +
- ", balance=" + balance +
- ", money=" + money +
- ", state=" + state +
- ", remark='" + remark + '\'' +
- ", code='" + code + '\'' +
- ", name='" + name + '\'' +
- ", userType=" + userType +
- ", insertTime=" + insertTime +
- ", flag=" + flag +
- ", withdrawalType=" + withdrawalType +
- ", serialNo='" + serialNo + '\'' +
- '}';
+ public Integer getType() {
+ return type;
+ }
+
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+ public String getBankName() {
+ return bankName;
+ }
+
+ public void setBankName(String bankName) {
+ this.bankName = bankName;
}
}
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
index 8a9ee40..428f93e 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
@@ -64,10 +64,11 @@
Withdrawal withdrawal = new Withdrawal();
withdrawal.setBalance(userInfo.getBalance());
withdrawal.setCode(userInfo.getPhone());// TODO: 2023/7/5 第三方支支持手机号提现
+ withdrawal.setBankName(userInfo.getPhoneOperator());
withdrawal.setFlag(1);
withdrawal.setInsertTime(new Date());
withdrawal.setMoney(money);
- withdrawal.setName(userInfo.getPhoneOperator());
+ withdrawal.setName(userInfo.getFirstName() + " " + userInfo.getLastName());
withdrawal.setState(1);
withdrawal.setUserId(uid);
withdrawal.setUserType(1);
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
deleted file mode 100644
index 1d6b4ba..0000000
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
+++ /dev/null
@@ -1,403 +0,0 @@
-package com.stylefeng.guns.modular.system.util;
-
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
-import com.stylefeng.guns.core.common.constant.state.Order;
-import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
-import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
-import com.stylefeng.guns.modular.system.dao.CarMapper;
-import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper;
-import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
-import com.stylefeng.guns.modular.system.model.*;
-import com.stylefeng.guns.modular.system.service.*;
-import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
-import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.*;
-
-/**
- * 上传交通部
- */
-@Component
-public class PushMinistryOfTransportUtil {
-
- @Autowired
- private IUserInfoService userInfoService;
-
- @Autowired
- private HttpClientUtil httpClientUtil;
-
- @Autowired
- private IOrderPrivateCarService orderPrivateCarService;
-
- @Resource
- private SystemPriceMapper systemPriceMapper;
-
- @Autowired
- private GDMapGeocodingUtil gdMapGeocodingUtil;
-
- @Autowired
- private IOrderCancelService orderCancelService;
-
- @Autowired
- private IDriverService driverService;
-
- @Resource
- private CarMapper carMapper;
-
- @Resource
- private ServerCarModelMapper serverCarModelMapper;
-
- @Autowired
- private ITransactionDetailsService transactionDetailsService;
-
- @Autowired
- private IOrderPositionService orderPositionService;
-
- @Autowired
- private GDMapElectricFenceUtil gdMapElectricFenceUtil;
-
- @Autowired
- private IOrderEvaluateService orderEvaluateService;
-
- private String path = "http://120.77.11.218:8868/";
-
-
- /**
- * 乘客基本信息
- * @param uid
- */
- public void baseInfoPassenger(Integer uid){
- UserInfo userInfo = userInfoService.selectById(uid);
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("RegisterDate", userInfo.getInsertTime());//注册日期YYYYMMDD
- jsonObject.put("PassengerPhone", userInfo.getPhone());//乘客手机号
- jsonObject.put("PassengerName", userInfo.getNickName());//乘客称谓
- jsonObject.put("PassengerGender", userInfo.getSex() == 1 ? "男" : "女");//乘客性别
- jsonObject.put("State", 0);//状态(0:有效,1:失效)
- jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
- jsonObject.put("UpdateTime", new Date());
- Map<String, Object> map = new HashMap<>();
- map.put("baseInfoPassenger", jsonObject.toJSONString());
- String result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/baseInfoPassenger", map,null,"form");
- System.out.println("乘客基本信息:" + result);
- }
-
-
- /**
- * 订单撤销接口
- * @param orderId
- */
- public void orderCancel(Integer orderId){
- OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
- Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
- OrderCancel query = null;
- try {
- query = orderCancelService.query(orderId, 1, null, null, 2);
- } catch (Exception e) {
- e.printStackTrace();
- }
- Map<String, String> geocode = null;
- try {
- geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getBoardingLon().toString(),
- orderPrivateCar.getBoardingLat().toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("Address", Integer.valueOf(geocode.get("districtCode")));//上车地点行政区划代码
- jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单编号
- jsonObject.put("OrderTime", orderPrivateCar.getOrderNum());//订单时间YYYYMMDDhhmmss
- jsonObject.put("CancelTime", query.getInsertTime());//订单撤销时间YYYYMMDDhhmmss
- jsonObject.put("Operator", "1");//撤销发起方(1:乘客,2:驾驶员,3:平台公司)
- jsonObject.put("CancelTypeCode", driver.getDriveCard());//机动车驾驶证编号
- jsonObject.put("CancelReason", query.getReason());//撤销或违约原因
- Map<String, Object> map = new HashMap<>();
- map.put("orderCancel", jsonObject.toJSONString());
- String result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/orderCancel", map,null,"form");
- System.out.println("订单撤销接口:" + result);
- }
-
-
- /**
- * 经营支付接口
- * @param orderId
- */
- public void operatePay(Integer orderId){
- OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
- Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
- Map<String, Object> query = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId());
- Car car = carMapper.selectById(orderPrivateCar.getCarId());
- ServerCarModel serverCarModel = serverCarModelMapper.selectById(orderPrivateCar.getServerCarModelId());
- TransactionDetails transactionDetails = transactionDetailsService.selectById(new EntityWrapper<TransactionDetails>().eq("orderType", 1).eq("orderId", orderId));
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单号
- jsonObject.put("OnArea", 450204);//上车位置行政区划代码
- jsonObject.put("DriverName", driver.getName());//机动车驾驶员
- jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号
- jsonObject.put("FareType", query.get("id").toString());//运价类型编码(由网约车公司定义,与运价信息接口保持一街)
- jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌
- jsonObject.put("BookDepTime", orderPrivateCar.getTravelTime());//预计上车时间YYYYMMDDhhmmss
- jsonObject.put("WaitTime", orderPrivateCar.getWait() * 60);//等待时间(秒)
- jsonObject.put("DepLongitude", orderPrivateCar.getBoardingLon());//车辆出发经度
- jsonObject.put("DepLatitude", orderPrivateCar.getBoardingLat());//车辆出发纬度
- jsonObject.put("DepArea", orderPrivateCar.getBoardingAddress());//上车点
- jsonObject.put("DepTime", orderPrivateCar.getBoardingTime());//上车时间YYYYMMDDhhmmss
- jsonObject.put("DestLongitude", orderPrivateCar.getGetoffLon());//车辆到达经度
- jsonObject.put("DestLatitude", orderPrivateCar.getGetoffLat());//车辆到达纬度
- jsonObject.put("DestArea", orderPrivateCar.getGetoffAddress());//下车地点
- jsonObject.put("DestTime", orderPrivateCar.getGetoffTime());//下车时间YYYYMMDDhhmmss
- jsonObject.put("BookModel", serverCarModel.getName());//预定车型
- jsonObject.put("Model", serverCarModel.getName());//实际使用车型
- jsonObject.put("DriveMile", Double.valueOf(orderPrivateCar.getMileage() / 1000).intValue());//载客里程(km)
- jsonObject.put("DriveTime", Double.valueOf((orderPrivateCar.getGetoffTime().getTime() - orderPrivateCar.getBoardingTime().getTime()) / 1000).intValue());//载客时间(秒)
- List<OrderPosition> orderPositions = null;
- try {
- orderPositions = orderPositionService.queryPosition(orderId, 1);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- int distance = 0;
- if(orderPositions.size() > 0){
- OrderPosition orderPosition = orderPositions.get(0);
- Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(orderPosition.getLon() + "," + orderPosition.getLat(), orderPrivateCar.getBoardingLon() + "," + orderPrivateCar.getBoardingLat(), 1);
- distance = Integer.valueOf(distance1.get("distance")) / 1000;
- }
- jsonObject.put("WaitMile", distance);//空驶里程(km)
- jsonObject.put("FactPrice", orderPrivateCar.getPayMoney());//实收金额(元)
- jsonObject.put("Price", orderPrivateCar.getOrderMoney());//应收金额(元)
- jsonObject.put("CashPrice", orderPrivateCar.getPayType() == 3 ? orderPrivateCar.getPayMoney() : 0);//现金支付金额(元)
- jsonObject.put("LineName", orderPrivateCar.getPayType() != 3 ? "" : "");//电子支付机构
- jsonObject.put("LinePrice", orderPrivateCar.getPayType() != 3 ? orderPrivateCar.getPayMoney() : 0);//电子支付金额(元)
- jsonObject.put("PosName", "");//POS机支付机构
- jsonObject.put("PosPrice", 0);//POS机支付金额(元)
- jsonObject.put("BenfitPrice", (orderPrivateCar.getRedPacketMoney() == null ? 0 : orderPrivateCar.getRedPacketMoney())
- + (orderPrivateCar.getCouponMoney() == null ? 0 : orderPrivateCar.getCouponMoney())
- + (orderPrivateCar.getDurationMoney() == null ? 0 : orderPrivateCar.getDurationMoney()));//优惠金额(元)
- jsonObject.put("BookTip", 0);//预约服务费(元)
- jsonObject.put("PassengerTip", (orderPrivateCar.getParkMoney() == null ? 0 : orderPrivateCar.getParkMoney())
- + (orderPrivateCar.getRoadTollMoney() == null ? 0 : orderPrivateCar.getRoadTollMoney()));//附加费(元)
- Map<String, Double> map1 = this.setMoney(orderPrivateCar);
- Double amount3 = map1.get("amount3");//其他时间段
- Double amount2 = map1.get("amount2");//高峰时段
- Double amount1 = map1.get("amount1");//夜间时段
- jsonObject.put("PeakUpPrice", null != amount2 ? (amount2 - amount3) : 0);//高峰时段时间加价金额(元)
- jsonObject.put("NightUpPrice", null != amount1 ? (amount1 - amount3) : 0);//夜间时段里程加价金额(元)
- jsonObject.put("FarUpPrice", orderPrivateCar.getLongDistanceMoney() == null ? 0 : orderPrivateCar.getLongDistanceMoney());//远途加价金额(元)
- jsonObject.put("OtherUpPrice", (orderPrivateCar.getDurationMoney() == null ? 0 : orderPrivateCar.getDurationMoney())
- + (orderPrivateCar.getWaitMoney() == null ? 0 : orderPrivateCar.getWaitMoney()));//其他加价金额(元)
- jsonObject.put("PayState", 1);//结算状态(0:未结算,1:已结算,2:未知)
- jsonObject.put("PayTime", null != transactionDetails ? transactionDetails.getInsertTime() : new Date());//乘客结算时间YYYYMMDDhhmmss
- jsonObject.put("OrderMatchTime", null != transactionDetails ? transactionDetails.getInsertTime() : new Date());//订单完成时间YYYYMMDDhhmmss
- jsonObject.put("InvoiceStatus", "0");//发票状态(0:未开票,1:已开票,2:未知)
- Map<String, Object> map = new HashMap<>();
- map.put("operatePay", jsonObject.toJSONString());
- String result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/operatePay", map,null,"form");
- System.out.println("经营支付接口:" + result);
- }
-
-
- /**
- * 乘客评价信息
- * @param id
- */
- public void ratedPassenger(Integer id){
- OrderEvaluate orderEvaluate = orderEvaluateService.selectById(id);
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("OrderId", orderEvaluate.getOrderId());//订单号
- jsonObject.put("EvaluateTime", new Date());//评价时间YYYYMMDDhhmms
- jsonObject.put("ServiceScore", orderEvaluate.getFraction());//服务满意度(五分制)
- jsonObject.put("DriverScore", orderEvaluate.getFraction());//驾驶员满意度(五分制)
- jsonObject.put("VehicleScore", orderEvaluate.getFraction());//车辆满意度(五分制)
- jsonObject.put("Detail", orderEvaluate.getContent());//评价内容
- Map<String, Object> map = new HashMap<>();
- map.put("ratedPassenger", jsonObject.toJSONString());
- String result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/ratedPassenger", map,null,"form");
- System.out.println("乘客评价信息:" + result);
- }
-
-
-
- /**
- * 驾驶员信誉信息
- * @param driverId
- */
- public void ratedDriver(Integer driverId){
- Driver driver = driverService.selectById(driverId);
- List<OrderEvaluate> driverId1 = orderEvaluateService.selectList(new EntityWrapper<OrderEvaluate>().eq("driverId", driverId));
- Integer level = 0;
- for(OrderEvaluate orderEvaluate : driverId1){
- level += orderEvaluate.getFraction().intValue();
- }
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证编号
- jsonObject.put("Level", driverId1.size() == 0 ? 0 : level / driverId1.size());//服务质量信誉等级(五分制)
- jsonObject.put("TestDate", new Date());//服务质量信誉考核日期YYYYMMDD
- jsonObject.put("TestDepartment", "广西云森科技有限公司");//服务质量信誉考核机构
- Map<String, Object> map = new HashMap<>();
- map.put("ratedDriver", jsonObject.toJSONString());
- String result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/ratedDriver", map,null,"form");
- System.out.println("驾驶员信誉信息:" + result);
- }
-
-
-
-
- /**
- * 计算价格
- * @param orderPrivateCar
- * @return
- * @throws Exception
- */
- private Map<String, Double> setMoney(OrderPrivateCar orderPrivateCar) {
- Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId());
- Map<String, Double> map = new HashMap<>();
- //开始根据不同的方式计算金额
- double amount1 = 0;
- double amount2 = 0;
- double amount3 = 0;
- JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
- Double num1 = jsonObject.getDouble("num1");//起步价(元)
- Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
- Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
- Double num4 = jsonObject.getDouble("num4");//里程费(元)
- Double num5 = jsonObject.getDouble("num5");//时长费(分钟)
- Double num6 = jsonObject.getDouble("num6");//等待费(分钟)
- Double num7 = jsonObject.getDouble("num7");//等待费(元)
- Double num8 = jsonObject.getDouble("num8");//远途费(公里)
- Double num9 = jsonObject.getDouble("num9");//远途费(公里)
- Double num10 = jsonObject.getDouble("num10");//远途费(元)
- Double num11 = jsonObject.getDouble("num11");//远途费(公里)
- Double num12 = jsonObject.getDouble("num12");//远途费(公里)
- Double num13 = jsonObject.getDouble("num13");//远途费(元)
- Double num14 = jsonObject.getDouble("num14");//远途费(公里)
- Double num15 = jsonObject.getDouble("num15");//远途费(元)
- String num16 = jsonObject.getString("num16");//夜间费(开始时间)
- Double num17 = jsonObject.getDouble("num17");//夜间费(元)
- Double num18 = jsonObject.getDouble("num18");//夜间费(元)
- Double num19 = jsonObject.getDouble("num19");//夜间费(元)
- Double num20 = jsonObject.getDouble("num20");//夜间费(元)
- Double num21 = jsonObject.getDouble("num21");//夜间费(元)
- Double num22 = jsonObject.getDouble("num22");//夜间费(元)
- String num23 = jsonObject.getString("num23");//高峰费(开始时间)
- String num24 = jsonObject.getString("num24");//高峰费(开始时间)
- Double num25 = jsonObject.getDouble("num25");//高峰费(元)
- Double num26 = jsonObject.getDouble("num26");//高峰费(元)
- Double num27 = jsonObject.getDouble("num27");//高峰费(元)
- Double num28 = jsonObject.getDouble("num28");//高峰费(元)
- Double num29 = jsonObject.getDouble("num29");//高峰费(元)
- Double num30 = jsonObject.getDouble("num30");//高峰费(元)
-
- Date date = new Date();
- double d = (null == orderPrivateCar.getMileage() ? 0D : orderPrivateCar.getMileage()) / 1000;//实际公里
- double t = ((orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000) + 1;//实际时间(不满一分钟按一分钟算)
- double w = ((orderPrivateCar.getStartServiceTime().getTime() - orderPrivateCar.getArriveTime().getTime()) / 60000) + 1;//等待分钟(不满一分钟按一分钟算)
- double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
- double t1 = (t - num3) < 0 ? 0 : new BigDecimal(t - num3).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超过起步分钟数的时间
- double w1 = (w - num6) < 0 ? 0 : new BigDecimal(w - num6).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超出等待时间的时间
- double yt1 = 0;//远途1段
- double yt2 = 0;//远途2段
- double yt3 = 0;//远途3段
-
-
- //夜间服务处理逻辑
- Calendar s = Calendar.getInstance();
- s.setTime(date);
- s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
- s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
-
- Calendar e = Calendar.getInstance();
- e.setTime(date);
- e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
- e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
-
- if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
- if(d > num8.doubleValue() && d <= num9.doubleValue()){
- yt1 = num20 * (d - num8);
- }
- if(d > num9.doubleValue()){
- yt1 = num20 * (num9 - num8);
- }
- if(d > num11.doubleValue() || d <= num12.doubleValue()){
- yt2 = num21 * (d - num11);
- }
- if(d > num12.doubleValue()){
- yt2 = num21 * (num12 - num11);
- }
- if(d > num14.doubleValue()){
- yt3 = num22 * (d - num14);
- }
- amount1 = num17 + (d1 * num18) + (t1 * num19) + (w1 * num7) + yt1 + yt2 + yt3;
- map.put("amount1", amount1);
- }
-
-
- //高峰时段处理逻辑
- Calendar s1 = Calendar.getInstance();
- s1.setTime(date);
- s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[0].split(":")[0]));
- s1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[0].split(":")[1]));
-
- Calendar e1 = Calendar.getInstance();
- e1.setTime(date);
- e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[1].split(":")[0]));
- e1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[1].split(":")[1]));
-
- Calendar s2 = Calendar.getInstance();
- s2.setTime(date);
- s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[0].split(":")[0]));
- s2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[0].split(":")[1]));
-
- Calendar e2 = Calendar.getInstance();
- e2.setTime(date);
- e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[1].split(":")[0]));
- e2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[1].split(":")[1]));
-
- if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
- if(d > num8.doubleValue() && d <= num9.doubleValue()){
- yt1 = num28 * (d - num8);
- }
- if(d > num9.doubleValue()){
- yt1 = num28 * (num9 - num8);
- }
- if(d > num11.doubleValue() && d <= num12.doubleValue()){
- yt2 = num29 * (d - num11);
- }
- if(d > num12.doubleValue()){
- yt2 = num29 * (num12 - num11);
- }
- if(d > num14.doubleValue()){
- yt3 = num30 * (d - num14);
- }
- amount2 = num25 + (d1 * num26) + (t1 * num27) + (w1 * num7) + yt1 + yt2 + yt3;
- map.put("amount2", amount2);
- }
-
- //其他时间段的计算
- if(d > num8.doubleValue() && d <= num9.doubleValue()){
- yt1 = num10 * (d - num8);
- }
- if(d > num9.doubleValue()){
- yt1 = num10 * (num9 - num8);
- }
- if(d > num11.doubleValue() && d <= num12.doubleValue()){
- yt2 = num13 * (d - num11);
- }
- if(d > num12.doubleValue()){
- yt2 = num13 * (num12 - num11);
- }
- if(d > num14.doubleValue()){
- yt3 = num15 * (d - num14);
- }
- amount3 = num1 + (d1 * num4) + (t1 * num5) + (w1 * num7) + yt1 + yt2 + yt3;
- map.put("amount3", amount3);
- return map;
- }
-}
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
index ed4b009..b8c361b 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
@@ -16,6 +16,8 @@
private String name;
@ApiModelProperty("昵称")
private String nickName;
+ @ApiModelProperty("手机号码运营商")
+ private String phoneOperator;
@ApiModelProperty("电话")
private String phone;
@ApiModelProperty("邮箱地址")
@@ -67,6 +69,14 @@
public void setNickName(String nickName) {
this.nickName = nickName;
+ }
+
+ public String getPhoneOperator() {
+ return phoneOperator;
+ }
+
+ public void setPhoneOperator(String phoneOperator) {
+ this.phoneOperator = phoneOperator;
}
public String getPhone() {
@@ -206,6 +216,7 @@
userInfoWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : null);
userInfoWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
userInfoWarpper.setNickName(null != map.get("nickName") ? String.valueOf(map.get("nickName")) : "");
+ userInfoWarpper.setPhoneOperator(null != map.get("phoneOperator") ? String.valueOf(map.get("phoneOperator")) : "");
userInfoWarpper.setPhone(null != map.get("phone") ? String.valueOf(map.get("phone")) : "");
userInfoWarpper.setIsAuth(null != map.get("isAuth") ? Integer.valueOf(String.valueOf(map.get("isAuth"))) : null);
userInfoWarpper.setAvatar(null != map.get("avatar") ? String.valueOf(map.get("avatar")) : "");
--
Gitblit v1.7.1