From 8acc98732aba58ad5c710f92d72e6fa5bf888d11 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期一, 24 二月 2025 01:08:06 +0800
Subject: [PATCH] 修改物流信息导入模板

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java |  174 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 101 insertions(+), 73 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 3cdd650..b208c39 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
@@ -5,7 +5,9 @@
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.feignClient.UserAddressClient;
+import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.account.api.model.UserAddress;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -25,27 +27,19 @@
 import com.ruoyi.order.util.vo.MapTrackKD100Vo;
 import com.ruoyi.order.vo.*;
 import com.ruoyi.other.api.domain.BaseSetting;
+import com.ruoyi.other.api.domain.Goods;
 import com.ruoyi.other.api.feignClient.BaseSettingClient;
 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.springframework.core.io.InputStreamResource;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.NotBlank;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.PrintWriter;
 import java.math.BigDecimal;
-import java.net.URL;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
@@ -55,7 +49,7 @@
 
 /**
  * <p>
- *  前端控制器
+ * 前端控制器
  * </p>
  *
  * @author luodangjia
@@ -81,6 +75,8 @@
     private SysUserClient sysUserClient;
     @Resource
     private RefundPassService refundPassService;
+    @Resource
+    private AppUserClient appUserClient;
 
 
     /**
@@ -91,7 +87,7 @@
             @ApiImplicitParam(value = "订单状态", name = "status", required = true, dataType = "int"),
     })
     @GetMapping("/getMyOrderList")
-    public TableDataInfo<OrderVO> getMyOrderList(@ApiParam("订单状态") Integer status){
+    public TableDataInfo<OrderVO> getMyOrderList(@ApiParam("订单状态") Integer status) {
         startPage();
         LoginUser loginUserApplet = tokenService.getLoginUserApplet();
         return getDataTable(orderService.selectOrderListByUserId(status, loginUserApplet.getUserid()));
@@ -101,7 +97,7 @@
      * 通过订单ids获取订单列表
      */
     @PostMapping("/getOrderListByIds")
-    public R<List<Order>> getOrderListByIds(@RequestBody List<Long> ids){
+    public R<List<Order>> getOrderListByIds(@RequestBody List<Long> ids) {
         return R.ok(orderService.listByIds(ids));
     }
 
@@ -113,7 +109,7 @@
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
     })
     @GetMapping("/detail/{orderId}")
-    public R<OrderDetailVO> detail(@PathVariable("orderId") Long orderId){
+    public R<OrderDetailVO> detail(@PathVariable("orderId") Long orderId) {
         return R.ok(orderService.getOrderDetail(orderId));
     }
 
@@ -122,10 +118,10 @@
      */
     @ApiOperation(value = "扫码校验", tags = {"小程序-个人中心-门店管理"})
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "分享id", name = "shareId", required = true, dataType = "int", paramType="query"),
+            @ApiImplicitParam(value = "分享id", name = "shareId", required = true, dataType = "int", paramType = "query"),
     })
     @GetMapping("/check/{orderNumber}/{shopId}")
-    public R<Boolean> check(@PathVariable("orderNumber") String orderNumber, @PathVariable("shopId") Integer shopId){
+    public R<Boolean> check(@PathVariable("orderNumber") String orderNumber, @PathVariable("shopId") Integer shopId) {
         LoginUser loginUserApplet = tokenService.getLoginUserApplet();
         Order order = orderService.getOne(new LambdaQueryWrapper<Order>()
                 .eq(Order::getOrderNumber, orderNumber));
@@ -140,7 +136,7 @@
             @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "String"),
     })
     @GetMapping("/writeOff")
-    public R<Void> writeOff(String code, Integer shopId, String technicianId){
+    public R<Void> writeOff(String code, Integer shopId, String technicianId) {
         orderService.writeOff(code, shopId, technicianId);
         return R.ok();
     }
@@ -153,7 +149,7 @@
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
     })
     @GetMapping("/cancel/{orderId}")
-    public R cancel(@PathVariable("orderId") Long orderId){
+    public R cancel(@PathVariable("orderId") Long orderId) {
         return orderService.cancel(orderId);
     }
 
@@ -165,7 +161,7 @@
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
     })
     @GetMapping("/confirm/{orderId}")
-    public R<Void> confirm(@PathVariable("orderId") Long orderId){
+    public R<Void> confirm(@PathVariable("orderId") Long orderId) {
         R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5);
         if (R.isError(baseSettingR)) {
             return R.fail("售后设置获取失败");
@@ -193,9 +189,9 @@
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
     })
     @GetMapping("/changeAddress")
-    public R<Void> changeAddress(@RequestParam("orderId") Long orderId, @RequestParam("addressId") Long addressId){
+    public R<Void> changeAddress(@RequestParam("orderId") Long orderId, @RequestParam("addressId") Long addressId) {
         R<UserAddress> userAddressR = addressClient.getUserAddressById(addressId);
-        if(R.isError(userAddressR)){
+        if (R.isError(userAddressR)) {
             return R.fail("收货地址不存在");
         }
         UserAddress userAddress = userAddressR.getData();
@@ -214,7 +210,7 @@
             @ApiImplicitParam(value = "订单对象", name = "order", required = true, dataType = "Order"),
     })
     @PostMapping("/updateOrderStatus")
-    public R<Void> updateOrderStatus(@RequestBody Order order){
+    public R<Void> updateOrderStatus(@RequestBody Order order) {
         Order order1 = orderService.getById(order.getId());
         order1.setOrderStatus(order.getOrderStatus());
         order1.setOldOrderStatus(order.getOldOrderStatus());
@@ -227,7 +223,7 @@
      * 预约技师
      */
     @PostMapping("/subscribe")
-    public R<Void> subscribe(@RequestParam(value = "id", required = false) Long id ,@RequestParam(value = "technicianId", required = false) Integer technicianId){
+    public R<Void> subscribe(@RequestParam(value = "id", required = false) Long id, @RequestParam(value = "technicianId", required = false) Integer technicianId) {
         Order order = orderService.getById(id);
         order.setTechnicianId(technicianId);
         orderService.updateById(order);
@@ -235,14 +231,14 @@
     }
 
     @PostMapping("/getLastOrder")
-    public R<Order> getLastOrder(@RequestParam("appUserId") Long appUserId){
+    public R<Order> getLastOrder(@RequestParam("appUserId") Long appUserId) {
         Order one = orderService.lambdaQuery().eq(Order::getAppUserId, appUserId).orderByDesc(Order::getCreateTime).last("limit 1").one();
         return R.ok(one);
     }
 
 
     @PostMapping("/byUserId")
-    public R<List<Order>> byUserId(@RequestParam("appUserId") Long appUserId,@RequestParam("shopId") Integer shopId){
+    public R<List<Order>> byUserId(@RequestParam("appUserId") Long appUserId, @RequestParam("shopId") Integer shopId) {
         List<Order> list = orderService.lambdaQuery()
                 .eq(Order::getAppUserId, appUserId)
                 .eq(null != shopId && -1 != shopId, Order::getShopId, shopId)
@@ -252,12 +248,14 @@
                 .notIn(Order::getOrderStatus, 5, 6).list();
         return R.ok(list);
     }
+
     @PostMapping("/byShopId")
-    public R<List<Order>> byShopId(@RequestParam("shopId") Integer shopId){
+    public R<List<Order>> byShopId(@RequestParam("shopId") Integer shopId) {
         return R.ok(orderService.lambdaQuery().isNotNull(Order::getEndTime).eq(Order::getShopId, shopId).list());
     }
+
     @PostMapping("/byShopIdAndUserId")
-    public R<List<Order>> byShopIdAndUserId(@RequestParam("appUserId") Long appUserId,@RequestParam("shopId") Integer shopId){
+    public R<List<Order>> byShopIdAndUserId(@RequestParam("appUserId") Long appUserId, @RequestParam("shopId") Integer shopId) {
         List<Order> list = orderService.lambdaQuery().isNotNull(Order::getEndTime)
                 .eq(null != shopId && -1 != shopId, Order::getShopId, shopId)
                 .eq(Order::getAppUserId, appUserId)
@@ -269,43 +267,42 @@
     }
 
 
-    
     @PostMapping("/confirmDelivery")
     @ApiOperation(value = "已发货操作", tags = {"管理后台-订单管理"})
-    public R confirmDelivery(@RequestBody ConfirmDelivery confirmDelivery){
+    public R confirmDelivery(@RequestBody ConfirmDelivery confirmDelivery) {
         return orderService.confirmDelivery(confirmDelivery);
     }
-    
-    
+
+
     @PutMapping("/cancelOrder/{orderId}")
     @ApiOperation(value = "取消订单操作", tags = {"管理后台-订单管理"})
-    public R cancelOrder(@PathVariable("orderId") Long orderId){
+    public R cancelOrder(@PathVariable("orderId") Long orderId) {
         return orderService.cancelOrder(orderId);
     }
-    
+
     @PutMapping("/receivingOperation/{orderId}")
     @ApiOperation(value = "收货操作", tags = {"管理后台-订单管理"})
-    public R receivingOperation(@PathVariable("orderId") Long orderId){
+    public R receivingOperation(@PathVariable("orderId") Long orderId) {
         return orderService.receivingOperation(orderId);
     }
-    
-    
+
+
     @GetMapping("/getOrderInfo/{orderId}")
     @ApiOperation(value = "查询订单详情", tags = {"管理后台-订单管理"})
-    public R<OrderInfoVo> getOrderInfo(@PathVariable("orderId") Long orderId){
+    public R<OrderInfoVo> getOrderInfo(@PathVariable("orderId") Long orderId) {
         OrderInfoVo orderInfo = orderService.getOrderInfo(orderId);
         RefundPass one = refundPassService.getOne(new LambdaQueryWrapper<RefundPass>().eq(RefundPass::getOrderId, orderId)
                 .eq(RefundPass::getDelFlag, 0).last(" order by create_time desc limit 0,1"));
-        if (one!=null){
+        if (one != null) {
             orderInfo.setRefundPassId(one.getId().toString());
         }
         return R.ok(orderInfo);
     }
-    
-    
+
+
     @GetMapping("/getOrderPageList")
 //    @ApiOperation(value = "获取订单列表", tags = {"管理后台-订单管理", "门店后台-订单管理"})
-    public R<PageInfo<OrderPageListVo>> getOrderPageList(OrderPageList orderPageList){
+    public R<PageInfo<OrderPageListVo>> getOrderPageList(OrderPageList orderPageList) {
         return R.ok(orderService.getOrderPageList(orderPageList));
     }
 
@@ -315,12 +312,12 @@
     @GetMapping("/getOrderStatistics")
     @ApiOperation(value = "订单统计", tags = {"管理后台-首页统计"})
     public R<OrderStatistics> getOrderStatistics(@RequestParam("startTime") String startTime,
-                                                 @RequestParam("endTime") String endTime){
+                                                 @RequestParam("endTime") String endTime) {
 
         Long userid = tokenService.getLoginUser().getUserid();
         SysUser sysUser = sysUserClient.getSysUser(userid).getData();
         List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>()
-                        .ne(Order::getOrderStatus,5)
+                .ne(Order::getOrderStatus, 5)
                 .eq(sysUser.getRoleType() == 2, Order::getShopId, sysUser.getObjectId())
                 .between(Order::getCreateTime, LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
                 .orderByAsc(Order::getCreateTime));
@@ -348,7 +345,7 @@
                     serviceTotalMoney = serviceTotalMoney.add(order.getTotalAmount());
                     total++;
                     totalMoney = totalMoney.add(order.getTotalAmount());
-                }else if (order.getOrderType().equals(2)){
+                } else if (order.getOrderType().equals(2)) {
                     singleTotal++;
                     singleTotalMoney = singleTotalMoney.add(order.getTotalAmount());
                     total++;
@@ -366,11 +363,11 @@
             orderStatisticsDetails.add(orderStatisticsDetail);
         });
         Integer shopId = null;
-        if(sysUser.getRoleType() == 2){
+        if (sysUser.getRoleType() == 2) {
             shopId = sysUser.getObjectId();
         }
         OrderStatistics orderStatistics = orderMapper.getOrderStatistics(startTime, endTime, shopId);
-        if(null != orderStatistics){
+        if (null != orderStatistics) {
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
             List<OrderStatisticsDetail> sortedDetails = orderStatisticsDetails.stream()
                     .sorted(Comparator.comparing((OrderStatisticsDetail detail) -> {
@@ -389,15 +386,16 @@
 
     /**
      * 订单取消支付回退
+     *
      * @param refundCallbackResult
      * @param response
      * @return
      */
     @ResponseBody
     @GetMapping("/refundPayMoneyCallback")
-    public void refundPayMoneyCallback(RefundCallbackResult refundCallbackResult, HttpServletResponse response){
+    public void refundPayMoneyCallback(RefundCallbackResult refundCallbackResult, HttpServletResponse response) {
         R callback = orderService.refundPayMoneyCallback(refundCallbackResult);
-        if(callback.getCode() == 200){
+        if (callback.getCode() == 200) {
             response.setStatus(200);
             PrintWriter out = null;
             try {
@@ -414,14 +412,15 @@
 
     /**
      * 取消订单快递费回退
+     *
      * @param refundCallbackResult
      * @param response
      */
     @ResponseBody
     @GetMapping("/refundExpressPayMoneyCallback")
-    public void refundExpressPayMoneyCallback(RefundCallbackResult refundCallbackResult, HttpServletResponse response){
+    public void refundExpressPayMoneyCallback(RefundCallbackResult refundCallbackResult, HttpServletResponse response) {
         R callback = orderService.refundExpressPayMoneyCallback(refundCallbackResult);
-        if(callback.getCode() == 200){
+        if (callback.getCode() == 200) {
             response.setStatus(200);
             PrintWriter out = null;
             try {
@@ -438,31 +437,32 @@
 
     /**
      * 获取商品销售数量
+     *
      * @param goodsId
      * @return
      */
     @PostMapping("/getGoodsSaleNum")
-    public R<Integer> getGoodsSaleNum(@RequestParam("goodsId") Integer goodsId, @RequestParam("type") Integer type){
+    public R<Integer> getGoodsSaleNum(@RequestParam("goodsId") Integer goodsId, @RequestParam("type") Integer type) {
         Integer goodsSaleNum = orderService.getGoodsSaleNum(goodsId, type, null);
         return R.ok(goodsSaleNum);
     }
 
 
-
     /**
      * 获取门店销售订单数量
-     * @param shopId    门店id
-     * @param type      1:服务订单,2:单品订单
+     *
+     * @param shopId 门店id
+     * @param type   1:服务订单,2:单品订单
      * @return
      */
     @PostMapping("/getShopSaleNum")
-    public R<Integer> getShopSaleNum(@RequestParam("shopId") Integer shopId, @RequestParam("type") Integer type){
+    public R<Integer> getShopSaleNum(@RequestParam("shopId") Integer shopId, @RequestParam("type") Integer type) {
         Integer shopSaleNum = orderService.getShopSaleNum(shopId, type);
         return R.ok(shopSaleNum);
     }
 
     @PostMapping("/getShopSaleNumByShopIds")
-    public R<Integer> getShopSaleNumByShopIds(@RequestBody OrderSaleNum orderSaleNum){
+    public R<Integer> getShopSaleNumByShopIds(@RequestBody OrderSaleNum orderSaleNum) {
         Integer shopSaleNum = orderService.getShopSaleNumByShopIds(orderSaleNum.getShopIds(), orderSaleNum.getType());
         return R.ok(shopSaleNum);
     }
@@ -470,29 +470,31 @@
 
     /**
      * 获取所有在指定门店消费的用户id
+     *
      * @param shopId
      * @return
      */
     @PostMapping("/getAppUserByShoppingShop")
-    public R<Set<Long>> getAppUserByShoppingShop(@RequestParam("shopId") Integer shopId){
+    public R<Set<Long>> getAppUserByShoppingShop(@RequestParam("shopId") Integer shopId) {
         List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getShopId, shopId).eq(Order::getDelFlag, 0)
                 .eq(Order::getPayStatus, 2).in(Order::getOrderStatus, Arrays.asList(1, 2, 3, 4, 7, 8)));
         Set<Long> collect = list.stream().map(Order::getAppUserId).collect(Collectors.toSet());
         return R.ok(collect);
     }
-    
-    
+
+
     /**
      * 获取订单快递明细
+     *
      * @param id
      * @return
      */
     @GetMapping("/getOrderExpress/{id}")
     @ApiOperation(value = "获取订单快递明细", tags = {"小程序-订单管理"})
-    public R<MapTrackKD100Vo> getOrderExpress(@PathVariable("id") Long id){
+    public R<MapTrackKD100Vo> getOrderExpress(@PathVariable("id") Long id) {
         Order order = orderService.getById(id);
         String expressResult = order.getExpressResult();
-        if(StringUtils.isNotEmpty(expressResult)){
+        if (StringUtils.isNotEmpty(expressResult)) {
             MapTrackKD100Vo mapTrackKD100Vo = JSON.parseObject(expressResult, MapTrackKD100Vo.class);
             return R.ok(mapTrackKD100Vo);
         }
@@ -502,11 +504,12 @@
 
     /**
      * 根据id获取订单详情
+     *
      * @param id
      * @return
      */
     @PostMapping("/getOrderById")
-    public R<Order> getOrderById(@RequestParam("id") Long id){
+    public R<Order> getOrderById(@RequestParam("id") Long id) {
         Order order = orderService.getById(id);
         return R.ok(order);
     }
@@ -514,11 +517,12 @@
 
     /**
      * 修改订单
+     *
      * @param order
      * @return
      */
     @PostMapping("/editOrder")
-    public R editOrder(@RequestBody Order order){
+    public R editOrder(@RequestBody Order order) {
         orderService.updateById(order);
         return R.ok();
     }
@@ -528,7 +532,7 @@
      * 导入物流信息
      */
     @PostMapping("/importExpress")
-    public R importExpress(@RequestBody String url){
+    public R importExpress(@RequestBody String url) {
         JSONObject jsonObject = JSONObject.parseObject(url);
         String url2 = jsonObject.getString("url");
         orderService.importExpress(url2);
@@ -539,28 +543,52 @@
      * 导出订单信息
      */
     @GetMapping("/exportExpress")
-    public void exportExpress(HttpServletResponse response,OrderPageList orderPage){
-        orderPage.setPageCurr(1);
-        orderPage.setPageSize(Integer.MAX_VALUE);
-        PageInfo<OrderPageListVo> orderPageList = orderService.getOrderPageList(orderPage);
-        List<OrderPageListVo> list = orderPageList.getRecords();
-        ExcelUtil<OrderPageListVo> util = new ExcelUtil<OrderPageListVo>(OrderPageListVo.class);
-        util.exportExcel(response, list, "订单数据");
+    public void exportExpress(HttpServletResponse response, OrderPageList orderPage) {
+
+        List<OrderExport> orderExportList = orderMapper.getOrderExportList(orderPage);
+        orderExportList.forEach(orderExport -> {
+            Long appUserId = orderExport.getAppUserId();
+            AppUser appUserById = appUserClient.getAppUserById(appUserId);
+            if (null != appUserById){
+                orderExport.setUserName(appUserById.getName());
+                orderExport.setPhone(appUserById.getPhone());
+            }
+            String goodJson = orderExport.getGoodJson();
+            if (StringUtils.isNotEmpty(goodJson) && !"NULL".equals(goodJson)) {
+                Goods goods = JSONObject.parseObject(goodJson, Goods.class);
+                orderExport.setGoodsName(goods.getName());
+                orderExport.setCostPrice(goods.getShopCost().add(goods.getOperatingCost()));
+            }
+
+            String expressJson = orderExport.getExpressJson();
+            if (StringUtils.isNotEmpty(expressJson) && !expressJson.equals("NULL")) {
+                JSONObject jsonObject = JSONObject.parseObject(expressJson);
+                orderExport.setExpressNum(jsonObject.getString("num"));
+                orderExport.setExpressName(jsonObject.getString("com"));
+            }
+
+
+        });
+
+        ExcelUtil<OrderExport> util = new ExcelUtil<OrderExport>(OrderExport.class);
+        util.exportExcel(response, orderExportList, "订单数据");
     }
-    
-    
+
+
     /**
      * 获取用户订单数量
+     *
      * @param appUserId
      * @return
      */
     @PostMapping("/getOrderCountByAppUserId")
-    public R<Long> getOrderCountByAppUserId(@RequestParam("id") Long appUserId){
+    public R<Long> getOrderCountByAppUserId(@RequestParam("id") Long appUserId) {
         long count = orderService.count(new LambdaQueryWrapper<Order>().eq(Order::getDelFlag, 0)
                 .eq(Order::getAppUserId, appUserId).in(Order::getOrderStatus, Arrays.asList(1, 2, 3, 4, 7, 8))
                 .eq(Order::getPayStatus, 2));
         return R.ok(count);
     }
 
+
 }
 

--
Gitblit v1.7.1