From a8bf44754f50d0b0a65f0f2d4beefc131261e35d Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Wed, 24 Jun 2020 16:53:47 +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-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java | 8
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IConsumptionRecordService.java | 41 +++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java | 129 ++++++---
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml | 1
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java | 40 +++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/UserProductDetail.java | 28 ++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java | 139 ++++++++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml | 63 ++++
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ConsumptionConstant.java | 72 +++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java | 75 +++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ConsumptionRecordController.java | 114 ++++++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java | 25 +
14 files changed, 686 insertions(+), 53 deletions(-)
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
new file mode 100644
index 0000000..93ee069
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java
@@ -0,0 +1,75 @@
+package com.kidgrow.oprationcenter.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.kidgrow.common.model.SuperModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @version 1.0
+ * @Description: <br>
+ * @Project: 运营中心<br>
+ * @CreateDate: Created in 2020-06-23 15:07:14 <br>
+ * @Author: <a href="411269194@kidgrow.com">houruijun</a>
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("consumption_record")
+public class ConsumptionRecord extends SuperModel {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 上次消费记录id(用于退费,扣费)
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long lastRecordId;
+ /**
+ * 用户充值的套餐id
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ @NotNull(message = "用户充值的套餐id不能为空")
+ private Long proOrderDetailId;
+ /**
+ * 调用方业务编号,光片名称
+ */
+ private String businessId;
+ /**
+ * 记录类型
+ * 1:预扣费
+ * 2:退预扣费(需要关联预扣费编号)
+ * 3:退扣费(需要关联扣费编号)
+ * 4:扣费(需要关联预扣费编号)
+ */
+ @NotNull(message = "记录类型不能为空")
+ private Integer recordType;
+ /**
+ * 业务返回结果
+ * bcode 含义
+ * ---------------------------------
+ * 100 余额充足
+ * 101 余额不足
+ * 200 已经预扣
+ * 201 已经扣费
+ * 300 退还预扣
+ * 301 退还扣费
+ * 400 义务执行出错
+ */
+ @NotEmpty(message = "业务返回结果不能为空")
+ private String businessCode;
+ /**
+ * 扣费数量/金额
+ */
+ @NotNull(message = "扣费数量/金额不能为空")
+ private Integer consumptionCount;
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/UserProductDetail.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/UserProductDetail.java
new file mode 100644
index 0000000..5595f12
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/UserProductDetail.java
@@ -0,0 +1,28 @@
+package com.kidgrow.oprationcenter.vo;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/04/27 11:01 <br>
+ * @Author: <a href="411269194@kidgrow.com">houruijun</a>
+ * **/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserProductDetail extends Model<UserProductDetail> {
+ //实体序列化 必要
+ private static final long serialVersionUID = 1L;
+ //共享套餐列表
+ List<ProductOrderJoinDetail> productOrderJoinDetailListShare;
+ //私有套餐列表
+ List<ProductOrderJoinDetail> productOrderJoinDetailsListDep;
+}
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
new file mode 100644
index 0000000..2b1214e
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java
@@ -0,0 +1,40 @@
+package com.kidgrow.oprationcenter.mapper;
+
+import com.kidgrow.oprationcenter.model.ConsumptionRecord;
+import com.kidgrow.db.mapper.SuperMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @Description: <br>
+ * @Project: 运营中心<br>
+ * @CreateDate: Created in 2020-06-23 15:07:14 <br>
+ * @Author: <a href="411269194@kidgrow.com">houruijun</a>
+ * @version 1.0
+ */
+public interface ConsumptionRecordMapper extends SuperMapper<ConsumptionRecord> {
+ /**
+ * 分页查询列表
+ * @param page
+ * @param params
+ * @return
+ */
+ List<ConsumptionRecord> findList(Page<ConsumptionRecord> page, @Param("p") Map<String, Object> params);
+
+ /**
+ * 根据ConsumptionRecord对象当做查询条件进行查询
+ * @param
+ * @return ConsumptionRecord对象
+ */
+ ConsumptionRecord findByObject(@Param("p") ConsumptionRecord consumptionRecord);
+ /**
+ * 查询列表
+ * @param params
+ * @return
+ */
+ List<ConsumptionRecord> findList(@Param("p") Map<String, Object> params);
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IConsumptionRecordService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IConsumptionRecordService.java
new file mode 100644
index 0000000..b678356
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IConsumptionRecordService.java
@@ -0,0 +1,41 @@
+package com.kidgrow.oprationcenter.service;
+
+import com.kidgrow.oprationcenter.model.ConsumptionRecord;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.service.ISuperService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @Description: <br>
+ * @Project: 运营中心<br>
+ * @CreateDate: Created in 2020-06-23 15:07:14 <br>
+ * @Author: <a href="411269194@kidgrow.com">houruijun</a>
+ * @version 1.0
+ */
+public interface IConsumptionRecordService extends ISuperService<ConsumptionRecord> {
+ /**
+ * 列表
+ * @param params
+ * @return
+ */
+ PageResult<ConsumptionRecord> findList(Map<String, Object> params);
+
+ /**
+ * 自定义条件查询所有的列表
+ * @param params
+ * @return
+ */
+ List<ConsumptionRecord> findAllList(Map<String, Object> params);
+
+
+ /**
+ * 根据ConsumptionRecord对象当做查询条件进行查询
+ * @param consumptionRecord
+ * @return ConsumptionRecord对象
+ */
+ ConsumptionRecord findByObject(ConsumptionRecord consumptionRecord);
+}
+
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java
index a0d0386..7fb3857 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java
@@ -8,6 +8,7 @@
import com.kidgrow.oprationcenter.vo.DiagnosisRecord;
import com.kidgrow.oprationcenter.vo.GroupProductDetail;
import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail;
+import com.kidgrow.oprationcenter.vo.UserProductDetail;
import java.util.List;
import java.util.Map;
@@ -61,5 +62,12 @@
* @return
*/
List<ProductOrderJoinDetail> findAllList(Map<String, Object> params);
+ /**
+ * 获取医院的套餐数据
+ * @param hospitalId
+ * @param departmentId
+ * @return
+ */
+ UserProductDetail getUserProductDetail(Long hospitalId, Long departmentId);
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java
index ea7668c..4d94a57 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java
@@ -60,6 +60,6 @@
*/
PageResult<GroupProductDetail> groupList(Map<String, Object> params);
- ResultBody biUserNowProduct(long hospitalId,Long departmentId);
+ ResultBody biUserNowProduct(Long hospitalId,Long departmentId);
}
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
new file mode 100644
index 0000000..29d9ba4
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java
@@ -0,0 +1,139 @@
+package com.kidgrow.oprationcenter.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.common.utils.StringUtils;
+import com.kidgrow.oprationcenter.mapper.ConsumptionRecordMapper;
+import com.kidgrow.oprationcenter.model.ConsumptionRecord;
+import com.kidgrow.oprationcenter.service.IConsumptionRecordService;
+import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
+import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail;
+import com.kidgrow.oprationcenter.vo.UserProductDetail;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @Description: <br>
+ * @Project: 运营中心<br>
+ * @CreateDate: Created in 2020-06-23 15:07:14 <br>
+ * @Author: <a href="411269194@kidgrow.com">houruijun</a>
+ * @version 1.0
+ */
+@Slf4j
+@Service
+public class ConsumptionRecordServiceImpl extends SuperServiceImpl<ConsumptionRecordMapper, ConsumptionRecord> implements IConsumptionRecordService {
+ @Autowired
+ private IProductOrderDetailService productOrderDetailService;
+ /**
+ * 列表
+ * @param params
+ * @return
+ */
+ @Override
+ public PageResult<ConsumptionRecord> findList(Map<String, Object> params){
+ Page<ConsumptionRecord> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
+ List<ConsumptionRecord> list = baseMapper.findList(page, params);
+ return PageResult.<ConsumptionRecord>builder().data(list).code(0).count(page.getTotal()).build();
+ }
+ /**
+ * 列表
+ * @param params
+ * @return
+ */
+ @Override
+ public List<ConsumptionRecord> findAllList(Map<String, Object> params){
+ return baseMapper.findList(params);
+ }
+
+ /**
+ * 根据ConsumptionRecord对象当做查询条件进行查询
+ * @param consumptionRecord
+ * @return ConsumptionRecord
+ */
+ @Override
+ public ConsumptionRecord findByObject(ConsumptionRecord consumptionRecord){
+ return baseMapper.findByObject(consumptionRecord);
+ }
+
+ /**
+ *
+ * @param hospitalId
+ * @param departmentId
+ * @return
+ */
+ public boolean deductionDepartmentProduct(Long hospitalId,Long departmentId)
+ {
+ UserProductDetail userProductDetail=productOrderDetailService.getUserProductDetail(hospitalId,departmentId);
+ //合并集合
+ userProductDetail.getProductOrderJoinDetailListShare().addAll(userProductDetail.getProductOrderJoinDetailsListDep());
+ List<ProductOrderJoinDetail> productOrderJoinDetailList=userProductDetail.getProductOrderJoinDetailListShare();
+ //Collections.sort(productOrderJoinDetailList);
+ return false;
+ }
+ /**
+ * 写/更新记录数据
+ * @param consumptionRecord
+ * @return
+ */
+ public ConsumptionRecord SaveConsumptionRecord(ConsumptionRecord consumptionRecord)
+ {
+ if (consumptionRecord != null) {
+ this.saveOrUpdate(consumptionRecord);
+ return consumptionRecord;
+ }
+ return null;
+ }
+ /**
+ * 检查该业务是否存在该业务类型
+ * @param consumptionRecordList 该业务下的扣费列表
+ * @param recordType 记录类型编码 参考ConsumptionConstant里面
+ * @return
+ */
+ public boolean isBeforeDeduction(List<ConsumptionRecord> consumptionRecordList,int recordType)
+ {
+ if (consumptionRecordList != null) {
+ if (consumptionRecordList.size()>0) {
+ //过滤预扣费的记录
+ return consumptionRecordList.stream().filter(f->f.getRecordType()==recordType).collect(Collectors.toList()).size()==1;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * 获取一个业务关联的扣费记录
+ * @param businessId 光片的名称/编号
+ * @return
+ */
+ public List<ConsumptionRecord> GetBusinessConsumptionList(String businessId)
+ {
+ if (StringUtils.isNotBlank(businessId)) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("businessId", businessId);
+ List<ConsumptionRecord> consumptionRecordList=this.findAllList(params);
+ return consumptionRecordList;
+ }
+ return null;
+ }
+ /**
+ * 获取一个扣费记录
+ * @param recordId 扣费记录id
+ * @return
+ */
+ public ConsumptionRecord GetBusinessConsumptionList(Long recordId)
+ {
+ if (recordId>0) {
+ return baseMapper.selectById(recordId);
+ }
+ return null;
+ }
+}
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 acdfb9a..7a2efd8 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
@@ -13,6 +13,7 @@
import com.kidgrow.oprationcenter.vo.DiagnosisRecord;
import com.kidgrow.oprationcenter.vo.GroupProductDetail;
import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail;
+import com.kidgrow.oprationcenter.vo.UserProductDetail;
import com.kidgrow.usercenter.feign.SysDoctorService;
import com.kidgrow.usercenter.feign.SysHospitalService;
import com.kidgrow.usercenter.model.SysHospital;
@@ -25,6 +26,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -163,4 +165,27 @@
return ResultBody.failed("该用户的组织已经失效");
}
}
+ /**
+ *获取医院的套餐数据
+ * @param hospitalId
+ * @param departmentId
+ * @return
+ */
+ @Override
+ public UserProductDetail getUserProductDetail(Long hospitalId, Long departmentId)
+ {
+ //查询当前医院正在使用的套餐
+ Map<String, Object> selectMap = new HashMap<>();
+ selectMap.put("hospitalId", hospitalId);
+ List<ProductOrderJoinDetail> productOrderDetailList = this.findAllList(selectMap);
+ if (productOrderDetailList.size() > 0) {
+ UserProductDetail userProductDetail=new UserProductDetail();
+ //包含共享的数据
+ userProductDetail.setProductOrderJoinDetailListShare(productOrderDetailList.stream().filter(f -> f.getIsShare()).collect(Collectors.toList()));
+ //科室私有的数据
+ userProductDetail.setProductOrderJoinDetailsListDep(productOrderDetailList.stream().filter((f -> departmentId.equals(f.getDepartmentId()) && f.getIsShare() == false)).collect(Collectors.toList()));
+ return userProductDetail;
+ }
+ return null;
+ }
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java
index be5ea2e..63c5f83 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java
@@ -2,18 +2,22 @@
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;
import com.kidgrow.oprationcenter.feign.DiagnosticService;
import com.kidgrow.oprationcenter.feign.RoleOrganizationService;
import com.kidgrow.oprationcenter.mapper.ProductOrderRecordMapper;
+import com.kidgrow.oprationcenter.model.ConsumptionRecord;
import com.kidgrow.oprationcenter.model.ProductOrderRecord;
+import com.kidgrow.oprationcenter.service.IConsumptionRecordService;
import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
import com.kidgrow.oprationcenter.service.IProductOrderRecordService;
import com.kidgrow.oprationcenter.vo.DiagnosisRecord;
import com.kidgrow.oprationcenter.vo.GroupProductDetail;
import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail;
+import com.kidgrow.oprationcenter.vo.UserProductDetail;
import com.kidgrow.usercenter.feign.SysDoctorService;
import com.kidgrow.usercenter.feign.SysHospitalService;
import com.kidgrow.usercenter.model.SysHospital;
@@ -30,16 +34,17 @@
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @version 1.0
* @Description: 产品/明显的充值记录<br>
* @Project: 用户中心<br>
* @CreateDate: Created in 2020-04-01 09:37:05 <br>
* @Author: <a href="4345453@kidgrow.com">liuke</a>
- * @version 1.0
*/
@Slf4j
@Service
public class ProductOrderRecordServiceImpl extends SuperServiceImpl<ProductOrderRecordMapper, ProductOrderRecord> implements IProductOrderRecordService {
- @Autowired
+ @Autowired
DiagnosticService diagnosticService;
@Autowired
private RoleOrganizationService roleOrganizationService;
@@ -49,29 +54,36 @@
private SysHospitalService sysHospitalService;
@Autowired
private IProductOrderDetailService productOrderDetailService;
+ @Autowired
+ private IConsumptionRecordService consumptionRecordService;
+
/**
* 列表
+ *
* @param params
* @return
*/
@Override
- public PageResult<ProductOrderRecord> findList(Map<String, Object> params){
+ public PageResult<ProductOrderRecord> findList(Map<String, Object> params) {
Page<ProductOrderRecord> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
- List<ProductOrderRecord> list = baseMapper.findList(page, params);
+ List<ProductOrderRecord> list = baseMapper.findList(page, params);
return PageResult.<ProductOrderRecord>builder().data(list).code(0).count(page.getTotal()).build();
}
/**
* 获取诊断列表
+ *
* @param params
* @return
*/
@Override
- public PageResult<DiagnosisRecord> findAllDataList(Map<String, Object> params){
- return diagnosticService.getDiagnosticItemList(params).getData();
+ public PageResult<DiagnosisRecord> findAllDataList(Map<String, Object> params) {
+ return diagnosticService.getDiagnosticItemList(params).getData();
}
+
/**
* 列表
+ *
* @param params
* @return
*/
@@ -80,67 +92,82 @@
Page<ProductOrderJoinDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
Map<String, Object> roleOrgMap = roleOrganizationService.getRoleOrgMap(sysUser.getRoles());
params.putAll(roleOrgMap);
- List<ProductOrderJoinDetail> list = baseMapper.findAllList(page,params);
+ List<ProductOrderJoinDetail> list = baseMapper.findAllList(page, params);
return PageResult.<ProductOrderJoinDetail>builder().data(list).code(0).count(page.getTotal()).build();
}
/**
* 获取统计数据
+ *
* @param params
* @return
*/
@Override
public PageResult<GroupProductDetail> groupList(Map<String, Object> params) {
Page<GroupProductDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
- List<GroupProductDetail> list = baseMapper.groupProductDetail(page,params);
+ List<GroupProductDetail> list = baseMapper.groupProductDetail(page, params);
return PageResult.<GroupProductDetail>builder().data(list).code(0).count(page.getTotal()).build();
}
/**
- * 统计用户所有套餐剩余
+ * 统计用户所有套餐剩余 套餐剩余量=(有效期内的医院所有共享+科室私有的套餐的读片量)-预扣费的读片量
+ *
* @param hospitalId
* @param departmentId
* @return
*/
@Override
- public ResultBody biUserNowProduct(long hospitalId, Long departmentId) {
- if (hospitalId>0&& departmentId>0) {
- //查询当前医院正在使用的套餐
- Map<String,Object> selectMap=new HashMap<>();
- selectMap.put("hospitalId",hospitalId);
- List<ProductOrderJoinDetail> productOrderDetailList=productOrderDetailService.findAllList(selectMap);
- Long userAICount=0l;
- if (productOrderDetailList.size()>0) {
+ public ResultBody biUserNowProduct(Long hospitalId, Long departmentId) {
+ if (hospitalId > 0 && departmentId > 0) {
+ UserProductDetail userProductDetail=productOrderDetailService.getUserProductDetail(hospitalId,departmentId);
+ int userAICount = 0;
+ if (userProductDetail!=null) {
//包含共享的数据
- List<ProductOrderJoinDetail> productOrderJoinDetailListShare=productOrderDetailList.stream().filter(f->f.getIsShare()).collect(Collectors.toList());
+ List<ProductOrderJoinDetail> productOrderJoinDetailListShare = userProductDetail.getProductOrderJoinDetailListShare();
//科室私有的数据
- List<ProductOrderJoinDetail> productOrderJoinDetailsListDep=productOrderDetailList.stream().filter((f->departmentId.equals(f.getDepartmentId())&&f.getIsShare()==false)).collect(Collectors.toList());
+ List<ProductOrderJoinDetail> productOrderJoinDetailsListDep = userProductDetail.getProductOrderJoinDetailsListDep();
//本医院可共享的读片总量
- Long shareCount=productOrderJoinDetailListShare.stream().collect(Collectors.summingLong(ProductOrderJoinDetail::getAilightCount));
+ int shareCount = productOrderJoinDetailListShare.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount));
//本科室私有读片总量
- Long depCount=productOrderJoinDetailsListDep.stream().collect(Collectors.summingLong(ProductOrderJoinDetail::getAilightCount));
+ int depCount = productOrderJoinDetailsListDep.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount));
//可用的总量
- userAICount=shareCount+depCount;
+ userAICount = shareCount + depCount;
+ //计算预扣费的总量
+ Map<String, Object> selectMap = new HashMap<>();
+ selectMap.put("recordType", ConsumptionConstant.BEFORE_DEDUCTION);
+ List<ConsumptionRecord> consumptionRecordList = consumptionRecordService.findAllList(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);
+ }
}
+
return ResultBody.ok().data(userAICount);
- }
- else
- {
+ } else {
return ResultBody.failed("医院和科室数据有误!");
}
}
-
/**
- * 根据ProductOrderRecord对象当做查询条件进行查询
- * @param productOrderRecord
- * @return ProductOrderRecord
- */
+ * 根据ProductOrderRecord对象当做查询条件进行查询
+ *
+ * @param productOrderRecord
+ * @return ProductOrderRecord
+ */
@Override
- public ProductOrderRecord findByObject(ProductOrderRecord productOrderRecord){
+ public ProductOrderRecord findByObject(ProductOrderRecord productOrderRecord) {
return baseMapper.findByObject(productOrderRecord);
}
+
/**
* 修改数据状态 启用 禁用
+ *
* @param params
* @return
*/
@@ -162,46 +189,46 @@
@Override
public ResultBody getTypeByUser(SysUser sysUser) {
List<SysOrganization> organizations = sysUser.getOrganizations();
- if(organizations.size()>0){
+ if (organizations.size() > 0) {
SysOrganization sysOrganization = organizations.get(0);
- List<ProductOrderJoinDetail> list=baseMapper.getTypeByUser(sysOrganization.getId());
- if (list.size()>0) {
+ List<ProductOrderJoinDetail> list = baseMapper.getTypeByUser(sysOrganization.getId());
+ if (list.size() > 0) {
ProductOrderJoinDetail productOrderJoinDetail = list.get(0);
//查询用户的真实姓名
- Map<String,Object> selectMap=new HashMap<>();
- selectMap.put("user_id",sysUser.getId());
+ Map<String, Object> selectMap = new HashMap<>();
+ selectMap.put("user_id", sysUser.getId());
ResultBody listByMap = sysDoctorService.getListByMap(selectMap);
List<SysDoctor> sysDoctors = JSON.parseArray(JSON.toJSONString(listByMap.getData()), SysDoctor.class);
- String str="";
- if(sysDoctors!=null&&sysDoctors.size()>0){
- str= sysDoctors.get(0).getDoctorName();
+ String str = "";
+ if (sysDoctors != null && sysDoctors.size() > 0) {
+ str = sysDoctors.get(0).getDoctorName();
}
//查询医院的 logo
- Map<String,Object> map=new HashMap<>();
- map.put("id",sysOrganization.getId());
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", sysOrganization.getId());
ResultBody allByMap = sysHospitalService.findAllByMap(map);
List<SysHospital> hospitals = JSON.parseArray(JSON.toJSONString(allByMap.getData()), SysHospital.class);
- String logo="";
- if(hospitals.size()>0){
+ String logo = "";
+ if (hospitals.size() > 0) {
logo = hospitals.get(0).getHospitalLogo();
}
- Map<String,Object> mapVo=new HashMap<>();
- mapVo.put("type",productOrderJoinDetail.getProType());
- mapVo.put("realName",str);
+ Map<String, Object> mapVo = new HashMap<>();
+ mapVo.put("type", productOrderJoinDetail.getProType());
+ mapVo.put("realName", str);
//剩余时间
Date proEndtime = productOrderJoinDetail.getProEndtime();
- Double surplusDay=DateUtils.getDays(proEndtime, new Date());
+ Double surplusDay = DateUtils.getDays(proEndtime, new Date());
int surplus = surplusDay.intValue();
- mapVo.put("surplus",surplus);
- mapVo.put("logo",logo);
+ mapVo.put("surplus", surplus);
+ mapVo.put("logo", logo);
//获取 售后服务工程师********不能从sysOrganization获取,从department获取
/* mapVo.put("saleUserName",sysOrganization.getSaleUserName());
mapVo.put("saleUserTel",sysOrganization.getSaleUserTel());*/
return ResultBody.ok().data(mapVo);
- }else {
+ } else {
return ResultBody.failed("该用户套餐已经失效");
}
- }else {
+ } else {
return ResultBody.failed("该用户的组织已经失效");
}
}
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
new file mode 100644
index 0000000..61f1ac4
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!---->
+<mapper namespace="com.kidgrow.oprationcenter.mapper.ConsumptionRecordMapper">
+ <!--定义查询列-->
+ <sql id="Column_List">
+ *
+ </sql>
+
+ <!--sql查询片段-->
+ <sql id="where">
+ <where>
+ <!--查询条件自行添加-->
+ 1=1
+ <if test="p.recordId != null and p.recordId !=''">
+ and record_id = #{p.recordId}
+ </if>
+ <if test="p.lastRecordId != null and p.lastRecordId !=''">
+ and last_record_id = #{p.lastRecordId}
+ </if>
+ <if test="p.proOrderDetailId != null and p.proOrderDetailId !=''">
+ and pro_order_detail_id = #{p.proOrderDetailId}
+ </if>
+ <if test="p.businessId != null and p.businessId !=''">
+ and business_id = #{p.businessId}
+ </if>
+ <if test="p.recordType != null and p.recordType !=''">
+ and record_type = #{p.recordType}
+ </if>
+ <if test="p.businessCode != null and p.businessCode !=''">
+ and business_code = #{p.businessCode}
+ </if>
+ <if test="p.consumptionCount != null and p.consumptionCount !=''">
+ and consumption_count = #{p.consumptionCount}
+ </if>
+ <if test="p.updateTime != null and p.updateTime !=''">
+ and update_time = #{p.updateTime}
+ </if>
+ <if test="p.createTime != null and p.createTime !=''">
+ and create_time = #{p.createTime}
+ </if>
+ </where>
+ </sql>
+
+ <!--定义根据-ConsumptionRecord当作查询条件返回对象-->
+ <select id="findByObject" resultType="com.kidgrow.oprationcenter.model.ConsumptionRecord">
+ select
+ <include refid="Column_List"/>
+ from consumption_record
+ <include refid="where"/>
+ order by record_id desc
+ limit 1
+ </select>
+
+ <!--定义根据-ConsumptionRecord当作查询条件返回对象集合-->
+ <select id="findList" resultType="com.kidgrow.oprationcenter.model.ConsumptionRecord">
+ select
+ <include refid="Column_List"/>
+ from consumption_record
+ <include refid="where"/>
+ order by record_id desc
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml
index 707adc9..27594bd 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml
@@ -154,6 +154,7 @@
<!--查询产品的购买记录-->
<select id="findAllList" resultType="com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail">
SELECT
+ DE.id,
DE.ailight_count,
DE.record_count,
DE.is_share,
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ConsumptionRecordController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ConsumptionRecordController.java
new file mode 100644
index 0000000..08420e1
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ConsumptionRecordController.java
@@ -0,0 +1,114 @@
+package com.kidgrow.oprationcenter.controller;
+
+import com.kidgrow.common.controller.BaseController;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.oprationcenter.model.ConsumptionRecord;
+import com.kidgrow.oprationcenter.service.IConsumptionRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ * @Description:
+ * @Project: 运营中心
+ * @CreateDate: Created in 2020-06-23 15:07:14 <br>
+ * @Author: <a href="411269194@kidgrow.com">houruijun</a>
+ * @version: 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/consumption")
+@Api(tags = "")
+public class ConsumptionRecordController extends BaseController{
+ @Autowired
+ private IConsumptionRecordService consumptionRecordService;
+
+ /**
+ * 列表
+ */
+ @ApiOperation(value = "查询列表")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"),
+ @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
+ })
+ @GetMapping
+ public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+ if(params.size()==0){
+ params.put("page",1);
+ params.put("limit",10);
+ }
+ return ResultBody.ok().data(consumptionRecordService.findList(params));
+ }
+
+ /**
+ * 查询
+ */
+ @ApiOperation(value = "查询")
+ @GetMapping("/{recordId}")
+ public ResultBody findById(@PathVariable Long recordId) {
+ ConsumptionRecord model = consumptionRecordService.getById(recordId);
+ return ResultBody.ok().data(model).msg("查询成功");
+ }
+
+ /**
+ * 根据ConsumptionRecord当做查询条件进行查询
+ */
+ @ApiOperation(value = "根据ConsumptionRecord当做查询条件进行查询")
+ @PostMapping("/query")
+ public ResultBody findByObject(@RequestBody ConsumptionRecord consumptionRecord) {
+ ConsumptionRecord model = consumptionRecordService.findByObject(consumptionRecord);
+ return ResultBody.ok().data(model).msg("查询成功");
+ }
+
+ /**
+ * 新增or更新
+ */
+ @ApiOperation(value = "保存")
+ @PostMapping
+ public ResultBody save(@Valid @RequestBody ConsumptionRecord consumptionRecord, BindingResult bindingResult) {
+ List<String> errMsg= new ArrayList<>();
+ if (bindingResult.hasErrors()) {
+ for (ObjectError error : bindingResult.getAllErrors()) {
+ errMsg.add(error.getDefaultMessage());
+ }
+ return ResultBody.failed().msg(errMsg.toString());
+ } else {
+ boolean v= consumptionRecordService.saveOrUpdate(consumptionRecord);
+ if(v) {
+ return ResultBody.ok().data(consumptionRecord).msg("保存成功");
+ }
+ else {
+ return ResultBody.failed().msg("保存失败");
+ }
+ }
+ }
+
+ /**
+ * 删除
+ */
+ @ApiOperation(value = "删除")
+ @DeleteMapping("/{id}")
+ public ResultBody delete(@PathVariable Long recordId) {
+ boolean v= consumptionRecordService.removeById(recordId);
+ if(v) {
+ return ResultBody.ok().msg("删除成功");
+ }
+ else {
+ return ResultBody.failed().msg("删除失败");
+ }
+ }
+}
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 bb4e75f..a437e46 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
@@ -57,12 +57,12 @@
#多租户隔离字段
tenantid: tenant_id
ignoreTables:
- - sys_user
- sys_logger
- data_need
- business_records
- sys_feedback
- doctor_templete
+ - consumption_record
ignoreSqls:
- com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ConsumptionConstant.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ConsumptionConstant.java
new file mode 100644
index 0000000..41d3cc4
--- /dev/null
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ConsumptionConstant.java
@@ -0,0 +1,72 @@
+package com.kidgrow.common.constant;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: 全局公共常量<br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/06/23 16:24 <br>
+ * @Author: <a href="4345453@kidgrow.com">houruijun</a>
+ **/
+public interface ConsumptionConstant {
+//记录类型
+//1:预扣费
+//2:退预扣费(需要关联预扣费编号)
+//3:退扣费(需要关联扣费编号)
+//4:扣费(需要关联预扣费编号)
+ /**
+ * 预扣费业务标识
+ */
+ int BEFORE_DEDUCTION = 1;
+ /**
+ * 退还预扣费业务标识
+ */
+ int RETURN_BEFORE_DEDUCTION = 2;
+ /**
+ * 扣费业务标识
+ */
+ int DEDUCTION = 3;
+ /**
+ * 退扣费业务标识
+ */
+ int RETURN_DEDUCTION = 4;
+
+// 业务返回结果
+// bcode 含义
+//---------------------------------
+//100 余额充足
+//101 余额不足
+//200 已经预扣
+//201 已经扣费
+//300 退还预扣
+//301 退还扣费
+//400 义务执行出错
+ /**
+ * 余额充足
+ */
+ int BUSINESS_CODE_OK = 100;
+ /**
+ * 余额不足
+ */
+ int BUSINESS_CODE_FAIL = 101;
+ /**
+ * 已经预扣
+ */
+ int BUSINESS_CODE_IS_BEFORE_DEDUCTION = 200;
+ /**
+ * 已经扣费
+ */
+ int BUSINESS_CODE_IS_DEDUCTION = 201;
+ /**
+ * 退还预扣
+ */
+ int BUSINESS_CODE_RETURN_BEFORE_DEDUCTION = 300;
+ /**
+ * 退还预扣
+ */
+ int BUSINESS_CODE_RETURN_DEDUCTION = 301;
+ /**
+ * 业务出错
+ */
+ int BUSINESS_CODE_ERROR = 400;
+}
--
Gitblit v1.8.0