Operate.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace app\sys\controller;
  3. use app\BaseController;
  4. use app\model\Employee;
  5. use app\model\Grant;
  6. use app\model\OperateLog;
  7. use think\facade\View;
  8. class Operate extends BaseController
  9. {
  10. private $rootId;
  11. protected function initialize()
  12. {
  13. $this->rootId = $this->request->employee->root_id;
  14. }
  15. /**
  16. * 运营账号管理
  17. */
  18. public function index()
  19. {
  20. if (!$this->request->isAjax()) {
  21. return View::fetch();
  22. }
  23. $page = input('get.page');
  24. $limit = input('get.limit');
  25. $keyword = input('get.keyword');
  26. $where = [
  27. ['root_id', '=', $this->rootId],
  28. ['grant_id', '<>', 0]
  29. ];
  30. if(!empty($keyword)){
  31. $where[] = ['name|opt_name', 'like', '%' . $keyword . '%'];
  32. }
  33. $data = Employee::with(['grant' => function ($query) {
  34. $query->field('id,name');
  35. }])->field(['id,name,opt_name,phone,grant_id,top_one'])->where($where)->page($page, $limit)->select();
  36. $rData = [];
  37. foreach ($data as $item) {
  38. $rData[] = [
  39. 'id' => $item['id'],
  40. 'name' => $item['opt_name'] ?? $item['name'],
  41. 'phone' => $item['phone'],
  42. 'grant' => $item['grant']['name'],
  43. 'grant_id' => $item['grant_id'],
  44. 'top_one' => $item['top_one']
  45. ];
  46. }
  47. $count = Employee::where($where)->count();
  48. return json(['code' => 0, 'data' => $rData, 'count' => $count]);
  49. }
  50. /**
  51. * 账号添加/修改
  52. */
  53. public function edit()
  54. {
  55. $grant = Grant::where(['root_id' => $this->rootId])->field('id,name')->select();
  56. View::assign('grant', $grant);
  57. $id = input('id', '', 'intval');
  58. if ($id) {
  59. $info = Employee::where('id', '=', $id)->findOrEmpty();
  60. View::assign('info', $info);
  61. }
  62. return View::fetch();
  63. }
  64. /*
  65. * 账号添加/修改 保存
  66. */
  67. public function editSave()
  68. {
  69. $data = $this->request->only(['name', 'phone', 'grant_id', 'id'=> '']);
  70. if ($data['id']) {
  71. $old = Employee::where([['id', '=', $data['id']], ['root_id', '=', $this->rootId]])->findOrEmpty();
  72. if ($old->isEmpty()) {
  73. $new = Employee::where(['phone' => cypherphone($data['phone']), 'root_id' => $this->rootId])->findOrEmpty();
  74. $new->save([
  75. 'opt_name' => $data['name'],
  76. 'phone' => $data['phone'],
  77. 'grant_id' => $data['grant_id'],
  78. 'root_id' => $this->rootId
  79. ]);
  80. } else {
  81. if ($data['phone'] != $old['phone']) {
  82. $old->grant_id = 0;
  83. $old->save();
  84. }
  85. $new = Employee::where([['id', '=', $data['id']], ['root_id', '=', $this->rootId]])->findOrEmpty();
  86. $new->save([
  87. 'opt_name' => $data['name'],
  88. 'phone' => $data['phone'],
  89. 'grant_id' => $data['grant_id'],
  90. 'root_id' => $this->rootId
  91. ]);
  92. }
  93. } else {
  94. $new = Employee::where(['phone' => cypherphone($data['phone']), 'root_id' => $this->rootId])->findOrEmpty();
  95. $new->save([
  96. 'opt_name' => $data['name'],
  97. 'phone' => $data['phone'],
  98. 'grant_id' => $data['grant_id'],
  99. 'root_id' => $this->rootId
  100. ]);
  101. dataStatistics(request()->employee->root_id,'motion_count',1,'inc');//manage应用首页统计数据
  102. }
  103. return json(['code' => 0, 'msg' => '操作成功']);
  104. }
  105. /**
  106. * 账号删除
  107. */
  108. public function del()
  109. {
  110. $id = $this->request->param('id');
  111. $emp = Employee::where(['id' => $id, 'root_id' => $this->rootId])->findOrEmpty();
  112. if (!$emp->isEmpty()) {
  113. $emp->grant_id = 0;
  114. $emp->save();
  115. dataStatistics(request()->employee->root_id,'motion_count',1,'dec');//manage应用首页统计数据
  116. }
  117. return json(['code' => 0, 'msg' => '删除成功']);
  118. }
  119. /**
  120. * 操作日志
  121. */
  122. public function log($id, $page = 1, $limit = 10)
  123. {
  124. if (!$this->request->isAjax()) {
  125. View::assign('id', $id);
  126. return View::fetch();
  127. }
  128. $data = OperateLog::where(['employee_id' => $id, 'root_id' => $this->request->employee['root_id']])->order('addtime desc')->page($page, $limit)->select();
  129. $count = OperateLog::where(['employee_id' => $id, 'root_id' => $this->request->employee['root_id']])->count();
  130. return json(['code' => 0, 'data' => $data, 'count' => $count]);
  131. }
  132. }