| | |
| | | } else { |
| | | reMsg = "单次支付未成功,不允许预扣费!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; |
| | | isSuccess = false; |
| | | } |
| | | } else { |
| | | //先获取这个业务关联的扣费记录 |
| | |
| | | } else { |
| | | reMsg = "单次支付未成功,不允许扣费!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; |
| | | isSuccess=false; |
| | | } |
| | | } else { |
| | | //先获取这个业务关联的扣费记录 |
| | |
| | | //预扣费成功 |
| | | reMsg = "单次支付模拟退还扣费成功!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_RETURN_DEDUCTION; |
| | | isSuccess=true; |
| | | } else { |
| | | reMsg = "单次支付未成功,不允许退扣费!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; |
| | |
| | | //预扣费成功 |
| | | reMsg = "单次支付模拟已经扣费成功!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_IS_DEDUCTION; |
| | | isSuccess = true; |
| | | //消息队列通知 |
| | | MessageToBI(consumptionRequest); |
| | | } else { |
| | |
| | | consumptionRecordNew.setCreateTime(new Date()); |
| | | |
| | | if (SaveConsumptionRecord(consumptionRecordNew)) { |
| | | //3.3 扣费成功 如果套餐id变化,则更新预扣费的套餐id |
| | | if (consumptionRecordNew.getProOrderDetailId() != consumptionRecord.getProOrderDetailId()) { |
| | | consumptionRecord.setProOrderDetailId(productOrderDetail.getId()); |
| | | consumptionRecord.setUpdateTime(new Date()); |
| | | if (!SaveConsumptionRecord(consumptionRecord)) { |
| | | logger.info("业务编号:【{}】更新预扣费的套餐id!", consumptionRequest.getBusinessId()); |
| | | } |
| | | //3.3 扣费成功 同时更新预扣记录数据的套餐id和数据更新时间 |
| | | consumptionRecord.setProOrderDetailId(productOrderDetail.getId()); |
| | | consumptionRecord.setUpdateTime(new Date()); |
| | | if (SaveConsumptionRecord(consumptionRecord)) { |
| | | //消息队列通知 |
| | | MessageToBI(consumptionRequest); |
| | | //已经扣费 |
| | | logger.info("业务编号:【{}】该业务已经扣费!", consumptionRequest.getBusinessId()); |
| | | return true; |
| | | } |
| | | //消息队列通知 |
| | | MessageToBI(consumptionRequest); |
| | | //已经扣费 |
| | | logger.info("业务编号:【{}】该业务已经扣费!", consumptionRequest.getBusinessId()); |
| | | return true; |
| | | else |
| | | { |
| | | logger.info("业务编号:【{}】更新预扣费数据失败!", consumptionRequest.getBusinessId()); |
| | | } |
| | | } else { |
| | | logger.info("业务编号:【{}】预扣费执行失败!", consumptionRequest.getBusinessId()); |
| | | } |
| | |
| | | consumptionVo.setBusinessId(consumptionRequest.getBusinessId()); |
| | | consumptionVo.setBcode(bcode); |
| | | consumptionVo.setRecordType(recordType); |
| | | logger.info("扣费业务返回参数实体:"+consumptionRequest.toString()); |
| | | logger.info("扣费业务返回其他参数:bcode:{},recordType:{},reMsg:{},isSuccess:{}",bcode,recordType,reMsg,isSuccess); |
| | | if (isSuccess) { |
| | | return ResultBody.ok().data(consumptionVo).msg(reMsg); |
| | | } else { |
| | |
| | | * 参数验证 |
| | | */ |
| | | private Boolean VateParams(ConsumptionRequest consumptionRequest) { |
| | | logger.info("收到扣费请求的参数:"+consumptionRequest.toString()); |
| | | if (consumptionRequest != null) { |
| | | //从请求头获取医院和科室id |
| | | String hosId = consumptionRequest.getHospitalId().toString(); |
| | | String depId = consumptionRequest.getDepartmentId().toString(); |
| | | String doctorId = consumptionRequest.getDoctorId().toString(); |
| | | String diaId = consumptionRequest.getDiaId().toString(); |
| | | String diaId = consumptionRequest.getDiaId(); |
| | | if (StringUtils.isNotBlank(consumptionRequest.getBusinessId()) |
| | | && consumptionRequest.getConsumptionCount() > 0 |
| | | && StringUtils.isNotBlank(hosId) |
| | |
| | | } else { |
| | | returnMap.put("vateRe", false); |
| | | returnMap.put("vateMsg", "余额获取异常,data为空!"); |
| | | logger.error("医院id:【{}】余额获取异常!", hospitalId); |
| | | logger.info("医院id:【{}】余额获取异常!", hospitalId); |
| | | } |
| | | } else { |
| | | returnMap.put("vateRe", false); |
| | |
| | | private ProductOrderDetail deductionDepartmentProduct(int consumCount, Long hospitalId, Long departmentId) { |
| | | UserProductDetail userProductDetail = productOrderDetailService.getUserProductDetail(hospitalId, departmentId); |
| | | //合并集合 |
| | | userProductDetail.getProductOrderJoinDetailListShare().addAll(userProductDetail.getProductOrderJoinDetailsListDep()); |
| | | userProductDetail.getProductOrderJoinDetailListShare() |
| | | .addAll(userProductDetail.getProductOrderJoinDetailsListDep()); |
| | | List<ProductOrderJoinDetail> productOrderJoinDetailList = userProductDetail.getProductOrderJoinDetailListShare(); |
| | | if (productOrderJoinDetailList.size() > 0) { |
| | | //合并后按id排序并筛除已用完的套餐 |
| | | List<ProductOrderJoinDetail> productOrderJoinDetailsNewList = productOrderJoinDetailList.stream().filter(f -> f.getAilightCount() >= consumCount).sorted(Comparator.comparing(ProductOrderJoinDetail::getId)).collect(Collectors.toList()); |
| | | List<ProductOrderJoinDetail> productOrderJoinDetailsNewList = productOrderJoinDetailList |
| | | .stream().filter(f -> f.getAilightCount() >= consumCount).collect(Collectors.toList()); |
| | | //要使用的套餐信息 |
| | | ProductOrderDetail productOrderDetail = productOrderDetailService.getById(productOrderJoinDetailsNewList.get(0).getId()); |
| | | Long firstId=productOrderJoinDetailsNewList.get(0).getId(); |
| | | logger.info("扣费要使用的套餐ID是id:【{}】", firstId); |
| | | ProductOrderDetail productOrderDetail = productOrderDetailService.getById(firstId); |
| | | return productOrderDetail; |
| | | } |
| | | return null; |
| | |
| | | "\",\"date\":\"" + DateUtils.formatDate(new Date(), "yyyy-MM-dd") + "\"}"; |
| | | rabbitTemplate.convertAndSend(ConsumptionConstant.EXCHANGE_DATA, ConsumptionConstant.ROUTINGKEY_DATA + envName, context); |
| | | |
| | | log.error("骨龄评价扣费消息已发送:" + context); |
| | | log.info("骨龄评价扣费消息已发送:" + context); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | */ |
| | | private Boolean departmentIsPay(ConsumptionRequest consumptionRequest) { |
| | | log.info("查看当前科室是否开通了单次支付请求参数:"+consumptionRequest.toString()); |
| | | PayManager payManager = payManagerService.findByObject(consumptionRequest.getHospitalId(), consumptionRequest.getDepartmentId()); |
| | | log.info("查看当前科室是否开通了单次支付请求查询后数据:"+payManager.toString()); |
| | | if (payManager == null) { |
| | | return false; |
| | | } else { |
| | |
| | | * @return |
| | | */ |
| | | private Boolean departmentPayStatus(ConsumptionRequest consumptionRequest) { |
| | | log.info("查看当前科室当前诊断id的支付状态是否成功请求参数:"+consumptionRequest.toString()); |
| | | SaasClientPay saasClientPay = saasClientPayService.findModelByObject(consumptionRequest.getHospitalId(), consumptionRequest.getDepartmentId(), consumptionRequest.getDiaId()); |
| | | log.info("查看当前科室当前诊断id的支付状态是否成功查询后数据:"+saasClientPay.toString()); |
| | | if (saasClientPay == null) { |
| | | return false; |
| | | } else { |