You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

402 lines
14 KiB

8 years ago
8 years ago
7 years ago
8 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
  1. <?php
  2. namespace App\Http\Controllers\Weixin;
  3. use App\Http\Controllers\Weixin\CommonController;
  4. use Illuminate\Http\Request;
  5. use App\Common\ReturnCode;
  6. use App\Common\WechatAuth;
  7. class UserController extends CommonController
  8. {
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. }
  13. //个人中心
  14. public function index(Request $request)
  15. {
  16. //$_SESSION['weixin_user_info']['access_token'] = '72d623d26a1a6d61186a97f9ccf752f7';
  17. //获取会员信息
  18. $postdata = array(
  19. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  20. );
  21. $url = env('APP_API_URL')."/user_info";
  22. $res = curl_request($url,$postdata,'GET');
  23. $data['user_info'] = $res['data'];
  24. return view('weixin.user.index', $data);
  25. }
  26. //个人中心设置
  27. public function userinfo(Request $request)
  28. {
  29. //获取会员信息
  30. $postdata = array(
  31. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  32. );
  33. $url = env('APP_API_URL')."/user_info";
  34. $res = curl_request($url,$postdata,'GET');
  35. $data['user_info'] = $res['data'];
  36. return view('weixin.user.userinfo', $data);
  37. }
  38. //资金管理
  39. public function userAccount(Request $request)
  40. {
  41. $postdata = array(
  42. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  43. );
  44. $url = env('APP_API_URL')."/user_info";
  45. $res = curl_request($url,$postdata,'GET');
  46. $data['user_info'] = $res['data'];
  47. return view('weixin.user.userAccount', $data);
  48. }
  49. //用户充值
  50. public function userRecharge(Request $request)
  51. {
  52. return view('weixin.user.userRecharge');
  53. }
  54. //用户充值第二步,支付
  55. public function userRechargeTwo($id)
  56. {
  57. $postdata = array(
  58. 'id' => $id,
  59. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  60. );
  61. $url = env('APP_API_URL')."/user_recharge_detail";
  62. $res = curl_request($url,$postdata,'GET');
  63. $data['post'] = $res['data'];
  64. return view('weixin.user.userRechargeTwo', $data);
  65. }
  66. //余额明细
  67. public function userMoneyList(Request $request)
  68. {
  69. $pagesize = 10;
  70. $offset = 0;
  71. if(isset($_REQUEST['page'])){$offset = ($_REQUEST['page']-1)*$pagesize;}
  72. $postdata = array(
  73. 'limit' => $pagesize,
  74. 'offset' => $offset,
  75. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  76. );
  77. $url = env('APP_API_URL')."/user_money_list";
  78. $res = curl_request($url,$postdata,'GET');
  79. $data['list'] = $res['data']['list'];
  80. $data['totalpage'] = ceil($res['data']['count']/$pagesize);
  81. if(isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax']==1)
  82. {
  83. $html = '';
  84. if($res['data']['list'])
  85. {
  86. foreach($res['data']['list'] as $k => $v)
  87. {
  88. $html .= '<li>';
  89. if($v['type']==0)
  90. {
  91. $html .= '<span class="green">+ '.$v['money'].'</span>';
  92. }
  93. else
  94. {
  95. $html .= '<span>- '.$v['money'].'</span>';
  96. }
  97. $html .= '<div class="info"><p class="tit">'.$v['des'].'</p>';
  98. $html .= '<p class="time">'.date('Y-m-d H:i:s',$v['add_time']).'</p></div>';
  99. $html .= '</li>';
  100. }
  101. }
  102. exit(json_encode($html));
  103. }
  104. return view('weixin.user.userMoneyList', $data);
  105. }
  106. //积分明细
  107. public function userPointList(Request $request)
  108. {
  109. $pagesize = 10;
  110. $offset = 0;
  111. if(isset($_REQUEST['page'])){$offset = ($_REQUEST['page']-1)*$pagesize;}
  112. $postdata = array(
  113. 'limit' => $pagesize,
  114. 'offset' => $offset,
  115. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  116. );
  117. $url = env('APP_API_URL')."/user_point_list";
  118. $res = curl_request($url,$postdata,'GET');
  119. $data['list'] = $res['data']['list'];
  120. $data['totalpage'] = ceil($res['data']['count']/$pagesize);
  121. if(isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax']==1)
  122. {
  123. $html = '';
  124. if($res['data']['list'])
  125. {
  126. foreach($res['data']['list'] as $k => $v)
  127. {
  128. $html .= '<li>';
  129. if($v['type']==0)
  130. {
  131. $html .= '<span class="green">+ '.$v['point'].'</span>';
  132. }
  133. else
  134. {
  135. $html .= '<span>- '.$v['point'].'</span>';
  136. }
  137. $html .= '<div class="info"><p class="tit">'.$v['des'].'</p>';
  138. $html .= '<p class="time">'.date('Y-m-d H:i:s',$v['add_time']).'</p></div>';
  139. $html .= '</li>';
  140. }
  141. }
  142. exit(json_encode($html));
  143. }
  144. return view('weixin.user.userPointList', $data);
  145. }
  146. //用户优惠券列表
  147. public function userBonusList(Request $request)
  148. {
  149. //商品列表
  150. $pagesize = 1;
  151. $offset = 0;
  152. if(isset($_REQUEST['page'])){$offset = ($_REQUEST['page']-1)*$pagesize;}
  153. $postdata = array(
  154. 'limit' => $pagesize,
  155. 'offset' => $offset,
  156. 'status' => 0,
  157. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  158. );
  159. $url = env('APP_API_URL')."/user_bonus_list";
  160. $res = curl_request($url,$postdata,'GET');
  161. $data['list'] = $res['data']['list'];
  162. $data['totalpage'] = ceil($res['data']['count']/$pagesize);
  163. if(isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax']==1)
  164. {
  165. $html = '';
  166. if($res['data']['list'])
  167. {
  168. foreach($res['data']['list'] as $k => $v)
  169. {
  170. $html .= '<div class="flow-have-adr">';
  171. $html .= '<p class="f-h-adr-title">'.$v['bonus']['name'].'</label><span class="ect-colory fr"><small>¥</small>'.$v['bonus']['money'].'</span><div class="cl"></div></p>';
  172. $html .= '<p class="f-h-adr-con">有效期至'.$v['bonus']['end_time'].' <span class="fr">满'.$v['bonus']['min_amount'].'可用</span></p>';
  173. //$html .= '<div class="adr-edit-del">说明</div>';
  174. $html .= '</div>';
  175. }
  176. }
  177. exit(json_encode($html));
  178. }
  179. return view('weixin.user.userBonusList', $data);
  180. }
  181. //浏览记录
  182. public function userGoodsHistory(Request $request)
  183. {
  184. //商品列表
  185. $pagesize = 10;
  186. $offset = 0;
  187. if(isset($_REQUEST['page'])){$offset = ($_REQUEST['page']-1)*$pagesize;}
  188. $postdata = array(
  189. 'limit' => $pagesize,
  190. 'offset' => $offset,
  191. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  192. );
  193. $url = env('APP_API_URL')."/user_goods_history_list";
  194. $res = curl_request($url,$postdata,'GET');
  195. $data['user_goods_history'] = $res['data']['list'];
  196. $data['totalpage'] = ceil($res['data']['count']/$pagesize);
  197. if(isset($_REQUEST['page_ajax']) && $_REQUEST['page_ajax']==1)
  198. {
  199. $html = '';
  200. if($res['data']['list'])
  201. {
  202. foreach($res['data']['list'] as $k => $v)
  203. {
  204. $html .= '<li><a href="'.$v['goods']['goods_detail_url'].'"><span class="goods_thumb"><img alt="'.$v['goods']['title'].'" src="'.env('APP_URL').$v['goods']['litpic'].'"></span></a>';
  205. $html .= '<div class="goods_info"><p class="goods_tit">'.$v['goods']['title'].'</p>';
  206. $html .= '<p class="goods_price">¥<b>'.$v['goods']['price'].'</b></p>';
  207. $html .= '<p class="goods_des fr"><span id="del_history" onclick="delconfirm(\''.route('weixin_user_goods_history_delete',array('id'=>$v['id'])).'\')">删除</span></p>';
  208. $html .= '</div></li>';
  209. }
  210. }
  211. exit(json_encode($html));
  212. }
  213. return view('weixin.user.userGoodsHistory', $data);
  214. }
  215. //浏览记录删除
  216. public function userGoodsHistoryDelete(Request $request)
  217. {
  218. $id = $request->input('id','');
  219. if($id == ''){$this->error_jump(ReturnData::PARAMS_ERROR);}
  220. $postdata = array(
  221. 'id' => $id,
  222. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  223. );
  224. $url = env('APP_API_URL')."/user_goods_history_delete";
  225. $res = curl_request($url,$postdata,'POST');
  226. if($res['code'] != ReturnCode::SUCCESS_CODE){$this->error_jump(ReturnCode::FAIL);}
  227. $this->success_jump(ReturnCode::SUCCESS);
  228. }
  229. //浏览记录清空
  230. public function userGoodsHistoryClear(Request $request)
  231. {
  232. $postdata = array(
  233. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  234. );
  235. $url = env('APP_API_URL')."/user_goods_history_clear";
  236. $res = curl_request($url,$postdata,'POST');
  237. if($res['code'] != ReturnCode::SUCCESS_CODE){$this->error_jump(ReturnCode::FAIL);}
  238. $this->success_jump(ReturnCode::SUCCESS);
  239. }
  240. //微信网页授权登录
  241. public function oauth(Request $request)
  242. {
  243. $wechat_auth = new WechatAuth(sysconfig('CMS_WX_APPID'),sysconfig('CMS_WX_APPSECRET'));
  244. // 获取code码,用于和微信服务器申请token。 注:依据OAuth2.0要求,此处授权登录需要用户端操作
  245. if(!isset($_GET['code']))
  246. {
  247. $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
  248. $callback_url = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; //回调地址,当前页面
  249. //-------生成唯一随机串防CSRF攻击
  250. $state = md5(uniqid(rand(), true));
  251. $_SESSION['weixin_oauth']['state'] = $state; //存到SESSION
  252. $authorize_url = $wechat_auth->get_authorize_url($callback_url, $state);
  253. header("Location: $authorize_url");exit;
  254. }
  255. // 依据code码去获取openid和access_token,自己的后台服务器直接向微信服务器申请即可
  256. if (isset($_GET['code']))
  257. {
  258. $_SESSION['weixin_oauth']['code'] = $_GET['code'];
  259. if($_GET['state'] != $_SESSION['weixin_oauth']['state'])
  260. {
  261. exit("您访问的页面不存在或已被删除!");
  262. }
  263. //得到 access_token 与 openid
  264. $_SESSION['weixin_oauth']['token'] = $wechat_auth->get_access_token($_GET['code']);
  265. }
  266. // 依据申请到的access_token和openid,申请Userinfo信息。
  267. if (isset($_SESSION['weixin_oauth']['token']))
  268. {
  269. $_SESSION['weixin_oauth']['userinfo'] = $wechat_auth->get_user_info($_SESSION['weixin_oauth']['token']['access_token'], $_SESSION['weixin_oauth']['token']['openid']);
  270. }
  271. $postdata = array(
  272. 'openid' => $_SESSION['weixin_oauth']['token']['openid'],
  273. 'nickname' => $_SESSION['weixin_oauth']['userinfo']['nickname'],
  274. 'sex' => $_SESSION['weixin_oauth']['userinfo']['sex'],
  275. 'head_img' => $_SESSION['weixin_oauth']['userinfo']['headimgurl'],
  276. 'parent_id' => '',
  277. 'parent_mobile' => '',
  278. 'mobile' => ''
  279. );
  280. $url = env('APP_API_URL')."/wx_oauth_register";
  281. $res = curl_request($url,$postdata,'POST');
  282. if($res['code'] != ReturnCode::SUCCESS_CODE){$this->error_jump('系统错误');}
  283. $_SESSION['weixin_user_info'] = $res['data'];
  284. header('Location: '.route('weixin_user'));exit;
  285. }
  286. //登录
  287. public function login(Request $request)
  288. {
  289. if(isset($_SESSION['weixin_user_info']))
  290. {
  291. if(isset($_SERVER["HTTP_REFERER"])){header('Location: '.$_SERVER["HTTP_REFERER"]);exit;}
  292. header('Location: '.route('weixin_user'));exit;
  293. }
  294. if($_SERVER['REQUEST_METHOD'] == 'POST')
  295. {
  296. if($_POST['user_name'] == '')
  297. {
  298. $this->error_jump('账号不能为空');
  299. }
  300. if($_POST['password'] == '')
  301. {
  302. $this->error_jump('密码不能为空');
  303. }
  304. $postdata = array(
  305. 'user_name' => $_POST['user_name'],
  306. 'password' => md5($_POST['password'])
  307. );
  308. $url = env('APP_API_URL')."/wx_login";
  309. $res = curl_request($url,$postdata,'POST');
  310. if($res['code'] != ReturnCode::SUCCESS_CODE){$this->error_jump('登录失败');}
  311. $_SESSION['weixin_user_info'] = $res['data'];
  312. header('Location: '.route('weixin_user'));exit;
  313. }
  314. return view('weixin.user.login');
  315. }
  316. //注册
  317. public function register(Request $request)
  318. {
  319. if(isset($_SESSION['weixin_user_info']))
  320. {
  321. if(isset($_SERVER["HTTP_REFERER"])){header('Location: '.$_SERVER["HTTP_REFERER"]);exit;}
  322. header('Location: '.route('weixin_user'));exit;
  323. }
  324. return view('weixin.user.register');
  325. }
  326. public function logout(Request $request)
  327. {
  328. session_unset();
  329. session_destroy(); // 退出登录,清除session
  330. $this->success_jump('退出成功',route('weixin'));
  331. }
  332. }