From e50954f0708ecbbc672352102ae3b24279d40cc1 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 16 四月 2026 20:12:50 +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 |  198 ++++++++++++++++++++++++++++++------------------
 1 files changed, 123 insertions(+), 75 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 e67a9b0..11ec88f 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
@@ -17,6 +17,7 @@
 import com.doumee.dao.business.MultifileMapper;
 import com.doumee.dao.business.SmsrecordMapper;
 import com.doumee.dao.business.CategoryMapper;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.dao.business.model.Category;
 import com.doumee.dao.business.model.DriverInfo;
 import com.doumee.dao.business.model.Member;
@@ -24,12 +25,14 @@
 import com.doumee.dao.business.model.Smsrecord;
 import com.doumee.dao.vo.AccountResponse;
 import com.doumee.dao.dto.AuditDTO;
+import com.doumee.dao.dto.ChangeStatusDTO;
 import com.doumee.dao.dto.DriverLoginRequest;
 import com.doumee.dao.dto.DriverRegisterRequest;
 import com.doumee.dao.dto.DriverVerifyRequest;
 import com.doumee.service.business.AliSmsService;
 import com.doumee.service.business.DriverInfoService;
 import com.alibaba.fastjson.JSONObject;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -74,6 +77,9 @@
 
     @Autowired
     private CategoryMapper categoryMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
 
     @Override
     public Integer create(DriverInfo driverInfo) {
@@ -139,71 +145,41 @@
     @Override
     public PageData<DriverInfo> findPage(PageWrap<DriverInfo> pageWrap) {
         IPage<DriverInfo> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<DriverInfo> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<DriverInfo> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
         pageWrap.getModel().setDeleted(Constants.ZERO);
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getId, pageWrap.getModel().getId());
+
+        // 鍙告満濮撳悕/鎵嬫満鍙凤紙鍏抽敭瀛楁ā绯婃煡璇級
+        if (StringUtils.isNotBlank(pageWrap.getModel().getKeyword())) {
+            queryWrapper.and(w -> w
+                    .like(DriverInfo::getName, pageWrap.getModel().getKeyword())
+                    .or()
+                    .like(DriverInfo::getTelephone, pageWrap.getModel().getKeyword()));
         }
-        if (pageWrap.getModel().getDeleted() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getDeleted, pageWrap.getModel().getDeleted());
+        // 杞︾墝鍙�
+        if (StringUtils.isNotBlank(pageWrap.getModel().getCarCode())) {
+            queryWrapper.like(DriverInfo::getCarCode, pageWrap.getModel().getCarCode());
         }
-        if (pageWrap.getModel().getCreateUser() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getCreateUser, pageWrap.getModel().getCreateUser());
-        }
-        if (pageWrap.getModel().getCreateTime() != null) {
-            queryWrapper.lambda().ge(DriverInfo::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
-            queryWrapper.lambda().le(DriverInfo::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
-        }
-        if (pageWrap.getModel().getUpdateUser() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getUpdateUser, pageWrap.getModel().getUpdateUser());
-        }
-        if (pageWrap.getModel().getUpdateTime() != null) {
-            queryWrapper.lambda().ge(DriverInfo::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
-            queryWrapper.lambda().le(DriverInfo::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().like(DriverInfo::getName, pageWrap.getModel().getName());
-        }
-        if (pageWrap.getModel().getTelephone() != null) {
-            queryWrapper.lambda().like(DriverInfo::getTelephone, pageWrap.getModel().getTelephone());
-        }
-        if (pageWrap.getModel().getIdcard() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getIdcard, pageWrap.getModel().getIdcard());
-        }
-        if (pageWrap.getModel().getMaritalStatus() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getMaritalStatus, pageWrap.getModel().getMaritalStatus());
-        }
-        if (pageWrap.getModel().getCarType() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getCarType, pageWrap.getModel().getCarType());
-        }
-        if (pageWrap.getModel().getCarCode() != null) {
-            queryWrapper.lambda().like(DriverInfo::getCarCode, pageWrap.getModel().getCarCode());
-        }
-        if (pageWrap.getModel().getCardStartDate() != null) {
-            queryWrapper.lambda().ge(DriverInfo::getCardStartDate, Utils.Date.getStart(pageWrap.getModel().getCardStartDate()));
-            queryWrapper.lambda().le(DriverInfo::getCardStartDate, Utils.Date.getEnd(pageWrap.getModel().getCardStartDate()));
-        }
-        if (pageWrap.getModel().getCardEndDate() != null) {
-            queryWrapper.lambda().ge(DriverInfo::getCardEndDate, Utils.Date.getStart(pageWrap.getModel().getCardEndDate()));
-            queryWrapper.lambda().le(DriverInfo::getCardEndDate, Utils.Date.getEnd(pageWrap.getModel().getCardEndDate()));
-        }
+        // 鐘舵��
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(DriverInfo::getStatus, pageWrap.getModel().getStatus());
         }
-        if (pageWrap.getModel().getAuditTime() != null) {
-            queryWrapper.lambda().ge(DriverInfo::getAuditTime, Utils.Date.getStart(pageWrap.getModel().getAuditTime()));
-            queryWrapper.lambda().le(DriverInfo::getAuditTime, Utils.Date.getEnd(pageWrap.getModel().getAuditTime()));
+        // 瀹℃壒鐘舵��
+        if (pageWrap.getModel().getAuditStatus() != null) {
+            queryWrapper.eq(DriverInfo::getAuditStatus, pageWrap.getModel().getAuditStatus());
         }
-        if (pageWrap.getModel().getAuditUser() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getAuditUser, pageWrap.getModel().getAuditUser());
+        // 鍒涘缓鏃ユ湡鑼冨洿
+        if (pageWrap.getModel().getCreateTimeStart() != null) {
+            queryWrapper.ge(DriverInfo::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTimeStart()));
         }
-        if (pageWrap.getModel().getMemberId() != null) {
-            queryWrapper.lambda().eq(DriverInfo::getMemberId, pageWrap.getModel().getMemberId());
+        if (pageWrap.getModel().getCreateTimeEnd() != null) {
+            queryWrapper.le(DriverInfo::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTimeEnd()));
         }
+        // 瀛愭煡璇細浣欓
+        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);
         for (PageWrap.SortData sortData : pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());
@@ -211,7 +187,11 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(driverInfoMapper.selectPage(page, queryWrapper));
+        PageData<DriverInfo> pageData = PageData.from(driverInfoMapper.selectPage(page, queryWrapper));
+        for (DriverInfo d : pageData.getRecords()) {
+            d.setGender(Constants.getGenderByIdCard(d.getIdcard()));
+        }
+        return pageData;
     }
 
     @Override
@@ -315,9 +295,6 @@
             member.setBusinessStatus(Constants.ZERO);
             member.setPassword(secure.encryptPassword(defaultPassword, salt));
             member.setSalt(salt);
-            member.setWorkerIdentity(Constants.ZERO);
-            member.setDriverIdentity(Constants.ZERO);
-            member.setChefIdentity(Constants.ZERO);
             member.setAmount(Constants.ZERO.longValue());
             member.setTotalAmount(Constants.ZERO.longValue());
             member.setStatus(Constants.ZERO);
@@ -329,7 +306,7 @@
             member.setUseIdentity(Constants.ZERO);
             memberMapper.insert(member);
 
-            // 鍒涘缓鍙告満鍩虹淇℃伅锛坰tatus=0锛屾敞鍐岀姸鎬侊級
+            // 鍒涘缓鍙告満鍩虹淇℃伅
             DriverInfo driverInfo = new DriverInfo();
             driverInfo.setDeleted(Constants.ZERO);
             driverInfo.setCreateTime(now);
@@ -337,6 +314,7 @@
             driverInfo.setTelephone(telephone);
             driverInfo.setMemberId(member.getId());
             driverInfo.setStatus(Constants.ZERO);
+            driverInfo.setAuditStatus(null);
             driverInfoMapper.insert(driverInfo);
         }
 
@@ -408,10 +386,9 @@
         if (Objects.isNull(driverInfo)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        // 鐘舵�佹牎楠岋細status=0(娉ㄥ唽)鎴杝tatus=3(瀹℃壒椹冲洖)鍙彁浜よ璇�
-        if (driverInfo.getStatus() != null
-                && !Constants.equalsInteger(driverInfo.getStatus(), Constants.ZERO)
-                && !Constants.equalsInteger(driverInfo.getStatus(), Constants.THREE)) {
+        // 鐘舵�佹牎楠岋細auditStatus=null(鏈彁浜�)鎴朼uditStatus=2(瀹℃壒椹冲洖)鍙彁浜よ璇�
+        if (driverInfo.getAuditStatus() != null
+                && !Constants.equalsInteger(driverInfo.getAuditStatus(), Constants.TWO)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠鐘舵�佷笉鍏佽鎻愪氦璁よ瘉");
         }
         // 鏍规嵁杞﹁締绫诲瀷鍒ゆ柇鏄惁闇�瑕侀┚椹惰瘉
@@ -458,7 +435,7 @@
                 .set(DriverInfo::getCardEndDate, request.getCardEndDate())
                 .set(DriverInfo::getIdcardImg, request.getIdcardImg())
                 .set(DriverInfo::getIdcardImgBack, request.getIdcardImgBack())
-                .set(DriverInfo::getStatus, Constants.ONE)
+                .set(DriverInfo::getAuditStatus, Constants.ZERO)
                 .set(DriverInfo::getUpdateTime, now)
                 .set(DriverInfo::getAuditRemark, null)
                 .set(DriverInfo::getAuditTime, null)
@@ -533,37 +510,108 @@
         if (Objects.isNull(driverInfo)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        // 鍙湁鐘舵�佷负1(寰呭鎵�)涓斿凡濉啓璁よ瘉淇℃伅鎵嶈兘瀹℃壒
-        if (!Constants.equalsInteger(driverInfo.getStatus(), Constants.ONE)
+        // 鍙湁瀹℃壒鐘舵�佷负0(寰呭鎵�)涓斿凡濉啓璁よ瘉淇℃伅鎵嶈兘瀹℃壒
+        if (!Constants.equalsInteger(driverInfo.getAuditStatus(), Constants.ZERO)
                 || StringUtils.isBlank(driverInfo.getIdcard())) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠鐘舵�佷笉鍏佽瀹℃壒");
         }
         Date now = new Date();
-        // 瀹℃壒缁撴灉锛歛uditDTO.auditStatus 0=閫氳繃鈫抎riverInfo.status=2锛�1=鎷掔粷鈫抎riverInfo.status=3
-        Integer newStatus;
+        // 瀹℃壒缁撴灉锛歛uditDTO.auditStatus 0=閫氳繃鈫抋uditStatus=1锛�1=鎷掔粷鈫抋uditStatus=2
+        Integer newAuditStatus;
         if (Constants.equalsInteger(auditDTO.getAuditStatus(), Constants.ZERO)) {
-            newStatus = Constants.TWO;  // 瀹℃壒閫氳繃
+            newAuditStatus = Constants.ONE;  // 瀹℃壒閫氳繃
+            // 瀹℃壒閫氳繃鏃跺徃鏈哄畾绾т负蹇呭~
+            if (auditDTO.getDriverLevel() == null || auditDTO.getDriverLevel() < 1 || auditDTO.getDriverLevel() > 5) {
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀹℃壒閫氳繃鏃跺繀椤诲~鍐欏徃鏈哄畾绾�");
+            }
         } else if (Constants.equalsInteger(auditDTO.getAuditStatus(), Constants.ONE)) {
-            newStatus = Constants.THREE;  // 瀹℃壒椹冲洖
+            newAuditStatus = Constants.TWO;  // 瀹℃壒椹冲洖
         } else {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀹℃壒鐘舵�佸弬鏁伴敊璇�");
         }
-        // 鏇存柊鍙告満鐘舵��
+        // 鏇存柊鍙告満瀹℃壒鐘舵��
         driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
-                .set(DriverInfo::getStatus, newStatus)
+                .set(DriverInfo::getAuditStatus, newAuditStatus)
                 .set(DriverInfo::getAuditTime, now)
                 .set(DriverInfo::getAuditRemark, auditDTO.getAuditRemark())
                 .set(DriverInfo::getAuditUser, auditDTO.getAuditUser())
+                .set(auditDTO.getDriverLevel() != null, DriverInfo::getDriverLevel, auditDTO.getDriverLevel())
                 .set(DriverInfo::getUpdateTime, now)
                 .eq(DriverInfo::getId, auditDTO.getId()));
         // 鏇存柊浼氬憳鍙告満璁よ瘉鐘舵�侊細閫氳繃=2锛岄┏鍥�=3
-        Integer driverStatus = Constants.equalsInteger(newStatus, Constants.TWO) ? Constants.TWO : Constants.THREE;
+        Integer driverStatus = Constants.equalsInteger(newAuditStatus, Constants.ONE) ? Constants.TWO : Constants.THREE;
         memberMapper.update(new UpdateWrapper<Member>().lambda()
                 .set(Member::getBusinessStatus, driverStatus)
                 .set(Member::getUpdateTime, now)
                 .eq(Member::getId, driverInfo.getMemberId()));
     }
 
+    @Override
+    public DriverInfo getDetail(Integer id) {
+        DriverInfo driverInfo = driverInfoMapper.selectById(id);
+        if (Objects.isNull(driverInfo) || Constants.equalsInteger(driverInfo.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        // 鎷兼帴鍥剧墖鍓嶇紑
+        String imgPrefix = "";
+        try {
+            imgPrefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+                    + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.DRIVER_FILES).getCode();
+        } catch (Exception e) {
+            // 鏈厤缃椂蹇界暐
+        }
+        driverInfo.setImgPrefix(imgPrefix);
+        driverInfo.setGender(Constants.getGenderByIdCard(driverInfo.getIdcard()));
+        // 鏌ヨ杞﹁締绫诲瀷鍚嶇О鍜屾槸鍚﹂渶瑕侀┚椹惰瘉
+        if (driverInfo.getCarType() != null) {
+            Category category = categoryMapper.selectById(driverInfo.getCarType());
+            if (Objects.nonNull(category)) {
+                driverInfo.setCarTypeName(category.getName());
+                driverInfo.setNeedLicense(Constants.equalsInteger(Integer.valueOf(category.getOtherField()), Constants.ONE) ? Constants.ONE : Constants.ZERO);
+            }
+        }
+        // 鏌ヨ鐓х墖鍒楄〃锛歰bjType=6杞﹁締鐓х墖銆�7椹鹃┒璇佺収鐗囥��8鍏朵粬璧勬枡鐓х墖
+        List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId, driverInfo.getId())
+                .in(Multifile::getObjType, 6, 7, 8)
+                .orderByAsc(Multifile::getSortnum));
+        if (!CollectionUtils.isEmpty(multifileList)) {
+            for (Multifile mf : multifileList) {
+                mf.setFileurlFull(imgPrefix + mf.getFileurl());
+                if (Constants.equalsInteger(mf.getObjType(), 6)) {
+                    driverInfo.getCarImgList().add(mf);
+                } else if (Constants.equalsInteger(mf.getObjType(), 7)) {
+                    driverInfo.getLicenseImgList().add(mf);
+                } else if (Constants.equalsInteger(mf.getObjType(), 8)) {
+                    driverInfo.getOtherImgList().add(mf);
+                }
+            }
+        }
+        return driverInfo;
+    }
+
+    @Override
+    public void changeStatus(ChangeStatusDTO dto) {
+        if (dto.getId() == null) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓婚敭涓嶈兘涓虹┖");
+        }
+        if (dto.getStatus() == null || (dto.getStatus() != 0 && dto.getStatus() != 1)) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐘舵�佸弬鏁伴敊璇紝0=鍚敤锛�1=绂佺敤");
+        }
+        DriverInfo driverInfo = driverInfoMapper.selectById(dto.getId());
+        if (Objects.isNull(driverInfo) || Constants.equalsInteger(driverInfo.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        driverInfo.setStatus(dto.getStatus());
+        driverInfo.setUpdateTime(new Date());
+        driverInfoMapper.updateById(driverInfo);
+        // 鑱斿姩淇敼浼氬憳鐘舵�侊紙member涓婚敭涓巇river_info涓婚敭涓�鑷达級
+        memberMapper.update(new UpdateWrapper<Member>().lambda()
+                .set(Member::getStatus, dto.getStatus())
+                .set(Member::getUpdateTime, new Date())
+                .eq(Member::getId, driverInfo.getId()));
+    }
+
     /**
      * 鎵归噺淇濆瓨闄勪欢璁板綍
      */

--
Gitblit v1.9.3