From 92e00dafd06ec748b51f565c7a4c98986a618de9 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 03 六月 2023 02:01:40 +0800
Subject: [PATCH] 新增加分账功能

---
 driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java |  190 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 176 insertions(+), 14 deletions(-)

diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
index 812cc72..2844803 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
@@ -1,12 +1,19 @@
 package com.supersavedriving.driver.modular.system.api;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.supersavedriving.driver.modular.system.model.Driver;
+import com.supersavedriving.driver.modular.system.model.Order;
+import com.supersavedriving.driver.modular.system.model.RechargeRecord;
+import com.supersavedriving.driver.modular.system.service.IRechargeRecordService;
+import com.supersavedriving.driver.modular.system.util.MallBook.model.InterfaceResponse;
+import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil;
+import com.supersavedriving.driver.modular.system.util.rongyun.model.CloudRecordingCallback;
 import com.supersavedriving.driver.modular.system.warpper.*;
-import com.supersavedriving.driver.core.common.annotion.ServiceLog;
 import com.supersavedriving.driver.core.util.ToolUtil;
 import com.supersavedriving.driver.modular.system.service.IDriverService;
 import com.supersavedriving.driver.modular.system.service.IOrderService;
 import com.supersavedriving.driver.modular.system.util.ResultUtil;
-import com.supersavedriving.driver.modular.system.warpper.*;
 import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper;
 import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
 import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
@@ -14,13 +21,16 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
 * 订单控制器
@@ -37,6 +47,12 @@
     @Autowired
     private IDriverService driverService;
 
+    @Autowired
+    private RongYunUtil rongYunUtil;
+
+    @Autowired
+    private IRechargeRecordService rechargeRecordService;
+
 
 
 
@@ -47,14 +63,14 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResponseWarpper<Long> queryDriverServerOrder(){
+    public ResponseWarpper<Map<String, Object>> queryDriverServerOrder(){
         try {
             Integer uid = driverService.getUserByRequest();
             if(null == uid){
                 return ResponseWarpper.tokenErr();
             }
-            Long id = orderService.queryDriverServerOrder(uid);
-            return ResponseWarpper.success(id);
+            Map<String, Object> map = orderService.queryDriverServerOrder(uid);
+            return ResponseWarpper.success(map);
         }catch (Exception e){
             e.printStackTrace();
             return new ResponseWarpper(500, e.getMessage());
@@ -70,7 +86,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResponseWarpper driverAddOrder(AddOrderWarpper addOrderWarpper){
+    public ResponseWarpper<Integer> driverAddOrder(AddOrderWarpper addOrderWarpper){
         try {
             Integer uid = driverService.getUserByRequest();
             if(null == uid){
@@ -285,7 +301,7 @@
     @ResponseBody
     @PostMapping("/api/order/cancelTransferOrder")
 //    @ServiceLog(name = "司机取消转单操作", url = "/api/order/cancelTransferOrder")
-    @ApiOperation(value = "司机取消转单操作", tags = {"司机端-我的订单"}, notes = "")
+    @ApiOperation(value = "司机取消转单操作", tags = {"司机端-个人中心"}, notes = "")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -372,10 +388,11 @@
     @ApiOperation(value = "服务完成后修改订单状态", tags = {"司机端-服务中"}, notes = "")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "long"),
-            @ApiImplicitParam(value = "107(线上支付),108(完成线下支付)", name = "state", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "支付方式(1=线上,2=线下)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "107(待支付),108(已完成)", name = "state", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResponseWarpper setOrderStatus(Long orderId, Integer state){
+    public ResponseWarpper setOrderStatus(Long orderId, Integer payType, Integer state){
         if(ToolUtil.isEmpty(orderId)){
             return ResponseWarpper.success(ResultUtil.paranErr("orderId"));
         }
@@ -387,7 +404,152 @@
             if(null == uid){
                 return ResponseWarpper.tokenErr();
             }
-            ResultUtil resultUtil = orderService.setOrderStatus(uid, orderId, state);
+            ResultUtil resultUtil = orderService.setOrderStatus(uid, orderId, payType, state);
+            return ResponseWarpper.success(resultUtil);
+        }catch (Exception e){
+            e.printStackTrace();
+            return new ResponseWarpper(500, e.getMessage());
+        }
+    }
+
+
+    /**
+     * 转账回调
+     * @param execute
+     * @param response
+     */
+    @ResponseBody
+    @PostMapping("/base/order/zhaunzhangCallback")
+    public void zhaunzhangCallback(@RequestBody InterfaceResponse execute, HttpServletResponse response){
+        try {
+            if("0000".equals(execute.getCode())){
+                JSONObject jsonObject = JSON.parseObject(execute.getResult());
+                Integer status = jsonObject.getInteger("status");//0:待处理;1:成功;2:失败
+                if(2 == status){
+                    System.err.println("转账失败");
+                    return;
+                }
+                String parameter1 = jsonObject.getString("parameter1");
+                RechargeRecord rechargeRecord = rechargeRecordService.selectById(parameter1);
+
+
+                response.setStatus(200);
+                PrintWriter out = response.getWriter();
+                out.print("OK");
+                out.flush();
+                out.close();
+            }else{
+                System.err.println("转账失败:" + execute.getMsg());
+                return;
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/api/order/queryDriverOrderList")
+//    @ServiceLog(name = "获取司机订单列表", url = "/api/order/queryDriverOrderList")
+    @ApiOperation(value = "获取司机订单列表", tags = {"司机端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单状态(107=未支付,109=已完成,301=已取消)", name = "state", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResponseWarpper<List<DriverOrderListWarpper>> queryDriverOrderList(Integer state, Integer pageNum, Integer pageSize){
+        if(null == pageNum){
+            return ResponseWarpper.success(ResultUtil.paranErr("pageNum"));
+        }
+        if(null == pageSize){
+            return ResponseWarpper.success(ResultUtil.paranErr("pageSize"));
+        }
+        try {
+            Integer uid = driverService.getUserByRequest();
+            if(null == uid){
+                return ResponseWarpper.tokenErr();
+            }
+            List<DriverOrderListWarpper> driverOrderListWarppers = orderService.queryDriverOrderList(uid, state, pageNum, pageSize);
+            return ResponseWarpper.success(driverOrderListWarppers);
+        }catch (Exception e){
+            e.printStackTrace();
+            return new ResponseWarpper(500, e.getMessage());
+        }
+    }
+
+
+    /**
+     * 服务录音回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/order/cloudRecordingCallback")
+    public void cloudRecordingCallback(HttpServletRequest request, HttpServletResponse response){
+        CloudRecordingCallback cloudRecordingCallback = RongYunUtil.cloudRecordingCallback(request);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        System.err.println(sdf.format(new Date()) + "-------------------云端录制状态回调!-------------------");
+        System.err.println(JSON.toJSONString(cloudRecordingCallback));
+        if(null == cloudRecordingCallback){
+            System.err.println("云端录制状态回调解析出错!");
+            return;
+        }
+        Integer type = cloudRecordingCallback.getType();
+        if(4 == type){//文件上传
+            String fileUrl = cloudRecordingCallback.getOutput().getFileUrl();
+            String roomId = cloudRecordingCallback.getRoomId();
+            Order order = orderService.selectById(roomId);
+            order.setRouteRecord(fileUrl);
+            orderService.updateById(order);
+        }
+        PrintWriter out = null;
+        try {
+            out = response.getWriter();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        out.print("OK");
+        out.flush();
+        out.close();
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/order/openOrderQRCode")
+//    @ServiceLog(name = "打开下单二维码操作", url = "/api/order/openOrderQRCode")
+    @ApiOperation(value = "打开下单二维码操作", tags = {"司机端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResponseWarpper openOrderQRCode(){
+        try {
+            Integer uid = driverService.getUserByRequest();
+            if(null == uid){
+                return ResponseWarpper.tokenErr();
+            }
+            ResultUtil resultUtil = driverService.openOrderQRCode(uid);
+            return ResponseWarpper.success(resultUtil);
+        }catch (Exception e){
+            e.printStackTrace();
+            return new ResponseWarpper(500, e.getMessage());
+        }
+    }
+
+
+
+    @ResponseBody
+    @PostMapping("/api/order/closeOrderQRCode")
+//    @ServiceLog(name = "关闭下单二维码操作", url = "/api/order/closeOrderQRCode")
+    @ApiOperation(value = "关闭下单二维码操作", tags = {"司机端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResponseWarpper closeOrderQRCode(){
+        try {
+            Integer uid = driverService.getUserByRequest();
+            if(null == uid){
+                return ResponseWarpper.tokenErr();
+            }
+            ResultUtil resultUtil = driverService.closeOrderQRCode(uid);
             return ResponseWarpper.success(resultUtil);
         }catch (Exception e){
             e.printStackTrace();

--
Gitblit v1.7.1