| | |
| | | |
| | | if (CollectionUtil.isNotEmpty(lowMapList)){ |
| | | lowMapList.stream().forEach(stringObjectMap -> { |
| | | if (stringObjectMap.get("counsellingInfoId") != null){ |
| | | if (stringObjectMap.get("counsellingInfoId") != null && stringObjectMap.get("counsellingInfoId").toString().equals(counsellinginfoResponseDTO.getId().toString()) ){ |
| | | counsellinginfoResponseDTO.setLowPrice(new BigDecimal(stringObjectMap.get("price").toString())); |
| | | } |
| | | }); |
| | |
| | | if (counsellingOrder == null){ |
| | | throw new ServiceException("没有在咨询的订单,无法进行预约!"); |
| | | } |
| | | RLock lock = redissonClient.getLock("counsel:" + counsellingReservationRequest.getCounsellingId()+"_"+counsellingReservationRequest.getDayTime()+"_"+counsellingReservationRequest.getTimePoint()); |
| | | String key = "counsel:" + counsellingReservationRequest.getCounsellingId()+"_"+counsellingReservationRequest.getDayTime()+"_"+counsellingReservationRequest.getTimePoint(); |
| | | RLock lock = redissonClient.getLock(key); |
| | | boolean tryLock = false; |
| | | try { |
| | | tryLock = lock.tryLock(10, TimeUnit.SECONDS); |
| | | log.info("咨询key:"+key+",userId:"+counsellingOrder.getUserId()); |
| | | tryLock = lock.tryLock(20, TimeUnit.SECONDS); |
| | | if (!tryLock) { |
| | | throw new ServiceException("当前时间段已预约,请选择其他时间段!"); |
| | | } |
| | |
| | | |
| | | // 发送IM消息 |
| | | ImPushDataDTO pushData1 = ImPushDataDTO.builder() |
| | | .type(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getCode()) |
| | | .title(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getName()) |
| | | .type(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT_FIRST.getCode()) |
| | | .title(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT_FIRST.getName()) |
| | | .content("预约成功"+",请注意预约时间:"+counsellingReservationRequest.getDayTime()+counsellingReservationRequest.getTimePoint()) |
| | | // .content("预约成功!") |
| | | .objId(ObjUtil.toString(counsellingInfo.getId())) |
| | |
| | | return new SuccessResponseData<>(counsellingOrderReservation); |
| | | }catch (Exception ex){ |
| | | log.error("咨询预约服务异常",ex.getStackTrace()); |
| | | throw new ServiceException("服务异常,请稍后再试"); |
| | | throw new ServiceException("当前时间段已在进行预约,请稍后再试!"); |
| | | }finally { |
| | | if(tryLock){ |
| | | lock.unlock(); |