kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ConsumptionRecord.java
New file @@ -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; } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/UserProductDetail.java
New file @@ -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; } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java
New file @@ -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); } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IConsumptionRecordService.java
New file @@ -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); } 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); } 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); } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java
New file @@ -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; } } 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; } } 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("该用户的组织已经失效"); } } kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml
New file @@ -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> 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, kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ConsumptionRecordController.java
New file @@ -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("删除失败"); } } } 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 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ConsumptionConstant.java
New file @@ -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; }