puzhibing
2023-06-27 4f8b61980b0db5995c16139d8eb9542b66da8a9f
user/guns-admin/src/main/java/com/supersavedriving/user/modular/api/OrderController.java
@@ -18,6 +18,8 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -35,6 +37,8 @@
@RestController
@RequestMapping("")
public class OrderController {
    Logger logger = LoggerFactory.getLogger(OrderController.class);
    @Autowired
    private IOrderService orderService;
@@ -59,6 +63,9 @@
    @Autowired
    private IAccountChangeDetailService accountChangeDetailService;
    @Autowired
    private IDivisionRecordService divisionRecordService;
@@ -247,7 +254,7 @@
            @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.....")
    })
    public ResponseWarpper<OrderPriceWarpper> queryOrderPrice(Long orderId){
    public ResponseWarpper<OrderPriceInfoWarpper> queryOrderPrice(Long orderId){
        if(null == orderId){
            return ResponseWarpper.success(ResultUtil.paranErr("orderId"));
        }
@@ -256,7 +263,7 @@
            if(null == uid){
                return ResponseWarpper.success(ResultUtil.tokenErr());
            }
            OrderPriceWarpper orderPriceWarpper = orderService.queryOrderPrice(uid, orderId);
            OrderPriceInfoWarpper orderPriceWarpper = orderService.queryOrderPrice(uid, orderId);
            return ResponseWarpper.success(orderPriceWarpper);
        }catch (Exception e){
            e.printStackTrace();
@@ -407,7 +414,7 @@
                JSONObject jsonObject = JSON.parseObject(execute.getResult());
                Integer status = jsonObject.getInteger("status");//0:待处理;1:成功;2:失败
                if(2 == status){
                    System.err.println("转账失败");
                    logger.warn("转账失败");
                    return;
                }
                String parameter1 = jsonObject.getString("parameter1");
@@ -420,7 +427,7 @@
                out.flush();
                out.close();
            }else{
                System.err.println("转账失败:" + execute.getMsg());
                logger.warn("转账失败:" + execute.getMsg());
                return;
            }
        }catch (Exception e){
@@ -444,41 +451,37 @@
                    JSONObject jsonObject = JSON.parseObject(execute.getResult());
                    Integer status = jsonObject.getInteger("status");
                    if(2 == status){
                        System.err.println("异步分账回调异常");
                        logger.warn("异步分账回调异常");
                        return;
                    }
                    String merOrderId = jsonObject.getString("merOrderId");
                    String orderId = jsonObject.getString("parameter1");
                    String divisionRecordId = jsonObject.getString("parameter1");
                    //确认收货
                    new Timer().schedule(new TimerTask() {
                        @Override
                        public void run() {
                            Order order = orderService.selectById(orderId);
                            List<Revenue> revenues = revenueService.selectList(new EntityWrapper<Revenue>().eq("userType", 2).eq("orderId", order.getId()));
                            DivisionRecord divisionRecord = divisionRecordService.selectById(divisionRecordId);
                            Receive receive = new Receive();//确认收货
                            receive.setOriginalMerOrderId(merOrderId);
                            receive.setRcvAmount(String.valueOf(Double.valueOf(order.getPayMoney() * 100).intValue()));
                            receive.setRcvAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
                            List<ReceiveUser> splitList = new ArrayList<>();
                            for (Revenue revenue : revenues) {
                                Driver driver = driverService.selectById(revenue.getUserId());
                                ReceiveUser receiveUser = new ReceiveUser();
                                receiveUser.setSplitUserId(driver.getMerchantNumber());
                                receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(revenue.getAmount() * 100).intValue()));
                                splitList.add(receiveUser);
                            }
                            ReceiveUser receiveUser = new ReceiveUser();
                            receiveUser.setSplitUserId(divisionRecord.getMerchantNumber());
                            receiveUser.setRcvSplitAmount(String.valueOf(Double.valueOf(divisionRecord.getAmount() * 100).intValue()));
                            splitList.add(receiveUser);
                            receive.setSplitList(splitList);
                            TrhRequest<Receive> request1 = new TrhRequest();
                            InterfaceResponse execute = request1.execute(receive, Receive.SERVICE_CODE);
                            if(!"0000".equals(execute.getCode())){
                                System.err.println("确认收货" + execute.getMsg());
                                logger.warn("确认收货" + execute.getMsg());
                            }
                            JSONObject jsonObject = JSON.parseObject(execute.getResult());
                            String status = jsonObject.getString("status");
                            if("2".equals(status)){
                                System.err.println("确认收货失败");
                                logger.warn("确认收货失败");
                            }
                            if("0".equals(status)){
                                System.err.println("确认收货处理中");
                                logger.warn("确认收货处理中");
                            }
                        }
                    }, 15000);