From 7ca064b6b20f89b7e73244f99fe9848a48f4142a Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Fri, 03 Apr 2020 15:28:06 +0800
Subject: [PATCH] 业务日志  功能完成

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java                       |    4 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java                       |    6 +
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/resources/application.yml                                                 |    1 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java                               |    2 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/businessRecords.html                                                              |  223 ++++++++++++++++++++++++++++++++++++++++++++
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/BusinessRecordsController.java |    4 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/BusinessRecordsMapper.xml                                   |    8 +
 7 files changed, 245 insertions(+), 3 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/BusinessRecordsMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/BusinessRecordsMapper.xml
index e0c6d5a..0fce280 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/BusinessRecordsMapper.xml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/BusinessRecordsMapper.xml
@@ -16,7 +16,7 @@
                 and id = #{p.id}
             </if>
             <if test="p.recordTitle != null and p.recordTitle !=''">
-                and record_title = #{p.recordTitle}
+                and record_title like '%${p.recordTitle}%'
             </if>
             <if test="p.userId != null and p.userId !=''">
                 and user_id = #{p.userId}
@@ -57,6 +57,12 @@
             <if test="p.createTime != null and p.createTime !=''">
                 and create_time = #{p.createTime}
             </if>
+            <if test="p.startTime!= null and p.startTime !=''">
+                and create_time &gt;= #{p.startTime}
+            </if>
+            <if test="p.endTime!= null and p.endTime !=''">
+                and create_time &lt;= #{p.endTime}
+            </if>
             <if test="p.updateTime != null and p.updateTime !=''">
                 and update_time = #{p.updateTime}
             </if>
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/BusinessRecordsController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/BusinessRecordsController.java
index d8d407e..ab9105c 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/BusinessRecordsController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/BusinessRecordsController.java
@@ -43,12 +43,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(businessRecordsService.findList(params));
+        return businessRecordsService.findList(params);
     }
 
     /**
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 f74a33a..0a3f8d2 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
@@ -60,6 +60,7 @@
       - sys_user
       - sys_logger
       - data_need
+      - business_records
     ignoreSqls:
       - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
index 8d9b84b..8792cdd 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -105,4 +105,6 @@
 	 * 删除用户
 	 */
 	boolean delUser(Long id);
+
+	ResultBody findAll(Map<String, Object> map);
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index d6614aa..bcb4b7c 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -279,4 +279,10 @@
         }
         return sysUserExcels;
     }
+
+    @Override
+    public ResultBody findAll(Map<String, Object> map) {
+        List<SysUser> sysUsers = baseMapper.selectByMap(map);
+        return ResultBody.ok().data(sysUsers).msg("操作成功");
+    }
 }
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
index 2076cbf..7e38efd 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -332,4 +332,8 @@
     private boolean checkAdmin(long id) {
         return id == 1L;
     }
+    @PostMapping("/users/findAll")
+    public ResultBody findAll(@RequestParam Map<String,Object> map) {
+        return appUserService.findAll(map);
+    }
 }
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/businessRecords.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/businessRecords.html
new file mode 100644
index 0000000..b8ca7d6
--- /dev/null
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/businessRecords.html
@@ -0,0 +1,223 @@
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">业务日志</h2>
+        <span class="layui-breadcrumb pull-right">
+            <a href="#!home_console">首页</a>
+            <a><cite>业务日志</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            <input id="app-edit-search" class="layui-input search-input" type="text" placeholder="请输入标题" />&emsp;
+            <input type="text" class="layui-input search-input" id="test1"> 至 <input type="text"
+                class="layui-input search-input" id="test2"> &emsp;
+            <select id="role_clients" placeholder="选择一个应用" lay-filter="role_clients">
+                <option value="">-请选择-</option>
+            </select>
+            <button id="app-btn-search" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button>
+        </div>
+
+        <!-- 数据表格 -->
+        <table class="layui-table" id="app-table" lay-filter="app-table"></table>
+    </div>
+</div>
+
+<!-- 表格操作列 -->
+<script type="text/html" id="businessRecords-table-bar">
+    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看详情</a>
+</script>
+
+<!-- 表单弹窗 -->
+<script type="text/html" id="app-model">
+    <form id="app-form" lay-filter="app-form" class="layui-form model-form">
+        <input name="id" type="hidden"/>
+        <div class="layui-form-item">
+            <label class="layui-form-label">记录标题</label>
+            <div class="layui-input-block">
+                <input name="recordTitle" disabled="true" type="text" class="layui-input" maxlength="20"
+                       lay-verify="required" required/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">操作人姓名</label>
+            <div class="layui-input-block">
+                <input name="userName" disabled="true" placeholder="请输入应用名称" type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">应用名称</label>
+            <div class="layui-input-block">
+                <input name="appName" disabled="true" type="text" class="layui-input" maxlength="20"
+                       lay-verify="required" required />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">ip</label>
+            <div class="layui-input-block">
+                <input name="recordIp" disabled="true" type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">业务操作记录</label>
+            <div class="layui-input-block">
+                <input name="recordDetail" disabled="true" type="text" class="layui-input" maxlength="20"/>
+            </div>
+        </div>
+        <div class="layui-form-item model-form-footer">
+            <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">确定</button>
+        </div>
+    </form>
+</script>
+
+
+<script>
+    layui.use(['form', 'table', 'laydate', 'util', 'config', 'admin'], 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;
+
+        // 获取应用列表
+        // layer.load(2);
+        admin.req('api-user/users/findAll', {}, 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;
+                    }
+                    //往下拉菜单里添加元素
+                    $('#role_clients').append(new Option(item.username, item.id, false, selected));
+                })
+                form.render();
+            } else {
+                layer.msg(data.msg, { icon: 2, time: 500 });
+            }
+        }, 'Post');
+
+        //时间格式
+        var laydate = layui.laydate;
+        //执行一个laydate实例
+        laydate.render({
+            elem: '#test1' //指定元素
+        });
+        laydate.render({
+            elem: '#test2' //指定元素
+        });
+
+        // 渲染表格
+        table.render({
+            elem: '#app-table',
+            url: config.base_server + 'api-opration/businessrecords',
+            method: 'GET',
+            headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
+            page: true,
+            cols: [[
+                { type: 'numbers' },
+                { field: 'userName', width: 180, sort: true, title: '用户' },
+                { field: 'appName', width: 200, sort: true, title: '应用名' },
+                { field: 'recordIp', width: 180, sort: true, title: 'IP' },
+                { field: 'recordTitle', width: 300, sort: true, title: '标题' },
+                { field: 'id', width: 250, align: 'center', toolbar: '#businessRecords-table-bar', sort: true, title: '查看详情' },// 0就诊数据 1筛查
+                { field: 'createTime', width: 250, sort: true, title: '时间', templet: "<div>{{layui.util.toDateString(d.createTime, 'yyyy年MM月dd日 HH:mm:ss')}}</div>" }
+            ]]
+        });
+
+        // 工具条点击事件
+        table.on('tool(app-table)', function (obj) {
+            var data = obj.data;
+            var layEvent = obj.event;
+            if (layEvent === 'detail') { // 查看详情
+                showEditModel(data);
+            }
+        });
+
+        // 搜索按钮点击事件
+        $('#app-btn-search').click(function () {
+            var userId = $('#role_clients').val();
+            var key = $('#app-edit-search').val();
+            var startTime = $('#test1').val();
+            var endTime = $('#test2').val();
+            if (startTime != null && endTime != null) {
+                var flag = compareDate(startTime, endTime);
+                if (!flag) {
+                    layer.msg('结束时间不得小于开始时间');
+                    return;
+                }
+            }
+
+            table.reload('app-table', { where: { recordTitle: key, startTime: startTime, endTime: endTime, userId: userId } });
+        });
+        //比较日期大小
+        function compareDate(logintime, logouttime) {
+            var arys1 = new Array();
+            var arys2 = new Array();
+            if (logintime != null && logouttime != null) {
+                arys1 = logintime.split('-');
+                var logindate = new Date(arys1[0], parseInt(arys1[1] - 1), arys1[2]);
+                arys2 = logouttime.split('-');
+                var logoutdate = new Date(arys2[0], parseInt(arys2[1] - 1), arys2[2]);
+                if (logindate > logoutdate) {
+                    return false;
+                } else {
+                    return true;
+                }
+            }
+        }
+        // 导出
+        $('#app-btn-export').click(function () {
+            var url = config.base_server + 'api-opration/dataneed/export';
+            var xhr = new XMLHttpRequest();
+            xhr.open('POST', url, true);
+            xhr.responseType = "blob";
+            xhr.setRequestHeader("client_type", "DESKTOP_WEB");
+            xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token);
+            xhr.onload = function () {
+                if (this.status == 200) {
+                    var fileName = "user.xlsx";
+                    var blob = this.response;
+                    var a = document.createElement('a');
+                    a.innerHTML = fileName;
+                    // 指定生成的文件名
+                    a.download = fileName;
+                    a.href = URL.createObjectURL(blob);
+                    document.body.appendChild(a);
+                    var evt = document.createEvent("MouseEvents");
+                    evt.initEvent("click", false, false);
+                    a.dispatchEvent(evt);
+                    document.body.removeChild(a);
+                }
+            }
+            xhr.send();
+        });
+
+        // // 显示编辑弹窗
+        var showEditModel = function (data) {
+            layer.open({
+                type: 1,
+                title: '查看详情',
+                area: '450px',
+                offset: '120px',
+                content: $('#app-model').html(),
+                success: function () {
+                    $('#app-form')[0].reset();
+                    $('#app-form').attr('method', 'POST');
+                    if (data) {
+                        $("input[name='clientId']").attr('disabled', true);
+                        $("input[name='clientId']").attr('class', "layui-input layui-disabled");
+                        $("input[name='webServerRedirectUri']").attr('disabled', true);
+                        $("input[name='webServerRedirectUri']").attr('class', "layui-input layui-disabled");
+                        form.val('app-form', data);
+                        // $('#app-form').attr('method', 'POST');
+                    }
+                }
+            });
+        };
+    });
+</script>
\ No newline at end of file

--
Gitblit v1.8.0