doum
9 小时以前 7a0b33a5f2e0ba589bf35a1b8d896700a21f94a4
server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
@@ -406,6 +406,7 @@
            driverInfo.setMemberId(member.getId());
            driverInfo.setStatus(Constants.ZERO);
            driverInfo.setAuditStatus(99);
            driverInfo.setJpushAlias(org.springframework.util.DigestUtils.md5DigestAsHex(telephone.getBytes()));
            driverInfoMapper.insert(driverInfo);
        }
@@ -581,6 +582,7 @@
            if (Objects.nonNull(category)) {
                driverInfo.setCarTypeName(category.getName());
                driverInfo.setNeedLicense(Constants.equalsInteger(Integer.valueOf(category.getOtherField()), Constants.ONE) ? Constants.ONE : Constants.ZERO);
                driverInfo.setDriverType(category.getDetail());
            }
        }
        // 查询省市区信息
@@ -730,6 +732,55 @@
    }
    @Override
    public DriverInfo updateDriverInfo(DriverVerifyRequest request) {
        Integer id = request.getId();
        if (id == null) {
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "司机主键不能为空");
        }
        DriverInfo driverInfo = driverInfoMapper.selectById(id);
        if (Objects.isNull(driverInfo) || Constants.equalsInteger(driverInfo.getDeleted(), Constants.ONE)) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        Date now = new Date();
        driverInfoMapper.update(new UpdateWrapper<DriverInfo>().lambda()
                .set(DriverInfo::getName, request.getName())
                .set(DriverInfo::getIdcard, request.getIdcard())
                .set(DriverInfo::getMaritalStatus, request.getMaritalStatus())
                .set(DriverInfo::getAreaId, request.getAreaId())
                .set(DriverInfo::getLivePlace, request.getLivePlace())
                .set(DriverInfo::getCarCode, request.getCarCode())
                .set(DriverInfo::getCarType, request.getCarType())
                .set(DriverInfo::getCarColor, request.getCarColor())
                .set(DriverInfo::getCardStartDate, request.getCardStartDate())
                .set(DriverInfo::getCardEndDate, request.getCardEndDate())
                .set(DriverInfo::getIdcardImg, request.getIdcardImg())
                .set(DriverInfo::getIdcardImgBack, request.getIdcardImgBack())
                .set(DriverInfo::getAliAccount, request.getAliAccount())
                .set(DriverInfo::getAliName, request.getAliName())
                .set(DriverInfo::getUpdateTime, now)
                .eq(DriverInfo::getId, id));
        // 删除旧的照片记录并保存新的
        multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
                .eq(Multifile::getObjId, id)
                .in(Multifile::getObjType,
                        Constants.FileType.DRIVER_CAR.getKey(),
                        Constants.FileType.DRIVER_LICENSE.getKey(),
                        Constants.FileType.DRIVER_OTHER.getKey()));
        if (!CollectionUtils.isEmpty(request.getCarImgUrls())) {
            saveMultifileList(id, Constants.FileType.DRIVER_CAR.getKey(), request.getCarImgUrls(), now);
        }
        if (!CollectionUtils.isEmpty(request.getLicenseImgUrls())) {
            saveMultifileList(id, Constants.FileType.DRIVER_LICENSE.getKey(), request.getLicenseImgUrls(), now);
        }
        if (!CollectionUtils.isEmpty(request.getOtherImgUrls())) {
            saveMultifileList(id, Constants.FileType.DRIVER_OTHER.getKey(), request.getOtherImgUrls(), now);
        }
        return getDetail(id);
    }
    @Override
    public void changeStatus(ChangeStatusDTO dto) {
        if (dto.getId() == null) {
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "主键不能为空");
@@ -833,7 +884,10 @@
                    + systemDictDataBiz.queryByCode(Constants.OSS, Constants.MEMBER_FILES).getCode();
            vo.setFullImgUrl(imgPrefix + driver.getImgurl());
        }
        Category category = categoryMapper.selectById(driver.getCarType());
        if(Objects.nonNull(category)&&StringUtils.isNotBlank(category.getDetail())){
            vo.setDriverType(category.getDetail());
        }
        // 今日预计佣金:今日接单的司机佣金 + 平台奖励金
        Date now = new Date();
        Calendar cal = Calendar.getInstance();
@@ -1075,14 +1129,15 @@
                .select("s1.address", Orders::getDepositShopAddress)
                .select("s2.name", Orders::getTakeShopName)
                .select("s2.address", Orders::getTakeShopAddress)
                .select("s1.link_phone", Orders::getDepositShopLinkPhone)
                .select("s2.link_phone as takeShopLinkPhone")
                .select("c2.other_field as c2OtherField")
                .select("c2.name as goodLevelName")
                .select("IF(EXISTS(SELECT 1 FROM orders_detail od JOIN category c3 ON c3.id = od.LUGGAGE_ID AND c3.TYPE = 4 AND c3.OTHER_FIELD = '1' WHERE od.ORDER_ID = t.ID AND od.DELETED = 0), 1, 0) as hasOversized")
                .leftJoin("shop_info s1 on s1.id = t.DEPOSIT_SHOP_ID and s1.DELETED = 0")
                .leftJoin("shop_info s2 on s2.id = t.TAKE_SHOP_ID and s2.DELETED = 0")
                .leftJoin("category c1 on c1.id = t.GOOD_TYPE and c1.DELETED = 0")
                .leftJoin("category c2 on c2.id = c1.RELATION_ID and c2.DELETED = 0 and c2.TYPE = 3")
                .leftJoin("shop_info s1 on s1.id = t.DEPOSIT_SHOP_ID ")
                .leftJoin("shop_info s2 on s2.id = t.TAKE_SHOP_ID    ")
                .leftJoin("category c1 on c1.id = t.GOOD_TYPE   ")
                .leftJoin("category c2 on c2.id = c1.RELATION_ID and  c2.TYPE = 3")
                .eq(Orders::getAcceptDriver, driver.getId())
                .eq(Orders::getType, Constants.ONE)
                .eq(Objects.nonNull(dto.getStatus()),Orders::getStatus, dto.getStatus())
@@ -1120,11 +1175,11 @@
        wrapper.selectAll(Orders.class)
                .select("s1.name", Orders::getDepositShopName)
                .select("s1.address", Orders::getDepositShopAddress)
                .select("s1.telephone", Orders::getDepositShopLinkPhone)
                .select("s1.link_phone", Orders::getDepositShopLinkPhone)
                .select("s2.name", Orders::getTakeShopName)
                .select("s2.address", Orders::getTakeShopAddress)
                .select("s2.telephone", Orders::getTakeShopLinkPhone)
                .select("c2.other_field as c2OtherField")
                .select("s2.link_phone", Orders::getTakeShopLinkPhone)
                .select("c1.other_field as c2OtherField")
                .select("c1.name as goodTypeName")
                .select("IF(EXISTS(SELECT 1 FROM orders_detail od JOIN category c3 ON c3.id = od.LUGGAGE_ID AND c3.TYPE = 4 AND c3.OTHER_FIELD = '1' WHERE od.ORDER_ID = t.ID AND od.DELETED = 0), 1, 0) as hasOversized")
                .leftJoin("shop_info s1 on s1.id = t.DEPOSIT_SHOP_ID and s1.DELETED = 0")
@@ -1738,17 +1793,15 @@
            vo.setDepositDistance(formatDistance(distKm));
        }
        // 取件信息 + 联系电话(使用Orders自带坐标)
        // 取件信息(使用Orders自带坐标)
        boolean hasTakeShop = order.getTakeShopId() != null && StringUtils.isNotBlank(order.getTakeShopName());
        if (hasTakeShop) {
            vo.setTakeName(order.getTakeShopName());
            vo.setTakeAddress(order.getTakeShopAddress());
            vo.setTakeShopId(order.getTakeShopId());
            vo.setContactPhone(order.getTakeShopLinkPhone());
        } else {
            vo.setTakeName(order.getTakeLocation());
            vo.setTakeAddress(order.getTakeLocationRemark());
            vo.setContactPhone(order.getTakePhone());
        }
        vo.setTakeLng(order.getTakeLgt() != null ? order.getTakeLgt().doubleValue() : null);
        vo.setTakeLat(order.getTakeLat() != null ? order.getTakeLat().doubleValue() : null);
@@ -1773,6 +1826,19 @@
        vo.setStatus(order.getStatus());
        vo.setStatusDesc(getStatusDesc(order.getStatus()));
        vo.setCreateTime(order.getCreateTime());
        // 联系电话(按订单状态)
        if (Constants.equalsInteger(order.getStatus(), Constants.THREE)) {
            vo.setContactPhone(order.getDepositShopLinkPhone());
        } else if (Constants.equalsInteger(order.getStatus(), Constants.FOUR)) {
            if (hasTakeShop) {
                vo.setContactPhone(order.getTakeShopLinkPhone());
            } else {
                vo.setContactPhone(order.getTakePhone());
            }
        } else if (Constants.equalsInteger(order.getStatus(), Constants.FIVE)) {
            vo.setContactPhone(order.getTakePhone());
        }
        // 物品明细
        List<OrdersDetail> details = detailMap.getOrDefault(order.getId(), Collections.emptyList());
@@ -1930,7 +1996,8 @@
                .select("s1.name", Orders::getDepositShopName)
                .select("s1.address", Orders::getDepositShopAddress)
                .select("s2.name", Orders::getTakeShopName)
                .select("s2.address", Orders::getTakeShopAddress)
                .select("s2.address", Orders::getDepositShopAddress)
                .select("s1.link_phone as takeShopLinkPhone")
                .select("s2.link_phone as takeShopLinkPhone")
                .select("c2.other_field as c2OtherField")
                .select("c2.name as goodLevelName")
@@ -2038,4 +2105,12 @@
        }
    }
    @Override
    public void registerJpushAlias(Integer driverId, String jpushAlias) {
        DriverInfo update = new DriverInfo();
        update.setId(driverId);
        update.setJpushAlias(jpushAlias);
        driverInfoMapper.updateById(update);
    }
}