User.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace app\index\controller;
  3. use app\index\model\ShareKey;
  4. use app\index\service\passport\MailCaptcha as MailCaptchaService;
  5. use app\index\model\OrderAddress;
  6. use app\index\model\user\PointsLog as PointsLogModel;
  7. use app\index\model\Goods as GoodsModel;
  8. use app\index\model\Order as OrderModel;
  9. use app\store\model\Express as ExpressModel;
  10. use think\facade\Log;
  11. use think\facade\Session;
  12. /**
  13. * 默认控制器
  14. * Class User
  15. * @package app\api\controller
  16. */
  17. class User extends Controller
  18. {
  19. /**
  20. * 个人中心
  21. * @return \think\response\View
  22. */
  23. public function personal()
  24. {
  25. $userId = Session::get('user_id');
  26. if (empty($userId)) {
  27. return view('passport/logIn');
  28. }
  29. $goodsModel = new GoodsModel();
  30. //$goods['content'] = html_entity_decode($goods['content']);
  31. return view('order', ['goods' => []]);
  32. }
  33. /**
  34. * 我的订单页面
  35. * @return \think\response\View
  36. */
  37. public function order(string $orderType = 'received')
  38. {
  39. $userId = Session::get('user_id');
  40. if (empty($userId)) {
  41. return view('passport/logIn');
  42. }
  43. return view('order');
  44. }
  45. /**
  46. * 订单详情
  47. * @param $orderId
  48. * @return \think\response\View
  49. * @throws \cores\exception\BaseException
  50. * @throws \think\db\exception\DataNotFoundException
  51. * @throws \think\db\exception\DbException
  52. * @throws \think\db\exception\ModelNotFoundException
  53. */
  54. public function orderDetails($orderId)
  55. {
  56. $userId = Session::get('user_id');
  57. if (empty($userId)) {
  58. return view('passport/logIn');
  59. }
  60. $orderId = intval($orderId);
  61. $model = OrderModel::getUserOrderDetail($orderId);
  62. $orderAddress = OrderAddress::get(['order_id' => $orderId]);
  63. if (!empty($model['express_no'])) {
  64. $expModel = new ExpressModel();
  65. $tracks = $expModel->dynamicUsps($model['express_no']);
  66. //dd($tracks);
  67. } else {
  68. $tracks = [];
  69. }
  70. if (!$tracks) {
  71. $f1Track = [];
  72. } else {
  73. $f1Track = $tracks['list'][0]['trackList'] ?? [];
  74. }
  75. $createTimeInt = strtotime($model['create_time']);
  76. $selfTrack = [];
  77. if (time() > $createTimeInt + 9864) {
  78. $selfTrack[] = ['time' => date('Y-m-d H:i:s', $createTimeInt + 9864), 'text' => 'Orders taken', 'desc' => 'The order has entered the warehouse'];
  79. }
  80. if (time() > $createTimeInt + 3653) {
  81. $selfTrack[] = ['time' => date('Y-m-d H:i:s', $createTimeInt + 3653), 'text' => 'Orders taken', 'desc' => 'The merchant has received your order and is waiting to be shipped'];
  82. }
  83. $selfTrack[] = ['time' => date('Y-m-d H:i:s', $createTimeInt + 5), 'text' => 'Order paid', 'desc' => 'Successful'];
  84. return view('orderDetails', ['order' => $model, 'orderAddress' => $orderAddress, 'selfTrack' => $selfTrack, 'f1Track' => $f1Track]);
  85. }
  86. /**
  87. * 我的积分页面
  88. * @return \think\response\View
  89. */
  90. public function myScores()
  91. {
  92. $userId = Session::get('user_id');
  93. if (empty($userId)) {
  94. return view('passport/logIn');
  95. }
  96. $model = new PointsLogModel;
  97. $list = $model->getList();
  98. $user = \app\index\service\User::getCurrentLoginUser();
  99. return view('integral', ['user' => $user]);
  100. }
  101. /**
  102. * 我的积分列表
  103. * @return \think\response\Json
  104. * @throws \app\common\exception\BaseException
  105. * @throws \think\db\exception\DbException
  106. */
  107. public function pointsLogs()
  108. {
  109. $model = new PointsLogModel;
  110. $list = $model->getList();
  111. return $this->renderSuccess(compact('list'));
  112. }
  113. /**
  114. * 分享商品
  115. * @return \think\response\Json
  116. */
  117. public function shareUser()
  118. {
  119. $userId = Session::get('user_id');
  120. if (empty($userId)) {
  121. return $this->renderJson(config('status.not_logged'), 'Log in please!');
  122. }
  123. $goodsId = $this->request->param('goodsId');
  124. if (empty($goodsId)) {
  125. return $this->renderError('Invalid goods');
  126. }
  127. $mailbox = $this->request->param('mailbox');
  128. if (empty($mailbox)) {
  129. return $this->renderError('Invalid mailbox');
  130. }
  131. $encryptUserId = encrypt(strval($userId));
  132. $url = 'Your friend shared a product with you. Click on the link to view it now:'
  133. . config('app.app_host') . '/index/index/productDetails.html?goodsId=' . $goodsId . '&key=' . $encryptUserId;
  134. Log::info($url);
  135. $MailCaptchaService = new MailCaptchaService;
  136. if ($MailCaptchaService->sendText($mailbox, 'From Your Friend', $url)) {
  137. $shareKeyModel = new ShareKey();
  138. $shareKeyModel->save(['key_string' => $encryptUserId, 'user_id' => $userId, 'create_time' => time(), 'is_delete' => 0, 'update_time' => time()]);
  139. return $this->renderSuccess([], 'Successful! Tell your friends to check for new emails.');
  140. }
  141. return $this->renderSuccess([], 'Successful! Tell your friends to check for new emails.');
  142. }
  143. }