Servicer.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace addon\servicer\shop\controller;
  13. use app\shop\controller\BaseShop;
  14. use app\model\system\User;
  15. use app\model\system\Group;
  16. use addon\servicer\model\Servicer as ServicerModel;
  17. /**
  18. * 客服
  19. */
  20. class Servicer extends BaseShop
  21. {
  22. /**
  23. * 客服列表
  24. */
  25. public function index()
  26. {
  27. $field_list = [
  28. 's.nickname' => '客服昵称',
  29. 'u.username' => '客服账号'
  30. ];
  31. if (request()->isAjax()) {
  32. $page = input('page', 1);
  33. $page_size = input('page_size', PAGE_LIST_ROWS);
  34. $status = input('status', '');
  35. $search_type = input('search_type', '');
  36. $search_text = input('search_text', '');
  37. $condition = [
  38. ['u.site_id', '=', $this->site_id],
  39. ['u.app_module', '=', 'servicer'],
  40. ];
  41. if ($status !== '') {
  42. $condition[] = ['u.status', '=', $status];
  43. }
  44. if (!empty($search_text) && array_key_exists($search_type, $field_list)) {
  45. $condition[] = [$search_type, 'like', '%' . $search_text . '%'];
  46. }
  47. $alias = 's';
  48. $join = [
  49. ['user u', 'u.uid = s.user_id', 'inner']
  50. ];
  51. $order = 's.id desc';
  52. $field = [
  53. 's.id, s.nickname, s.avatar',
  54. 'u.uid, u.group_name, u.username, u.status, u.login_time'
  55. ];
  56. $servicer_model = new ServicerModel();
  57. $res = $servicer_model->getPageList($condition, $page, $page_size, $order, $field, $alias, $join);
  58. return $res;
  59. } else {
  60. $this->assign([
  61. // 筛选字段
  62. 'field_list' => $field_list
  63. ]);
  64. return $this->fetch('servicer/list');
  65. }
  66. }
  67. /**
  68. * 添加客服
  69. */
  70. public function add()
  71. {
  72. $app_module = 'servicer';
  73. if (request()->isAjax()) {
  74. $servicer_model = new ServicerModel();
  75. return $servicer_model->add([
  76. 'username' => input('username', '', 'trim'),
  77. 'password' => input('password', '123456', 'trim'),
  78. 'group_id' => input('group_id', 0),
  79. 'app_module' => $app_module,
  80. 'site_id' => $this->site_id,
  81. ], [
  82. 'nickname' => input('nickname', '', 'trim'),
  83. 'avatar' => input('avatar', ''),
  84. ]);
  85. } else {
  86. $group_model = new Group();
  87. $this->assign([
  88. // 客服组
  89. 'group_list' => $group_model->getGroupList([['site_id', '=', $this->site_id], ['app_module', '=', $app_module]], 'group_id, group_name')['data']
  90. ]);
  91. return $this->fetch('servicer/add');
  92. }
  93. }
  94. /**
  95. * 编辑客服
  96. */
  97. public function edit()
  98. {
  99. $app_module = 'servicer';
  100. $servicer_model = new ServicerModel();
  101. if (request()->isAjax()) {
  102. return $servicer_model->edit([
  103. 'group_id' => input('group_id', 0),
  104. 'status' => input('status', 0),
  105. ], [
  106. ['site_id', '=', $this->site_id],
  107. ['app_module', '=', $app_module],
  108. ['uid', '=', input('uid', 0)]
  109. ], [
  110. 'nickname' => input('nickname', '', 'trim'),
  111. 'avatar' => input('avatar', ''),
  112. ]);
  113. } else {
  114. $info = $servicer_model->getDetail([
  115. ['shop_id', '=', $this->site_id],
  116. ['user_id', '=', input('uid', 0)],
  117. ])['data'];
  118. if (empty($info)) {
  119. $this->error('客服不存在');
  120. }
  121. $group_model = new Group();
  122. $this->assign([
  123. 'info' => $info,
  124. // 客服组
  125. 'group_list' => $group_model->getGroupList([['site_id', '=', $this->site_id], ['app_module', '=', $app_module]], 'group_id, group_name')['data']
  126. ]);
  127. return $this->fetch('servicer/edit');
  128. }
  129. }
  130. /**
  131. * 修改用户状态
  132. */
  133. public function modifyUserStatus()
  134. {
  135. if (request()->isAjax()) {
  136. $user_model = new User();
  137. return $user_model->modifyUserStatus(input('status', 0), [
  138. ['uid', '=', input('uid', 0)],
  139. ['site_id', '=', $this->site_id],
  140. ['app_module', '=', 'servicer'],
  141. ]);
  142. }
  143. }
  144. /**
  145. * 重置密码
  146. */
  147. public function modifyPassword()
  148. {
  149. if (request()->isAjax()) {
  150. $user_model = new User();
  151. return $user_model->modifyUserPassword(input('password', '123456', 'trim'), [
  152. ['uid', '=', input('uid', 0)],
  153. ['site_id', '=', $this->site_id],
  154. ['app_module', '=', 'servicer'],
  155. ]);
  156. }
  157. }
  158. /**
  159. * 删除客服
  160. */
  161. public function delete()
  162. {
  163. if (request()->isAjax()) {
  164. $servicer_model = new ServicerModel();
  165. return $servicer_model->delete($this->site_id, input('uid', 0));
  166. }
  167. }
  168. }