From 8eb4af1f919e4411544e8a207a00686ca6d6cbd4 Mon Sep 17 00:00:00 2001 From: 侯瑞军 <411269194@kidgrow.com> Date: Tue, 07 Apr 2020 17:36:45 +0800 Subject: [PATCH] 1.运营中心增加用户反馈功能 2.common.js中取消对插件库的重复引用 3.运营中心配置中,增加租户业务排除用户反馈表 --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml | 17 ++- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java | 7 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml | 1 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysFeedbackServiceImpl.java | 39 ++++++- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html | 156 +++++++++++++++++++++++++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java | 24 ++-- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java | 43 +++++-- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java | 2 kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js | 2 9 files changed, 246 insertions(+), 45 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java index 639fef6..bc8236d 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/SysFeedback.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; @@ -66,6 +67,7 @@ /** * 是否删除,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/ISysFeedbackService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java index 3f9f798..f7b1772 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysFeedbackService.java @@ -1,5 +1,6 @@ package com.kidgrow.oprationcenter.service; +import com.kidgrow.common.model.ResultBody; import com.kidgrow.oprationcenter.model.SysFeedback; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.service.ISuperService; @@ -29,5 +30,11 @@ * @return SysFeedback对象 */ SysFeedback findByObject(SysFeedback sysFeedback); + /** + * 状态变更 + * @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 a3ca564..8d15b25 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 @@ -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.SysFeedbackMapper; +import com.kidgrow.oprationcenter.model.SysFeedback; +import com.kidgrow.oprationcenter.service.ISysFeedbackService; +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.SysFeedback; -import com.kidgrow.oprationcenter.mapper.SysFeedbackMapper; -import com.kidgrow.oprationcenter.service.ISysFeedbackService; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -46,4 +47,26 @@ public SysFeedback findByObject(SysFeedback sysFeedback){ return baseMapper.findByObject(sysFeedback); } + + /** + * 根据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"); + + SysFeedback feedback = baseMapper.selectById(id); + if (feedback == null) { + return ResultBody.failed("该反馈数据不存在!"); + } + 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/resources/mapper/SysFeedbackMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml index de5684f..50c3397 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysFeedbackMapper.xml @@ -4,7 +4,13 @@ <mapper namespace="com.kidgrow.oprationcenter.mapper.SysFeedbackMapper"> <!--定义查询列--> <sql id="Column_List"> - * + id, + doctor_name, + doctor_tel, + department_name, + hospital_name, + enabled, + create_time </sql> <!--sql查询片段--> @@ -19,7 +25,7 @@ and doctor_id = #{p.doctorId} </if> <if test="p.doctorName != null and p.doctorName !=''"> - and doctor_name = #{p.doctorName} + and doctor_name like concat('%', #{p.doctorName}, '%') </if> <if test="p.doctorTel != null and p.doctorTel !=''"> and doctor_tel = #{p.doctorTel} @@ -57,11 +63,8 @@ <if test="p.updateUserName != null and p.updateUserName !=''"> and update_user_name = #{p.updateUserName} </if> - <if test="p.createTime != null and p.createTime !=''"> - and create_time = #{p.createTime} - </if> - <if test="p.updateTime != null and p.updateTime !=''"> - and update_time = #{p.updateTime} + <if test="p.createTime != null and p.createTime !='' and p.updateTime != null and p.updateTime !=''"> + and (create_time between #{p.createTime} and #{p.updateTime}) </if> </where> </sql> diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java index 5376e06..e95b416 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysFeedbackController.java @@ -1,28 +1,24 @@ package com.kidgrow.oprationcenter.controller; -import java.util.Map; import com.kidgrow.common.controller.BaseController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.ObjectError; -import org.springframework.web.bind.annotation.*; +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.oprationcenter.model.SysFeedback; +import com.kidgrow.oprationcenter.service.ISysFeedbackService; 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 com.kidgrow.oprationcenter.model.SysFeedback; -import com.kidgrow.oprationcenter.service.ISysFeedbackService; -import com.kidgrow.common.model.*; - +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 javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; /** @@ -50,12 +46,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(sysFeedbackService.findList(params)); + return sysFeedbackService.findList(params); } /** @@ -115,4 +111,23 @@ return ResultBody.failed().msg("删除失败"); } } + /** + * 修改状态 + * + * @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("参数异常!"); + } + return sysFeedbackService.updateEnabled(params); + } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java index ee6f3b1..35c2c14 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysLoggerController.java @@ -1,28 +1,24 @@ package com.kidgrow.oprationcenter.controller; -import java.util.Map; import com.kidgrow.common.controller.BaseController; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.ObjectError; -import org.springframework.web.bind.annotation.*; +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.oprationcenter.model.SysLogger; +import com.kidgrow.oprationcenter.service.ISysLoggerService; 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 com.kidgrow.oprationcenter.model.SysLogger; -import com.kidgrow.oprationcenter.service.ISysLoggerService; -import com.kidgrow.common.model.*; - +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 javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Set; /** @@ -93,10 +89,10 @@ } else { boolean v= sysLoggerService.saveOrUpdate(sysLogger); if(v) { - return ResultBody.ok().data(sysLogger).msg("保存成功"); + return ResultBody.ok().data(sysLogger).msg("反馈提交成功"); } else { - return ResultBody.failed().msg("保存失败"); + return ResultBody.failed().msg("信息提交失败"); } } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml index 0a3f8d2..dc1f9c9 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml @@ -61,6 +61,7 @@ - sys_logger - data_need - business_records + - sys_feedback ignoreSqls: - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js index 8d1b993..26ee5d1 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js @@ -2,8 +2,6 @@ layui.config({ base: '/module/' }).extend({ - formSelects: 'formSelects/formSelects-v4', - treetable: 'treetable-lay/treetable', step: 'step-lay/step' }).use(['layer'], function () { var $ = layui.jquery; 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 new file mode 100644 index 0000000..e749314 --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/feedback.html @@ -0,0 +1,156 @@ +<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="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> + + <table class="layui-table" id="feedback-table" lay-filter="feedback-table"></table> + </div> +</div> + +<!-- 表格操作列 --> +<script type="text/html" id="feeedback-table-bar"> + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a> + <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> +</script> +<!-- 表格状态列 --> +<script type="text/html" id="user-tpl-state"> + <input type="checkbox" lay-filter="feedback-tpl-state" value="{{d.id}}" lay-skin="switch" lay-text="未处理|已处理" + {{d.enabled==true?'checked':''}}/> +</script> +<!-- 弹窗内容 --> +<script type="text/html" id="feedback-detail"> + <div class="layui-card-body" id="feedback-detail-note"> + </div> +</script> +<script> + layui.use(['form', 'table', 'util', 'config', 'admin', 'laydate'],function () { + let table = layui.table; + let config = layui.config; + let layer = layui.layer; + let util = layui.util; + let admin = layui.admin; + let form = layui.form; + let laydate = layui.laydate; + + //日期 + laydate.render({ + elem: '#datebegin' + }); + laydate.render({ + elem: '#dateend' + }); + // 渲染表格 + table.render({ + elem: '#feedback-table', + url: config.base_server + 'api-opration/sysfeedback', + method: 'GET', + 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: '操作'} + ]] + }); + + // 修改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'); + }); + + // 工具条点击事件 + 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('成功', {icon: 1, time: 500}); + obj.del(); + }, 'DELETE'); + }); + } + 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); + } + }); + } + else + { + layer.msg('未找到相关数据', {icon: 1, time: 500}); + } + }, + 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); + } + if(!strUtil.isEmpty(datebegin)&&strUtil.isEmpty(dateend)) + { + dateend=dateUtil.getNowDate(); + $('#dateend').val(dateend); + } + table.reload('feedback-table', {where: {doctorName: doctorName,createTime:datebegin,updateTime:dateend}}); + }); + + }); +</script> \ No newline at end of file -- Gitblit v1.8.0