| | |
| | | * 发送司机站内信通知 |
| | | */ |
| | | 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; |
| | |
| | | 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()); |
| | |
| | | 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())) { |
| | |
| | | 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()) { |
| | |
| | | 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); |
| | |
| | | |
| | | // 短信通知 |
| | | 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)) { |
| | |
| | | // 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)); |
| | | |
| | |
| | | } |
| | | 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. 保存送达图片 |
| | |
| | | .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<>(); |