From ec6d43aa07ee0e8faf34498057ebcfbb446aa015 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期二, 16 七月 2024 09:21:51 +0800
Subject: [PATCH] feat: 代码重构

---
 ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java |  120 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 106 insertions(+), 14 deletions(-)

diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java
index 88a2ca4..c662152 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java
@@ -1,18 +1,25 @@
 package com.ruoyi.user.controller;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ruoyi.admin.api.entity.Prize;
 import com.ruoyi.admin.api.feignClient.AdminClient;
 import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.GlobalException;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.order.api.entity.Order;
+import com.ruoyi.order.api.entity.ServeRecord;
+import com.ruoyi.order.api.feignClient.OrderClient;
+import com.ruoyi.order.api.feignClient.ServeRecordClient;
 import com.ruoyi.system.api.model.LoginUserInfo;
-import com.ruoyi.user.entity.Order;
-import com.ruoyi.user.entity.ServeRecord;
+import com.ruoyi.user.entity.RecoveryServe;
+import com.ruoyi.user.entity.RecoveryServePrice;
 import com.ruoyi.user.request.OrderRequest;
 import com.ruoyi.user.service.OrderService;
-import com.ruoyi.user.service.ServeRecordService;
+import com.ruoyi.user.service.RecoveryServePriceService;
+import com.ruoyi.user.service.RecoveryServeService;
 import com.ruoyi.user.vo.OrderDetailVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -21,7 +28,11 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -37,32 +48,88 @@
 public class OrderController {
 
     @Resource
-    private OrderService orderService;
+    private RecoveryServeService recoveryServeService;
     @Resource
-    private ServeRecordService serveRecordService;
+    private RecoveryServePriceService recoveryServePriceService;
     @Resource
     private AdminClient adminClient;
     @Resource
     private TokenService tokenService;
+    @Resource
+    private OrderClient orderClient;
+    @Resource
+    private OrderService orderService;
+    @Resource
+    private ServeRecordClient serveRecordClient;
+
+    @GetMapping("/orderList")
+    @ApiOperation(value = "订单列表", tags = {"用户端-订单"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "状态(-1:全部;0:派单中;1:待上门;2:待完工;3:已完结;4:已取消;5:已改派)", name = "state", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "条数", name = "pageSize", dataType = "Integer", required = true)
+    })
+    public R<IPage<Order>> orderList(@RequestParam Integer state,
+                                     @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
+                                     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            return R.loginExpire("登录失效!");
+        }
+        IPage<Order> data = orderClient.orderListByUser(loginUser.getUserid(), state, pageNum, pageSize).getData();
+        List<Integer> ids = data.getRecords().stream().map(Order::getServeId).collect(Collectors.toList());
+        if (!ids.isEmpty()) {
+            List<RecoveryServe> serveList = recoveryServeService.lambdaQuery()
+                    .in(RecoveryServe::getId, ids).eq(RecoveryServe::getIsDelete, 0).list();
+            Map<Integer, String> map = serveList.stream().collect(Collectors.toMap(RecoveryServe::getId,
+                    mw -> Optional.ofNullable(mw.getCover()).orElse("")));
+            for (Order order : data.getRecords()) {
+                Integer serveId = order.getServeId();
+                order.setCover(map.get(serveId));
+            }
+        }
+        return R.ok(data);
+    }
+
+    @GetMapping("/estimate")
+    @ApiOperation(value = "在线评估", tags = {"用户端-订单"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "回收服务id", name = "orderId", dataType = "Integer", required = true),
+            @ApiImplicitParam(value = "所在城市", name = "city", dataType = "String")
+    })
+    public R<BigDecimal> estimate(@RequestParam String orderId, String city) {
+        Order order = orderClient.detail(orderId).getData();
+        RecoveryServe recoveryServe = recoveryServeService.lambdaQuery()
+                .eq(RecoveryServe::getId, order.getServeId())
+                .eq(RecoveryServe::getIsDelete, 0).one();
+        BigDecimal money = recoveryServe.getDefaultPrice();
+        if (StringUtils.isNotBlank(city)) {
+            RecoveryServePrice price = recoveryServePriceService.lambdaQuery()
+                    .eq(RecoveryServePrice::getRecoveryServeId, recoveryServe.getId())
+                    .eq(RecoveryServePrice::getCity, city).one();
+            if (null != price) {
+                money = price.getRecoveryPrice();
+            }
+        }
+        return R.ok(money);
+    }
 
     @GetMapping("/detail")
     @ApiOperation(value = "订单详情", tags = {"用户端-订单"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true)
     })
-    public R<OrderDetailVO> detail(@RequestParam Integer orderId) {
-        Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
+    public R<OrderDetailVO> detail(@RequestParam String orderId) {
+        Order order = orderClient.detail(orderId).getData();
         if (null == order) {
-            throw new GlobalException("订单状态异常!");
+            throw new GlobalException("订单不存在或已删除!");
         }
         OrderDetailVO orderDetail = new OrderDetailVO(order);
         if (Constants.THREE.equals(order.getState())) {
-            ServeRecord record = serveRecordService.lambdaQuery().eq(ServeRecord::getOrderId, orderId)
-                    .eq(ServeRecord::getIsDelete, 0).one();
-            if (null == record) {
-                throw new GlobalException("暂未上传家电照片!");
+            ServeRecord serveRecord = serveRecordClient.serveRecordByOrderId(orderId).getData();
+            if (null != serveRecord) {
+                orderDetail.setPhoto(serveRecord.getPhoto());
             }
-            orderDetail.setPhoto(record.getPhoto());
         }
         return R.ok(orderDetail);
     }
@@ -89,6 +156,32 @@
         return R.ok(orderService.obtainAllowance(adminClient.prizeList().getData()));
     }
 
+    /**
+     * 抽奖获取津贴
+     *
+     * @return 奖品列表
+     */
+    @GetMapping("/allowanceMoney")
+    @ApiOperation(value = "补充订单津贴金额", tags = {"用户端-订单"})
+    public R<Object> allowanceMoney(@RequestParam("orderId") String orderId, @RequestParam("prizeId") String prizeId) {
+        Prize data = adminClient.prizeDetail(prizeId).getData();
+        if (null == data) {
+            return R.fail("奖品信息获取失败!");
+        }
+        return R.ok(orderClient.supplementAllowance(orderId, data.getPrizeName()).getData());
+    }
+
+    @PostMapping("/orderEstimate")
+    @ApiOperation(value = "下单评估,生成预订单信息", tags = {"用户端-订单"})
+    public R<String> orderEstimate(@RequestBody OrderRequest orderRequest) {
+        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+        if (null == loginUser) {
+            return R.loginExpire("登录失效!");
+        }
+        String result = orderService.orderEstimate(orderRequest, loginUser.getUserid());
+        return R.ok(result, "");
+    }
+
     @PostMapping("/placeOrder")
     @ApiOperation(value = "用户下单", tags = {"用户端-订单"})
     public R<String> placeOrder(@RequestBody OrderRequest orderRequest) {
@@ -99,6 +192,5 @@
         Boolean result = orderService.placeOrder(orderRequest, loginUser.getUserid());
         return result ? R.ok() : R.fail();
     }
-
 
 }

--
Gitblit v1.7.1