Jonlin 6 years ago
parent
commit
e279a2d44d

+ 101 - 0
application/admin/controller/Clean.php

@@ -0,0 +1,101 @@
+<?php
+namespace app\admin\controller;
+
+/**
+ * 管理系统系统设置类
+ */
+class Clean extends Base
+{
+    /**
+     *数据清理
+     *
+     * @access public
+     */
+    public function index()
+    {
+        // 表单提交.
+        if (request()->isPost()) {
+            $param = input('post.');
+            //聊天数据
+            $del_time = '';
+            if($param['chat_data'] == 'one_month'){
+                $del_time = time()-2592000;
+            }
+            if($param['chat_data'] == 'three_month'){
+                $del_time = time()-7776000;
+            }
+            if($param['chat_data'] == 'six_month'){
+                $del_time = time()-15552000;
+            }
+            if($param['chat_data'] == 'one_year'){
+                $del_time = time()-31104000;
+            }
+
+            //客服操作记录
+            $delete_time = '';
+            if($param['operational_records'] == 'half_year'){
+                $delete_time = date('Y-m-d',time()-15552000);
+            }
+            if($param['operational_records'] == 'one_year'){
+                $delete_time = date('Y-m-d',time()-31104000);
+            }
+            if($param['operational_records'] == 'three_year'){
+                $delete_time = date('Y-m-d',time()-93312000);
+            }
+
+            if($del_time != ''){
+                $servicelog = array();
+                $servicelog_id = db('service_log')->field('servicelog_id')->where('start_time','<',$del_time)->select();
+                for($i=0;$i<count($servicelog_id);$i++){
+                    $servicelog[] = $servicelog_id[$i]['servicelog_id'];
+                }
+                if($delete_time != ''){
+                    try {
+                        //聊天数据清理
+                        db('service_log')->where('start_time','<',$del_time)->delete();
+                        db('chat_log')->where('servicelog_id','in',$servicelog)->delete();
+                        db('alarm')->where('servicelog_id','in',$servicelog)->delete();
+                        //客服操作记录清理
+                        db('kfonlinehistory')->where('wday','<',$delete_time)->delete();
+                        db('kfstatetimes')->where('sday','<',$delete_time)->delete();
+                        db('service_data')->where('add_date','<',$delete_time)->delete();
+                        db('servicetimelog')->where('cdate','<',$delete_time)->delete();
+                        return json(['code' => 1, 'data' => '', 'msg' => '数据清理成功']);
+                    } catch (\Exception $e) {
+                        return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
+                    }
+                }else{
+                    try {
+                        db('service_log')->where('start_time','<',$del_time)->delete();
+                        db('chat_log')->where('servicelog_id','in',$servicelog)->delete();
+                        db('alarm')->where('servicelog_id','in',$servicelog)->delete();
+                        return json(['code' => 1, 'data' => '', 'msg' => '聊天数据清理成功']);
+                    } catch (\Exception $e) {
+                        return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
+                    }
+                }
+            }else{
+                if($delete_time != ''){
+                    try {
+                        db('kfonlinehistory')->where('wday','<',$delete_time)->delete();
+                        db('kfstatetimes')->where('sday','<',$delete_time)->delete();
+                        db('service_data')->where('add_date','<',$delete_time)->delete();
+                        db('servicetimelog')->where('cdate','<',$delete_time)->delete();
+                        return json(['code' => 1, 'data' => '', 'msg' => '客服操作记录清理成功']);
+                    } catch (\Exception $e) {
+                        return json(['code' => -3, 'data' => '', 'msg' => $e->getMessage()]);
+                    }
+                }else{
+                    return json(['code' => -4, 'data' => '', 'msg' => '请选择时间']);
+                }
+            }
+        }
+
+        $this->assign([
+                'status' => config('kf_status'),
+        ]);
+
+        return $this->fetch();
+
+    }
+}

+ 2 - 1
application/admin/controller/System.php

@@ -223,6 +223,7 @@ class System extends Base
             }
 
             $result = $temp->limit($offset, $limit)->order('start_time', 'desc')->select();
+            $return['total'] = $countTmp->count();  //总数据
 
             //所有客服
             $users = db('users')->select();
@@ -308,7 +309,7 @@ class System extends Base
                 }
             }
 
-            $return['total'] = $countTmp->count();  //总数据
+//            $return['total'] = $countTmp->count();  //总数据
             $return['rows'] = $result;
 
             if (!$toExcel) {

+ 144 - 0
application/admin/view/clean/index.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>数据清理</title>
+    <link rel="shortcut icon" href="favicon.ico">
+    <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
+    <link href="__CSS__/animate.min.css" rel="stylesheet">
+    <link href="__JS__/layui/css/layui.css" rel="stylesheet">
+    <link href="__CSS__/style.min.css?v=4.1.0" rel="stylesheet">
+</head>
+<body class="gray-bg">
+<div class="wrapper wrapper-content animated fadeInRight">
+    <div class="row">
+        <div class="col-sm-8">
+            <div class="ibox float-e-margins">
+                <div class="ibox-title">
+                    <h5>数据清理</h5>
+                </div>
+                <div class="ibox-content">
+                    <form class="form-horizontal m-t layui-form" id="commentForm" method="post" action="{:url('clean/index')}">
+                        <h4 style="margin-bottom: 10px;">聊天数据清理</h4>
+                        <div class="ibox-title">
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">聊天数据:</label>
+                            <div class="input-group col-sm-4 layui-form">
+                                <input type="hidden" name="chat_data" id="chat_data" value="-1"/>
+                                <select lay-verify="required" lay-filter="chat_data">
+                                    <option value="-1">请选择聊天数据时间</option>
+                                    <option value="one_month">一个月</option>
+                                    <option value="three_month">三个月</option>
+                                    <option value="six_month">六个月</option>
+                                    <option value="one_year">一年</option>
+                                </select>
+                            </div>
+                        </div>
+                        <h4 style="margin-bottom: 10px; margin-top: 40px">客服操作记录清理</h4>
+                        <div class="ibox-title">
+                        </div>
+                        <div class="form-group">
+                            <label class="col-sm-3 control-label">客服操作记录:</label>
+                            <div class="input-group col-sm-4 layui-form">
+                                <input type="hidden" name="operational_records" id="operational_records" value="-1"/>
+                                <select lay-verify="required" lay-filter="operational_records">
+                                    <option value="-1">请选择客服操作记录时间</option>
+                                    <option value="half_year">半年</option>
+                                    <option value="one_year">一年</option>
+                                    <option value="three_year">三年</option>
+                                </select>
+                            </div>
+                        </div>
+
+                        <div class="form-group" style="margin-top: 40px;">
+                            <label class="col-sm-3 control-label"></label>
+                            <div class="input-group col-sm-4">
+                                <button class="btn btn-primary" type="submit">提交</button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</div>
+<script src="__JS__/jquery.min.js?v=2.1.4"></script>
+<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
+<script src="__JS__/content.min.js?v=1.0.0"></script>
+<script src="__JS__/plugins/validate/jquery.validate.min.js"></script>
+<script src="__JS__/plugins/validate/messages_zh.min.js"></script>
+<script src="__JS__/plugins/layer/layer.min.js"></script>
+<script src="__JS__/layui/layui.js"></script>
+<script src="__JS__/jquery.form.js"></script>
+<script type="text/javascript">
+
+    layui.use(['form', 'upload'], function(){
+        var form = layui.form;
+
+        form.on('select(operational_records)', function(value){
+            $("#operational_records").val(value.value);
+        });
+
+        form.on('select(chat_data)', function(value){
+            $("#chat_data").val(value.value);
+        });
+    });
+
+    var index = '';
+    function showStart(){
+        index = layer.load(0, {shade: false});
+        return true;
+    }
+
+    function showSuccess(res){
+
+        layer.ready(function(){
+            layer.close(index);
+            if(1 == res.code){
+                layer.alert(res.msg, {title: '友情提示', icon: 1, closeBtn: 0}, function(){
+                    window.location.href = res.data;
+                });
+            }else if(111 == res.code){
+                window.location.reload();
+            }else{
+                layer.msg(res.msg, {anim: 6});
+            }
+        });
+    }
+
+    $(document).ready(function(){
+        // 添加管理员
+        var options = {
+            beforeSubmit:showStart,
+            success:showSuccess
+        };
+
+        $('#commentForm').submit(function(){
+            $(this).ajaxSubmit(options);
+            return false;
+        });
+    });
+
+    // 表单验证
+    $.validator.setDefaults({
+        highlight: function(e) {
+            $(e).closest(".form-group").removeClass("has-success").addClass("has-error")
+        },
+        success: function(e) {
+            e.closest(".form-group").removeClass("has-error").addClass("has-success")
+        },
+        errorElement: "span",
+        errorPlacement: function(e, r) {
+            e.appendTo(r.is(":radio") || r.is(":checkbox") ? r.parent().parent().parent() : r.parent())
+        },
+        errorClass: "help-block m-b-none",
+        validClass: "help-block m-b-none"
+    });
+
+</script>
+</body>
+</html>