From 49a41a869cc8a114d6e85394ac6d66930f63b463 Mon Sep 17 00:00:00 2001
From: 侯瑞军 <411269194@kidgrow.com>
Date: Thu, 09 Apr 2020 18:45:08 +0800
Subject: [PATCH] 1.增加产品管理模块功能 2.统一调整了运营管理中的实体部分,给isdel字段增加逻辑删除标记
---
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java | 60 +++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java | 3
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java | 2
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html | 154 +++++++-------
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java | 18 +
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java | 37 ++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java | 7
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html | 101 ++++++++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java | 2
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html | 133 +++++++++++++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java | 12
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java | 3
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java | 2
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java | 2
19 files changed, 434 insertions(+), 112 deletions(-)
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java
index d2f1139..37c7539 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessRecords.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -61,6 +62,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
private Boolean isDel;
/**
* 状态,1启用,0停用
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java
index bbe86f9..79457ae 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/BusinessServer.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -54,6 +55,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java
index f32429d..df4fc12 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DataNeed.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -72,6 +73,7 @@
/**
* 是否删除,1删除(已下载),0未删除(未下载)
*/
+ @TableLogic
private Boolean isDel;
/**
* 文件路径
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java
index cedd506..7f5cad4 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorAnswer.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -29,6 +30,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java
index d89f08c..f72a645 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorServer.java
@@ -1,12 +1,12 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
/**
@@ -42,6 +42,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java
index 0efd75b..3c0f4cd 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorSigning.java
@@ -1,18 +1,13 @@
package com.kidgrow.oprationcenter.model;
-import com.kidgrow.common.model.SuperModel;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.*;
-
-import java.util.Date;
+import org.hibernate.validator.constraints.NotEmpty;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -34,6 +29,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java
index 8d1ebf5..e26093c 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/DoctorTemplete.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -76,6 +77,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java
index d856b5d..57a9392 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java
@@ -1,12 +1,12 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;
/**
@@ -46,6 +46,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java
index 32c138c..8995728 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -72,6 +73,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java
index 5865e22..f0d6424 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -50,6 +51,7 @@
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
@NotEmpty(message = "是否删除,1删除,0未删除不能为空")
private Boolean isDel;
/**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java
index f822277..a38e4f4 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysProduct.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.model;
+import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
@@ -8,6 +9,7 @@
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
@@ -35,31 +37,37 @@
/**
* 时长(天)
*/
- @NotEmpty(message = "时长(天)不能为空")
+ @NotNull(message = "时长不能为空")
private Integer proTime;
+ /**
+ * 时长单位
+ */
+ @NotNull(message = "时长单位不能为空")
+ private Integer proTimeUnit;
/**
* 产品类型 0试用 1正式
*/
- @NotEmpty(message = "产品类型 0试用 1正式不能为空")
+ @NotNull(message = "产品类型 0试用 1正式不能为空")
private Integer proType;
/**
* 建议售价
*/
- @NotEmpty(message = "建议售价不能为空")
+ @NotNull(message = "建议售价不能为空")
private BigDecimal proPrice;
/**
* 报告量
*/
- @NotEmpty(message = "报告量不能为空")
+ @NotNull(message = "报告量不能为空")
private Integer recordCount;
/**
* 读片量
*/
- @NotEmpty(message = "读片量不能为空")
+ @NotNull(message = "读片量不能为空")
private Integer ailightCount;
/**
* 是否删除,1删除,0未删除
*/
+ @TableLogic
private Boolean isDel;
/**
* 状态,1启用,0停用
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
index 0487484..64d7428 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
@@ -1,5 +1,6 @@
package com.kidgrow.oprationcenter.service;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.oprationcenter.model.SysProduct;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.service.ISuperService;
@@ -29,5 +30,11 @@
* @return SysProduct对象
*/
SysProduct findByObject(SysProduct sysProduct);
+ /**
+ * 状态变更
+ * @param params
+ * @return
+ */
+ ResultBody updateEnabled(Map<String, Object> params);
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java
index 8d15b25..0c7e151 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java
@@ -64,8 +64,6 @@
}
feedback.setEnabled(enabled);
feedback.setUpdateTime(new Date());
-// feedback.setUpdateUserId();
-// feedback.setUpdateUserName();
int i = baseMapper.updateById(feedback);
return i > 0 ? ResultBody.ok().data(feedback).msg("更新成功") : ResultBody.failed("更新失败");
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
index 82797e4..a57e78b 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
@@ -1,18 +1,19 @@
package com.kidgrow.oprationcenter.service.impl;
-import org.springframework.stereotype.Service;
-import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.oprationcenter.mapper.SysProductMapper;
+import com.kidgrow.oprationcenter.model.SysProduct;
+import com.kidgrow.oprationcenter.service.ISysProductService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.stereotype.Service;
+import java.util.Date;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections4.MapUtils;
-import lombok.extern.slf4j.Slf4j;
-
-import com.kidgrow.oprationcenter.model.SysProduct;
-import com.kidgrow.oprationcenter.mapper.SysProductMapper;
-import com.kidgrow.oprationcenter.service.ISysProductService;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -46,4 +47,24 @@
public SysProduct findByObject(SysProduct sysProduct){
return baseMapper.findByObject(sysProduct);
}
+
+ /**
+ * 根据id和启用禁用值更新数据
+ * @param params
+ * @return ResultBody
+ */
+ @Override
+ public ResultBody updateEnabled(Map<String, Object> params) {
+ Long id = MapUtils.getLong(params, "id");
+ Boolean enabled = MapUtils.getBoolean(params, "enabled");
+
+ SysProduct sysProduct = baseMapper.selectById(id);
+ if (sysProduct == null) {
+ return ResultBody.failed("该数据不存在!");
+ }
+ sysProduct.setEnabled(enabled);
+ sysProduct.setUpdateTime(new Date());
+ int i = baseMapper.updateById(sysProduct);
+ return i > 0 ? ResultBody.ok().data(sysProduct).msg("更新成功") : ResultBody.failed("更新失败");
+ }
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
index e015f6f..c23f867 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
@@ -16,7 +16,7 @@
and id = #{p.id}
</if>
<if test="p.proName != null and p.proName !=''">
- and pro_name = #{p.proName}
+ and pro_name like concat('%', #{p.proName}, '%')
</if>
<if test="p.proTime != null and p.proTime !=''">
and pro_time = #{p.proTime}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
index dea3751..16185a5 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
@@ -3,13 +3,16 @@
import com.kidgrow.common.controller.BaseController;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.oprationcenter.model.ProductOrderDetail;
import com.kidgrow.oprationcenter.model.SysProduct;
+import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
import com.kidgrow.oprationcenter.service.ISysProductService;
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.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
@@ -31,11 +34,13 @@
*/
@Slf4j
@RestController
-@RequestMapping("/sysproduct")
+@RequestMapping("/product")
@Api(tags = "")
public class SysProductController extends BaseController{
@Autowired
private ISysProductService sysProductService;
+ @Autowired
+ private IProductOrderDetailService productOrderDetailService;
/**
* 列表
@@ -46,12 +51,12 @@
@ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
})
@GetMapping
- public ResultBody<PageResult> list(@RequestParam Map<String, Object> params) {
+ public PageResult list(@RequestParam Map<String, Object> params) {
if(params.size()==0){
params.put("page",1);
params.put("limit",10);
}
- return ResultBody.ok().data(sysProductService.findList(params));
+ return sysProductService.findList(params);
}
/**
@@ -103,12 +108,53 @@
@ApiOperation(value = "删除")
@DeleteMapping("/{id}")
public ResultBody delete(@PathVariable Long id) {
- boolean v= sysProductService.removeById(id);
- if(v) {
- return ResultBody.ok().msg("删除成功");
+ if (!ProIsUseed(id)) {
+ return ResultBody.failed().msg("该产品已经被使用,无法删除!");
}
else {
- return ResultBody.failed().msg("删除失败");
+ boolean v = sysProductService.removeById(id);
+ if (v) {
+ return ResultBody.ok().msg("删除成功");
+ } else {
+ return ResultBody.failed().msg("删除失败");
+ }
+ }
+ }
+
+ /**
+ * 判断该产品id下有没有已经使用的订单明细
+ * @param id
+ * @return
+ */
+ private boolean ProIsUseed(Long id)
+ {
+ ProductOrderDetail productOrderDetail=new ProductOrderDetail();
+ productOrderDetail.setProId(id);
+ productOrderDetail=productOrderDetailService.findByObject(productOrderDetail);
+ return (productOrderDetail==null);
+ }
+ /**
+ * 修改状态
+ *
+ * @param params
+ * @return
+ */
+ @ApiOperation(value = "修改数据状态")
+ @GetMapping("/updateEnabled")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Integer"),
+ @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+ })
+ public ResultBody updateEnabled(@RequestParam Map<String, Object> params) {
+ if (params.size()==0)
+ {
+ return ResultBody.failed().msg("参数异常!");
+ }
+ else if (!ProIsUseed(Long.valueOf(MapUtils.getInteger(params, "id")))) {
+ return ResultBody.failed().msg("该产品已经被使用,无法删除!");
+ }
+ else{
+ return sysProductService.updateEnabled(params);
}
}
}
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html
index 194b5ee..57dbde3 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html
@@ -2,16 +2,18 @@
<div class="layui-card-header">
<h2 class="header-title">用户反馈</h2>
<span class="layui-breadcrumb pull-right">
- <a href="#!console">首页</a>
- <a><cite>用户反馈</cite></a>
+ <a href="#!console">首页</a>
+ <a><cite>用户反馈</cite></a>
</span>
</div>
<div class="layui-card-body">
<div class="layui-form toolbar"> 
- <input id="user-search-value" class="layui-input search-input" type="text" placeholder="输入医生姓名"/> 
- <input type="text" name="date" id="datebegin" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input search-input">
- 至
- <input type="text" name="date" id="dateend" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input search-input">  
+ <input id="user-search-value" class="layui-input search-input" type="text" placeholder="输入医生姓名" /> 
+ <input type="text" name="date" id="datebegin" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off"
+ class="layui-input search-input">
+ 至
+ <input type="text" name="date" id="dateend" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off"
+ class="layui-input search-input">  
<button id="user-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
</div>
@@ -35,15 +37,15 @@
</div>
</script>
<script>
- layui.use(['table', 'util','admin', 'laydate','config','form'],function () {
+ layui.use(['table', 'util', 'admin', 'laydate', 'config', 'form'], function () {
let table = layui.table;
let util = layui.util;
let admin = layui.admin;
let form = layui.form;
let laydate = layui.laydate;
- let config=layui.config;
+ let config = layui.config;
- //日期
+ //日期
laydate.render({
elem: '#datebegin'
});
@@ -51,106 +53,100 @@
elem: '#dateend'
});
// 渲染表格
- var tableLoad=table.render({
+ var tableLoad = table.render({
elem: '#feedback-table',
url: config.base_server + 'api-opration/sysfeedback',
method: 'GET',
- headers:{'Authorization': 'Bearer ' + config.getToken().access_token},
+ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
//where: {tenantId: config.clientId},
page: true,
cols: [[
- {field: 'doctorName',width:150, title: '医生姓名'},
- {field: 'doctorTel',width:200, title: '联系电话'},
- {field: 'hospitalName',width:300, title: '医院'},
- {field: 'departmentName',width:180, title: '科室'},
- {field: 'enabled', width: 150,templet: '#user-tpl-state',sort: true, title: '状态'},
- {field: 'createTime', width: 200,sort: true,title: '创建时间'},
- {align: 'center',width:200, toolbar: '#feeedback-table-bar', title: '操作'}
+ { field: 'doctorName', width: 150, title: '医生姓名' },
+ { field: 'doctorTel', width: 200, title: '联系电话' },
+ { field: 'hospitalName', width: 300, title: '医院' },
+ { field: 'departmentName', width: 180, title: '科室' },
+ { field: 'enabled', width: 150, templet: '#user-tpl-state', sort: true, title: '状态' },
+ { field: 'createTime', width: 200, sort: true, title: '创建时间' },
+ { align: 'center', width: 200, toolbar: '#feeedback-table-bar', title: '操作' }
]]
});
- // 修改menu状态
+ // 修改状态
form.on('switch(feedback-tpl-state)', function (obj) {
- layer.load(2);
- admin.req('api-opration/sysfeedback/updateEnabled', {
- id: obj.elem.value,
- enabled: obj.elem.checked ? true : false
- }, function (data) {
- layer.closeAll('loading');
- if (data.code == 0) {
- layer.msg(data.msg, {icon: 1, time: 500});
- } else {
- layer.msg(data.msg, {icon: 2, time: 500});
- $(obj.elem).prop('checked', !obj.elem.checked);
- form.render('checkbox');
- }
- }, 'GET');
+ layer.load(2);
+ admin.req('api-opration/sysfeedback/updateEnabled', {
+ id: obj.elem.value,
+ enabled: obj.elem.checked ? true : false
+ }, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ $(obj.elem).prop('checked', !obj.elem.checked);
+ form.render('checkbox');
+ }
+ }, 'GET');
});
// 工具条点击事件
table.on('tool(feedback-table)', function (obj) {
if (obj.event === 'del') { // 删除
layer.confirm('确定要删除吗?', function (i) {
- layer.close(i);
- layer.load(2);
- admin.req('api-opration/sysfeedback/'+obj.data.id, {}, function (data) {
- layer.closeAll('loading');
- layer.msg(data.msg, {icon: 1, time: 500},function(){
- tableLoad();
- });
- obj.del();
- }, 'DELETE');
- });
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-opration/sysfeedback/' + obj.data.id, {}, function (data) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 1, time: 500 }, function () {
+ tableLoad();
+ });
+ obj.del();
+ }, 'DELETE');
+ });
}
- else if(obj.event=='detail')
- {
+ else if (obj.event == 'detail') {
$.ajax({
type: "GET",
- url: config.base_server +"api-opration/sysfeedback/"+obj.data.id,
- success: function(data) {
- if(data!=null)
- {
- layer.open({
- type: 1,
- title: '详情',
- area: ['500px','300px'],
- offset: 'auto',
- content: $("#feedback-detail").html(),
- success:function(obj)
- {
- $("#feedback-detail-note").html(data.data.feedbackNote);
+ url: config.base_server + "api-opration/sysfeedback/" + obj.data.id,
+ success: function (data) {
+ if (data != null) {
+ layer.open({
+ type: 1,
+ title: '详情',
+ area: ['500px', '300px'],
+ offset: 'auto',
+ content: $("#feedback-detail").html(),
+ success: function (obj) {
+ $("#feedback-detail-note").html(data.data.feedbackNote);
+ }
+ });
}
- });
- }
- else
- {
- layer.msg('未找到相关数据', {icon: 1, time: 500});
- }
+ else {
+ layer.msg('未找到相关数据', { icon: 1, time: 500 });
+ }
},
- beforeSend: function(xhr) {
- xhr.setRequestHeader("Authorization", "Bearer "+config.getToken().access_token);
+ beforeSend: function (xhr) {
+ xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token);
xhr.setRequestHeader("Content-Type", "application/json")
- }
- });
+ }
+ });
}
});
// 搜索按钮点击事件
$('#user-btn-search').click(function () {
var doctorName = $('#user-search-value').val();
- var datebegin=$('#datebegin').val();
- var dateend=$('#dateend').val();
- if(strUtil.isEmpty(datebegin)&&!strUtil.isEmpty(dateend))
- {
- datebegin=dateUtil.getNowDate();
- $('#datebegin').val(datebegin);
+ var datebegin = $('#datebegin').val();
+ var dateend = $('#dateend').val();
+ if (strUtil.isEmpty(datebegin) && !strUtil.isEmpty(dateend)) {
+ datebegin = dateUtil.getNowDate();
+ $('#datebegin').val(datebegin);
}
- if(!strUtil.isEmpty(datebegin)&&strUtil.isEmpty(dateend))
- {
- dateend=dateUtil.getNowDate();
- $('#dateend').val(dateend);
+ if (!strUtil.isEmpty(datebegin) && strUtil.isEmpty(dateend)) {
+ dateend = dateUtil.getNowDate();
+ $('#dateend').val(dateend);
}
- table.reload('feedback-table', {where: {doctorName: doctorName,createTime:datebegin,updateTime:dateend}});
+ table.reload('feedback-table', { where: { doctorName: doctorName, createTime: datebegin, updateTime: dateend } });
});
});
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html
new file mode 100644
index 0000000..53c6ebb
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product.html
@@ -0,0 +1,133 @@
+<div class="layui-card">
+ <div class="layui-card-header">
+ <h2 class="header-title">产品管理</h2>
+ <span class="layui-breadcrumb pull-right">
+ <a href="#!console">首页</a>
+ <a><cite>产品管理</cite></a>
+ </span>
+ </div>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar"> 
+ <input id="product-search-value" class="layui-input search-input" type="text" placeholder="输入产品名" /> 
+ <button id="product-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button>
+ <button id="product-btn-add" class="layui-btn icon-btn"><i class="layui-icon"></i>添加</button>
+ </div>
+ <table class="layui-table" id="product-table" lay-filter="product-table"></table>
+ </div>
+</div>
+<!-- 表格操作列 -->
+<script type="text/html" id="product-table-bar">
+ <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
+</script>
+<!-- 表格状态列 -->
+<script type="text/html" id="product-tpl-state">
+ <input type="checkbox" lay-filter="product-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="未处理|已处理"
+ {{d.enabled==true?'checked':''}}/>
+</script>
+<!-- 弹窗内容 -->
+<script type="text/html" id="feedback-detail">
+
+</script>
+
+<script>
+ layui.use(['table', 'util', 'admin', 'config', 'form'], function () {
+ let table = layui.table;
+ let util = layui.util;
+ let admin = layui.admin;
+ let form = layui.form;
+ let laydate = layui.laydate;
+ let config = layui.config;
+
+ // 渲染表格
+ var renderTable = function () {
+ layer.load(2);
+ table.render({
+ elem: '#product-table',
+ url: config.base_server + 'api-opration/product',
+ method: 'GET',
+ headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+ page: true,
+ cols: [[
+ { field: 'proName', width: 300, title: '产品名称' },
+ {
+ field: 'proTime', width: 150, title: '有效时长', templet: function (d) {
+ switch (d.proTimeUnit) {
+ case 0:
+ return d.proTime + "天";
+ break;
+ case 1:
+ return d.proTime + "月";
+ break;
+ case 2:
+ return d.proTime + "年";
+ break;
+ }
+ }
+ },
+ { field: 'proPrice', width: 100, title: '价格' },
+ { field: 'recordCount', width: 180, title: '报告数' },
+ { field: 'ailightCount', width: 180, title: '读片量' },
+ { field: 'enabled', width: 150, templet: '#product-tpl-state', sort: true, title: '状态' },
+ { field: 'createTime', width: 200, sort: true, title: '创建时间' },
+ { align: 'center', width: 100, toolbar: '#product-table-bar', title: '操作' }
+ ]],
+ done: function () {
+ layer.closeAll('loading');
+ }
+ });
+ }
+ renderTable();
+
+ // 修改状态
+ form.on('switch(product-tpl-state)', function (obj) {
+ layer.load(2);
+ admin.req('api-opration/product/updateEnabled', {
+ id: obj.elem.value,
+ enabled: obj.elem.checked ? true : false
+ }, function (data) {
+ layer.closeAll('loading');
+ if (data.code == 0) {
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ $(obj.elem).prop('checked', !obj.elem.checked);
+ form.render('checkbox');
+ }
+ }, 'GET');
+ });
+
+ // 工具条点击事件
+ table.on('tool(product-table)', function (obj) {
+ if (obj.event === 'del') { // 删除
+ layer.confirm('确定要删除吗?', function (i) {
+ layer.close(i);
+ layer.load(2);
+ admin.req('api-opration/product/' + obj.data.id, {}, function (data) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 1, time: 500 }, function () {
+
+ renderTable();
+ });
+ obj.del();
+ }, 'DELETE');
+ });
+ }
+ });
+
+ // 搜索按钮点击事件
+ $('#product-btn-search').click(function () {
+ var proName = $('#product-search-value').val();
+ table.reload('product-table', { where: { proName: proName } });
+ });
+ // 添加按钮点击事件
+ $('#product-btn-add').click(function () {
+ admin.popupCenter({
+ title: '添加产品',
+ path: 'pages/opration/product_form.html',
+ finish: function () {
+ renderTable();
+ }
+ })
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html
new file mode 100644
index 0000000..55aa09e
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/product_form.html
@@ -0,0 +1,101 @@
+<form id="product-form" lay-filter="product-form" class="layui-form model-form" method="POST">
+ <div class="layui-form-item">
+ <label class="layui-form-label">产品类型</label>
+ <div class="layui-input-block">
+ <input type="radio" name="proType" value="1" title="正式" checked />
+ <input type="radio" name="proType" value="0" title="试用" />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">产品名称</label>
+ <div class="layui-input-block">
+ <input name="proName" placeholder="请输入产品名称" type="text" class="layui-input" maxlength="50"
+ lay-verify="required" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">有效时长</label>
+ <div class="layui-input-block">
+ <input name="proTime" type="text" class="layui-input" maxlength="4" lay-verify="required|number" required />
+ <select name="proTimeUnit" id="proTimeUnit">
+ <option value="0">天</option>
+ <option value="1">月</option>
+ <option value="2">年</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">价格</label>
+ <div class="layui-input-block">
+ <input name="proPrice" type="text" class="layui-input" maxlength="8" lay-verify="required|number" required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">报告量</label>
+ <div class="layui-input-block">
+ <input name="recordCount" type="text" class="layui-input" maxlength="6" lay-verify="required|number"
+ required />
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">读片量</label>
+ <div class="layui-input-block">
+ <input name="ailightCount" type="text" class="layui-input" maxlength="6" lay-verify="required|number"
+ required />
+ </div>
+ </div>
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
+ <button class="layui-btn" lay-filter="product-form-submit" lay-submit>保存</button>
+ </div>
+</form>
+
+<script>
+ layui.use(['form', 'table', 'util', 'config', 'admin', 'formSelects'], function () {
+ var form = layui.form;
+ var table = layui.table;
+ var config = layui.config;
+ var layer = layui.layer;
+ var util = layui.util;
+ var admin = layui.admin;
+ var formSelects = layui.formSelects;
+ var clientsAll = null;
+ // 获取应用列表
+ layer.load(2);
+ admin.req('api-uaa/clients/all', {}, function (data) {
+ layer.closeAll('loading');
+ if (0 === data.code) {
+ let selected = false;
+ clientsAll = data.data;
+ $.each(data.data, function (index, item) {
+ if (config.clientId === item.clientId) {
+ selected = true;
+ } else {
+ selected = false;
+ }
+ //往下拉菜单里添加元素
+ $('#tenantId').append(new Option(item.clientName, item.clientId, false, selected));
+ })
+ form.render();
+ } else {
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, 'GET');
+ // 表单提交事件
+ form.on('submit(product-form-submit)', function (data) {
+ layer.load(2);
+ admin.req('api-opration/product', JSON.stringify(data.field), function (data) {
+ if (data.code === 0) {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 1, time: 500 });
+ admin.finishPopupCenter();
+ } else {
+ layer.closeAll('loading');
+ layer.msg(data.msg, { icon: 2, time: 500 });
+ }
+ }, $('#product-form').attr('method'));
+ return false;
+ });
+
+ });
+</script>
\ No newline at end of file
--
Gitblit v1.8.0