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