From 5de71af808d0e5838826ea641b92f5bf1af91571 Mon Sep 17 00:00:00 2001 From: zxh <279049017@qq.com> Date: Mon, 24 Aug 2020 19:45:03 +0800 Subject: [PATCH] Merge branch 'dev' of ssh://192.168.2.240:29418/kidgrow-microservices-platform into dev --- kidgrow-business/kidgrow-opration-center/pom.xml | 4 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java | 38 ++++++++---- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml | 16 +++++ kidgrow-config/src/main/resources/application-uat.properties | 77 +++++++++++++++++++++++++ kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html | 1 kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java | 1 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java | 6 ++ kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java | 1 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java | 21 ++++--- 9 files changed, 142 insertions(+), 23 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..d2f2d08 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(@Param("p") 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 ed6c767..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 @@ -20,7 +20,6 @@ import org.apache.commons.collections4.MapUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -116,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)) { //预扣费成功 @@ -129,9 +129,9 @@ bcode = ConsumptionConstant.BUSINESS_CODE_ERROR; } } else { - //余额不足 + //余额不足 或获取异常 isSuccess = false; - reMsg = "余额不足或获取失败!"; + reMsg = vateMap.get("vateMsg").toString(); bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; } } else { @@ -179,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)) { //预扣费成功 @@ -194,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); } @@ -380,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)) { //预扣费执行失败 @@ -395,7 +397,7 @@ } } else { //余额不足 - reMsg = "余额不足或获取失败!"; + reMsg = vateMap.get("vateMsg").toString(); bcode = ConsumptionConstant.BUSINESS_CODE_FAIL; return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess); } @@ -564,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; } /** @@ -672,7 +682,7 @@ * 发消息到消息队列 * @return */ - @RabbitListener(queues = "BoneAgeEvaluationData") + //@RabbitListener(queues = "BoneAgeEvaluationData") private void MessageToBI(ConsumptionRequest consumptionRequest) { //发消息到队列 @@ -681,5 +691,7 @@ "\",\"doctorId\":\"" + consumptionRequest.getDoctorId() + "\",\"date\":\"" + DateUtils.formatDate(new Date(),"yyyy-MM-dd")+"\"}"; rabbitTemplate.convertAndSend(ConsumptionConstant.EXCHANGE_DATA, ConsumptionConstant.ROUTINGKEY_DATA+envName, context); + + log.error("骨龄评价扣费消息已发送:"+context); } } 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..5eefa38 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="p!=null and p.size()>0"> + and pro_order_detail_id in + <foreach item="item" index="index" collection="p" 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-business/kidgrow-opration-center/pom.xml b/kidgrow-business/kidgrow-opration-center/pom.xml index 13d2729..9fb3c1b 100644 --- a/kidgrow-business/kidgrow-opration-center/pom.xml +++ b/kidgrow-business/kidgrow-opration-center/pom.xml @@ -43,6 +43,10 @@ <groupId>com.kidgrow</groupId> <artifactId>kidgrow-ribbon-spring-boot-starter</artifactId> </dependency> +<!-- <dependency>--> +<!-- <groupId>com.kidgrow</groupId>--> +<!-- <artifactId>kidgrow-rabbitmq-spring-boot-starter</artifactId>--> +<!-- </dependency>--> <dependency> <groupId>com.kidgrow</groupId> <artifactId>kidgrow-usercenter-api</artifactId> diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java index 072fbec..602ad88 100644 --- a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java +++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java @@ -30,6 +30,7 @@ @PostConstruct public void initialize() { requestHeaders.add(SecurityConstants.USER_ID_HEADER); + requestHeaders.add(SecurityConstants.DOCTOR_ID_HEADER); requestHeaders.add(SecurityConstants.USER_HEADER); requestHeaders.add(SecurityConstants.USER_DEP_ID_HEADER); requestHeaders.add(SecurityConstants.USER_DEP_NAME_HEADER); diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java index 91b68fa..7f57d7e 100644 --- a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java +++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java @@ -30,6 +30,7 @@ @PostConstruct public void initialize() { requestHeaders.add(SecurityConstants.USER_ID_HEADER); + requestHeaders.add(SecurityConstants.DOCTOR_ID_HEADER); requestHeaders.add(SecurityConstants.USER_HEADER); requestHeaders.add(SecurityConstants.USER_DEP_ID_HEADER); requestHeaders.add(SecurityConstants.USER_DEP_NAME_HEADER); diff --git a/kidgrow-config/src/main/resources/application-uat.properties b/kidgrow-config/src/main/resources/application-uat.properties index f969f4d..4f16308 100644 --- a/kidgrow-config/src/main/resources/application-uat.properties +++ b/kidgrow-config/src/main/resources/application-uat.properties @@ -1 +1,76 @@ -# \u9884\u4E0A\u7EBF\u73AF\u5883 \ No newline at end of file +# \u9884\u4E0A\u7EBF\u73AF\u5883 +########################## \u7EDF\u4E00\u53D8\u91CF\u914D\u7F6E ########################## +##### \u6570\u636E\u5E93\u914D\u7F6E +kidgrow.datasource.ip=rm-2ze84sb2l40k33a034o.mysql.rds.aliyuncs.com +kidgrow.datasource.username=yingdawangluo +kidgrow.datasource.password=Yingdawangluo2020 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +##### Redis\u914D\u7F6E +# \u662F\u5426\u5F00\u542FRedis\u7F13\u5B58 true\u5F00\u542F false \u5173\u95ED +spring.redis.open=true +spring.redis.host=182.92.99.224 +spring.redis.port=6379 +spring.redis.password=kidgrow +spring.redis.timeout=5000 + +#rabbitmq\u914D\u7F6E +kidgrow.rabbitmq.host=182.92.99.224 +kidgrow.rabbitmq.port=5672 +kidgrow.rabbitmq.username=liuke +kidgrow.rabbitmq.password=kidgrow2020 +kidgrow.rabbitmq.exchangeName=BoneAgeEvaluation +kidgrow.rabbitmq.queueName=test_queue +kidgrow.rabbitmq.routingKeyName=Kidgrow2020 +kidgrow.rabbitmq.virtual-host=kidgrow + + +#\u963F\u91CCDruid\u914D\u7F6E +kidgrow.druid.loginname=admin +kidgrow.druid.loginpwd=123456 + +#eureka \u6CE8\u518C\u4E2D\u5FC3Url +kidgrow.eureka.client.serviceUrl.defaultZone=http://172.17.97.143:9001/eureka/,http://172.17.64.228:9001/eureka/ +kidgrow.eureka.instance.hostname=127.0.0.1 +##eureka client\u53D1\u9001\u5FC3\u8DF3\u7ED9server\u7AEF\u7684\u9891\u7387 +eureka.instance.lease-renewal-interval-in-seconds=30 +#eureka client\u95F4\u9694\u591A\u4E45\u53BB\u62C9\u53D6\u670D\u52A1\u6CE8\u518C\u4FE1\u606F\uFF0C\u9ED8\u8BA4\u4E3A30\u79D2\uFF0C\u5BF9\u4E8Eapi-gateway\uFF0C\u5982\u679C\u8981\u8FC5\u901F\u83B7\u53D6\u670D\u52A1\u6CE8\u518C\u72B6\u6001\uFF0C\u53EF\u4EE5\u7F29\u5C0F\u8BE5\u503C\uFF0C\u6BD4\u59825\u79D2 +eureka.instance.lease-expiration-duration-in-seconds=30 + +##### elasticsearch\u914D\u7F6E +kidgrow.elasticsearch.cluster-name=kidgrow-es +kidgrow.elasticsearch.cluster-nodes=123.57.164.62 + +##### sentinel\u914D\u7F6E +kidgrow.sentinel.dashboard=127.0.0.1:6999 + +##### fastDFS\u914D\u7F6E +kidgrow.fdfs.web-url=127.0.0.1 +kidgrow.fdfs.trackerList=${kidgrow.fdfs.web-url}:22122 + +####\u963F\u91CCOSS\u914D\u7F6E +kidgrow.oss.access-key=LTAI4FennfcwZupz3B6hkK3N +kidgrow.oss.accessKeySecret=NzBBGe8SS41qJlp0nA3tlJ3t74lBZM +kidgrow.oss.endpoint=123.kidgrow.cloud +kidgrow.oss.bucketName=kidgrow +kidgrow.oss.domain=http://123.kidgrow.cloud/ + + +##### \u65E5\u5FD7\u94FE\u8DEF\u8FFD\u8E2A +kidgrow.trace.enable=true + +##### \u8D1F\u8F7D\u5747\u8861\u9694\u79BB(version\u9694\u79BB\uFF0C\u53EA\u9002\u7528\u4E8E\u5F00\u53D1\u73AF\u5883) +kidgrow.ribbon.isolation.enabled=false + +##### mybatis-plus\u6253\u5370\u5B8C\u6574sql(\u53EA\u9002\u7528\u4E8E\u5F00\u53D1\u73AF\u5883) +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl + +##### \u5BA1\u8BA1\u65E5\u5FD7\u914D\u7F6E +kidgrow.audit-log.enabled=true +kidgrow.audit-log.log-type=db +kidgrow.audit-log.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +kidgrow.audit-log.datasource.jdbc-url=jdbc:mysql://${kidgrow.datasource.ip}:3306/logger_center_${spring.profiles.active}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai +kidgrow.audit-log.datasource.username=${kidgrow.datasource.username} +kidgrow.audit-log.datasource.password=${kidgrow.datasource.password} + +##### \u79FB\u52A8\u7AEF\u4E0A\u4F20\u5149\u7247Web\u5E94\u7528URL +appUrl=https://upload.kidgrow.cloud/ \ 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