From 31de20695ac5fc8562c5922fcbe8729ae4e146a1 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Mon, 29 Jun 2020 14:20:39 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev
---
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ConsumptionServiceFallbackFactory.java | 33 +++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml | 3
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ConsumptionService.java | 43 +++++++
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java | 8 +
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java | 33 +++++
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java | 6 +
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java | 9 +
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html | 7
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml | 10 +
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java | 121 +++++++++++++------
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml | 8
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java | 12 +
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java | 27 ++++
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java | 4
14 files changed, 269 insertions(+), 55 deletions(-)
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ConsumptionService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ConsumptionService.java
new file mode 100644
index 0000000..748bbfb
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ConsumptionService.java
@@ -0,0 +1,43 @@
+package com.kidgrow.oprationcenter.feign;
+
+import com.kidgrow.common.constant.ServiceNameConstants;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.oprationcenter.feign.fallback.ConsumptionServiceFallbackFactory;
+import com.kidgrow.oprationcenter.vo.ConsumptionRequest;
+import com.kidgrow.ribbon.config.FeignHttpInterceptorConfig;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @Description: 扣费业务相关内部调用
+ * @Project: 运营中心
+ * @CreateDate: Created in 2020-06-27 15:26:33 <br>
+ * @Author: <a href="411269194@kidgrow.com">houruijun</a>
+ * @version: 1.0
+ */
+@FeignClient(value = ServiceNameConstants.OPRATION_SERVER,configuration= FeignHttpInterceptorConfig.class,
+ fallbackFactory = ConsumptionServiceFallbackFactory.class, decode404 = true)
+public interface ConsumptionService {
+ /**
+ * 要让AI读片-调用
+ */
+ @PostMapping(value = "consumption/AIStart")
+ ResultBody consumptionAIStart (@RequestBody ConsumptionRequest consumptionRequest);
+ /**
+ * AI返回结果-调用
+ */
+ @PostMapping(value = "consumption/AIReturn")
+ ResultBody consumptionAIReturn (@RequestBody ConsumptionRequest consumptionRequest);
+ /**
+ * AI拒读/失败通知-调用
+ */
+ @PostMapping(value = "consumption/AIFail")
+ ResultBody consumptionAIFail (@RequestBody ConsumptionRequest consumptionRequest);
+ /**
+ * 发起人工读片-调用
+ */
+ @PostMapping(value = "consumption/Artificial")
+ ResultBody consumptionArtificial (@RequestBody ConsumptionRequest consumptionRequest);
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ConsumptionServiceFallbackFactory.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ConsumptionServiceFallbackFactory.java
new file mode 100644
index 0000000..2a0c0ea
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ConsumptionServiceFallbackFactory.java
@@ -0,0 +1,33 @@
+package com.kidgrow.oprationcenter.feign.fallback;
+
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.oprationcenter.feign.ConsumptionService;
+import com.kidgrow.oprationcenter.vo.ConsumptionRequest;
+import feign.hystrix.FallbackFactory;
+
+public class ConsumptionServiceFallbackFactory implements FallbackFactory<ConsumptionService> {
+ @Override
+ public ConsumptionService create(Throwable throwable) {
+ return new ConsumptionService() {
+ @Override
+ public ResultBody consumptionAIStart(ConsumptionRequest consumptionRequest) {
+ return ResultBody.failed().msg("consumptionAIStart的FeignClient调用参数传递测试失败");
+ }
+
+ @Override
+ public ResultBody consumptionAIReturn(ConsumptionRequest consumptionRequest) {
+ return ResultBody.failed().msg("consumptionAIReturn的FeignClient调用参数传递测试失败");
+ }
+
+ @Override
+ public ResultBody consumptionAIFail(ConsumptionRequest consumptionRequest) {
+ return ResultBody.failed().msg("consumptionAIFail的FeignClient调用参数传递测试失败");
+ }
+
+ @Override
+ public ResultBody consumptionArtificial(ConsumptionRequest consumptionRequest) {
+ return ResultBody.failed().msg("consumptionArtificial的FeignClient调用参数传递测试失败");
+ }
+ };
+ }
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java
index ca8e1db..fd7746d 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java
@@ -1,9 +1,11 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.kidgrow.common.model.SuperModel;
+import com.kidgrow.common.model.BaseModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -11,6 +13,7 @@
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
+import java.util.Date;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -26,9 +29,14 @@
@NoArgsConstructor
@AllArgsConstructor
@TableName("consumption_record")
-public class ConsumptionRecord extends SuperModel {
+public class ConsumptionRecord extends BaseModel {
private static final long serialVersionUID = 1L;
-
+ /**
+ * 上次消费记录id(用于退费,扣费)
+ */
+ @TableId
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long id;
/**
* 上次消费记录id(用于退费,扣费)
*/
@@ -64,6 +72,8 @@
* 300 退还预扣
* 301 退还扣费
* 400 义务执行出错
+ * 401 参数为空异常
+ * 402 业务失败
*/
@NotEmpty(message = "业务返回结果不能为空")
private Integer businessCode;
@@ -72,4 +82,15 @@
*/
@NotNull(message = "扣费数量/金额不能为空")
private Integer consumptionCount;
+ /**
+ * 创建时间
+ */
+ @NotNull(message = "创建时间不能为空")
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**
+ * 更新时间
+ */
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
}
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 338dcf0..400c2ff 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
@@ -52,7 +52,6 @@
private static final Logger logger = LoggerFactory.getLogger(ConsumptionRecordServiceImpl.class);
-
/**
* 列表
*
@@ -99,8 +98,10 @@
public ResultBody consumptionAIStart(ConsumptionRequest consumptionRequest) {
//默认的业务返回码
int bcode = -1;
+ //记录类型
+ int recordType=ConsumptionConstant.BEFORE_DEDUCTION;
//业务执行结果
- boolean isSuccess = false;
+ boolean isSuccess = true;
//业务执行结果信息
String reMsg = "";
if (VateParams(consumptionRequest)) {
@@ -117,16 +118,17 @@
//4.余额充足 获取要扣的套餐 写预扣费记录
if (beforeConsumption(consumptionRequest)) {
//预扣费成功
- isSuccess = true;
reMsg = "预扣费成功!";
bcode = ConsumptionConstant.BUSINESS_CODE_IS_BEFORE_DEDUCTION;
} else {
//预扣费执行失败
+ isSuccess = false;
reMsg = "预扣费执行失败!";
bcode = ConsumptionConstant.BUSINESS_CODE_ERROR;
}
} else {
//余额不足
+ isSuccess = false;
reMsg = "余额不足或获取失败!";
bcode = ConsumptionConstant.BUSINESS_CODE_FAIL;
}
@@ -141,10 +143,11 @@
bcode = ConsumptionConstant.BUSINESS_CODE_IS_DEDUCTION;
}
} else {
+ isSuccess = false;
reMsg = "传入参数有误!";
bcode = ConsumptionConstant.BUSINESS_CODE_PARAMS_ERROR;
}
- return ResultReturn(consumptionRequest, bcode, reMsg, isSuccess);
+ return ResultReturn(consumptionRequest, bcode,recordType, reMsg, isSuccess);
}
/**
@@ -158,8 +161,10 @@
public ResultBody consumptionAIReturn(ConsumptionRequest consumptionRequest) {
//默认的业务返回码
int bcode = -1;
+ //记录类型
+ int recordType=ConsumptionConstant.DEDUCTION;
//业务执行结果
- boolean isSuccess = false;
+ boolean isSuccess = true;
//业务执行结果信息
String reMsg = "";
if (VateParams(consumptionRequest)) {
@@ -179,20 +184,24 @@
logger.info("医院id:【{}】AI返回结果应该不走预扣,目前确已经预扣!", hospitalId);
} else {
//预扣费执行失败
+ isSuccess = false;
reMsg = "预扣费执行失败!";
bcode = ConsumptionConstant.BUSINESS_CODE_ERROR;
+ return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess);
}
} else {
//余额不足
+ isSuccess = false;
reMsg = "余额不足或获取失败!";
bcode = ConsumptionConstant.BUSINESS_CODE_FAIL;
+ return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess);
}
}
if (consumptionBusiess(consumptionRequest, consumptionRecordList)) {
- isSuccess = true;
reMsg = "该业务扣费成功!";
bcode = ConsumptionConstant.BUSINESS_CODE_IS_DEDUCTION;
} else {
+ isSuccess = false;
reMsg = "该业务扣费失败!";
bcode = ConsumptionConstant.BUSINESS_CODE_FAIL;
}
@@ -202,10 +211,11 @@
bcode = ConsumptionConstant.BUSINESS_CODE_IS_DEDUCTION;
}
} else {
+ isSuccess = false;
reMsg = "传入参数有误!";
bcode = ConsumptionConstant.BUSINESS_CODE_PARAMS_ERROR;
}
- return ResultReturn(consumptionRequest, bcode, reMsg, isSuccess);
+ return ResultReturn(consumptionRequest, bcode,recordType, reMsg, isSuccess);
}
/**
@@ -219,6 +229,8 @@
public ResultBody consumptionAIFail(ConsumptionRequest consumptionRequest) {
//默认的业务返回码
int bcode = -1;
+ //记录类型
+ int recordType = ConsumptionConstant.RETURN_BEFORE_DEDUCTION;
//业务执行结果
boolean isSuccess = false;
//业务执行结果信息
@@ -226,14 +238,12 @@
if (VateParams(consumptionRequest)) {
//先获取这个业务关联的扣费记录
List<ConsumptionRecord> consumptionRecordList = GetBusinessConsumptionList(consumptionRequest.getBusinessId());
- Long hospitalId = Long.valueOf(httpServletRequest.getHeader(SecurityConstants.USER_HOSPITAL_ID_HEADER));
- Long departmentId = Long.valueOf(httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER));
//1.先检查是否已经扣费
if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.DEDUCTION)) {
//2.没有扣费,检查是否已经预扣费
if (isBeforeDeduction(consumptionRecordList, ConsumptionConstant.BEFORE_DEDUCTION)) {
//2.1.有预扣费
- ConsumptionRecord consumptionRecord = consumptionRecordList.stream().filter(f -> f.getRecordType() == ConsumptionConstant.BEFORE_DEDUCTION).collect(Collectors.toList()).get(0);
+ ConsumptionRecord consumptionRecord = consumptionRecordList.stream().filter(f -> f.getRecordType() == ConsumptionConstant.BEFORE_DEDUCTION&&f.getProOrderDetailId()>0).collect(Collectors.toList()).get(0);
//把占用的套餐id还回去
Long tempProOrderDetailId=consumptionRecord.getProOrderDetailId();
consumptionRecord.setProOrderDetailId(0L);
@@ -242,14 +252,15 @@
{
//退预扣记录
ConsumptionRecord consumptionRecordNew = new ConsumptionRecord();
- consumptionRecordNew.setBusinessCode(ConsumptionConstant.RETURN_BEFORE_DEDUCTION);
+ consumptionRecordNew.setBusinessCode(ConsumptionConstant.BUSINESS_CODE_RETURN_BEFORE_DEDUCTION);
consumptionRecordNew.setBusinessId(consumptionRequest.getBusinessId());
- consumptionRecordNew.setConsumptionCount(consumptionRequest.getConsumptionCount());
- consumptionRecordNew.setRecordType(ConsumptionConstant.DEDUCTION);
+ consumptionRecordNew.setConsumptionCount(0-consumptionRequest.getConsumptionCount());
+ consumptionRecordNew.setRecordType(ConsumptionConstant.RETURN_BEFORE_DEDUCTION);
consumptionRecordNew.setProOrderDetailId(tempProOrderDetailId);
- consumptionRecordNew.setLastRecordId(consumptionRecord.getLastRecordId());
+ consumptionRecordNew.setLastRecordId(consumptionRecord.getId());
if (SaveConsumptionRecord(consumptionRecordNew))
{
+ isSuccess=true;
reMsg = "有预扣,写退还预扣成功!";
bcode = ConsumptionConstant.BUSINESS_CODE_RETURN_BEFORE_DEDUCTION;
}
@@ -270,7 +281,8 @@
bcode = ConsumptionConstant.BUSINESS_CODE_ERROR;
}
} else {
- //3.有扣费记录
+ recordType=ConsumptionConstant.RETURN_DEDUCTION;
+ //3.有扣费记录 这种情况的流程,实际业务中不会出现,但理论上应该这样处理
//3.1 退还账户
//获取预扣的时候占住的套餐id
ConsumptionRecord consumptionRecord = consumptionRecordList.stream().filter(f -> f.getRecordType() == ConsumptionConstant.DEDUCTION).collect(Collectors.toList()).get(0);
@@ -283,24 +295,36 @@
//退费
boolean consumptionRe = productOrderDetailService.saveOrUpdate(productOrderDetail);
if (consumptionRe) {
- //退费成功
- //3.2 写退费记录
- ConsumptionRecord consumptionRecordNew = new ConsumptionRecord();
- consumptionRecordNew.setBusinessCode(ConsumptionConstant.BUSINESS_CODE_RETURN_DEDUCTION);
- consumptionRecordNew.setBusinessId(consumptionRecord.getBusinessId());
- consumptionRecordNew.setConsumptionCount(consumptionRecord.getConsumptionCount());
- consumptionRecordNew.setRecordType(ConsumptionConstant.RETURN_DEDUCTION);
- consumptionRecordNew.setProOrderDetailId(productOrderDetail.getId());
- consumptionRecordNew.setLastRecordId(consumptionRecord.getLastRecordId());
- if (SaveConsumptionRecord(consumptionRecordNew)) {
- //写退费记录成功
- isSuccess=true;
- reMsg = "退还扣费成功!";
- bcode = ConsumptionConstant.BUSINESS_CODE_RETURN_DEDUCTION;
+ //更新扣费记录 还回占用套餐
+ consumptionRecord.setProOrderDetailId(0L);
+ consumptionRecord.setUpdateTime(new Date());
+ if (SaveConsumptionRecord(consumptionRecord))
+ {
+ //退费成功
+ //3.2 写退费记录
+ ConsumptionRecord consumptionRecordNew = new ConsumptionRecord();
+ consumptionRecordNew.setBusinessCode(ConsumptionConstant.BUSINESS_CODE_RETURN_DEDUCTION);
+ consumptionRecordNew.setBusinessId(consumptionRecord.getBusinessId());
+ consumptionRecordNew.setConsumptionCount(0-consumptionRecord.getConsumptionCount());
+ consumptionRecordNew.setRecordType(ConsumptionConstant.RETURN_DEDUCTION);
+ consumptionRecordNew.setProOrderDetailId(productOrderDetail.getId());
+ consumptionRecordNew.setLastRecordId(consumptionRecord.getId());
+ if (SaveConsumptionRecord(consumptionRecordNew)) {
+ //写退费记录成功
+ isSuccess=true;
+ reMsg = "退还扣费成功!";
+ bcode = ConsumptionConstant.BUSINESS_CODE_RETURN_DEDUCTION;
+ }
+ else
+ {
+ reMsg = "退还扣费失败!";
+ bcode = ConsumptionConstant.BUSINESS_RUN_FAIL;
+ }
}
else
{
- reMsg = "退还扣费失败!";
+ //更新扣费失败
+ reMsg = "更新扣费失败!";
bcode = ConsumptionConstant.BUSINESS_RUN_FAIL;
}
}
@@ -327,7 +351,7 @@
reMsg = "传入参数有误!";
bcode = ConsumptionConstant.BUSINESS_CODE_PARAMS_ERROR;
}
- return ResultReturn(consumptionRequest, bcode, reMsg, isSuccess);
+ return ResultReturn(consumptionRequest, bcode,recordType, reMsg, isSuccess);
}
/**
@@ -340,6 +364,8 @@
public ResultBody consumptionArtificial(ConsumptionRequest consumptionRequest) {
//默认的业务返回码
int bcode = -1;
+ //记录类型
+ int recordType = ConsumptionConstant.DEDUCTION;
//业务执行结果
boolean isSuccess = false;
//业务执行结果信息
@@ -347,8 +373,6 @@
if (VateParams(consumptionRequest)) {
//先获取这个业务关联的扣费记录
List<ConsumptionRecord> consumptionRecordList = GetBusinessConsumptionList(consumptionRequest.getBusinessId());
- Long hospitalId = Long.valueOf(httpServletRequest.getHeader(SecurityConstants.USER_HOSPITAL_ID_HEADER));
- Long departmentId = Long.valueOf(httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER));
//1.先检查是否已经扣费
if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.DEDUCTION)) {
//2.没有扣费,检查是否已经预扣费
@@ -360,16 +384,33 @@
//预扣费执行失败
reMsg = "预扣费执行失败!";
bcode = ConsumptionConstant.BUSINESS_CODE_ERROR;
+ return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess);
+ }
+ else
+ {
+ //发起了一个新的预扣,需要更新扣费业务数据列表
+ consumptionRecordList = GetBusinessConsumptionList(consumptionRequest.getBusinessId());
}
} else {
//余额不足
reMsg = "余额不足或获取失败!";
bcode = ConsumptionConstant.BUSINESS_CODE_FAIL;
+ return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess);
}
}
//扣费业务
isSuccess= consumptionBusiess(consumptionRequest,consumptionRecordList);
+ if (isSuccess) {
+ reMsg = "该业务已经扣费!";
+ bcode = ConsumptionConstant.BUSINESS_CODE_IS_DEDUCTION;
+ }
+ else
+ {
+ reMsg = "该业务扣费失败!";
+ bcode = ConsumptionConstant.BUSINESS_CODE_PARAMS_ERROR;
+ }
} else {
+ isSuccess = true;
//已经扣费
reMsg = "该业务已经扣费!";
bcode = ConsumptionConstant.BUSINESS_CODE_IS_DEDUCTION;
@@ -378,7 +419,7 @@
reMsg = "传入参数有误!";
bcode = ConsumptionConstant.BUSINESS_CODE_PARAMS_ERROR;
}
- return ResultReturn(consumptionRequest, bcode, reMsg, isSuccess);
+ return ResultReturn(consumptionRequest, bcode,recordType, reMsg, isSuccess);
}
/**
@@ -418,7 +459,8 @@
consumptionRecordNew.setConsumptionCount(consumptionRequest.getConsumptionCount());
consumptionRecordNew.setRecordType(ConsumptionConstant.DEDUCTION);
consumptionRecordNew.setProOrderDetailId(productOrderDetail.getId());
- consumptionRecordNew.setLastRecordId(consumptionRecord.getLastRecordId());
+ consumptionRecordNew.setLastRecordId(consumptionRecord.getId());
+ consumptionRecordNew.setCreateTime(new Date());
if (SaveConsumptionRecord(consumptionRecordNew)) {
//3.3 扣费成功 如果套餐id变化,则更新预扣费的套餐id
@@ -452,13 +494,13 @@
* @param isSuccess 业务执行是否成功
* @return
*/
- private ResultBody ResultReturn(ConsumptionRequest consumptionRequest, int bcode, String reMsg, boolean isSuccess) {
+ private ResultBody ResultReturn(ConsumptionRequest consumptionRequest, int bcode,int recordType, String reMsg, boolean isSuccess) {
//返回的数据实体
ConsumptionVo consumptionVo = new ConsumptionVo();
consumptionVo.setConsumptionCount(consumptionRequest.getConsumptionCount());
consumptionVo.setBusinessId(consumptionRequest.getBusinessId());
consumptionVo.setBcode(bcode);
- consumptionVo.setRecordType(ConsumptionConstant.BEFORE_DEDUCTION);
+ consumptionVo.setRecordType(recordType);
if (isSuccess) {
return ResultBody.ok().data(consumptionVo).msg(reMsg);
} else {
@@ -572,6 +614,9 @@
*/
private Boolean SaveConsumptionRecord(ConsumptionRecord consumptionRecord) {
if (consumptionRecord != null) {
+ if (consumptionRecord.getCreateTime() == null) {
+ consumptionRecord.setCreateTime(new Date());
+ }
return this.saveOrUpdate(consumptionRecord);
} else {
logger.info("扣费数据写入参数为空!");
@@ -590,7 +635,7 @@
if (consumptionRecordList != null) {
if (consumptionRecordList.size() > 0) {
//过滤预扣费的记录
- return consumptionRecordList.stream().filter(f -> f.getRecordType() == recordType).collect(Collectors.toList()).size() == 1;
+ return consumptionRecordList.stream().filter(f -> f.getRecordType() == recordType&&f.getProOrderDetailId()>0).collect(Collectors.toList()).size() == 1;
}
}
return false;
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 61f1ac4..18f8617 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
@@ -12,8 +12,8 @@
<where>
<!--查询条件自行添加-->
1=1
- <if test="p.recordId != null and p.recordId !=''">
- and record_id = #{p.recordId}
+ <if test="p.id != null and p.id !=''">
+ and id = #{p.id}
</if>
<if test="p.lastRecordId != null and p.lastRecordId !=''">
and last_record_id = #{p.lastRecordId}
@@ -48,7 +48,7 @@
<include refid="Column_List"/>
from consumption_record
<include refid="where"/>
- order by record_id desc
+ order by id desc
limit 1
</select>
@@ -58,6 +58,6 @@
<include refid="Column_List"/>
from consumption_record
<include refid="where"/>
- order by record_id desc
+ order by id desc
</select>
</mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml
index b009505..2a725ea 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml
@@ -83,6 +83,9 @@
- sys_feedback
- doctor_templete
- consumption_record
+ - product_order
+ - product_order_detail
+ - product_order_record
ignoreSqls:
- com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
index 72d4e66..5fe2ed6 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -151,5 +151,11 @@
* @return
*/
ResultBody hospitalDoctorList(Long hospitalId, Long departmentId);
+ /**
+ * 获取医院科室下的所有有效的医生
+ * @param userTel
+ * @return
+ */
+ ResultBody isRegUser(String userTel);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index b30238f..ffd3b8b 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -647,9 +647,9 @@
return ResultBody.failed("该手机号已经注册");
}
//创建人id
- Long createUserId = 0L;
+ Long createUserId = CommonConstant.CREATE_USER_ID;
//创建人id
- String createUserName = "自动创建";
+ String createUserName = CommonConstant.CREATE_USER_NAME;
//是否注册用户
Boolean isReg = false;
//业务成功
@@ -990,4 +990,33 @@
}
return new com.kidgrow.usercenter.model.SysDoctor();
}
+
+ /**
+ * 检查手机号是注册用户还是正式用户
+ * @param userTel
+ * @return
+ */
+ public ResultBody isRegUser(String userTel)
+ {
+ if (StringUtils.isNotBlank(userTel)) {
+ List<SysUser> users = baseMapper.selectList(
+ new QueryWrapper<SysUser>().eq("username", userTel)
+ );
+ if (users != null&&users.size()==1) {
+ SysUser sysUser=users.get(0);
+ if (sysUser.getCreateUserId()==CommonConstant.CREATE_USER_ID&&sysUser.getCreateUserName().equals(CommonConstant.CREATE_USER_NAME)) {
+ return ResultBody.ok().data(true);
+ }
+ return ResultBody.ok().data(false);
+ }
+ else
+ {
+ return ResultBody.failed("用户数据有误!");
+ }
+ }
+ else
+ {
+ return ResultBody.failed("必要参数有误!");
+ }
+ }
}
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
index 096f57b..ac6c8ec 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -86,7 +86,6 @@
@ApiOperation(value = "根据用户名查询用户实体")
@Cacheable(value = "user", key = "#username")
public SysUser selectByUsername(@PathVariable String username) {
-
return appUserService.selectByUsername(username);
}
@@ -452,4 +451,11 @@
return appUserService.findAppointUsers(Integer.parseInt(type));
}
+ /**
+ * 检查该手机号是否注册
+ */
+ @GetMapping("users/isRegUser")
+ public ResultBody isRegUser(String userTel) {
+ return appUserService.isRegUser(userTel);
+ }
}
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
index 25ca205..bec9753 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
@@ -275,4 +275,13 @@
* 自主注册的科室组织id
*/
public static final Long DEPARTMENT_ORG_ID=1273810374550335490L;
+
+ /**
+ * 自主注册的创建人id
+ */
+ public static final Long CREATE_USER_ID= 0L;
+ /**
+ * 自主注册的创建人名称
+ */
+ public static final String CREATE_USER_NAME= "自动创建";
}
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java
index 550749a..3cf501a 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java
@@ -14,6 +14,10 @@
*/
String USER_SERVICE = "usercenter-server";
/**
+ * 运营中心服务
+ */
+ String OPRATION_SERVER="oprationcenter-server";
+ /**
* 搜索中心服务
*/
String SEARCH_SERVICE = "searchcenter-server";
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
index 2f19cfd..20b0e16 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/java/com/kidgrow/zuul/filter/UserInfoHeaderFilter.java
@@ -29,7 +29,6 @@
import java.util.Map;
import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.FORM_BODY_WRAPPER_FILTER_ORDER;
-import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.PRE_DECORATION_FILTER_ORDER;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -82,11 +81,18 @@
List<SysDoctor> sysDoctors = JSON.parseArray(JSON.toJSONString(listByMap.getData()), SysDoctor.class);
String str="";
Long hospital=-1L;
+ Long doctorId=-1L;
+ Long departmentId=-1L;
+ String departmentName="";
if(sysDoctors!=null&&sysDoctors.size()>0){
str= sysDoctors.get(0).getDoctorName();
hospital=sysDoctors.get(0).getHospitalId();
+ doctorId=sysDoctors.get(0).getId();
+ departmentId=sysDoctors.get(0).getDepartmentId();
+ departmentName=sysDoctors.get(0).getDepartmentName();
}
ctx.addZuulRequestHeader(SecurityConstants.USER_ID_HEADER, String.valueOf(user.getId()));
+ ctx.addZuulRequestHeader(SecurityConstants.DOCTOR_ID_HEADER, String.valueOf(doctorId));
ctx.addZuulRequestHeader(SecurityConstants.USER_HEADER, user.getUsername());
ctx.addZuulRequestHeader(SecurityConstants.USER_REAL_NAME,URLEncoder.encode(str,"UTF-8"));//待完善
@@ -98,8 +104,8 @@
if (organizations != null&&organizations.size()>0) {
ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_ID_HEADER,String.valueOf(organizations.get(0).getId()));
ctx.addZuulRequestHeader(SecurityConstants.USER_ORG_NAME_HEADER, URLEncoder.encode(organizations.get(0).getOrgName(),"UTF-8"));
- ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(organizations.get(organizations.size()-1).getId()));
- ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,URLEncoder.encode(organizations.get(organizations.size()-1).getOrgName(),"UTF-8"));
+ ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_ID_HEADER,String.valueOf(departmentId));
+ ctx.addZuulRequestHeader(SecurityConstants.USER_DEP_NAME_HEADER,(departmentName.equals("")?URLEncoder.encode(organizations.get(organizations.size()-1).getOrgName(),"UTF-8"):departmentName));
ctx.addZuulRequestHeader(SecurityConstants.USER_ORGS_HEADER,JSON.toJSONString(organizations));
}
//将角色放到header
diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
index 98a8a08..817bb40 100644
--- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
+++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
@@ -151,8 +151,14 @@
strip-prefix: true
sensitive-headers: '*'
custom-sensitive-headers: true
- wx-server:
- path: /wechat-server/**
+ demo-aspnet-server-routes:
+ path: /demoaspnetserver/**
+ service-id: demo-aspnet-server
+ strip-prefix: true
+ sensitive-headers: '*'
+ custom-sensitive-headers: true
+ wechat-server-routes:
+ path: /wechatserver/**
service-id: wechat-server
strip-prefix: true
sensitive-headers: '*'
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
index 2d9e63c..25ec7f9 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
@@ -387,6 +387,9 @@
if (listData != null) {
if (data.field != null) {
layer.confirm("确定要将待充值列表中的" + listData.length + "个产品充值给当前医院吗?", { btn: ["确定", "返回"] }, function () {
+ data.field.contractBeginTime=data.field.contractBeginTime+" 00:00:00";
+ data.field.contractEndTime=data.field.contractEndTime+" 23:59:59";
+ data.field.contractTime=data.field.contractTime+" 00:00:00";
admin.req('api-opration/contract', JSON.stringify(data.field), function (data) {
layer.closeAll('loading');
if (data.code === 0) {
@@ -402,8 +405,8 @@
isShare: item.isShare,
ailightCount: item.ailightCount,
recordCount: item.recordCount,
- proBegintime: new Date(item.beginTime + ' 00:00:00'),
- proEndtime: new Date(item.endTime + ' 23:59:59')
+ proBegintime: item.beginTime + ' 00:00:00',
+ proEndtime: item.endTime + ' 23:59:59'
};
listDetailData.push(detailData);
})
--
Gitblit v1.8.0