Clean.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace app\admin\controller;
  3. /**
  4. * 管理系统系统设置类
  5. */
  6. class Clean extends Base
  7. {
  8. /**
  9. *数据清理
  10. *
  11. * @access public
  12. */
  13. public function index()
  14. {
  15. // 表单提交.
  16. if (request()->isPost()) {
  17. $param = input('post.');
  18. //聊天数据
  19. $del_time = '';
  20. if($param['chat_data'] == 'one_month'){
  21. $del_time = time()-2592000;
  22. }
  23. if($param['chat_data'] == 'three_month'){
  24. $del_time = time()-7776000;
  25. }
  26. if($param['chat_data'] == 'six_month'){
  27. $del_time = time()-15552000;
  28. }
  29. if($param['chat_data'] == 'one_year'){
  30. $del_time = time()-31104000;
  31. }
  32. //客服操作记录
  33. $delete_time = '';
  34. if($param['operational_records'] == 'half_year'){
  35. $delete_time = date('Y-m-d',time()-15552000);
  36. }
  37. if($param['operational_records'] == 'one_year'){
  38. $delete_time = date('Y-m-d',time()-31104000);
  39. }
  40. if($param['operational_records'] == 'three_year'){
  41. $delete_time = date('Y-m-d',time()-93312000);
  42. }
  43. if($del_time != ''){
  44. $servicelog = array();
  45. $servicelog_id = db('service_log')->field('servicelog_id')->where('start_time','<',$del_time)->select();
  46. for($i=0;$i<count($servicelog_id);$i++){
  47. $servicelog[] = $servicelog_id[$i]['servicelog_id'];
  48. }
  49. if($delete_time != ''){
  50. try {
  51. //聊天数据清理
  52. db('service_log')->where('start_time','<',$del_time)->delete();
  53. db('chat_log')->where('servicelog_id','in',$servicelog)->delete();
  54. db('alarm')->where('servicelog_id','in',$servicelog)->delete();
  55. //客服操作记录清理
  56. db('kfonlinehistory')->where('wday','<',$delete_time)->delete();
  57. db('kfstatetimes')->where('sday','<',$delete_time)->delete();
  58. db('service_data')->where('add_date','<',$delete_time)->delete();
  59. db('servicetimelog')->where('cdate','<',$delete_time)->delete();
  60. return json(['code' => 1, 'data' => '', 'msg' => '数据清理成功']);
  61. } catch (\Exception $e) {
  62. return json(['code' => -1, 'data' => '', 'msg' => $e->getMessage()]);
  63. }
  64. }else{
  65. try {
  66. db('service_log')->where('start_time','<',$del_time)->delete();
  67. db('chat_log')->where('servicelog_id','in',$servicelog)->delete();
  68. db('alarm')->where('servicelog_id','in',$servicelog)->delete();
  69. return json(['code' => 1, 'data' => '', 'msg' => '聊天数据清理成功']);
  70. } catch (\Exception $e) {
  71. return json(['code' => -2, 'data' => '', 'msg' => $e->getMessage()]);
  72. }
  73. }
  74. }else{
  75. if($delete_time != ''){
  76. try {
  77. db('kfonlinehistory')->where('wday','<',$delete_time)->delete();
  78. db('kfstatetimes')->where('sday','<',$delete_time)->delete();
  79. db('service_data')->where('add_date','<',$delete_time)->delete();
  80. db('servicetimelog')->where('cdate','<',$delete_time)->delete();
  81. return json(['code' => 1, 'data' => '', 'msg' => '客服操作记录清理成功']);
  82. } catch (\Exception $e) {
  83. return json(['code' => -3, 'data' => '', 'msg' => $e->getMessage()]);
  84. }
  85. }else{
  86. return json(['code' => -4, 'data' => '', 'msg' => '请选择时间']);
  87. }
  88. }
  89. }
  90. $this->assign([
  91. 'status' => config('kf_status'),
  92. ]);
  93. return $this->fetch();
  94. }
  95. }