From e940b53f9d8fd9056aee2870e41a6e7932b2e8d6 Mon Sep 17 00:00:00 2001 From: houruijun <411269194@kidgrow.com> Date: Mon, 24 Aug 2020 17:21:41 +0800 Subject: [PATCH] 1.修改获取余额的时候,将预扣费算作有效的bug 2.医院管理 增加了显示医院编号 --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java | 33 +++++++++++----- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml | 16 ++++++++ kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html | 1 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java | 6 +++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java | 21 ++++++---- 5 files changed, 57 insertions(+), 20 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java index 2b1214e..938143a 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java @@ -37,4 +37,10 @@ * @return */ List<ConsumptionRecord> findList(@Param("p") Map<String, Object> params); + /** + * 查询有效预扣费 + * @param DetailList 有效的套餐 + * @return + */ + List<ConsumptionRecord> findDetailList(List<Long> DetailList); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java index bd63eb9..1a3955b 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java @@ -115,7 +115,8 @@ //2.没有扣费,检查是否已经预扣费 if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.BEFORE_DEDUCTION)) { //3.没有预扣,查询余额 - if (VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId())) { + Map<String,Object> vateMap=VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId()); + if (Boolean.parseBoolean(vateMap.get("vateRe").toString())) { //4.余额充足 获取要扣的套餐 写预扣费记录 if (beforeConsumption(consumptionRequest)) { //预扣费成功 @@ -128,9 +129,9 @@ bcode = ConsumptionConstant.BUSINESS_CODE_ERROR; } } else { - //余额不足 + //余额不足 或获取异常 isSuccess = false; - reMsg = "余额不足或获取失败!"; + reMsg = vateMap.get("vateMsg").toString(); bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; } } else { @@ -178,7 +179,8 @@ //2.没有扣费,检查是否已经预扣费 if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.BEFORE_DEDUCTION)) { //2.1.没有预扣,查询余额 - if (VateUserNowProduct(consumptionRequest.getConsumptionCount(),hospitalId,consumptionRequest.getDepartmentId())) { + Map<String,Object> vateMap=VateUserNowProduct(consumptionRequest.getConsumptionCount(),hospitalId,consumptionRequest.getDepartmentId()); + if (Boolean.parseBoolean(vateMap.get("vateRe").toString())) { //2.2.余额充足 获取要扣的套餐 写预扣费记录 if (beforeConsumption(consumptionRequest)) { //预扣费成功 @@ -193,7 +195,7 @@ } else { //余额不足 isSuccess = false; - reMsg = "余额不足或获取失败!"; + reMsg = vateMap.get("vateMsg").toString(); bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess); } @@ -379,7 +381,8 @@ //2.没有扣费,检查是否已经预扣费 if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.BEFORE_DEDUCTION)) { //3.没有预扣,查询余额 - if (VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId())) { + Map<String,Object> vateMap=VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId()); + if (Boolean.parseBoolean(vateMap.get("vateRe").toString())) { //4.余额充足 获取要扣的套餐 写预扣费记录 if (!beforeConsumption(consumptionRequest)) { //预扣费执行失败 @@ -394,7 +397,7 @@ } } else { //余额不足 - reMsg = "余额不足或获取失败!"; + reMsg = vateMap.get("vateMsg").toString(); bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess); } @@ -563,24 +566,32 @@ * @param consumptionCount 要扣的数量 * @return */ - private Boolean VateUserNowProduct(int consumptionCount,Long hospitalId,Long departmentId) { + private Map<String,Object> VateUserNowProduct(int consumptionCount,Long hospitalId,Long departmentId) { + Map<String,Object> returnMap=new HashMap<>(); ResultBody biUserPro = productOrderDetailService.biUserNowProduct(hospitalId, departmentId); if (biUserPro.getCode() == 0) { if (StringUtils.isNotBlank(biUserPro.getData().toString())) { //余额 int userAICount = Integer.parseInt(biUserPro.getData().toString()); if (userAICount >= consumptionCount) { - return true; + returnMap.put("vateRe",true); + returnMap.put("vateMsg","余额足够!"); } else { + returnMap.put("vateRe",false); + returnMap.put("vateMsg","余额不足!"); logger.info("医院id:【{}】余额不足!", hospitalId); } } else { + returnMap.put("vateRe",false); + returnMap.put("vateMsg","余额获取异常,data为空!"); logger.error("医院id:【{}】余额获取异常!", hospitalId); } - } else { + }else { + returnMap.put("vateRe",false); + returnMap.put("vateMsg","余额获取异常,Code非0!"); logger.info("医院id:【{}】余额获取异常,返回非0!", hospitalId); } - return false; + return returnMap; } /** 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 413a1fa..9f7c20a 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 @@ -2,7 +2,6 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.kidgrow.common.constant.ConsumptionConstant; import com.kidgrow.common.model.*; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.common.utils.DateUtils; @@ -315,18 +314,22 @@ int depCount = productOrderJoinDetailsListDep.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount)); //可用的总量 userAICount = shareCount + depCount; + + //共享套餐里面的detailid + List<Long> shareDetailId = productOrderJoinDetailListShare.stream().map(m -> m.getId()).collect(Collectors.toList()); + //私有套餐里面的detailid + List<Long> depDetailId = productOrderJoinDetailsListDep.stream().map(m -> m.getId()).collect(Collectors.toList()); + + //获取所有有效的套餐id + List<Long> nowDetailList=shareDetailId; + nowDetailList.addAll(depDetailId); + //查询已预扣 未退还 未扣费的数据 + List<ConsumptionRecord> consumptionRecordList = consumptionRecordMapper.findDetailList(nowDetailList); //计算预扣费的总量 - Map<String, Object> selectMap = new HashMap<>(); - selectMap.put("recordType", ConsumptionConstant.BEFORE_DEDUCTION); - List<ConsumptionRecord> consumptionRecordList = consumptionRecordMapper.findList(selectMap);; if (consumptionRecordList.size() > 0) { - //共享套餐里面的detailid - List<Long> shareDetailId = productOrderJoinDetailListShare.stream().map(m -> m.getId()).collect(Collectors.toList()); - //私有套餐里面的detailid - List<Long> depDetailId = productOrderJoinDetailsListDep.stream().map(m -> m.getId()).collect(Collectors.toList()); //共享套餐里面预扣费总数 int shareConCount = consumptionRecordList.stream().filter(f -> shareDetailId.contains(f.getProOrderDetailId())).collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount)); - //共享套餐里面预扣费总数 + //私有套餐里面预扣费总数 int depConCount = consumptionRecordList.stream().filter(f -> depDetailId.contains(f.getProOrderDetailId())).collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount)); userAICount -= (shareConCount + depConCount); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml index 18f8617..2c00aa4 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml @@ -60,4 +60,20 @@ <include refid="where"/> order by id desc </select> + <!--定义根据-ConsumptionRecord当作查询条件返回对象集合--> + <select id="findDetailList" resultType="com.kidgrow.oprationcenter.model.ConsumptionRecord"> + SELECT * FROM `consumption_record` + where record_type=1 + and update_time is null + <where> + <if test="DetailList!=null and DetailList.size()>0"> + and pro_order_detail_id in + <foreach item="item" index="index" collection="DetailList" open="(" close=")" separator=","> + #{item} + </foreach> + </if> + </where> + and pro_order_detail_id in (1,1) + order by id desc + </select> </mapper> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html index eac4af8..dfffdb2 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html @@ -75,6 +75,7 @@ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, page: true, cols: [[ + { field: 'hospitalId', width: 180, title: '医院编号', fixed: 'left' }, { field: 'hospitalName', width: 250, title: '医院名称', fixed: 'left' }, { field: 'departmentName', width: 100, title: '科室/部门', fixed: 'left' }, { -- Gitblit v1.8.0