From eb7a808aaf7dd0a6dd2ff70f9ef3f8ce0b1e31d1 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 22 五月 2026 18:27:32 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun

---
 server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java |   74 ++++++++++++++++++++++++++++++++++---
 1 files changed, 68 insertions(+), 6 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
index 84659b7..b90ecac 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
@@ -159,6 +159,10 @@
      * 鍙戦�佸徃鏈虹珯鍐呬俊閫氱煡
      */
     private void sendDriverNotice(Integer driverId, Constants.DriverOrderNotify notify, Integer orderId, String... params) {
+        sendDriverNotice(driverId, notify, orderId, 0, params);
+    }
+
+    private void sendDriverNotice(Integer driverId, Constants.DriverOrderNotify notify, Integer objId, Integer objType, String... params) {
         DriverInfo driver = driverInfoMapper.selectById(driverId);
         if (driver == null || driver.getMemberId() == null) {
             return;
@@ -168,8 +172,8 @@
         notice.setUserId(driver.getMemberId());
         notice.setTitle(notify.getTitle());
         notice.setContent(notify.format(params));
-        notice.setObjId(orderId);
-        notice.setObjType(0); // 0=璁㈠崟
+        notice.setObjId(objId);
+        notice.setObjType(objType);
         notice.setStatus(0);  // 0=鏈
         notice.setIsdeleted(Constants.ZERO);
         notice.setCreateDate(new Date());
@@ -222,6 +226,29 @@
         if (Objects.isNull(driverInfo)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
+        // 鏌ヨ瀹℃壒浜哄悕绉�
+        if (driverInfo.getAuditUser() != null) {
+            try {
+                SystemUser auditUser = systemUserService.findById(driverInfo.getAuditUser());
+                if (auditUser != null) {
+                    driverInfo.setAuditUserName(auditUser.getRealname());
+                }
+            } catch (Exception e) {
+                // 瀹℃壒浜哄凡鍒犻櫎绛夊紓甯稿拷鐣�
+            }
+        }
+        // 鏌ヨ鐪佸競鍖轰俊鎭�
+        if (driverInfo.getAreaId() != null) {
+            Areas district = areasBiz.resolveArea(driverInfo.getAreaId());
+            if (district != null) {
+                driverInfo.setDistrictId(district.getId());
+                driverInfo.setDistrictName(district.getName());
+                driverInfo.setCityId(district.getCityId());
+                driverInfo.setCityName(district.getCityName());
+                driverInfo.setProvinceId(district.getProvinceId());
+                driverInfo.setProvinceName(district.getProvinceName());
+            }
+        }
         return driverInfo;
     }
 
@@ -242,7 +269,6 @@
         IPage<DriverInfo> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<DriverInfo> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        pageWrap.getModel().setDeleted(Constants.ZERO);
 
         // 鍙告満濮撳悕/鎵嬫満鍙凤紙鍏抽敭瀛楁ā绯婃煡璇級
         if (StringUtils.isNotBlank(pageWrap.getModel().getKeyword())) {
@@ -278,7 +304,8 @@
         queryWrapper.selectAll(DriverInfo.class)
                 .select(" ( select ifnull(sum(r.OPT_TYPE * r.AMOUNT),0) from revenue r where r.MEMBER_TYPE = 1 and r.MEMBER_ID= t.id and r.VAILD_STATUS = 1 ) as memberAmount ")
                 .selectAs(Category::getName,DriverInfo::getCarTypeName)
-                .leftJoin(Category.class, Category::getId,DriverInfo::getCarType);
+                .leftJoin(Category.class, Category::getId,DriverInfo::getCarType)
+                .eq(DriverInfo::getDeleted, Constants.ZERO);
         queryWrapper.orderByDesc(DriverInfo::getId);
         PageData<DriverInfo> pageData = PageData.from(driverInfoMapper.selectPage(page, queryWrapper));
         for (DriverInfo d : pageData.getRecords()) {
@@ -555,6 +582,15 @@
             newChange.setJpushAlias(official.getJpushAlias());
             driverInfoMapper.insert(newChange);
             saveDriverAttachments(newChange.getId(), request, now);
+            // 鏍囪鍘嗗彶鐨勫彉鏇寸増鏈负鍒犻櫎
+            driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
+                    .set(DriverInfo::getDeleted, Constants.ONE)
+                    .set(DriverInfo::getUpdateTime, now)
+                    .eq(DriverInfo::getMemberId, memberId)
+                    .eq(DriverInfo::getVersionType, Constants.ONE)
+                    .eq(DriverInfo::getDeleted, Constants.ZERO)
+                    .ne(DriverInfo::getId, newChange.getId()));
+
         } else {
             // auditStatus=0/2锛氱洿鎺ユ洿鏂板彉鏇寸増鏈�
             applyDriverFieldsFromUpdate(changeVersion.getId(), request, now);
@@ -823,6 +859,11 @@
 
             // 鐭俊閫氱煡
             sendDriverAuditSms(changeVersion, newAuditStatus, auditDTO.getAuditRemark());
+
+            // 棣栨瀹℃壒閫氳繃锛氬彂閫佸鍔辫В閿佺珯鍐呬俊
+            if (Constants.equalsInteger(newAuditStatus, Constants.THREE)) {
+                sendDriverNotice(changeVersion.getId(), Constants.DriverOrderNotify.REWARD_UNLOCKED, null, 2);
+            }
         } else {
             // 鍦烘櫙2锛氭寮忕増鏈凡瀹℃壒閫氳繃锛堝彉鏇村鎵癸級
             if (Constants.equalsInteger(newAuditStatus, Constants.THREE)) {
@@ -957,6 +998,18 @@
                 }
             } catch (Exception e) {
                 // 瀹℃壒浜哄凡鍒犻櫎绛夊紓甯稿拷鐣�
+            }
+        }
+        // 鏌ヨ鐪佸競鍖轰俊鎭�
+        if (driverInfo.getAreaId() != null) {
+            Areas district = areasBiz.resolveArea(driverInfo.getAreaId());
+            if (district != null) {
+                driverInfo.setDistrictId(district.getId());
+                driverInfo.setDistrictName(district.getName());
+                driverInfo.setCityId(district.getCityId());
+                driverInfo.setCityName(district.getCityName());
+                driverInfo.setProvinceId(district.getProvinceId());
+                driverInfo.setProvinceName(district.getProvinceName());
             }
         }
         return driverInfo;
@@ -1797,7 +1850,7 @@
         // 4. 鏇存柊璁㈠崟鐘舵�佷负娲鹃�佷腑(4)
         ordersMapper.update(new UpdateWrapper<Orders>().lambda()
                 .set(Orders::getStatus, Constants.OrderStatus.delivering.getStatus())
-                .set(Orders::getTakeTime, now)
+                .set(Orders::getDriverTakeTime, now)
                 .set(Orders::getUpdateTime, now)
                 .eq(Orders::getId, orderId));
 
@@ -1867,6 +1920,9 @@
         }
         if (!driverId.equals(order.getAcceptDriver())) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+        }
+        if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "寮傚父璁㈠崟鏃犳硶杩涜纭閫佽揪");
         }
 
         // 3. 淇濆瓨閫佽揪鍥剧墖
@@ -2258,7 +2314,13 @@
                 .eq(status != null, Orders::getStatus, status)
                 .eq(Orders::getDeleted, Constants.ZERO)
                 .orderByDesc(Orders::getAcceptTime);
-
+        // 鍏抽敭璇嶆悳绱細鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯娿�佽鍗曞彿绮惧噯
+        if (StringUtils.isNotBlank(model.getKeyword())) {
+            String kw = model.getKeyword().trim();
+            wrapper.and(w -> w.like(Orders::getTakeUser, kw)
+                    .or().like(Orders::getTakePhone, kw)
+                    .or().like(Orders::getCode, kw));
+        }
         IPage<Orders> orderPage = ordersMapper.selectJoinPage(p, Orders.class, wrapper);
 
         List<DriverGrabOrderVO> voList = new ArrayList<>();

--
Gitblit v1.9.3