From 7e1a12b0dc3aa2034003203d7f677263fee9c27b Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 14 一月 2025 16:28:59 +0800
Subject: [PATCH] 12.18

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java |   26 +++++++++++++++-----------
 1 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index 74f7b4a..50ff76a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -14,6 +14,7 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.uuid.QRCodeGenerator;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.enums.OrderStatus;
@@ -41,6 +42,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
@@ -175,14 +177,6 @@
         }
         OrderDetailVO orderDetailVO = new OrderDetailVO();
         orderDetailVO.setDistributionMode(order.getDistributionMode());
-        Technician technician = new Technician();
-        if (order.getTechnicianId() != null){
-            R<Technician> shopdetail = technicianClient.shopdetail(order.getTechnicianId());
-            if (shopdetail.getCode() != R.SUCCESS){
-                throw new ServiceException("获取技师信息失败");
-            }
-            technician = shopdetail.getData();
-        }
         Shop shop = shopR.getData();
         orderDetailVO.setId(order.getId());
         orderDetailVO.setOrderStatus(order.getOrderStatus());
@@ -207,14 +201,23 @@
         orderDetailVO.setLongitude(shop.getLongitude());
         orderDetailVO.setLatitude(shop.getLatitude());
         orderDetailVO.setShopId(shop.getId());
-        orderDetailVO.setTechnicianName(technician.getName());
-        orderDetailVO.setTechnicianId(technician.getId());
         if(order.getOrderType() == 1){
             List<TechnicianSubscribe> data = technicianSubscribeClient.getTechnicianSubscribeList(order.getId()).getData();
             if(data.size() > 0){
                 Long id = data.get(0).getId();
                 orderDetailVO.setTechnicianSubscribeId(id.toString());
+                Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData();
+                orderDetailVO.setTechnicianName(technician.getName());
+                orderDetailVO.setTechnicianId(technician.getId());
             }
+        }
+        // 生成核销码BASE64
+        try {
+            String base64 = QRCodeGenerator.generateQRCodeBase64(String.valueOf(order.getId()), 124, 124);
+            orderDetailVO.setWriteOffCode(base64);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new ServiceException("生成核销码失败");
         }
         return orderDetailVO;
     }
@@ -248,7 +251,7 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void writeOff(String id,Integer shopId) {
+    public void writeOff(String id,Integer shopId, Integer technicianId) {
         LoginUser loginUserApplet = tokenService.getLoginUserApplet();
         Order order = orderMapper.selectById(id);
         boolean check = check(order, shopId, loginUserApplet.getUserid());
@@ -273,6 +276,7 @@
         order.setAfterSaleTime(LocalDateTime.now().plusDays(days));
         order.setEndTime(LocalDateTime.now());
         order.setCancellerAppUserId(loginUserApplet.getUserid());
+        order.setTechnicianId(technicianId);
         orderMapper.updateById(order);
     }
     

--
Gitblit v1.7.1