Manage.php 9.8 KB

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