Worker.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. <?php
  2. namespace app\mainapp\controller;
  3. use app\mainapp\BaseController;
  4. use think\facade\Session;
  5. use app\common\model\Slide as SlideModel;
  6. use app\common\model\User as UserModel;
  7. use app\common\model\UserIntegral as UserIntegralModel;
  8. use app\common\model\Worker as WorkerModel;
  9. use app\common\model\Agent as AgentModel;
  10. use app\common\model\Comjobs as ComjobsModel;
  11. use app\common\model\Demand as DemandModel;
  12. use app\common\model\Supply as SupplyModel;
  13. use app\common\model\UserParam as UserParamModel;
  14. use app\common\model\Param as ParamModel;
  15. use app\common\model\WorkerForm as WorkerFormModel;
  16. use app\common\model\WorkerShareCate as WorkerShareCateModel;
  17. use app\common\model\WorkerShare as WorkerShareModel;
  18. use think\facade\Config;
  19. use app\common\model\WorkerLog as WorkerLogModel;
  20. use echowx\WxProgram;
  21. class Worker extends BaseController
  22. {
  23. // 获客海报
  24. public function pageWshare()
  25. {
  26. $catelist = WorkerShareCateModel::where(['status'=>1])->order(['priority'=>'desc','id'=>'desc'])->limit(100)->select()->toArray();
  27. array_unshift( $catelist, array('id'=>0,'title'=>'全部') );
  28. page_result(0, "", array(
  29. 'catelist' => $catelist
  30. ));
  31. }
  32. public function listWshare()
  33. {
  34. $ppage = input('ppage/d', 1);
  35. $psize = input('psize/d', 20);
  36. $map = array();
  37. $cateid = input('cateid/d', 0);
  38. if ($cateid!=0){
  39. $map[] = ['cateid', '=', $cateid];
  40. }
  41. $plist = WorkerShareModel::where($map)->order(['priority'=>'desc','id'=>'desc'])->page($ppage)->limit($psize)->select();
  42. page_result(0, "", array(
  43. 'plist' => $plist,
  44. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  45. ));
  46. }
  47. public function getWorkerImage()
  48. {
  49. $workerid = input('workerid/d', 0);
  50. $shareid = input('shareid/d',0);
  51. $userid = input('userid/d',0);
  52. $share = WorkerShareModel::findOrEmpty($shareid);
  53. $user = UserModel::findOrEmpty($userid);
  54. $worker = WorkerModel::findOrEmpty($workerid);
  55. if ($share->isEmpty() || $user->isEmpty() || $worker->isEmpty()){
  56. page_result(1, "企业、海报或用户信息不存在");
  57. }
  58. $filename = $workerid."_".$userid."_".md5(time()).".jpg";
  59. $dst_workerpic = root_path("public/attachment/shoppic").$filename;
  60. $url_workerpic = request()->domain()."/attachment/shoppic/".$filename;
  61. image_copy_image($share->tilpic, $worker->tilpic, 10,590,70,70,$dst_workerpic);
  62. $wxprogram = new WxProgram();
  63. $workerpic = $wxprogram->wxacode_get_unlimited($workerid."&".$userid, "pages/worker/shop", 430, "attachment/shoppic/".md5(time()).".jpg");
  64. image_copy_image($url_workerpic, $workerpic, 320,555,120,120,$dst_workerpic);
  65. $font = root_path("public/static/images")."msyh.ttf";
  66. $ftitle = subtext($worker->ftitle, 7);
  67. image_copy_text($dst_workerpic, $ftitle, $font, 14, 0, 90, 615, 0x00, 0x00, 0x00);
  68. $texttil = input('texttil/s', "");
  69. if (!empty($texttil)){
  70. $texttil = subtext($texttil, 12);
  71. image_copy_text($dst_workerpic, $texttil, $font, 12, 0, 90, 650, 0x33, 0x33, 0x33);
  72. }
  73. image_copy_text($dst_workerpic, "扫码查看好工作", $font, 10, 0, 335, 690, 0x33, 0x33, 0x33);
  74. page_result(0, "", array(
  75. 'workerpic' => $url_workerpic
  76. ));
  77. }
  78. // 嵌入公众号
  79. public function pageMpaccount()
  80. {
  81. $param = ParamModel::where(1)->find();
  82. page_result(0, "", array(
  83. 'param' => $param,
  84. 'appid' => Config::get('wxconfig.appId')
  85. ));
  86. }
  87. // 申请代理门店
  88. public function pageForm()
  89. {
  90. $param = ParamModel::where(1)->find();
  91. page_result(0, "", array(
  92. 'param' => $param
  93. ));
  94. }
  95. public function addWorker()
  96. {
  97. $comname = input('comname/s', "");
  98. $address = input('address/s', "");
  99. $details = input('details/s', "");
  100. $realname = input('realname/s', "");
  101. $mobile = input('mobile/s', "");
  102. $comjobs = input('comjobs/s', "");
  103. if ( empty($comname) || empty($address) || empty($details) || empty($realname) || empty($mobile) || empty($comjobs) ){
  104. page_result(1, "名称、地址、简介、姓名、手机号、岗位信息均不能为空。");
  105. }
  106. $form = new WorkerFormModel;
  107. $form->save([
  108. 'workerid' => input('workerid/d', 0),
  109. 'comname' => $comname,
  110. 'address' => $address,
  111. 'details' => $details,
  112. 'realname' => $realname,
  113. 'mobile' => $mobile,
  114. 'comjobs' => $comjobs,
  115. 'status' => 1,
  116. 'remark' => "",
  117. 'createtime' => time()
  118. ]);
  119. page_result(0, "", array());
  120. }
  121. // 微店信息
  122. public function getShopCode()
  123. {
  124. $workerid = input('workerid/d',0);
  125. $parentid = input('parentid/d',0);
  126. $wxprogram = new WxProgram();
  127. $shopcode = $wxprogram->wxacode_get_unlimited($workerid."&".$parentid, "pages/worker/shop", 430, "attachment/shoppic/".md5(time()).".jpg");
  128. page_result(0, "", array(
  129. 'shopcode' => $shopcode
  130. ));
  131. }
  132. public function pageShop()
  133. {
  134. $workerid = input('workerid/d', 0);
  135. $shopworker = WorkerModel::where(['id'=>$workerid])->findOrEmpty();
  136. if ( $shopworker->isEmpty() ){
  137. page_result(1, "用户或公司信息不存在。");
  138. }
  139. $countarr['comjobs'] = ComjobsModel::where('workerid', '=', $workerid)->where('status', 'in', '3,4')->count();
  140. $countarr['demand'] = DemandModel::where('workerid', '=', $workerid)->where('status', 'in', '3,4')->count();
  141. $countarr['supply'] = SupplyModel::where('workerid', '=', $workerid)->where('status', 'in', '3,4')->count();
  142. $userid = input('userid/d', 0);
  143. $workerlog = WorkerLogModel::where(['workerid'=>$workerid,'userid'=>$userid])->whereDay('createtime')->findOrEmpty();
  144. if ($workerlog->isEmpty()){
  145. WorkerLogModel::create([
  146. 'workerid' => $workerid,
  147. 'userid' => $userid,
  148. 'ltotal' => 1,
  149. 'createtime' => date("Y-m-d")
  150. ]);
  151. }else{
  152. $workerlog->inc('ltotal', 1)->update();
  153. }
  154. page_result(0, "", array(
  155. 'shopworker' => $shopworker,
  156. 'countarr' => $countarr
  157. ));
  158. }
  159. public function shopComjobs()
  160. {
  161. $ppage = input('ppage/d', 1);
  162. $psize = input('psize/d', 20);
  163. $map = array();
  164. $map[] = ['createtime','<=',time()];
  165. $map[] = ['status','in','3,4'];
  166. $workerid = input('workerid/d', 0);
  167. $map[] = ['workerid', '=', $workerid];
  168. $plist = ComjobsModel::with(['comjobsCate'])->where($map)->order(['status'=>'asc','updatetime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->select();
  169. page_result(0, "", array(
  170. 'plist' => $plist,
  171. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  172. ));
  173. }
  174. public function shopDemand()
  175. {
  176. $ppage = input('ppage/d', 1);
  177. $psize = input('psize/d', 20);
  178. $map = array();
  179. $map[] = ['createtime','<=',time()];
  180. $map[] = ['status','in','3,4'];
  181. $workerid = input('workerid/d', 0);
  182. $map[] = ['workerid', '=', $workerid];
  183. $plist = DemandModel::with(['demandCate'])->where($map)->order(['status'=>'asc','updatetime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->append(['ftype_text'])->select();
  184. page_result(0, "", array(
  185. 'plist' => $plist,
  186. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  187. ));
  188. }
  189. public function shopSupply()
  190. {
  191. $ppage = input('ppage/d', 1);
  192. $psize = input('psize/d', 20);
  193. $map = array();
  194. $map[] = ['createtime','<=',time()];
  195. $map[] = ['status','in','3,4'];
  196. $workerid = input('workerid/d', 0);
  197. $map[] = ['workerid', '=', $workerid];
  198. $plist = SupplyModel::where($map)->order(['status'=>'asc','updatetime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->select();
  199. foreach($plist as $key=>$row){
  200. $plist[$key]->updatetime_text = tranTime(strtotime($row->updatetime));
  201. }
  202. page_result(0, "", array(
  203. 'plist' => $plist,
  204. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  205. ));
  206. }
  207. // 数据信息
  208. public function pageWorker()
  209. {
  210. $userid = input('userid/d', 0);
  211. $workerid = input('workerid/d', 0);
  212. $countobj = array();
  213. $param = ParamModel::where(1)->findOrEmpty();
  214. $countobj[1] = WorkerLogModel::where('workerid', '=', $workerid)->whereDay('createtime', 'yesterday')->sum('ltotal');
  215. $countobj[1] = $countobj[1] + $param->defviewtol;
  216. $countobj[2] = WorkerLogModel::where('workerid', '=', $workerid)->whereDay('createtime')->sum('ltotal');
  217. $countobj[2] = $countobj[2] + $param->defviewtol;
  218. $countobj[3] = WorkerLogModel::where('workerid', '=', $workerid)->group('userid')->count();
  219. $slide = SlideModel::where('pagetab','=','worker')->order(['priority'=>'desc','id'=>'desc'])->limit(10)->select();
  220. $userparam = UserParamModel::where(1)->find();
  221. $workerintegral = UserIntegralModel::where(['userid'=>$userid, 'onlycontent'=>'RegWorker'.$workerid])->findOrEmpty();
  222. $intregworker = 0;
  223. if ($workerintegral->isEmpty() && $userparam->intregworker>0){
  224. $intregworker = $userparam->intregworker;
  225. }
  226. $workerinfo = WorkerModel::where('id','=',$workerid)->findOrEmpty();
  227. page_result(0, "", array(
  228. 'countobj' => $countobj,
  229. 'slide' => $slide,
  230. 'picregworker' => $userparam->picregworker,
  231. 'intregworker' => $intregworker,
  232. 'workerinfo' => $workerinfo
  233. ));
  234. }
  235. public function getWorkerIntegral()
  236. {
  237. $userid = input('userid/d', 0);
  238. $user = UserModel::findOrEmpty($userid);
  239. $workerid = input('workerid/d', 0);
  240. $worker = WorkerModel::where(['id'=>$workerid])->findOrEmpty();
  241. $workerintegral = UserIntegralModel::where(['userid'=>$userid, 'onlycontent'=>'RegWorker'.$workerid])->findOrEmpty();
  242. if (!$workerintegral->isEmpty()){
  243. page_result(1, "你注册的该公司信息已领取过奖励聘豆,请不要重复领取。");
  244. }
  245. $userparam = UserParamModel::where(1)->find();
  246. if ($userparam->intregworker<=0){
  247. page_result(1, "奖励聘豆值不能小于等于0。");
  248. }
  249. $data = array(
  250. 'userid' => $userid,
  251. 'title' => $worker->title."劳务公司注册奖励",
  252. 'intvalue' => $userparam->intregworker,
  253. 'intmoney' => input('intmoney/s', 0.00),
  254. 'onlycontent' => 'RegWorker'.$workerid,
  255. 'remark' => $worker->title."注册",
  256. 'itype' => 8,
  257. 'status' => 2,
  258. 'createtime' => date('Y-m-d H:i:s'),
  259. 'yeartime' => date("Y"),
  260. 'monthtime' => date("Ym")
  261. );
  262. UserIntegralModel::create($data);
  263. $user->save([
  264. 'integral' => intval($user->integral) + intval($userparam->intregworker),
  265. 'inttotal' => intval($user->inttotal) + intval($userparam->intregworker)
  266. ]);
  267. page_result(0, "", array( ));
  268. }
  269. public function listWorker()
  270. {
  271. $ppage = input('ppage/d', 1);
  272. $psize = input('psize/d', 20);
  273. $map = array();
  274. $map[] = ['createtime','<=',time()];
  275. $map[] = ['status','in','4,5'];
  276. $searchval = input('searchval/s', "");
  277. if (!empty($searchval)){
  278. $map[] =['title|ftitle', 'like', '%'.$searchval.'%'];
  279. }
  280. $wtype = input('wtype/s', "");
  281. if (!empty($wtype)){
  282. $map[] = ['wtype', 'IN', $wtype];
  283. }
  284. $orderby = array('status'=>'asc', 'createtime'=>'desc', 'id'=>'desc');
  285. $plist = WorkerModel::where($map)->order($orderby)->page($ppage)->limit($psize)->append(['wtype_text'])->select();
  286. page_result(0, "", array(
  287. 'plist' => $plist,
  288. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  289. ));
  290. }
  291. //根据会员id获得会员信息
  292. public function getUserinfoByUserid()
  293. {
  294. $userid = input('userid/d', 0);
  295. $userinfo=UserModel::where(["id"=>$userid])->findOrEmpty()->toArray();
  296. if($userinfo){
  297. page_result(0, "", array(
  298. 'userinfo' => $userinfo
  299. ));
  300. }else{
  301. page_result(1, "会员信息不存在", "");
  302. }
  303. }
  304. public function updateWorker()
  305. {
  306. $id = input('id/d', 0);
  307. $userid = input('userid/d', 0);
  308. $worker = WorkerModel::where(['userid'=>$userid])->findOrEmpty($id);
  309. if ( $worker->isEmpty() ){
  310. page_result(1, "公司信息不存在。");
  311. }
  312. if ( $worker->wtype==2 ){
  313. page_result(1, "已是派遣公司类型,无须再升级。");
  314. }
  315. $picone = input('picone/s', "");
  316. $pictwo = input('pictwo/s', "");
  317. $picthr = input('picthr/s', "");
  318. if ( empty($picone) || empty($pictwo) || empty($picthr) ){
  319. page_result(1, "相关证件不能为空。");
  320. }
  321. $worker->save([
  322. 'picone' => $picone,
  323. 'pictwo' => $pictwo,
  324. 'picthr' => $picthr,
  325. 'status' => 4
  326. ]);
  327. page_result(0, "", array(
  328. 'worker' => $worker
  329. ));
  330. }
  331. public function editWorker()
  332. {
  333. $id = input('id/d', 0);
  334. $userid = input('userid/d', 0);
  335. $worker = WorkerModel::where(['userid'=>$userid])->findOrEmpty($id);
  336. if ( $worker->isEmpty() ){
  337. page_result(1, "公司信息不存在。");
  338. }
  339. $wtype = input('wtype/d', 1);
  340. $realname = input('realname/s', "");
  341. $mobile = input('mobile/s', "");
  342. $province = input('province/s', "");
  343. $address = input('address/s', "");
  344. if ( empty($realname) || empty($mobile) || empty($province) || empty($address) ){
  345. page_result(1, "公司名称,微店名称,姓名手机号,地址信息不能为空。");
  346. }
  347. $data = [
  348. 'userid' => $userid,
  349. 'tilpic' => input('tilpic/s', ""),
  350. 'realname' => input('realname/s', ""),
  351. 'mobile' => input('mobile/s', ""),
  352. 'weixin' => input('weixin/s', ""),
  353. 'province' => input('province/s', ""),
  354. 'city' => input('city/s', ""),
  355. 'district' => input('district/s', ""),
  356. 'address' => input('address/s', ""),
  357. 'details' => input('details/s', "")
  358. ];
  359. $worker->save($data);
  360. page_result(0, "", array(
  361. 'worker' => $worker
  362. ));
  363. }
  364. }