| | |
| | | import com.kidgrow.common.model.PageResult; |
| | | import com.kidgrow.common.model.ResultBody; |
| | | import com.kidgrow.common.service.impl.SuperServiceImpl; |
| | | import com.kidgrow.common.utils.AesUtils; |
| | | import com.kidgrow.common.utils.DateUtils; |
| | | import com.kidgrow.common.utils.StringUtils; |
| | | import com.kidgrow.oprationcenter.mapper.ConsumptionRecordMapper; |
| | |
| | | } else { |
| | | reMsg = "单次支付未成功,不允许预扣费!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; |
| | | isSuccess = false; |
| | | } |
| | | } else { |
| | | //先获取这个业务关联的扣费记录 |
| | |
| | | } else { |
| | | reMsg = "单次支付未成功,不允许扣费!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; |
| | | isSuccess=false; |
| | | } |
| | | } else { |
| | | //先获取这个业务关联的扣费记录 |
| | |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public ResultBody consumptionAIFail(ConsumptionRequest consumptionRequest) { |
| | | public ResultBody consumptionAIFail(ConsumptionRequest consumptionRequest) { |
| | | //默认的业务返回码 |
| | | int bcode = -1; |
| | | //记录类型 |
| | |
| | | //预扣费成功 |
| | | reMsg = "单次支付模拟退还扣费成功!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_RETURN_DEDUCTION; |
| | | isSuccess=true; |
| | | } else { |
| | | reMsg = "单次支付未成功,不允许退扣费!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; |
| | |
| | | if (productOrderDetail != null) { |
| | | //退还金额 |
| | | productOrderDetail.setAilightCount(productOrderDetail.getAilightCount() + consumptionRecord.getConsumptionCount()); |
| | | // 对于读片量进行加密 |
| | | try { |
| | | productOrderDetail.setAilightCountEncryption(AesUtils.encrypt(productOrderDetail.getAilightCount().toString())); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | productOrderDetail.setUpdateTime(new Date()); |
| | | //退费 |
| | | boolean consumptionRe = productOrderDetailService.saveOrUpdate(productOrderDetail); |
| | |
| | | //预扣费成功 |
| | | reMsg = "单次支付模拟已经扣费成功!"; |
| | | bcode = ConsumptionConstant.BUSINESS_CODE_IS_DEDUCTION; |
| | | isSuccess = true; |
| | | //消息队列通知 |
| | | MessageToBI(consumptionRequest); |
| | | } else { |
| | |
| | | productOrderDetail.setAilightCount(productOrderDetail.getAilightCount() - consumptionRequest.getConsumptionCount()); |
| | | } |
| | | } |
| | | // 对于读片量进行加密 |
| | | try { |
| | | productOrderDetail.setAilightCountEncryption(AesUtils.encrypt(productOrderDetail.getAilightCount().toString())); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | //3.1扣费! |
| | | boolean consumptionRe = productOrderDetailService.saveOrUpdate(productOrderDetail); |
| | | if (consumptionRe) { |
| | |
| | | |
| | | if (SaveConsumptionRecord(consumptionRecordNew)) { |
| | | //3.3 扣费成功 如果套餐id变化,则更新预扣费的套餐id |
| | | if (consumptionRecordNew.getProOrderDetailId() != consumptionRecord.getProOrderDetailId()) { |
| | | if (!consumptionRecordNew.getProOrderDetailId().equals(consumptionRecord.getProOrderDetailId())) { |
| | | consumptionRecord.setProOrderDetailId(productOrderDetail.getId()); |
| | | consumptionRecord.setUpdateTime(new Date()); |
| | | if (!SaveConsumptionRecord(consumptionRecord)) { |
| | |
| | | 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; |
| | |
| | | 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 { |
| | |
| | | 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 { |