Appoint.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. <?php
  2. namespace Work\lib;
  3. use Dever;
  4. Class Appoint
  5. {
  6. public function startBranch($id,$name,$data)
  7. {
  8. // Dever::config('base')->hook = true;
  9. $group = Dever::param('group',$data);
  10. // $id = Dever::param('id',$data);
  11. if ($group) {
  12. $res = Dever::db('work/branch')->find(array('group_id'=>$group[0]));
  13. if ($res && isset($id['where_id']) && $id['where_id']){
  14. if ($res['id'] != $id['where_id']){
  15. Dever::alert('部门已存在');
  16. }
  17. } elseif ($res) {
  18. Dever::alert('部门已存在');
  19. }
  20. }
  21. }
  22. public function updateBranch($id,$name,$data)
  23. {
  24. // Dever::config('base')->hook = true;
  25. $group = Dever::param('group',$data);
  26. if($group) {
  27. $where['where_id'] = $id;
  28. $where['group_id'] = $group[0];
  29. Dever::db('work/branch')->update($where);
  30. }
  31. }
  32. public function insertAppoint($id,$name,$data)
  33. {
  34. $admin = Dever::load("manage/auth.info");
  35. $info_id = Dever::param('info_id',$data);
  36. if ($info_id) {
  37. $info = Dever::db('work/info')->find($info_id);
  38. if ($info['appoint_id'] != $admin['id'] && $admin['id'] != $info['audit_admin']) {
  39. Dever::alert('reload');
  40. }
  41. if ($info['status']>=3){
  42. Dever::alert('reload');
  43. }
  44. }
  45. }
  46. public function updateAppoint($id,$name,$data)
  47. {
  48. Dever::config('base')->hook = true;
  49. $info_id = Dever::param('info_id',$data);
  50. $branch = Dever::param('admin_id',$data);
  51. if ($info_id ) {
  52. $info = Dever::db('work/info')->find($info_id);
  53. $admin = Dever::load('manage/auth.info');
  54. $admin_id = $info['audit_admin'];
  55. if ($info['audit_admin'] != $admin['id']) {
  56. $admin_id = $admin['id'];
  57. }
  58. if($info) {
  59. if ($branch) {
  60. $i['where_id'] = $info['id'];
  61. if ($info['group']) {
  62. $group = $info['group'].',';
  63. } else {
  64. $group = $branch[0];
  65. }
  66. if (isset($branch[1]) && $branch[1]) {
  67. $i['appoint_id'] = $branch[1];
  68. }
  69. $i['group'] = $group;
  70. $i['zdate'] = time();
  71. $i['chdate'] = time();
  72. $i['status'] = 2;
  73. if ($i) {
  74. Dever::db('work/info')->update($i);
  75. }
  76. }
  77. $w['info_id'] = $info['id'];
  78. $w['admin_id'] = $admin_id;
  79. $w['appoint_id'] = $id;
  80. Dever::db('work/info_log')->insert($w);
  81. }
  82. if ($branch) {
  83. // $data = Dever::db('work/branch')->find(array('group_id'=>$branch[0]));
  84. // if ($data) {
  85. // $where['where_id'] = $data['id'];
  86. // $where['num'] = $data['num'] +1;
  87. // Dever::db('work/branch')->update($where);
  88. // }
  89. $wh['where_id'] = $id;
  90. $wh['group'] = $branch[0];
  91. Dever::db('work/appoint')->update($wh);
  92. }
  93. }
  94. }
  95. #指派人
  96. private $default = array
  97. (
  98. 'value' => -1,
  99. 'name' => '不选择',
  100. );
  101. private $search_default = array
  102. (
  103. 'value' => -1,
  104. 'name' => '部门',
  105. );
  106. public function get_api()
  107. {
  108. # 联动总数,默认到部门
  109. $level_total = Dever::input('level_total', 1);
  110. # 当前联动级别
  111. $level_num = Dever::input('level_num');
  112. # 一般为id
  113. $level_id = Dever::input('level_id');
  114. # 是否是搜索列表页
  115. $level_search = Dever::input('level_search');
  116. if ($level_search) {
  117. $default = $this->search_default;
  118. if ($level_num == 1) {
  119. $default['name'] = '部门选择';
  120. } elseif ($level_num == 2) {
  121. $default['name'] = '组员选择';
  122. }
  123. } else {
  124. // echo 11;
  125. $default = $this->default;
  126. }
  127. // if ($level_id < 0) {
  128. // Dever::alert('error');
  129. // }
  130. if ($level_num == 1) {
  131. $data = $this->group();
  132. } elseif ($level_num == 2) {
  133. $data = $this->group_admin($level_id);
  134. }
  135. if (!$data) {
  136. Dever::alert('error');
  137. }
  138. if ($level_search || $level_num >= 1) {
  139. array_unshift($data, $default);
  140. }
  141. if ($level_num == 2) {
  142. unset($data[0]);
  143. }
  144. $result['level_total'] = $level_total;
  145. $result['list'] = $data;
  146. return $result;
  147. }
  148. public function group(){
  149. $data = Dever::load('manage/company')->getGroup();
  150. foreach ($data as $k => $v) {
  151. $data[$k]['value'] = $v['id'];
  152. }
  153. return $data;
  154. }
  155. public function group_admin($level_id){
  156. $data = Dever::load('manage/company')->getAdmin($level_id);
  157. foreach ($data as $k => $v) {
  158. foreach ($v as $k1 => $v1) {
  159. $data[$k]['value'] = $v['id'];
  160. $data[$k]['name'] = $v['username'];
  161. }
  162. }
  163. return $data;
  164. }
  165. #问题
  166. private $cdefault = array
  167. (
  168. 'value' => -1,
  169. 'name' => '不选择',
  170. );
  171. private $search_cdefault = array
  172. (
  173. 'value' => -1,
  174. 'name' => '问题类型描述',
  175. );
  176. #问题类型联动
  177. public function getCate_api()
  178. {
  179. # 联动总数,默认到部门
  180. $level_total = Dever::input('level_total', 1);
  181. # 当前联动级别
  182. $level_num = Dever::input('level_num');
  183. # 一般为id
  184. $level_id = Dever::input('level_id');
  185. # 是否是搜索列表页
  186. $level_search = Dever::input('level_search');
  187. if ($level_search) {
  188. $default = $this->search_cdefault;
  189. if ($level_num == 1) {
  190. $default['name'] = '问题分类名称';
  191. } elseif ($level_num == 2) {
  192. $default['name'] = '问题类型描述';
  193. }
  194. } else {
  195. $default = $this->cdefault;
  196. }
  197. // if ($level_id < 0) {
  198. // Dever::alert('error');
  199. // }
  200. if ($level_num == 1) {
  201. $data = Dever::db('work/q_cate')->getSearchAll();
  202. } elseif ($level_num == 2) {
  203. $data = Dever::db('work/question')->getSearchAll(array('cate_id'=>$level_id));
  204. }
  205. if (!$data) {
  206. Dever::alert('error');
  207. }
  208. if ($level_search || $level_num >= 1) {
  209. array_unshift($data, $default);
  210. }
  211. $result['level_total'] = $level_total;
  212. $result['list'] = $data;
  213. return $result;
  214. }
  215. public function show_api()
  216. {
  217. $info_id = Dever::input('id');
  218. $data['info'] = Dever::db('work/info')->find($info_id);
  219. $ztime = $data['info']['cdate'];
  220. $data['info']['cdate'] = date('Y-m-d H:i',$data['info']['cdate']);
  221. $priority = Dever::db('work/priority')->find($data['info']['priority_id']);
  222. $data['info']['priority_name'] = $priority['name'];
  223. $data['info']['color'] = $priority['color'];
  224. $admin = Dever::db('manage/admin')->find($data['info']['audit_admin']);
  225. $admin['group'] = explode(',',$admin['group']);
  226. foreach ($admin['group'] as $k => $v) {
  227. $group = Dever::db('manage/group')->find(array('company_id'=>$data['info']['company_id'],'id'=>$v));
  228. }
  229. $data['info']['admin'] = $group['name'].' / '.$admin['username'];
  230. if ($data['info']['source']) {
  231. $source = Dever::db('work/q_source')->find($data['info']['source']);
  232. if ($source) {
  233. $data['info']['source_name'] = $source['name'];
  234. }
  235. }
  236. if ($data['info']['branch_id']) {
  237. $branch_id = explode(',',$data['info']['branch_id']);
  238. if (isset($branch_id[0]) && $branch_id[0]>0) {
  239. $group = Dever::db('manage/group')->find($branch_id[0]);
  240. $data['info']['branch_name'] = '指派人:'.$group['name'];
  241. }
  242. if (isset($branch_id[1]) && $branch_id[1]>0) {
  243. $admin = Dever::db('manage/admin')->find($branch_id[0]);
  244. $data['info']['branch_name'] = $data['info']['branch_name'].' / '.$admin['username'];
  245. }
  246. }
  247. $data['info']['role_name'] = '';
  248. $user = Dever::db('work/user')->find(array('mobile'=>$data['info']['mobile']));
  249. if ($user) {
  250. $data['info']['user_name'] = $user['name'];
  251. $data['info']['mobile'] = $user['mobile'];
  252. $data['info']['idcard'] = $user['idcard'];
  253. if ($user['agent_uid'] && $user['agent_uid']>0) {
  254. $member = Dever::db('agent/member')->find($user['agent_uid']);
  255. if ($member && $member['role']) {
  256. $role = Dever::db('setting/role')->find($member['role']);
  257. if ($role) {
  258. $data['info']['role_name'] = $role['name'];
  259. }
  260. }
  261. }
  262. }
  263. $data['info']['cate_name'] = '';
  264. $data['info']['product_name'] = '';
  265. $data['info']['question_name'] ='';
  266. if ($data['info']['cate_id']) {
  267. $cate_id = explode(',',$data['info']['cate_id']);
  268. if (isset($cate_id[0]) && $cate_id[0]) {
  269. $cate = Dever::db('work/q_cate')->find($cate_id[0]);
  270. if ($cate) {
  271. $data['info']['cate_name'] = $cate['name'];
  272. }
  273. } else {
  274. $cate = array();
  275. }
  276. if (isset($cate_id[1]) && $cate_id[1]) {
  277. $question = Dever::db('work/question')->find($cate_id[1]);
  278. if ($question) {
  279. $product = Dever::db('work/product')->find($question['product_id']);
  280. if ($product) {
  281. $data['info']['product_name'] = $product['name'];
  282. }
  283. $data['info']['question_name'] = $question['name'];
  284. }
  285. } else {
  286. $question = array();
  287. }
  288. if ($data['info']['cate_name'] && $data['info']['product_name']) {
  289. $data['info']['cate_name'] = $data['info']['cate_name'].' / '.$data['info']['product_name'];
  290. }
  291. }
  292. if ($data['info']['pic']) {
  293. $data['info']['pic'] = explode(',',$data['info']['pic']);
  294. }
  295. $data['info_log'] = Dever::db('work/info_log')->getAll(array('info_id'=>$info_id));
  296. foreach ($data['info_log'] as $k => $v) {
  297. $data['info_log'][$k]['cdate'] = date('Y-m-d H:i:s',$v['cdate']);
  298. $admin = Dever::db('manage/admin')->find($v['admin_id']);
  299. $admin_group = Dever::db('manage/group')->find($admin['group']);
  300. $data['info_log'][$k]['admin_group'] = $admin_group['name'].' / '.$admin['username'];
  301. $appoint = Dever::db('work/appoint')->find($v['appoint_id']);
  302. if (isset($appoint) && $appoint) {
  303. $data['info_log'][$k]['desc'] = $appoint['desc'];
  304. $appoint_admin = explode(',',$appoint['admin_id']);
  305. if (isset($appoint_admin[0])) {
  306. $appoint_group = Dever::db('manage/group')->find($appoint_admin[0]);
  307. } else {
  308. $appoint_group = array();
  309. }
  310. if (isset($appoint_admin[1]) && $appoint_admin[1]) {
  311. $appoint_ad = Dever::db('manage/admin')->find($appoint_admin[1]);
  312. } else {
  313. $appoint_ad = array();
  314. }
  315. if ($appoint_group && $appoint_ad) {
  316. $data['info_log'][$k]['appoint_admin'] = '指派人:'. $appoint_group['name'].' / '.$appoint_ad['username'];
  317. }
  318. }
  319. $data['info_log'][$k]['image'] = '';
  320. if ($appoint['video']) {
  321. $data['info_log'][$k]['video'] = $appoint['video'];
  322. }
  323. if ($appoint['pic']) {
  324. $data['info_log'][$k]['pic'] = explode(',',$appoint['pic']);
  325. }
  326. }
  327. $data['s_zhi'] = array();
  328. $data['s_zhi']['cdate'] = date('Y-m-d H:i',time());
  329. $data['zhi'] = Dever::db('work/appoint')->getAll(array('info_id'=>$info_id));
  330. foreach ($data['zhi'] as $k => $v) {
  331. $time = $v['cdate'] - $ztime;
  332. $data['zhi'][$k]['time'] = floor($time%86400/3600).'小时'.floor($time%3600/60).'分钟'.floor($time%60).'秒';
  333. $admin = explode(',',$v['admin_id']);
  334. if (isset($admin[0]) && $admin[0]) {
  335. $group = Dever::db('manage/group')->find($admin[0]);
  336. } else {
  337. $group = array();
  338. }
  339. if (isset($admin[1]) && $admin[1]) {
  340. $adm = Dever::db('manage/admin')->find($admin[1]);
  341. } else {
  342. $adm = array();
  343. }
  344. if ($group && $admin) {
  345. $data['zhi'][$k]['admin'] = $group['name'].' / '.$adm['username'];
  346. } else {
  347. $data['zhi'][$k]['admin'] = '';
  348. }
  349. $data['zhi'][$k]['cdate'] = date('Y-m-d H:i',$v['cdate']);
  350. $info_log = Dever::db('work/info_log')->find(array('appoint_id'=>$v['id']));
  351. if ($info_log && $info_log['fdate']) {
  352. $data['zhi'][$k]['finish'] = '完成关闭';
  353. $data['zhi'][$k]['time'] ='';
  354. } else {
  355. if ($info_log && $info_log['cloce_date']) {
  356. $data['zhi'][$k]['finish'] = '取消关闭';
  357. $data['zhi'][$k]['time'] ='';
  358. } else {
  359. $data['zhi'][$k]['finish'] = '';
  360. $data['zhi'][$k]['time'] = floor($time%86400/3600).'小时'.floor($time%3600/60).'分钟'.floor($time%60).'秒';
  361. }
  362. }
  363. }
  364. if ($data['info']['status'] < 3) {
  365. $data['hui'] = Dever::url('project/database/update?project=work&table=appoint&search_option_info_id='.$info_id, 'manage');
  366. }
  367. return Dever::render('index', $data);
  368. }
  369. public function back_api(){
  370. $mobile = Dever::input('mobile');
  371. $data = array();
  372. if ($mobile) {
  373. if(!preg_match('/^1[3|5|6|7|8|9]\d{9}$/', $mobile)){
  374. // Dever::alert('代理商手机号不正确');
  375. return '代理商手机号不正确';
  376. }
  377. $user = Dever::db('work/user')->find(array('mobile'=>$mobile));
  378. if (!$user) {
  379. $data['user']['mobile'] = $mobile;
  380. $data['user']['type'] = '无系统关联关系';
  381. $data['user']['work'] = Dever::url('project/database/update?project=work&table=info&menu=work&search_option_mobile='.$mobile, 'manage');
  382. // print_R($data);die;
  383. return Dever::render('back', $data);
  384. }
  385. if ($user){
  386. $table = array();
  387. $user['role_name'] = '';
  388. $user['type'] = '';
  389. if ($user['agent_uid'] && $user['agent_uid'] > 0) {
  390. $member = Dever::db('agent/member')->find($user['agent_uid']);
  391. if ($member['role']) {
  392. $role = Dever::db('setting/role')->find($member['role']);
  393. if ($role) {
  394. $user['role_name'] = $role['name'];
  395. }
  396. }
  397. $user['type'] = '代理商';
  398. if ($user['option_uid'] && $user['option_uid']>0) {
  399. $user['type'] = $user['type'].'<br/>期权账户';
  400. }
  401. if ($user['passport_uid'] && $user['passport_uid']>0) {
  402. $user['type'] = $user['type'].'<br/>小程序';
  403. }
  404. $user['type'] = $user['type'].'<br/>客服系统用户';
  405. } else {
  406. if ($user['option_uid'] && $user['option_uid']>0) {
  407. $user['type'] = '期权账户';
  408. if ($user['passport_uid'] && $user['passport_uid']>0) {
  409. $user['type'] = $user['type'].'<br/>小程序';
  410. }
  411. $user['type'] = $user['type'].'<br/>客服系统用户';
  412. } else {
  413. if ($user['passport_uid'] && $user['passport_uid']>0) {
  414. $user['type'] = '小程序';
  415. $user['type'] = $user['type'].'<br/>客服系统用户';
  416. } else {
  417. $user['type'] = '客服系统用户';
  418. // $user['type'] = '无系统关联关系';
  419. }
  420. }
  421. }
  422. if ($user['agent_uid']) {
  423. $user['order'] = Dever::url('project/database/list?project=agent&table=order&p=1&search_option_mid='.$user['agent_uid'], 'manage');
  424. $user['agent'] = Dever::url('project/database/list?project=agent&table=member_area&mid='.$user['agent_uid'].'&page_type=1&search_auth=1&page_type=1&jump=19','manage');
  425. $user['soft'] = Dever::url('project/database/list?project=agent&table=soft_cash&search_option_mid='.$user['agent_uid'], 'manage');
  426. }
  427. if ($user['option_uid']) {
  428. $user['option'] = Dever::url('project/database/list?project=option&table=member&search_option_id='.$user['option_uid'], 'manage');
  429. }
  430. $user['work'] = Dever::url('project/database/update?project=work&table=info&menu=work&search_option_mobile='.$mobile, 'manage');
  431. $data['user'] = $user;
  432. $data['info'] = Dever::db('work/info')->getHAll(array('mobile'=>$mobile));
  433. $config = Dever::db('work/info')->config['config_status'];
  434. foreach($data['info'] as $k => $v) {
  435. $data['info'][$k]['cdate'] = date('Y-m-d H:i',$v['cdate']);
  436. $data['info'][$k]['fdate'] = date('Y-m-d H:i',$v['fdate']);
  437. $cate = Dever::db('work/q_cate')->find(array('id'=>$v['cate_id']));
  438. $data['info'][$k]['cate_name'] = $cate['name'];
  439. $you = Dever::db('work/priority')->find(array('id'=>$v['priority_id']));
  440. $data['info'][$k]['you'] = $you['name'];
  441. $v['branch_id'] = explode(',',$v['branch_id']);
  442. if (isset($v['branch_id'][0]) && $v['branch_id'][0]>0){
  443. $group = Dever::db('manage/group')->find(array('id'=>$v['branch_id'][0],'company_id'=>$v['company_id']));
  444. $data['info'][$k]['branch'] = $group['name'];
  445. }
  446. if (isset($v['branch_id'][1]) && $v['branch_id'][1]>0){
  447. $admin = Dever::db('manage/admin')->find(array('id'=>$v['branch_id'][1]));
  448. $data['info'][$k]['branch'] = $group['name'].'/'.$admin['username'];
  449. }
  450. $data['info'][$k]['status'] = Dever::status($config,$v['status']);
  451. $data['info'][$k]['url'] = Dever::url('lib/appoint.show&id='.$v['id'],'work');
  452. if ($v['status']<3) {
  453. $data['info'][$k]['zhipai'] = Dever::url('project/database/update?project=work&table=appoint&search_option_info_id='.$v['id'], 'manage');
  454. } else {
  455. $data['info'][$k]['zhipai'] = '';
  456. }
  457. }
  458. }
  459. $data['page'] = Dever::page("current");
  460. }
  461. return Dever::render('back', $data);
  462. }
  463. }