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