RecuperateController.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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. /*查看手机是否认证*/
  81. $member = auth('web-member')->user();
  82. if($member->mobile_audit!='1'){
  83. $back_url = \Illuminate\Support\Facades\URL::previous();
  84. return $this->showMessage('请到个人中心先绑定手机号码', $back_url, true, '上一页', '3');
  85. }
  86. $members_info=MemberInfo::where('uid',$member->id)->select('realname','id_card','phone','card_t_cn')->first();
  87. if($members_info->card_t_cn!='306' && !$members_info->id_card){
  88. $back_url = \Illuminate\Support\Facades\URL::previous();
  89. return $this->showMessage('请到个人中心填写身份证号', $back_url, true, '上一页', '3');
  90. }
  91. if(date('Y',time())!='2021'){
  92. $verification=$this->verification($member->id,$info,$members_info);
  93. if(!$verification['state']){
  94. $back_url = \Illuminate\Support\Facades\URL::previous();
  95. return $this->showMessage($verification['msg'].',具体事项请咨询晋江人社局0595-85633128', $back_url, true, '上一页', '3');
  96. }
  97. }
  98. $return_data = [
  99. 'wap_title' => '优秀人才疗休养活动报名',
  100. 'info' => $info,
  101. 'members' =>array_merge($member->toArray(),$members_info->toArray(),['year'=>date('Y',strtotime("-1 year"))])
  102. ];
  103. return view('mobile.app.recuperate.apply', $return_data);
  104. }
  105. /**
  106. * 提交报名
  107. */
  108. public function applyPost(Request $request)
  109. {
  110. $data = $request->all();
  111. $uid = auth('web-member')->id();
  112. //一个活动只能报名一次
  113. $recuperate_apply = RecuperateApply::where('uid',$uid)->where('recuperate_id',$data['recuperate_id'])->first();
  114. if ($recuperate_apply) {
  115. return $this->sendErrorResponse('一个活动只能报名一次', '', 400);
  116. }
  117. $recuperate=Recuperate::where('id',$data['recuperate_id'])->select('price')->first();
  118. if(date('Y',time())!='2021'){
  119. $verification=$this->verification($uid,$recuperate);
  120. if(!$verification['state']){
  121. return $this->sendErrorResponse($verification['msg'].',具体事项请咨询晋江人社局0595-85633128', '', 400);
  122. }
  123. $data['recuperate_time_id'] = $verification['info']->id;
  124. }
  125. //报名
  126. $data['uid'] = $uid;
  127. $data['price'] = $recuperate->price;
  128. $res = $this->recuperateApplyService->create($data);
  129. if ($res) {
  130. return response()->json(['status' => 1, 'info' => '报名成功']);
  131. } else {
  132. return response()->json(['status' => 0, 'info' => '网络问题,请刷新重试']);
  133. }
  134. }
  135. /**
  136. * 项目介绍
  137. */
  138. public function project()
  139. {
  140. $return_data = [
  141. 'wap_title' => '泉州晋江优秀人才疗休养',
  142. ];
  143. return view('mobile.app.recuperate.project', $return_data);
  144. }
  145. protected function verification($uid,$info,$members_info=false){
  146. $year=date('Y', strtotime("-1 year"));
  147. $recuperate_time=RecuperateTime::where('uid',$uid)->where('year',$year)->first();
  148. if($recuperate_time){
  149. $old_integral=RecuperateApply::where('uid',$uid)->where('recuperate_time_id',$recuperate_time->id)->where('status','!=',2)->sum('price');
  150. if($recuperate_time->price<($old_integral+$info['price'])){
  151. return ['state'=>0,'msg'=>'今年的金额额度不够'];
  152. }else{
  153. return ['state'=>1,'msg'=>'ok','info'=>$recuperate_time];
  154. }
  155. }else{
  156. $data['idCard']=$members_info->id_card;
  157. $data['phone']=$members_info->phone;
  158. $arr['year']=$data['year']=$year;;
  159. $result_json = https_request('http://rc.jucai.gov.cn/api/jucaiInterface/getDevelopAllowance', $data);
  160. // $result_json = https_request('http://120.26.63.153:8080/JJRCW/api/jucaiInterface/getDevelopAllowance', $data);
  161. $result_json=json_decode($result_json);
  162. if (!empty($result_json)) {
  163. if($result_json->state=='3'){
  164. if($result_json->total<$info['price']){
  165. return ['state'=>0,'msg'=>'今年的金额额度不够'];
  166. }
  167. $arr['price']=$result_json->total;
  168. $arr['uid']=$uid;
  169. RecuperateTime::create($arr);
  170. return ['state'=>1,'msg'=>$result_json->msg];
  171. }else{
  172. return ['state'=>0,'msg'=>$result_json->msg];
  173. }
  174. } else {
  175. return ['state'=>0,'msg'=>'未查到您的人才信息,请确认是否已申报!'];
  176. }
  177. }
  178. }
  179. }