Manage.php 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <?php
  2. namespace Work\Lib;
  3. use Dever;
  4. Class Manage
  5. {
  6. public function setInfoStatus_api ()
  7. {
  8. $id = Dever::input('id');
  9. $status = Dever::input('status');
  10. $type = Dever::input('type');
  11. if ($id) {
  12. $data = Dever::db('work/info')->find($id);
  13. $where['where_id'] = $id;
  14. if ($type == 1) {
  15. $where['status'] = 4;
  16. } else {
  17. $where['status'] = 3;
  18. }
  19. $where['fdate'] = time();
  20. $where['chdate'] = time();
  21. Dever::db('work/info')->update($where);
  22. $log = Dever::db('work/info_log')->find(array('info_id'=>$id));
  23. $w['where_id'] = $log['id'];
  24. $w['fdate'] = time();
  25. if($type == 1){
  26. $w['cloce_date'] = time();
  27. }
  28. Dever::db('work/info_log')->update($w);
  29. return 'ok';
  30. }
  31. }
  32. public function updateInfo($id,$name,$data)
  33. {
  34. $mobile = Dever::param('mobile',$data);
  35. $name = Dever::param('name',$data);
  36. $user = Dever::db('work/user')->find(array('mobile'=>$mobile));
  37. if ($user) {
  38. if ($name && $user['name'] != $name) {
  39. Dever::db('work/user')->update(array('where_id'=>$user['id'],'name'=>$name));
  40. }
  41. } else {
  42. $member = Dever::db('agent/member')->find(array('mobile'=>$mobile));
  43. if ($member) {
  44. $insert['agent_uid'] = $member['id'];
  45. }
  46. $option = Dever::db('option/member')->find(array('mobile'=>$mobile));
  47. if ($option) {
  48. $insert['option_uid'] = $option['id'];
  49. }
  50. $passport = Dever::db('passport/user')->find(array('mobile'=>$mobile));
  51. if ($passport) {
  52. $insert['passport_uid'] = $passport['uid'];
  53. }
  54. if ($name) {
  55. $insert['name'] = $name;
  56. }
  57. $insert['mobile'] = $mobile;
  58. if ($insert) {
  59. Dever::db('work/user')->insert($insert);
  60. }
  61. }
  62. $info = Dever::db('work/info')->find($id);
  63. if ($info && !$info['work_num']) {
  64. $w['where_id'] = $id;
  65. $w['work_num'] = $this->getWorkId();
  66. Dever::db('work/info')->update($w);
  67. }
  68. }
  69. public function getWorkId()
  70. {
  71. $where['work_num'] = Dever::order('W');
  72. $state = Dever::db('work/info')->one($where);
  73. if (!$state) {
  74. return $where['work_num'];
  75. } else {
  76. return $this->getWorkId();
  77. }
  78. }
  79. public function getUser($id)
  80. {
  81. $info = Dever::db('work/info')->find($id);
  82. $data= Dever::db('work/user')->find(array('mobile'=>$info['mobile']));
  83. if ($data) {
  84. $html['user'] = $data['name'].'<br/>'.$data['mobile'];
  85. if (isset($info['fdate']) && $info['fdate']) {
  86. $fdate = date('Y-m-d H:i:s',$info['fdate']);
  87. } else {
  88. $fdate = '';
  89. }
  90. $html['time'] = date('Y-m-d H:i:s',$info['cdate']).'<br/>'.$fdate;
  91. $cate_id = explode(',',$info['cate_id']);
  92. $cate_name = '';
  93. $question_name = '';
  94. if (isset($cate_id[0]) && $cate_id[0]) {
  95. $cate = Dever::db('work/q_cate')->find($cate_id[0]);
  96. $cate_name = $cate['name'];
  97. }
  98. if (isset($cate_id[1]) && $cate_id[1]) {
  99. $question = Dever::db('work/question')->find($cate_id[1]);
  100. $question_name = $question['name'];
  101. }
  102. $html['cate_name'] = $cate_name.'<br/>'.$question_name;
  103. return $html;
  104. } else {
  105. return '';
  106. }
  107. }
  108. public function xietiao_api($id)
  109. {
  110. $data = Dever::db('work/branch')->find($id);
  111. $data['group'] = explode(',',$data['group']);
  112. $group = Dever::db('manage/group')->find($data['group'][0]);
  113. $admin = Dever::load('manage/company')->getAdmin($group['id'], $data['group'][1]);
  114. $gad = Dever::db('manage/admin')->find($data['group'][1]);
  115. $res = array();
  116. foreach ($admin as $k => $v) {
  117. $res[$k] = $v['username'].'<br/>'.$v['email'];
  118. }
  119. $total = Dever::db('work/info')->getquestTotal(array('group'=>$data['group'][0]));
  120. $html = array();
  121. $html['group'] = $group['name'].'<br/>'.$gad['username'];
  122. $html['name'] = implode('<br/>',$res);
  123. $html['num'] = $total;
  124. return $html;
  125. }
  126. #获取客户信息
  127. public function search_api()
  128. {
  129. $value = Dever::input('value');
  130. if(!preg_match('/^1[3|5|6|7|8|9]\d{9}$/', $value)){
  131. return '代理商手机号不正确';
  132. }
  133. if ($value) {
  134. $name = '';
  135. $role_name = '';
  136. $user = Dever::db('work/user')->find(array('mobile'=>$value));
  137. if(!$user) {
  138. $member = Dever::db('agent/member')->find(array('mobile'=>$value));
  139. if ($member) {
  140. $name = $member['name'];
  141. $type = "代理商";
  142. $role = Dever::db('setting/role')->find($member['role']);
  143. if ($role ) {
  144. $role_name = $role['name'];
  145. }
  146. $option = Dever::db('option/member')->find(array('mobile'=>$value));
  147. if ($option) {
  148. $type = $type.'<br/>期权账户';
  149. $passport = Dever::db('passport/user')->find(array('mobile'=>$value));
  150. if ($passport) {
  151. $type = $type.'<br/>小程序';
  152. }
  153. } else {
  154. $passport = Dever::db('passport/user')->find(array('mobile'=>$value));
  155. if ($passport) {
  156. $type = $type.'<br/>小程序';
  157. }
  158. }
  159. } else {
  160. $option = Dever::db('option/member')->find(array('mobile'=>$value));
  161. if ($option) {
  162. $name = $option['name'];
  163. $type = '期权账户';
  164. $passport = Dever::db('passport/user')->find(array('mobile'=>$value));
  165. if ($passport) {
  166. $type = $type.'<br/>小程序';
  167. }
  168. } else {
  169. $passport = Dever::db('passport/user')->find(array('mobile'=>$value));
  170. if ($passport) {
  171. $name = $passport['name'];
  172. $type = '小程序';
  173. } else {
  174. $type = '无系统关联关系';
  175. }
  176. }
  177. }
  178. } else {
  179. $name = $user['name'];
  180. $type = '客服系统用户';
  181. if ($user['agent_uid'] && $user['agent_uid'] > 0) {
  182. $member = Dever::db('agent/member')->find($user['agent_uid']);
  183. $role = Dever::db('setting/role')->find($member['role']);
  184. if ($role) {
  185. $role_name = $role['name'];
  186. }
  187. $type = $type.'<br/>代理商';
  188. }
  189. if ($user['option_uid'] && $user['option_uid'] > 0) {
  190. $type = $type.'<br/>期权账户';
  191. }
  192. if ($user['passport_uid'] && $user['passport_uid'] > 0) {
  193. $type = $type.'<br/>小程序';
  194. }
  195. }
  196. $table = array();
  197. if ($name && $role_name) {
  198. $table['head'] = array('名称', '电话号码', '平台' ,'角色');
  199. $table['body'] = array($name, $value, $type, $role_name);
  200. } elseif ($name && !$role_name) {
  201. $table['head'] = array('名称', '电话号码', '平台');
  202. $table['body'] = array($name, $value, $type);
  203. } elseif (!$name && $role_name) {
  204. $table['head'] = array('电话号码', '平台' ,'角色');
  205. $table['body'] = array($value, $type, $role_name);
  206. } else if (!$name && !$role_name) {
  207. $table['head'] = array('电话号码', '平台');
  208. $table['body'] = array($value, $type );
  209. }
  210. $result[] = array
  211. (
  212. 'type' => 'table',
  213. 'content' => $table,
  214. );
  215. $html = Dever::show('', $result, false, false);
  216. return array('html' => $html, 'data' => array('name' => $name));
  217. }
  218. }
  219. public function admin($id)
  220. {
  221. $data = Dever::db('work/product')->find(array($id));
  222. $admin_id = explode(',',$data['admin_id']);
  223. $admin = Dever::db('manage/admin')->find($admin_id[1]);
  224. if ($admin) {
  225. return $admin['username'].'<br/>'.$admin['email'];
  226. }
  227. }
  228. public function branch($id)
  229. {
  230. $group = Dever::db('manage/group')->find($id);
  231. return $group['name'];
  232. }
  233. #工单列表导出
  234. public function out_info($data)
  235. {
  236. $header = array('客户名称','手机号','问题类型','问题类型描述','优先级','问题描述','处理结果','创建时间','完成时间');
  237. $body = array();
  238. $config = Dever::db('work/info')->config['config_status'];
  239. foreach ($data as $k => $v ) {
  240. $cate_name = '';
  241. $cate_id = explode(',',$v['cate_id']);
  242. if (isset($cate_id[0]) && $cate_id[0]) {
  243. $cate = Dever::db('work/q_cate')->find(array('id'=>$cate_id[0]));
  244. if ($cate) {
  245. $cate_name = $cate['name'];
  246. }
  247. }
  248. $question_name = '';
  249. if (isset($cate_id[1]) && $cate_id[1]) {
  250. $question = Dever::db('work/question')->find(array('id'=>$cate_id[1]));
  251. if ($question) {
  252. $question_name = $question['name'];
  253. }
  254. }
  255. $priority_name = '';
  256. $priority = Dever::db('work/priority')->find(array('id'=>$v['priority_id']));
  257. if ($priority) {
  258. $priority_name = $priority['name'];
  259. }
  260. $status_name = Dever::status($config,$v['status']);
  261. $cdate = date('Y-m-d H:i',$v['cdate']);
  262. $fdate = '';
  263. if ($v['fdate']){
  264. $fdate = date('Y-m-d H:i',$v['fdate']);
  265. }
  266. $d = array
  267. (
  268. $v['name'],
  269. $v['mobile'],
  270. $cate_name,
  271. $question_name,
  272. $priority_name,
  273. $v['desc'],
  274. $status_name,
  275. $cdate,
  276. $fdate,
  277. );
  278. $body[] = $d;
  279. }
  280. $file = Dever::input('excel_name');
  281. return Dever::excelExport($body, $header, $file);
  282. }
  283. public function getTotal($admin_id,$status=false)
  284. {
  285. $company = Dever::load('manage/company.get');
  286. $where = array();
  287. if ($status){
  288. $where['status'] = $status;
  289. $where['appoint_id'] = $admin_id;
  290. } else {
  291. $where['audit_admin'] = $admin_id;
  292. }
  293. if ($company) {
  294. $where['company_id'] = $company;
  295. }
  296. $data = Dever::db('work/info')->getTotal($where);
  297. return $data;
  298. }
  299. }