Broker.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. <?php
  2. namespace app\mainapp\controller;
  3. use app\mainapp\BaseController;
  4. use think\facade\Session;
  5. use app\common\model\Param as ParamModel;
  6. use app\common\model\User as UserModel;
  7. use app\common\model\UserFollow as UserFollowModel;
  8. use app\common\model\UserPart as UserPartModel;
  9. use app\common\model\Agent as AgentModel;
  10. use app\common\model\Broker as BrokerModel;
  11. use app\common\model\BrokerForm as BrokerFormModel;
  12. use app\common\model\ReportEntry as ReportEntryModel;
  13. use app\common\model\ReportFactory as ReportFactoryModel;
  14. use app\common\model\ReportOrder as ReportOrderModel;
  15. use app\common\model\ReportOrderlog as ReportOrderlogModel;
  16. use echowx\WxProgram;
  17. class Broker extends BaseController
  18. {
  19. public function getListBroker()
  20. {
  21. $ppage = input('ppage/d', 1);
  22. $psize = input('psize/d', 20);
  23. $map = array();
  24. $map[] = ['status','=',1];
  25. $searchval = input('searchval/s', "");
  26. if (!empty($searchval)){
  27. $map[] =['title', 'like', '%'.$searchval.'%'];
  28. }
  29. $district = input('district/s', "");
  30. if (!empty($district)){
  31. $map[] = ['district', '=', $district];
  32. }
  33. $plist = BrokerModel::with(['muser'])->where($map)->order(['id'=>'desc'])->page($ppage)->limit($psize)->select();
  34. page_result(0, "", array(
  35. 'plist' => $plist,
  36. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  37. ));
  38. }
  39. // 申请注册职业顾问
  40. public function pageForm()
  41. {
  42. $param = ParamModel::where(1)->find();
  43. page_result(0, "", array(
  44. 'param' => $param
  45. ));
  46. }
  47. public function regBroker()
  48. {
  49. $realname = input('realname/s', "");
  50. $mobile = input('mobile/s', "");
  51. $address = input('address/s', "");
  52. $idcard = input('idcard/s', "");
  53. $recommender = input('recommender/s', "");
  54. if ( empty($realname) || empty($mobile) || empty($address) || empty($idcard) ){
  55. page_result(1, "姓名、手机号、当前住址、身份证号均不能为空。");
  56. }
  57. $form = new BrokerFormModel;
  58. $form->save([
  59. 'realname' => $realname,
  60. 'mobile' => $mobile,
  61. 'address' => $address,
  62. 'idcard' => $idcard,
  63. 'recommender' => $recommender,
  64. 'status' => 1,
  65. 'remark' => "",
  66. 'createtime' => time()
  67. ]);
  68. page_result(0, "", array());
  69. }
  70. // 报备信息
  71. public function getOrder()
  72. {
  73. $orderid = input('orderid/d',0);
  74. $agentid = input('agentid/d',0);
  75. $order = ReportOrderModel::with(['reportFactory'])->where(['id'=>$orderid])->find();
  76. $orderlog = ReportOrderlogModel::where(['agentid'=>$agentid,'orderid'=>$orderid])->order(['id'=>"DESC"])->select();
  77. ReportOrderlogModel::update(['status' => 2], ['agentid'=>$agentid,'orderid'=>$orderid]);
  78. page_result(0, "", array(
  79. 'order' => $order,
  80. 'orderlog' => $orderlog
  81. ));
  82. }
  83. // 订单信息
  84. public function listOrder()
  85. {
  86. $brokerid = input('brokerid/d',0);
  87. $broker = BrokerModel::findOrEmpty($brokerid);
  88. $agentid = $broker->agentid;
  89. $ppage = input('ppage/d', 1);
  90. $psize = input('psize/d', 20);
  91. $map = array();
  92. $map[] = ['ReportOrder.status', '>', 1];
  93. $plist = ReportOrderModel::hasWhere('reportOrderlog',['agentid'=>$agentid])->with(['reportFactory'])->where($map)->order(['status'=>'ASC','id'=>'DESC'])->page($ppage)->limit($psize)->select()->toArray();
  94. foreach($plist as $key=>$val){
  95. $plist[$key]['log'] = ReportOrderlogModel::where(['agentid'=>$agentid,'orderid'=>$val['id']])->order(['id'=>'DESC'])->findOrEmpty()->toArray();
  96. }
  97. page_result(0, "", array(
  98. 'plist' => $plist,
  99. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  100. ));
  101. }
  102. // 数据信息
  103. public function pageBroker()
  104. {
  105. $brokerid = input('brokerid/d', 0);
  106. $stime = strtotime(date("Y-m-d"),time());
  107. $tuserCount = UserModel::where('brokerid', '=', $brokerid)->where('createtime','between',[$stime,$stime+86400])->count();
  108. $userCount = UserModel::where('brokerid', '=', $brokerid)->count();
  109. $tentryCount = ReportEntryModel::where('brokerid', '=', $brokerid)->where('createtime','between',[$stime,$stime+86400])->count();
  110. $entryCount = ReportEntryModel::where('brokerid', '=', $brokerid)->count();
  111. page_result(0, "", array('countobj' => array(
  112. 'tuser' => $tuserCount,
  113. 'user' => $userCount,
  114. 'tentry' => $tentryCount,
  115. 'entry' => $entryCount
  116. )));
  117. }
  118. // 报备信息
  119. public function getEntry()
  120. {
  121. $entryid = input('entryid/d',0);
  122. $brokerid = input('brokerid/d',0);
  123. $entry = ReportEntryModel::with(['reportFactory'])->where(['brokerid'=>$brokerid,'id'=>$entryid])->find();
  124. $broker = BrokerModel::with('agent')->findOrEmpty($brokerid);
  125. $factorylist = ReportFactoryModel::order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
  126. $factoryidarr = ReportFactoryModel::order(['priority'=>'desc','id'=>'desc'])->column('title');
  127. page_result(0, "", array(
  128. 'entry' => $entry,
  129. 'broker' => $broker,
  130. 'factorylist' => $factorylist,
  131. 'factoryidarr' => array_values($factoryidarr),
  132. 'today' => date("Y-m-d")
  133. ));
  134. }
  135. public function statusEntry()
  136. {
  137. $entryid = input('entryid/d',0);
  138. $brokerid = input('brokerid/d',0);
  139. $entry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->findOrEmpty($entryid);
  140. if ($entry->isEmpty()){
  141. page_result(1, "报备信息不存在。");
  142. }
  143. if ($entry->status > 1){
  144. page_result(1, "报备信息已确认过。");
  145. }
  146. $entry->save(['status'=>2]);
  147. page_result(0, "", array(
  148. 'entry' => $entry
  149. ));
  150. }
  151. public function deleteEntry()
  152. {
  153. $entryid = input('entryid/d',0);
  154. $brokerid = input('brokerid/d',0);
  155. $entry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->findOrEmpty($entryid);
  156. if ($entry->isEmpty()){
  157. page_result(1, "报备信息不存在。");
  158. }
  159. if ($entry->status > 1){
  160. page_result(1, "报备信息已确认过,不能删除。");
  161. }
  162. $entry->delete();
  163. page_result(0, "", array());
  164. }
  165. public function addEntry()
  166. {
  167. $brokerid = input('brokerid/d',0);
  168. $broker = BrokerModel::with('agent')->findOrEmpty($brokerid);
  169. if ($broker->isEmpty()){
  170. page_result(1, "职业顾问信息不存在。");
  171. }
  172. $data = array(
  173. 'workerid' => $broker->workerid,
  174. 'agentid' => $broker->agentid,
  175. 'brokerid' => $brokerid,
  176. 'factoryid' => input('factoryid/d', 0),
  177. 'realname' => input('realname/s', ""),
  178. 'mobile' => input('mobile/s', ""),
  179. 'idcard' => input('idcard/s', ""),
  180. 'gender' => input('gender/s', ""),
  181. 'nation' => input('nation/s', ""),
  182. 'address' => input('address/s', ""),
  183. 'startdate' => input('startdate/s', ""),
  184. 'enddate' => input('enddate/s', ""),
  185. 'reftype' => input('reftype/s', ""),
  186. 'refpolicy' => input('refpolicy/s', ""),
  187. 'agentremark' => input('agentremark/s', ""),
  188. 'status' => input('status/d', ""),
  189. 'remark' => "",
  190. 'createtime' => time()
  191. );
  192. $entry = new ReportEntryModel;
  193. $entry->save($data);
  194. $newentry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->find($entry->id);
  195. page_result(0, "", array(
  196. 'entry' => $newentry
  197. ));
  198. }
  199. public function setIdcard()
  200. {
  201. $picpath = input('picpath/s',"");
  202. $picpath = root_path()."public".$picpath;
  203. $idcard = aliyun_ocr_idcard( $picpath );
  204. if ($idcard==false){
  205. page_result(1, "身份证信息识别失败。");
  206. }
  207. page_result(0, "", array(
  208. 'idcard' => $idcard
  209. ));
  210. }
  211. public function pageEntry()
  212. {
  213. $brokerid = input('brokerid/d',0);
  214. $statuslist = array(
  215. array('value'=>"", 'title'=>'状态不限'),
  216. array('value'=>1, 'title'=>'待确认'),
  217. array('value'=>2, 'title'=>'已确认'),
  218. array('value'=>3, 'title'=>'已入职'),
  219. array('value'=>4, 'title'=>'未通过')
  220. );
  221. $factorylist = ReportFactoryModel::field('id as value, title, priority')->order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
  222. array_unshift($factorylist, array('value'=>"", 'title'=>'工厂不限'));
  223. page_result(0, "", array(
  224. 'statuslist' => $statuslist,
  225. 'factorylist' => $factorylist
  226. ));
  227. }
  228. public function listEntry()
  229. {
  230. $ppage = input('ppage/d', 1);
  231. $psize = input('psize/d', 20);
  232. $map = array();
  233. $brokerid = input('brokerid/d', 0);
  234. $map[] = ['brokerid', '=', $brokerid];
  235. $status = input('status/d', 0);
  236. if (!empty($status)){
  237. $map[] = ['status', '=', $status];
  238. }
  239. $factoryid = input('factoryid/d', 0);
  240. if (!empty($factoryid)){
  241. $map[] = ['factoryid', '=', $factoryid];
  242. }
  243. $searchval = input('searchval/s', "");
  244. if (!empty($searchval)){
  245. $map[] =['realname|mobile', 'like', '%'.$searchval.'%', 'OR'];
  246. }
  247. $plist = ReportEntryModel::with(['reportFactory'])->where($map)->order(['id'=>'desc'])->page($ppage)->limit($psize)->select();
  248. page_result(0, "", array(
  249. 'plist' => $plist,
  250. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  251. ));
  252. }
  253. // 我的邀请
  254. public function getMyuser()
  255. {
  256. $userid = input('userid/d',0);
  257. $brokerid = input('brokerid/d',0);
  258. $user = UserModel::with(['userFollow'])->where('brokerid','=',$brokerid)->findOrEmpty($userid);
  259. if ($user->isEmpty()){
  260. page_result(1, "用户信息不存在");
  261. }
  262. page_result(0, "", array(
  263. 'user' => $user,
  264. ));
  265. }
  266. public function sendFollow()
  267. {
  268. $userid = input('userid/d',0);
  269. $ftype = input('ftype/s',"");
  270. $remark = input('remark/s',"");
  271. if (empty($remark)){
  272. page_result(1, "请输入跟进的具体内容。");
  273. }
  274. $followstatus = input('followstatus/d',1);
  275. UserModel::update(['followstatus'=>$followstatus],['id'=>$userid]);
  276. $data = array(
  277. 'userid' => $userid,
  278. 'ftype' => $ftype,
  279. 'remark' => $remark,
  280. 'createtime' => time()
  281. );
  282. $follow = new UserFollowModel;
  283. $follow->save($data);
  284. $user = UserModel::with(['userFollow'])->findOrEmpty($userid);
  285. page_result(0, "", array(
  286. 'user' => $user,
  287. ));
  288. }
  289. public function listUser()
  290. {
  291. $ppage = input('ppage/d', 1);
  292. $psize = input('psize/d', 20);
  293. $map = array();
  294. $brokerid = input('brokerid/d', 0);
  295. $map[] = ['brokerid', '=', $brokerid];
  296. $followstatus = input('followstatus/d', 0);
  297. if (!empty($followstatus)){
  298. $map[] = ['followstatus', '=', $followstatus];
  299. }
  300. $plist = UserModel::with(['userFollow'])->where($map)->order(['id'=>'desc'])->page($ppage)->limit($psize)->select();
  301. page_result(0, "", array(
  302. 'plist' => $plist,
  303. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  304. ));
  305. }
  306. }