From 02e99e878911715d2785e371ae6fb576597578b0 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期五, 09 八月 2024 09:34:49 +0800
Subject: [PATCH] 8.9

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java |  197 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 178 insertions(+), 19 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 eab7821..98d73a2 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,15 +5,19 @@
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.constant.Constants;
+import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.GlobalException;
+import com.ruoyi.common.core.vo.AddressDto;
 import com.ruoyi.common.core.vo.Path;
 import com.ruoyi.order.entity.*;
+import com.ruoyi.order.request.OrderCountDataRequest;
 import com.ruoyi.order.request.OrderRequest;
 import com.ruoyi.order.request.OrderSubmitRequest;
 import com.ruoyi.order.request.UserOrderRequest;
 import com.ruoyi.order.service.*;
 import com.ruoyi.order.vo.*;
+import com.ruoyi.user.api.feignClient.UserClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -23,9 +27,12 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -66,6 +73,7 @@
         return R.ok(orderService.lambdaQuery().eq(Order::getReservationPhone, phone)
                 .eq(Order::getIsDelete, 0).list());
     }
+
 
     /**
      * 订单列表
@@ -158,8 +166,18 @@
         } catch (Exception e) {
             bigDecimal = BigDecimal.ZERO;
         }
-        return R.ok(orderService.lambdaUpdate()
-                .eq(Order::getId, orderId).set(Order::getSubsidy, bigDecimal).update());
+        Order order = orderService.lambdaQuery()
+                .eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
+        BigDecimal subsidy = order.getSubsidy();
+        if (null == subsidy) {
+            order.setSubsidy(bigDecimal);
+            order.setOrderMoney(order.getOrderMoney().add(bigDecimal));
+        } else {
+            BigDecimal add = order.getSubsidy().add(bigDecimal);
+            order.setSubsidy(add);
+            order.setOrderMoney(order.getOrderMoney().add(bigDecimal));
+        }
+        return R.ok(orderService.updateById(order));
     }
 
     /**
@@ -201,6 +219,13 @@
         return R.ok(orderService.save(order));
     }
 
+    @PostMapping(value = "/queryIdsBycode")
+    public R<List<Integer>> queryIdsBycode(@RequestBody List<String> cityList) {
+        List<Integer> collect = orderService.lambdaQuery().eq(BaseEntity::getIsDelete,0).in(Order::getCityCode, cityList).list().stream().map(Order::getUserId).collect(Collectors.toList());
+        return R.ok(collect);
+    }
+
+
     /**
      * 更改订单信息
      *
@@ -230,6 +255,8 @@
         return R.ok(order);
     }
 
+    @Resource
+    private UserClient userClient;
     /**
      * 新增订单
      * 后台订单为指定订单,默认为待上门状态
@@ -239,6 +266,14 @@
     @ApiOperation(value = "订单列表-新增订单", tags = {"后台-订单管理"})
     @PostMapping(value = "/save")
     public R<Boolean> save(@RequestBody OrderRequest orderRequest) {
+
+        R<BigDecimal> servePrice = userClient.getServePrice(orderRequest.getServeId(), orderRequest.getCityCode());
+        if (servePrice.getData()!=null){
+            orderRequest.setOrderMoney(servePrice.getData());
+        }
+
+
+
         Order order = new Order();
         order.setCity(orderRequest.getCity());
         order.setOrderNumber(orderRequest.getOrderNumber());
@@ -247,12 +282,13 @@
         order.setSiteName(orderRequest.getSiteName());
         order.setServeId(orderRequest.getServeId());
         order.setServeName(orderRequest.getServeName());
-        order.setServePrice(orderRequest.getServePrice());
+        order.setServePrice(orderRequest.getOrderMoney());
         order.setSiteName(orderRequest.getSiteName());
         // 预约信息
         order.setReservationName(orderRequest.getReservationName());
         order.setReservationPhone(orderRequest.getReservationPhone());
         order.setReservationAddress(orderRequest.getReservationAddress());
+
         order.setTime(orderRequest.getTime());
         order.setAcceptTime(orderRequest.getAcceptTime());
         // 师傅信息
@@ -272,7 +308,75 @@
         order.setCancelReason(orderRequest.getCancelReason());
         order.setApplyReason(orderRequest.getApplyReason());
         order.setIsEvaluate(Constants.ZERO);
+        order.setCityCode(orderRequest.getCityCode());
+        order.setOrderMoney(orderRequest.getOrderMoney());
         return R.ok(orderService.save(order));
+    }
+
+
+    @ApiOperation(value = "订单列表-新增订单", tags = {"后台-订单管理"})
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody OrderRequest orderRequest) {
+
+        R<BigDecimal> servePrice = userClient.getServePrice(orderRequest.getServeId(), orderRequest.getCityCode());
+        if (servePrice.getData()!=null){
+            orderRequest.setOrderMoney(servePrice.getData());
+        }
+
+
+        Order order = orderService.getById(orderRequest.getOrderId());
+        if (order.getState()!=6) {
+            if ((!Objects.equals(order.getServerId(), orderRequest.getServerId())) || (!Objects.equals(order.getTime(), orderRequest.getTime()))) {
+                order.setState(1);
+                order.setArriveTime(null);
+                order.setAcceptTime(new Date());
+                orderService.lambdaUpdate()
+                        .eq(Order::getId, order.getId()
+                        ).set(Order::getArriveTime, null).update();
+
+            }
+        }
+
+        order.setId(orderRequest.getOrderId());
+        order.setCity(orderRequest.getCity());
+        order.setOrderNumber(orderRequest.getOrderNumber());
+        order.setUserId(orderRequest.getUserId());
+        order.setSiteId(orderRequest.getSiteId());
+        order.setSiteName(orderRequest.getSiteName());
+        order.setServeId(orderRequest.getServeId());
+        order.setServeName(orderRequest.getServeName());
+        order.setServePrice(orderRequest.getOrderMoney());
+        order.setSiteName(orderRequest.getSiteName());
+        order.setTime(orderRequest.getTime());
+        // 预约信息
+        order.setReservationName(orderRequest.getReservationName());
+        order.setReservationPhone(orderRequest.getReservationPhone());
+        order.setReservationAddress(orderRequest.getReservationAddress());
+//        order.setTime(orderRequest.getTime());
+//        order.setAcceptTime(orderRequest.getAcceptTime());
+        // 师傅信息
+        order.setServerId(orderRequest.getServerId());
+        order.setServerName(orderRequest.getServerName());
+        order.setServerPhone(orderRequest.getServerPhone());
+        order.setReservationRemark(orderRequest.getReservationRemark());
+
+        order.setArriveTime(orderRequest.getArriveTime());
+//        order.setType(orderRequest.getType());
+        order.setLongitude(orderRequest.getLongitude());
+        order.setLatitude(orderRequest.getLatitude());
+        order.setCompleteTime(orderRequest.getCompleteTime());
+//        order.setSubsidy(orderRequest.getSubsidy());
+        order.setIsWithdrawal(orderRequest.getIsWithdrawal());
+        order.setAddress(orderRequest.getAddress());
+        order.setCancelReason(orderRequest.getCancelReason());
+        order.setApplyReason(orderRequest.getApplyReason());
+        order.setIsEvaluate(Constants.ZERO);
+        order.setCityCode(orderRequest.getCityCode());
+        order.setOrderMoney(orderRequest.getServePrice());
+        if (order.getSubsidy()!=null){
+            order.setOrderMoney(order.getServePrice().add(order.getSubsidy()));
+        }
+        return R.ok(orderService.updateById(order));
     }
 
 
@@ -305,24 +409,34 @@
     }
 
     /**
-     * 订单列表-excel导出
+     * 订单统计
      *
-     * @param name  师傅姓名
-     * @param phone 师傅电话
+     * @param request 查询参数
      */
     @ApiOperation(value = "订单统计", tags = {"后台-订单管理"})
-    @GetMapping(value = "/orderCount")
+    @PostMapping(value = "/orderCount")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "师傅姓名", name = "name", dataType = "String"),
             @ApiImplicitParam(value = "师傅电话", name = "phone", dataType = "String"),
             @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true)
     })
-    public R<Page<OrderCountVO>> orderCount(@RequestParam(value = "name", required = false) String name,
-                                            @RequestParam(value = "phone", required = false) String phone,
-                                            @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
-                                            @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
-        return R.ok(orderService.orderCount(name, phone, Page.of(pageNum, pageSize)));
+    public R<Page<OrderCountVO>> orderCount(@RequestBody OrderCountDataRequest request) {
+        return R.ok(orderService.orderCount(request.getWorkerName(), request.getWorkerPhone(), request.getCityList(),
+                Page.of(request.getPageNum(), request.getPageSize())));
+    }
+
+    /**
+     * 判断用户是否下单
+     *
+     * @param userId 用户id
+     */
+    @GetMapping(value = "/orderByUserId")
+    public R<Boolean> orderByUserId(@RequestParam("userId") Integer userId) {
+        List<Order> list = orderService.lambdaQuery()
+                .eq(Order::getUserId, userId)
+                .eq(Order::getIsDelete, Constants.ZERO).list();
+        return R.ok(!list.isEmpty());
     }
 
     /**
@@ -351,11 +465,35 @@
             @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
             @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true)
     })
-    public R<IPage<Order>> orderList(@RequestParam("userId") Integer userId,
+    public R<Page<Order>> orderList(@RequestParam("userId") Integer userId,
                                      @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                                      @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
-        return R.ok(orderService.lambdaQuery().eq(Order::getUserId, userId)
-                .eq(Order::getIsDelete, 0).page(Page.of(pageNum, pageSize)));
+        Page<Order> page = orderService.lambdaQuery().eq(Order::getUserId, userId)
+                .eq(Order::getIsDelete, 0).page(Page.of(pageNum, pageSize));
+        return R.ok(page);
+    }
+
+    @GetMapping(value = "/orderList1")
+    public R<Page<Order>> orderList1(@RequestParam("userId") Integer userId, @RequestParam("cityList") List<String> cityList,
+                                    @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        Page<Order> page = orderService.lambdaQuery().eq(Order::getUserId, userId)
+                .eq(Order::getIsDelete, 0).in(!cityList.isEmpty(),Order::getCityCode, cityList).page(Page.of(pageNum, pageSize));
+        return R.ok(page);
+    }
+
+    @GetMapping(value = "/workOrderList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "师傅id", name = "workId", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true)
+    })
+    public R<Page<Order>> workOrderList(@RequestParam("workId") Integer workId,
+                                    @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        Page<Order> page = orderService.lambdaQuery().eq(Order::getServerId, workId)
+                .eq(Order::getIsDelete, 0).page(Page.of(pageNum, pageSize));
+        return R.ok(page);
     }
 
     /**
@@ -365,7 +503,7 @@
      * @return 交易额
      */
     @ApiOperation(value = "根据类型获取交易额", tags = {"后台-用户管理-用户列表"})
-    @PostMapping(value = "/tradeMoney")
+    @PostMapping (value = "/tradeMoney")
     public R<BigDecimal> tradeMoney(@RequestBody MoneyQueryRequest moneyQueryRequest) {
         return R.ok(orderService.tradeMoney(moneyQueryRequest));
     }
@@ -428,7 +566,6 @@
      */
     @ApiOperation(value = "已到达预约地点", tags = {"师傅端"})
     @GetMapping(value = "/reachPosition")
-    @Transactional(rollbackFor = Exception.class)
     public R<Boolean> reachPosition(@RequestParam("orderId") String orderId, @RequestParam("workerId") Integer workerId) {
         Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getServerId, workerId)
                 .eq(Order::getIsDelete, 0).one();
@@ -454,6 +591,9 @@
     public R<OrderDetailVO> orderDetail(@RequestParam("orderId") String orderId) {
         // 订单信息
         Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
+        if (order.getAddress()!=null) {
+            order.setReservationAddress(order.getReservationAddress() + order.getAddress());
+        }
         // 服务信息(服务备注、上门时间、完成时间、完成所拍现场照片)
         ServeRecord serveRecord = serveRecordService.lambdaQuery().eq(ServeRecord::getOrderId, orderId)
                 .eq(ServeRecord::getIsDelete, 0).one();
@@ -481,11 +621,15 @@
         }
         order.setCompleteTime(new Date());
         order.setState(Constants.THREE);
+        order.setFake(orderSubmitRequest.getFake());
         boolean update = orderService.updateById(order);
         // 服务记录
         ServeRecord serveRecord = new ServeRecord();
         serveRecord.setOrderId(order.getId());
         serveRecord.setPhoto(String.join(",", orderSubmitRequest.getPhoto()));
+        serveRecord.setPaperPic(orderSubmitRequest.getPaperPic());
+        serveRecord.setCardPic(orderSubmitRequest.getCardPic());
+        serveRecord.setMachinePic(orderSubmitRequest.getMachinePic());
         boolean save = serveRecordService.save(serveRecord);
         return R.ok(update && save);
     }
@@ -516,17 +660,30 @@
      *
      * @param workerId 师傅id
      */
-    @ApiOperation(value = "代办列表", tags = {"师傅端"})
+
+
+// ...
+
+    @ApiOperation(value = "代办列表", tags ={"师傅端"})
     @GetMapping(value = "/orderNotHandle")
     public R<List<Order>> orderNotHandle(@RequestParam("workerId") Integer workerId) {
+        // 获取当前日期
+        LocalDate today = LocalDate.now();
+
+        // 格式化日期字符串,假设数据库中的日期格式为 yyyy-MM-dd
+        String todayStr = today.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+
         QueryWrapper<Order> wrapper = new QueryWrapper<>();
         wrapper.eq("server_id", workerId)
                 .in("state", 1, 2)
                 .eq("is_delete", Constants.ZERO)
+                .eq("DATE(time)", todayStr)  // 添加这一行来筛选当天的订单
                 .orderByAsc("CASE WHEN topSort IS NULL THEN 1 ELSE 0 END")
                 .orderByAsc("topSort");
+
         return R.ok(orderService.list(wrapper));
     }
+
 
     /**
      * 师傅端-订单代办列表
@@ -559,7 +716,9 @@
                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
         LambdaQueryChainWrapper<Order> wrapper = orderService.lambdaQuery()
                 .eq(Order::getIsDelete, 0).eq(Order::getUserId, userId);
-        if (state != -1) {
+        if (state == 1 || state == 2) {
+            wrapper.in(Order::getState, Constants.ONE, Constants.TWO);
+        } else if (state != -1) {
             wrapper.eq(Order::getState, state);
         }
         return R.ok(wrapper.orderByDesc(Order::getCreateTime).page(Page.of(pageNum, pageSize)));

--
Gitblit v1.7.1