RecuperateController.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <?php
  2. namespace App\Http\Controllers\Mobile\Recuperate;
  3. use App\Http\Controllers\Mobile\MobileBaseController;
  4. use App\Models\MemberInfo;
  5. use App\Models\Recuperate;
  6. use App\Models\RecuperateApply;
  7. use App\Models\RecuperateTime;
  8. use App\Services\Recuperate\RecuperateApplyService;
  9. use App\Services\Recuperate\RecuperateService;
  10. use Illuminate\Http\Request;
  11. class RecuperateController extends MobileBaseController
  12. {
  13. protected $recuperateService;
  14. protected $recuperateApplyService;
  15. public function __construct(RecuperateService $recuperateService, RecuperateApplyService $recuperateApplyService)
  16. {
  17. $this->recuperateService = $recuperateService;
  18. $this->recuperateApplyService = $recuperateApplyService;
  19. }
  20. /**
  21. * 列表
  22. */
  23. public function index(Request $request, $num = '8', $focus = '3', $recommend = '4', $other_num = '5')
  24. {
  25. $size = 5;
  26. $key = $request->input('key');
  27. $rst = $this->recuperateService->list($key, $size);
  28. if ($request->ajax()) {
  29. if ($rst->lastPage() < $rst->currentPage()) {
  30. return response()->json(['status' => 0]);
  31. }
  32. return response()->json(['status' => 1, 'data' => view('mobile.app.recuperate.ajax_recuperate_list', ['list' => $rst])->render()]);
  33. }
  34. $mobile_dropload = false;
  35. if ($rst->total() > $size) {
  36. $mobile_dropload = true;
  37. }
  38. $return_data = [
  39. 'back_url' => route('mobile.home'),
  40. 'list' => $rst,
  41. 'current_url' => \Illuminate\Support\Facades\Request::getRequestUri(),
  42. 'wap_title' => '泉州晋江优秀人才疗休养',
  43. 'mobile_dropload' => $mobile_dropload,
  44. ];
  45. return view('mobile.app.recuperate.index', $return_data);
  46. }
  47. /**
  48. * 详情
  49. */
  50. public function show($id)
  51. {
  52. //获取详情
  53. $info = $this->recuperateService->getRecuperateInfo($id);
  54. if (!$info) {
  55. $back_url = \Illuminate\Support\Facades\URL::previous();
  56. return $this->showMessage('资讯不存在', $back_url, true, '上一页', '3');
  57. }
  58. //增加点击量
  59. $this->recuperateService->incrementData(['id' => $id], 1, 'click');
  60. $uid = auth('web-member')->id();
  61. $recuperate_app=RecuperateApply::where('uid',$uid)->where('recuperate_id',$id)->first();
  62. if($recuperate_app){
  63. return redirect()->route('mobile.person.recuperate');
  64. }else{
  65. $return_data = [
  66. 'wap_title' => $info->title,
  67. 'info' => $info,
  68. ];
  69. return view('mobile.app.recuperate.show', $return_data);
  70. }
  71. }
  72. public function apply($id)
  73. {
  74. //获取详情
  75. $info = $this->recuperateService->getRecuperateInfo($id);
  76. if (!$info) {
  77. $back_url = \Illuminate\Support\Facades\URL::previous();
  78. return $this->showMessage('资讯不存在', $back_url, true, '上一页', '3');
  79. }
  80. if ($info->status == 2) {
  81. $back_url = \Illuminate\Support\Facades\URL::previous();
  82. return $this->showMessage('活动已结束', $back_url, true, '上一页', '3');
  83. }
  84. /*查看手机是否认证*/
  85. $member = auth('web-member')->user();
  86. if($member->mobile_audit!='1'){
  87. return $this->showMessage('请到个人中心先绑定手机号码', route('mobile.person.perSecTel'), true, '上一页', '3');
  88. }
  89. $members_info=MemberInfo::where('uid',$member->id)->select('realname','id_card','phone','card_t_cn')->first();
  90. if (empty($members_info)) {
  91. return $this->showMessage('请到个人中心填写身份证号', route('mobile.person.memberInfo'), true, '上一页', '3');
  92. }
  93. if($members_info->card_t_cn!='306' && !$members_info->id_card){
  94. return $this->showMessage('请到个人中心填写身份证号', route('mobile.person.memberInfo'), true, '上一页', '3');
  95. }
  96. // if(date('Y',time())!='2021'){
  97. // $verification=$this->verification($member->id,$info,$members_info);
  98. // if(!$verification['state']){
  99. // $back_url = \Illuminate\Support\Facades\URL::previous();
  100. // return $this->showMessage($verification['msg'].',具体事项请咨询晋江人社局0595-85633128', $back_url, true, '上一页', '3');
  101. // }
  102. // }
  103. $return_data = [
  104. 'wap_title' => '优秀人才疗休养活动报名',
  105. 'info' => $info,
  106. 'members' =>array_merge($member->toArray(),$members_info->toArray(),['year'=>date('Y',strtotime("-1 year"))])
  107. ];
  108. return view('mobile.app.recuperate.apply', $return_data);
  109. }
  110. /**
  111. * 提交报名
  112. */
  113. public function applyPost(Request $request)
  114. {
  115. $data = $request->all();
  116. $uid = auth('web-member')->id();
  117. //一个活动只能报名一次
  118. $recuperate_apply = RecuperateApply::where('uid',$uid)->where('recuperate_id',$data['recuperate_id'])->first();
  119. if ($recuperate_apply) {
  120. return $this->sendErrorResponse('一个活动只能报名一次', '', 400);
  121. }
  122. $recuperate=Recuperate::where('id',$data['recuperate_id'])->select('price')->first();
  123. // if(date('Y',time())!='2021'){
  124. // $verification=$this->verification($uid,$recuperate);
  125. // if(!$verification['state']){
  126. // return $this->sendErrorResponse($verification['msg'].',具体事项请咨询晋江人社局0595-85633128', '', 400);
  127. // }
  128. // $data['recuperate_time_id'] = $verification['info']->id;
  129. // }
  130. //报名
  131. $data['uid'] = $uid;
  132. $data['price'] = $recuperate->price;
  133. $res = $this->recuperateApplyService->create($data);
  134. if ($res) {
  135. return response()->json(['status' => 1, 'info' => '报名成功']);
  136. } else {
  137. return response()->json(['status' => 0, 'info' => '网络问题,请刷新重试']);
  138. }
  139. }
  140. /**
  141. * 项目介绍
  142. */
  143. public function project()
  144. {
  145. $return_data = [
  146. 'wap_title' => '泉州晋江优秀人才疗休养',
  147. ];
  148. return view('mobile.app.recuperate.project', $return_data);
  149. }
  150. protected function verification($uid,$info,$members_info=false){
  151. $year=date('Y', strtotime("-1 year"));
  152. $recuperate_time=RecuperateTime::where('uid',$uid)->where('year',$year)->first();
  153. if($recuperate_time){
  154. $old_integral=RecuperateApply::where('uid',$uid)->where('recuperate_time_id',$recuperate_time->id)->where('status','!=',2)->sum('price');
  155. if($recuperate_time->price<($old_integral+$info['price'])){
  156. return ['state'=>0,'msg'=>'今年的金额额度不够'];
  157. }else{
  158. return ['state'=>1,'msg'=>'ok','info'=>$recuperate_time];
  159. }
  160. }else{
  161. $data['idCard']=$members_info->id_card;
  162. $data['phone']=$members_info->phone;
  163. $arr['year']=$data['year']=$year;;
  164. $result_json = https_request('http://rc.jucai.gov.cn/api/jucaiInterface/getDevelopAllowance', $data);
  165. // $result_json = https_request('http://120.26.63.153:8080/JJRCW/api/jucaiInterface/getDevelopAllowance', $data);
  166. $result_json=json_decode($result_json);
  167. if (!empty($result_json)) {
  168. if($result_json->state=='3'){
  169. if($result_json->total<$info['price']){
  170. return ['state'=>0,'msg'=>'今年的金额额度不够'];
  171. }
  172. $arr['price']=$result_json->total;
  173. $arr['uid']=$uid;
  174. RecuperateTime::create($arr);
  175. return ['state'=>1,'msg'=>$result_json->msg];
  176. }else{
  177. return ['state'=>0,'msg'=>$result_json->msg];
  178. }
  179. } else {
  180. return ['state'=>0,'msg'=>'未查到您的人才信息,请确认是否已申报!'];
  181. }
  182. }
  183. }
  184. }