Worker.php 13 KB

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