| | |
| | | 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; |
| | |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public ResultBody consumptionAIFail(ConsumptionRequest consumptionRequest) { |
| | | public ResultBody consumptionAIFail(ConsumptionRequest consumptionRequest) { |
| | | //默认的业务返回码 |
| | | int bcode = -1; |
| | | //记录类型 |
| | |
| | | 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); |
| | |
| | | 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)) { |
| | |
| | | if (productOrderJoinDetailList.size() > 0) { |
| | | //合并后按id排序并筛除已用完的套餐 |
| | | List<ProductOrderJoinDetail> productOrderJoinDetailsNewList = productOrderJoinDetailList |
| | | .stream().filter(f -> f.getAilightCount() >= consumCount) |
| | | .sorted(Comparator.comparing(ProductOrderJoinDetail::getId)).collect(Collectors.toList()); |
| | | .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; |