From 7bf4584c98a18f3027d6be1a919750c539d6e580 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 02 九月 2025 11:48:26 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java |  201 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 140 insertions(+), 61 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
index c08a457..dcb8038 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -1,57 +1,63 @@
 package com.ruoyi.order.controller;
 
 
-import com.alibaba.fastjson2.JSON;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.AppUser;
-import com.ruoyi.common.core.constant.ExpressCompanyMap;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.WebUtils;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.dto.ConfirmOrderDTO;
-
 import com.ruoyi.order.enums.OrderStatus;
+import com.ruoyi.order.export.ChargeOrderExport;
 import com.ruoyi.order.mapper.OrderMapper;
+import com.ruoyi.order.model.ChargeOrder;
 import com.ruoyi.order.model.Order;
+import com.ruoyi.order.service.ChargeOrderService;
 import com.ruoyi.order.service.OrderService;
-import com.ruoyi.order.util.payment.model.RefundCallbackResult;
-import com.ruoyi.order.util.payment.model.UniPayCallbackResult;
-import com.ruoyi.order.util.vo.MapTrackKD100Vo;
+import com.ruoyi.order.util.payment.wechat.PayMoneyUtil;
+import com.ruoyi.order.util.payment.wx.WechatPayService;
+import com.ruoyi.order.util.payment.wx.vo.PayResult;
 import com.ruoyi.order.util.vo.ShopAnalysisVO;
 import com.ruoyi.order.vo.*;
 import com.ruoyi.other.api.domain.BaseSetting;
 import com.ruoyi.other.api.domain.Goods;
+import com.ruoyi.other.api.domain.Shop;
 import com.ruoyi.other.api.dto.ShopAnalysisDTO;
 import com.ruoyi.other.api.feignClient.BaseSettingClient;
 import com.ruoyi.other.api.feignClient.ShopClient;
-import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import com.ruoyi.system.api.model.LoginUser;
-import io.swagger.annotations.*;
-import org.apache.ibatis.annotations.Param;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.Duration;
+import java.net.URLEncoder;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -70,6 +76,8 @@
     @Resource
     private OrderService orderService;
     @Resource
+    private ChargeOrderService chargeOrderService;
+    @Resource
     private TokenService tokenService;
     @Resource
     private BaseSettingClient baseSettingClient;
@@ -82,12 +90,15 @@
 
     @Resource
     private ShopClient shopClient;
-
+    @Resource
+    private PayMoneyUtil payMoneyUtil;
+    @Resource
+    private WechatPayService wechatPayService;
 
 
     @ResponseBody
     @PostMapping("/confirmOrder")
-    @ApiOperation(value = "确定订单", tags = {"商城-订单-小程序"})
+    @ApiOperation(value = "确定订单", tags = {"商城-订单-小程序-确定订单"})
     public R<ConfirmOrderVo> confirmOrder(@RequestBody ConfirmOrderDTO confirmOrderDTO) {
         ConfirmOrderVo confirmOrderVo = orderService.confirmOrder(confirmOrderDTO.getGoodId(),confirmOrderDTO.getType());
         return R.ok(confirmOrderVo);
@@ -95,7 +106,7 @@
 
     @ResponseBody
     @PostMapping("/orderPayment")
-    @ApiOperation(value = "订单支付", tags = {"商城-订单支付-小程序"})
+    @ApiOperation(value = "订单支付", tags = {"商城-订单支付-小程序-订单支付"})
     public R orderPayment(@RequestBody OrderPayment orderPayment){
         return orderService.orderPayment(orderPayment);
     }
@@ -104,12 +115,19 @@
      * 订单支付回调通知
      */
     @ResponseBody
-    @GetMapping("/orderPaymentCallback")
-    public void orderPaymentCallback(UniPayCallbackResult uniPayCallbackResult, HttpServletResponse response){
-        String jsonString = JSONObject.toJSONString(uniPayCallbackResult);
+    @PostMapping("/orderPaymentCallback")
+    public void orderPaymentCallback(HttpServletRequest request, HttpServletResponse response){
+//        String jsonString = JSONObject.toJSONString(uniPayCallbackResult);
+        System.err.println("1111111111111");
+        PayResult  payResult= null;
+        try {
+            payResult = wechatPayService.processNotify(request);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
         System.out.println("1111111111111111111111");
-        System.out.println(jsonString);
-        R callback = orderService.orderPaymentCallback(uniPayCallbackResult);
+//        System.out.println(jsonString);
+        R callback = orderService.orderPaymentCallback(payResult);
         if(callback.getCode() == 200){
             response.setStatus(200);
             PrintWriter out = null;
@@ -127,12 +145,12 @@
     /**
      * 我的订单列表
      */
-    @ApiOperation(value = "我的订单列表", tags = {"小程序-个人中心-我的订单"})
+    @ApiOperation(value = "我的订单列表", tags = {"小程序-个人中心-我的订单-我的订单列表"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单状态", name = "status", required = true, dataType = "int"),
     })
     @GetMapping("/getMyOrderList")
-    public TableDataInfo<OrderVO> getMyOrderList(@ApiParam("订单状态") Integer status) {
+    public TableDataInfo<OrderVO> getMyOrderList(@RequestParam(value = "status",required = false) Integer status) {
         startPage();
         LoginUser loginUserApplet = tokenService.getLoginUserApplet();
         return getDataTable(orderService.selectOrderListByUserId(status, loginUserApplet.getUserid()));
@@ -161,7 +179,7 @@
     /**
      * 扫码校验
      */
-    @ApiOperation(value = "扫码校验", tags = {"小程序-个人中心-门店管理"})
+    @ApiOperation(value = "扫码校验", tags = {"小程序-个人中心-门店管理-扫码校验"})
     @GetMapping("/check/{orderNumber}/{shopId}")
     public R<Boolean> check(@PathVariable("orderNumber") String orderNumber, @PathVariable("shopId") Integer shopId) {
         LoginUser loginUserApplet = tokenService.getLoginUserApplet();
@@ -173,25 +191,63 @@
     /**
      * 订单核销
      */
-    @ApiOperation(value = "订单核销", tags = {"小程序-个人中心-门店管理"})
+    @ApiOperation(value = "订单核销", tags = {"小程序-个人中心-门店管理-订单核销"})
     @GetMapping("/writeOff")
-    public R<Void> writeOff(@ApiParam("id") String id, @ApiParam("shopId") Integer shopId) {
+    public R<Void> writeOff(@RequestParam("id") String id, @RequestParam("shopId") Integer shopId) {
         orderService.writeOff(id, shopId);
         return R.ok();
     }
 
     @GetMapping("/getShopOrderList")
-    @ApiOperation(value = "获取订单列表", tags = {"门店后台-订单管理", })
-    public R<IPage<OrderPageListVo>> getShopOrderList(@ApiParam("模糊查询:订单编号/商品名/手机号 ") String content ,
-                                                      @ApiParam("订单状态") Integer status,
-                                                      @ApiParam("门店id") Integer shopId,
-                                                      @ApiParam("页码") @RequestParam("pageNum") Integer pageNum,
-                                                      @ApiParam("每一页数据大小") @RequestParam("pageSize") Integer pageSize) {
+    @ApiOperation(value = "获取订单列表", tags = {"门店后台-订单管理-获取订单列表"})
+    public R<IPage<OrderPageListVo>> getShopOrderList(@RequestParam(value = "content",required = false) String content ,
+                                                      @RequestParam(value = "status",required = false) Integer status,
+                                                      @RequestParam("shopId") Integer shopId,
+                                                      @RequestParam("pageNum") Integer pageNum,
+                                                      @RequestParam("pageSize") Integer pageSize) {
         return R.ok(orderService.getShopOrderList(content,status,shopId,pageNum,pageSize));
+    }
+    @PostMapping("/importExpress")
+    @ApiOperation(value = "2.0新增导入订单", tags = {"门店后台-订单管理-2.0新增导入订单"})
+    public R importExpress(@RequestParam("file") MultipartFile file) {
+       /* JSONObject jsonObject = JSONObject.parseObject(url);
+        String url2 = jsonObject.getString("url");*/
+        if (file.isEmpty()) {
+            return R.fail("请选择要上传的文件");
+        }
+
+        return orderService.importExpress(file);
+    }
+
+    @ApiOperation(value = "2.0订单导入模板下载", tags = {"门店后台-订单管理-2.0订单导入模板下载"})
+    @GetMapping("/importOrder")
+    public void importOrder() {
+        List<OrderExport> orderExports = new ArrayList<>();
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), OrderExport.class, orderExports);
+        HttpServletResponse response = WebUtils.response();
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("订单导入模板.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setHeader("content-Type", "application/vnd.ms-excel");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+            System.out.println("订单导入模板下载失败!");
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
     }
 
     @PutMapping("/shopCancelOrder/{orderId}")
-    @ApiOperation(value = "取消订单", tags = {"门店后台-订单管理"})
+    @ApiOperation(value = "取消订单", tags = {"门店后台-订单管理-取消订单"})
     public R shopCancelOrder(@PathVariable("orderId") Long orderId) {
         return orderService.shopCancelOrder(orderId);
     }
@@ -201,7 +257,7 @@
     /**
      * 取消订单
      */
-    @ApiOperation(value = "取消订单", tags = {"小程序-个人中心-我的订单"})
+    @ApiOperation(value = "取消订单小程序", tags = {"小程序-个人中心-我的订单-取消订单小程序"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
     })
@@ -213,7 +269,7 @@
     /**
      * 确认收货
      */
-    @ApiOperation(value = "确认收货", tags = {"小程序-个人中心-我的订单"})
+    @ApiOperation(value = "确认收货", tags = {"小程序-个人中心-我的订单-确认收货"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
     })
@@ -241,7 +297,7 @@
     /**
      * 更新订单状态
      */
-    @ApiOperation(value = "更新订单状态", tags = {"后台-订单管理"})
+    @ApiOperation(value = "更新订单状态", tags = {"后台-订单管理-更新订单状态"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单对象", name = "order", required = true, dataType = "Order"),
     })
@@ -296,20 +352,20 @@
 
 
     @PutMapping("/cancelOrder/{orderId}")
-    @ApiOperation(value = "取消订单操作", tags = {"后台-订单管理"})
+    @ApiOperation(value = "取消订单操作", tags = {"后台-订单管理-取消订单操作"})
     public R cancelOrder(@PathVariable("orderId") Long orderId) {
         return orderService.cancelOrder(orderId);
     }
 
     @PutMapping("/receivingOperation/{orderId}")
-    @ApiOperation(value = "收货操作", tags = {"管理后台-订单管理"})
+    @ApiOperation(value = "收货操作", tags = {"管理后台-订单管理-收货操作"})
     public R receivingOperation(@PathVariable("orderId") Long orderId) {
         return orderService.receivingOperation(orderId);
     }
 
 
     @GetMapping("/getOrderInfo/{orderId}")
-    @ApiOperation(value = "查询订单详情", tags = {"管理后台-订单管理"})
+    @ApiOperation(value = "查询订单详情", tags = {"管理后台-订单管理-查询订单详情"})
     public R<OrderInfoVo> getOrderInfo(@PathVariable("orderId") Long orderId) {
         OrderInfoVo orderInfo = orderService.getOrderInfo(orderId);
         return R.ok(orderInfo);
@@ -317,8 +373,14 @@
 
 
     @GetMapping("/getOrderPageList")
-    @ApiOperation(value = "获取订单列表", tags = {"后台-订单管理", })
+//    @ApiOperation(value = "获取订单列表后台", tags = {"管理后台-订单管理-获取订单列表后台"})
     public R<PageInfo<OrderManagePageListVO>> getOrderPageList(OrderPageList orderPageList) {
+        return R.ok(orderService.getOrderPageList(orderPageList));
+    }
+
+    @PostMapping("/queryOrderPageList")
+    @ApiOperation(value = "获取订单列表后台", tags = {"管理后台-订单管理-获取订单列表后台"})
+    public R<PageInfo<OrderManagePageListVO>> queryOrderPageList(@RequestBody OrderPageList orderPageList) {
         return R.ok(orderService.getOrderPageList(orderPageList));
     }
 
@@ -326,7 +388,7 @@
      * 订单统计
      */
  /*   @GetMapping("/getOrderStatistics")
-    @ApiOperation(value = "订单统计", tags = {"管理后台-首页统计"})
+    //@ApiOperation(value = "订单统计", tags = {"管理后台-首页统计"})
     public R<OrderStatistics> getOrderStatistics(@RequestParam("startTime") String startTime,
                                                  @RequestParam("endTime") String endTime) {
 
@@ -406,31 +468,30 @@
 */
     /**
      * 订单取消支付回退
-     *
-     * @param refundCallbackResult
-     * @param response
-     * @return
      */
     @ResponseBody
-    @GetMapping("/refundPayMoneyCallback")
-    public void refundPayMoneyCallback(RefundCallbackResult refundCallbackResult, HttpServletResponse response) {
-        R callback = orderService.refundPayMoneyCallback(refundCallbackResult);
+    @PostMapping("/refundPayMoneyCallback")
+    public String refundPayMoneyCallback( @RequestBody(required = false) String xmlData) {
+        R callback = orderService.refundPayMoneyCallback(xmlData);
         if (callback.getCode() == 200) {
-            response.setStatus(200);
-            PrintWriter out = null;
-            try {
-                out = response.getWriter();
-            } catch (IOException e) {
-                throw new RuntimeException(e);
-            }
-            out.println("success");
-            out.flush();
-            out.close();
+          return "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
+        }else {
+            System.err.println("支付回退错误:"+callback.getMsg());
+            return "<xml><return_code><![CDATA[FAIL]]></return_code></xml>";
         }
     }
 
-    
 
+    /**
+     * 获取商品销售数量
+     *
+     * @return
+     */
+    @PostMapping(value = "/getList")
+    R<List<ChargeOrder>> getList(@RequestParam("siteId") Integer siteId) {
+        List<ChargeOrder> list = chargeOrderService.lambdaQuery().eq(ChargeOrder::getPowerStationId, siteId).list();
+        return R.ok(list);
+    }
     /**
      * 获取商品销售数量
      *
@@ -496,7 +557,7 @@
      * @return
      *//*
     @GetMapping("/getOrderExpress/{id}")
-    @ApiOperation(value = "获取订单快递明细", tags = {"小程序-订单管理"})
+    //@ApiOperation(value = "获取订单快递明细", tags = {"小程序-订单管理"})
     public R<MapTrackKD100Vo> getOrderExpress(@PathVariable("id") Long id) {
         Order order = orderService.getById(id);
         String expressResult = order.getExpressResult();
@@ -615,7 +676,15 @@
                 orderExport.setSupplierCostPrice(goods.getShopCost());*/
             }
         });
-
+        List<Shop> data = shopClient.getAllShop().getData();
+        // 转化为map
+        Map<Integer, Shop> shopMap = data.stream().collect(Collectors.toMap(Shop::getId, shop -> shop));
+        for (OrderExport orderExport : orderExportList) {
+            Shop shop = shopMap.get(orderExport.getShopId());
+            if (shop!=null){
+                orderExport.setShopName(shop.getName());
+            }
+        }
         ExcelUtil<OrderExport> util = new ExcelUtil<OrderExport>(OrderExport.class);
         util.exportExcel(response, orderExportList, "订单数据");
     }
@@ -778,5 +847,15 @@
         return R.ok(orderService.getMap(queryWrapper));
     }
 
+    /**
+     * 获取商户RSA加密公钥
+     */
+
+    @GetMapping("/getRsaPublicKey")
+    public R<Void> getRsaPublicKey(){
+        wechatPayService.getRsaPublicKey();
+        return R.ok();
+    }
+
 }
 

--
Gitblit v1.7.1