Demand.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  1. <?php
  2. namespace app\mainapp\controller;
  3. use think\facade\Session;
  4. use app\mainapp\BaseController;
  5. use app\common\model\User as UserModel;
  6. use app\common\model\Demand as DemandModel;
  7. use app\common\model\DemandCate as DemandCateModel;
  8. use app\common\model\DemandLog as DemandLogModel;
  9. use app\common\model\Param as ParamModel;
  10. use app\common\model\Worker as WorkerModel;
  11. use app\common\model\WorkerLog as WorkerLogModel;
  12. use app\common\model\UserIntegral as UserIntegralModel;
  13. use echowx\WxProgram;
  14. class Demand extends BaseController
  15. {
  16. // 我接的订单
  17. public function pageDemandLog()
  18. {
  19. page_result(0, "", array( ));
  20. }
  21. public function listDemandLog()
  22. {
  23. $ppage = input('ppage/d', 1);
  24. $psize = input('psize/d', 20);
  25. $gworkerid = input('gworkerid/d', 0);
  26. $map[] = ['gworkerid','=',$gworkerid];
  27. $status = input('status/d', 0);
  28. if (empty($status)){
  29. $plist = DemandLogModel::with(['demand','worker'])->where($map)->order(['createtime'=>'desc','id'=>'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
  30. }else{
  31. $plist = DemandLogModel::hasWhere('demand',['status'=>$status])->with(['demand','worker'])->where($map)->order(['createtime'=>'desc','id'=>'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
  32. }
  33. $plist->append(['demand.ftype_text'])->toArray();
  34. page_result(0, "", array(
  35. 'plist' => $plist,
  36. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  37. ));
  38. }
  39. public function delDemandLog()
  40. {
  41. $gworkerid = input('gworkerid/d', 0);
  42. $logid = input('logid/d', 0);
  43. $demandlog = DemandLogModel::where(['gworkerid'=>$gworkerid])->findOrEmpty($logid);
  44. if ( $demandlog->isEmpty() ){
  45. page_result(1, "接单记录信息不存在。");
  46. }
  47. $demandlog->delete();
  48. page_result(0, "", array());
  49. }
  50. // 招聘总列表
  51. public function pageDemand()
  52. {
  53. $catelist = DemandCateModel::field('id as value, title, priority')->order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
  54. array_unshift( $catelist, array('value'=>0,'title'=>'全部') );
  55. $wtypelist = array(['value'=>0,'title'=>'全部'], ['value'=>1,'title'=>'月薪'], ['value'=>2,'title'=>'日薪'], ['value'=>3,'title'=>'时薪'], ['value'=>4,'title'=>'面议'] );
  56. $ftypelist = array(['value'=>0,'title'=>'全部'], ['value'=>1,'title'=>'一次性'], ['value'=>2,'title'=>'小时工'], ['value'=>3,'title'=>'管理费'], ['value'=>4,'title'=>'其他'] );
  57. $rectypelist = array(['value'=>0,'title'=>'全部'], ['value'=>1,'title'=>'普通订单'], ['value'=>2,'title'=>'无忧单'] );
  58. page_result(0, "", array(
  59. 'catelist' => $catelist,
  60. 'wtypelist' => $wtypelist,
  61. 'rectypelist' => $rectypelist,
  62. 'ftypelist' => $ftypelist,
  63. 'provincelist' => $this->provincelist
  64. ));
  65. }
  66. public function listDemand()
  67. {
  68. $ppage = input('ppage/d', 1);
  69. $psize = input('psize/d', 20);
  70. $map = array();
  71. $map[] = ['createtime','<=',time()];
  72. $map[] = ['status','in','3,4'];
  73. $searchval = input('searchval/s', "");
  74. if (!empty($searchval)){
  75. $map[] =['title', 'like', '%'.$searchval.'%'];
  76. }
  77. $cateid = input('cateid/s', "");
  78. if (!empty($cateid)){
  79. $map[] = ['cateid', 'IN', $cateid];
  80. }
  81. $wtype = input('wtype/d', 0);
  82. if ($wtype!=0){
  83. $map[] = ['wtype', '=', $wtype];
  84. }
  85. $rectype = input('rectype/d', 0);
  86. if ($rectype!=0){
  87. $map[] = ['isfree', '=', $rectype];
  88. }
  89. $ftype = input('ftype/d', 0);
  90. if ($ftype!=0){
  91. $map[] = ['ftype', '=', $ftype];
  92. }
  93. $district = input('district/s', "");
  94. if (!empty($district)){
  95. $map[] = ['district', '=', $district];
  96. }
  97. $orderby = array('status'=>'asc', 'updatetime'=>'desc', 'id'=>'desc');
  98. $plist = DemandModel::with(['worker','demandCate'])->where($map)->order($orderby)->page($ppage)->limit($psize)->append(['ftype_text'])->select();
  99. page_result(0, "", array(
  100. 'plist' => $plist,
  101. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  102. ));
  103. }
  104. // 招聘订单详情
  105. public function getDemand()
  106. {
  107. $demandid = input('demandid/d', 0);
  108. $demand = DemandModel::with(['worker'])->where('status','in','3,4')->where('id','=',$demandid)->append(['ftype_text'])->findOrEmpty();
  109. if ($demand->isEmpty()){
  110. page_result(1, "订单信息不存在。");
  111. }
  112. $demand->inc('volume', 1)->update();
  113. $demandlist = DemandModel::with(['worker','demandCate'])->where(['status'=>3,'workerid'=>$demand->workerid])->where('createtime','<=',time())->order(['updatetime'=>'desc','createtime'=>'desc','id'=>'desc'])->limit(5)->select();
  114. $userid = input('userid/d', 0);
  115. $workerlog = WorkerLogModel::where(['workerid'=>$demand->workerid,'userid'=>$userid])->whereDay('createtime')->findOrEmpty();
  116. if ($workerlog->isEmpty()){
  117. WorkerLogModel::create([
  118. 'workerid' => $demand->workerid,
  119. 'userid' => $userid,
  120. 'ltotal' => 1,
  121. 'createtime' => date("Y-m-d")
  122. ]);
  123. }else{
  124. $workerlog->inc('ltotal', 1)->update();
  125. }
  126. $iscantele = in_array($userid, $demand->telearr);
  127. $param = ParamModel::where(1)->findOrEmpty();
  128. page_result(0, "", array(
  129. 'param' => $param,
  130. 'demand' => $demand,
  131. 'iscantele' => $iscantele,
  132. 'demandlist' => $demandlist
  133. ));
  134. }
  135. // 接单招聘信息
  136. public function delLog()
  137. {
  138. $logid = input('logid/d', 0);
  139. $userid = input('userid/d', 0);
  140. $log = DemandLogModel::where(['id'=>$logid, 'userid'=>$userid])->findOrEmpty();
  141. if ($log->isEmpty()){
  142. page_result(1, "接单记录信息不存在或已被删除。");
  143. }
  144. $log->delete();
  145. page_result(0, "", array());
  146. }
  147. public function listLog()
  148. {
  149. $ppage = input('ppage/d', 1);
  150. $psize = input('psize/d', 20);
  151. $userid = input('userid/d', 0);
  152. $map[] = ['userid','=',$userid];
  153. $plist = DemandLogModel::with(['demand.worker'])->where($map)->order(['createtime'=>'desc','id'=>'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
  154. page_result(0, "", array(
  155. 'plist' => $plist,
  156. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
  157. ));
  158. }
  159. public function setDemandLog()
  160. {
  161. $demandid = input('demandid/d', 0);
  162. $demand = DemandModel::findOrEmpty($demandid);
  163. if ($demand->isEmpty()){
  164. page_result(1, "订单信息不存在");
  165. }
  166. if ( strtotime($demand->enddate)+86400 < time() ){
  167. page_result(1, "该订单信息接单已截止,不能再接单了。");
  168. }
  169. $gworkerid = input('gworkerid/d', 0);
  170. $worker = WorkerModel::findOrEmpty($gworkerid);
  171. if ($worker->isEmpty()){
  172. page_result(1, "劳务企业信息不存在");
  173. }
  174. $log = DemandLogModel::where(['demandid'=>$demandid,'gworkerid'=>$gworkerid])->findOrEmpty();
  175. if ($log->isEmpty()){
  176. $log = new DemandLogModel;
  177. $log->save([
  178. 'workerid' => $demand->workerid,
  179. 'demandid' => $demandid,
  180. 'gworkerid' => $gworkerid,
  181. 'createtime' => time()
  182. ]);
  183. $userid = input('userid/d', 0);
  184. $user = UserModel::where(1)->findOrEmpty($userid);
  185. $param = ParamModel::where(1)->findOrEmpty();
  186. if ($user->integral < $param->teldemand){
  187. page_result(1, "接单&咨询该订单会扣除".$param->teldemand."聘豆,你当前聘豆不足。");
  188. }
  189. $intdata = array(
  190. 'userid' => $userid,
  191. 'title' => "接单&咨询订单信息扣除",
  192. 'intvalue' => 0 - $param->teldemand,
  193. 'intmoney' => 0.00,
  194. 'onlycontent' => "",
  195. 'remark' => $demand->title,
  196. 'itype' => 5,
  197. 'status' => 2,
  198. 'createtime' => date("Y-m-d H:i:s"),
  199. 'yeartime' => date("Y"),
  200. 'monthtime' => date("Ym")
  201. );
  202. UserIntegralModel::create($intdata);
  203. $integral = intval($user->integral) - intval($param->teldemand);
  204. $user->save([
  205. 'integral' => $integral
  206. ]);
  207. $telearr = $demand->telearr;
  208. $telearr[] = $userid;
  209. $demand->save([
  210. 'telearr' => $telearr
  211. ]);
  212. page_result(0, "", array());
  213. }else{
  214. page_result(1, "你已接单过了,无需重复接单。");
  215. }
  216. }
  217. // public function teleDemand()
  218. // {
  219. // $demandid = input('demandid/d', 0);
  220. // $demand = DemandModel::findOrEmpty($demandid);
  221. // if ($demand->isEmpty()){
  222. // page_result(1, "订单信息不存在");
  223. // }
  224. // $userid = input('userid/d', 0);
  225. // if (in_array($userid, $demand->telearr)){
  226. // page_result(0, "", array(
  227. // 'iscantele' => true
  228. // ));
  229. // }
  230. // $user = UserModel::where(1)->findOrEmpty($userid);
  231. // $param = ParamModel::where(1)->findOrEmpty();
  232. // if ($user->integral < $param->teldemand){
  233. // page_result(1, "接单&咨询该订单会扣除".$param->teldemand."聘豆,你当前聘豆不足。");
  234. // }
  235. // $intdata = array(
  236. // 'userid' => $userid,
  237. // 'title' => "接单&咨询订单信息扣除",
  238. // 'intvalue' => 0 - $param->teldemand,
  239. // 'intmoney' => 0.00,
  240. // 'onlycontent' => "",
  241. // 'remark' => $demand->title,
  242. // 'itype' => 5,
  243. // 'status' => 2,
  244. // 'createtime' => date("Y-m-d H:i:s"),
  245. // 'yeartime' => date("Y"),
  246. // 'monthtime' => date("Ym")
  247. // );
  248. // UserIntegralModel::create($intdata);
  249. // $integral = intval($user->integral) - intval($param->teldemand);
  250. // $user->save([
  251. // 'integral' => $integral
  252. // ]);
  253. // $telearr = $demand->telearr;
  254. // $telearr[] = $userid;
  255. // $demand->save([
  256. // 'telearr' => $telearr
  257. // ]);
  258. // page_result(0, "", array(
  259. // 'iscantele' => true
  260. // ));
  261. // }
  262. }