From abba1aff81da3cc9d74d75f64cbd48d25716aec3 Mon Sep 17 00:00:00 2001 From: luliqiang <kidgrow> Date: Fri, 12 Mar 2021 19:19:10 +0800 Subject: [PATCH] 1、增加对于套餐中的剩余读片量、有效开始日期、结束日期的加密 2、增加扣费过程中对于剩余读片量的加密 3、为下载私有云数据库增加合同与明细的查询Feign接口 4、修改合作商数据库(影像版API)的合同与明细的查询bug --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 113 insertions(+), 3 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java index 98ec8aa..029ff37 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java @@ -1,10 +1,12 @@ package com.kidgrow.oprationcenter.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.constant.CommonConstant; import com.kidgrow.common.model.*; 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.feign.DiagnosticService; @@ -29,6 +31,7 @@ import org.springframework.cglib.beans.BeanCopier; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -224,11 +227,33 @@ * @return */ @Override - public PageResult<ProductOrderDetail> departmentProductDetail(Map<String, Object> params) { + public PageResult<ProductOrderDetailVo> departmentProductDetail(Map<String, Object> params) { Page<ProductOrderDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); + Boolean enabled = MapUtils.getBoolean(params, "enabled"); List<ProductOrderDetail> list = - baseMapper.departmentProductDetail(page, Long.parseLong(params.get("hospitalId").toString()),Long.parseLong(params.get("departmentId").toString())); - return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build(); + baseMapper.departmentProductDetail(page, Long.parseLong(params.get("hospitalId").toString()),Long.parseLong(params.get("departmentId").toString()),enabled); + List<ProductOrderDetailVo> listvo = new ArrayList<>(); + for (ProductOrderDetail productOrderDetail : list) { + ProductOrderDetailVo productOrderDetailVo=new ProductOrderDetailVo(); + BeanCopier beanCopier = BeanCopier.create(ProductOrderDetail.class, ProductOrderDetailVo.class, false); + beanCopier.copy(productOrderDetail,productOrderDetailVo,null); + Date proBegintime = productOrderDetailVo.getProBegintime(); + Date proEndtime = productOrderDetailVo.getProEndtime(); + Date nowDate = new Date(); + if(productOrderDetailVo.getEnabled()){ + if(nowDate.getTime()<proBegintime.getTime()){ + productOrderDetailVo.setUseType("未使用"); + }else if (proBegintime.getTime()<=nowDate.getTime()&&nowDate.getTime()<proEndtime.getTime()){ + productOrderDetailVo.setUseType("使用中"); + }else if(nowDate.getTime()>=proEndtime.getTime()){ + productOrderDetailVo.setUseType("已结束"); + } + }else { + productOrderDetailVo.setUseType("禁用"); + } + listvo.add(productOrderDetailVo); + } + return PageResult.<ProductOrderDetailVo>builder().data(listvo).code(0).count(page.getTotal()).build(); } @Override @@ -420,4 +445,89 @@ return ResultBody.failed("医院和科室数据有误!"); } } + + /** + * 私有云套餐验证 + * @param hospitalId 医院ID + * @param departmentId 科室ID + * @return com.kidgrow.common.model.ResultBody + */ + public ResultBody verificateProductOrderDetail(Long hospitalId, Long departmentId ){ + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + // 查询科室可用的合同列表【当前日期在合同开始、结束日期之间】 + List<ProductOrder> productOrderList = iProductOrderService.list( + new QueryWrapper<ProductOrder>() + .eq("hospital_id",hospitalId) + .eq("department_id",departmentId) + //.le("contract_begin_time",dateFormat.format(DateTime.now())) + //.ge("contract_end_time",dateFormat.format(DateTime.now())) + .eq("enabled",1) + .eq("is_del",0) + ); + + if ((productOrderList != null) && (productOrderList.size() > 0)) { + for (int i = 0 ; i < productOrderList.size(); i++) { + + ProductOrder productOrder = productOrderList.get(i); + // 查询合同可用的套餐【当前日期在套餐开始、结束日期之间,剩余读片量大于零】 + List<ProductOrderDetail> productOrderDetailList = baseMapper.selectList( + new QueryWrapper<ProductOrderDetail>() + .eq("order_id",productOrder.getId()) + //.le("pro_begintime",dateFormat.format(DateTime.now())) + //.ge("pro_endtime",dateFormat.format(DateTime.now())) + //.gt("order_ailight_count",0) + //.gt("order_ailight_count - ailight_count",0) + .eq("enabled",1) + .eq("is_del",0) + + ); + if ((productOrderDetailList != null) && (productOrderDetailList.size() > 0)) { + try { + for (int j = 0; j < productOrderDetailList.size(); j++) { + ProductOrderDetail productOrderDetail = productOrderDetailList.get(j); + if ((productOrderDetail.getAilightCountEncryption() == null) || (productOrderDetail.getAilightCountEncryption().isEmpty())) { + log.error("可用读片数量验证串为空"); + return ResultBody.failed("可用读片数量验证串为空"); + } + if ((productOrderDetail.getProBegintimeEncryption() == null) || (productOrderDetail.getProBegintimeEncryption().isEmpty())) { + log.error("套餐开始日期验证串为空"); + return ResultBody.failed("套餐开始日期验证串为空"); + } + if ((productOrderDetail.getProEndtimeEncryption() == null) || (productOrderDetail.getProEndtimeEncryption().isEmpty())) { + log.error("套餐结束日期验证串为空"); + return ResultBody.failed("套餐结束日期验证串为空"); + } + + String ailightCount = AesUtils.desEncrypt(productOrderDetail.getAilightCountEncryption()); + String proBeginTime = AesUtils.desEncrypt(productOrderDetail.getProBegintimeEncryption()); + String proEndTime = AesUtils.desEncrypt(productOrderDetail.getProEndtimeEncryption()); + + if ((ailightCount.isEmpty()) || (!productOrderDetail.getAilightCount().toString().equals(ailightCount))) { + log.error("可用读片数量验证失败"); + return ResultBody.failed("可用读片数量验证失败"); + } + if ((proBeginTime.isEmpty()) || (!dateFormat.format(productOrderDetail.getProBegintime()).equals(proBeginTime))) { + log.error("套餐开始日期验证失败"); + return ResultBody.failed("套餐开始日期验证失败"); + } + if ((proEndTime.isEmpty()) || (!dateFormat.format(productOrderDetail.getProEndtime()).equals(proEndTime))) { + log.error("套餐结束日期验证失败"); + return ResultBody.failed("套餐结束日期验证失败"); + } + + } + } catch (Exception e) { + e.printStackTrace(); + return ResultBody.failed(e.getMessage()); + } + + } + } +// } else { +// return ResultBody.failed("无有效的合同"); + } + log.error("私有云套餐验证通过"); + return ResultBody.ok().msg("私有云套餐验证通过"); + } } -- Gitblit v1.8.0