RecuperateController.php 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  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)->where('status', '!=', 3)->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'])->where('status', '!=', 3)->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. {
  152. $year = date('Y', strtotime("-1 year"));
  153. $recuperate_time = RecuperateTime::where('uid', $uid)->where('year', $year)->first();
  154. if ($recuperate_time) {
  155. $old_integral = RecuperateApply::where('uid', $uid)->where('recuperate_time_id', $recuperate_time->id)->where('status', '!=', 2)->sum('price');
  156. if ($recuperate_time->price < ($old_integral + $info['price'])) {
  157. return ['state' => 0, 'msg' => '今年的金额额度不够'];
  158. } else {
  159. return ['state' => 1, 'msg' => 'ok', 'info' => $recuperate_time];
  160. }
  161. } else {
  162. $data['idCard'] = $members_info->id_card;
  163. $data['phone'] = $members_info->phone;
  164. $arr['year'] = $data['year'] = $year;;
  165. $result_json = https_request('http://rc.jucai.gov.cn/api/jucaiInterface/getDevelopAllowance', $data);
  166. // $result_json = https_request('http://120.26.63.153:8080/JJRCW/api/jucaiInterface/getDevelopAllowance', $data);
  167. $result_json = json_decode($result_json);
  168. if (!empty($result_json)) {
  169. if ($result_json->state == '3') {
  170. if ($result_json->total < $info['price']) {
  171. return ['state' => 0, 'msg' => '今年的金额额度不够'];
  172. }
  173. $arr['price'] = $result_json->total;
  174. $arr['uid'] = $uid;
  175. RecuperateTime::create($arr);
  176. return ['state' => 1, 'msg' => $result_json->msg];
  177. } else {
  178. return ['state' => 0, 'msg' => $result_json->msg];
  179. }
  180. } else {
  181. return ['state' => 0, 'msg' => '未查到您的人才信息,请确认是否已申报!'];
  182. }
  183. }
  184. }
  185. }