Index.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace app\api\controller\user;
  3. use app\api\controller\Controller;
  4. use app\api\model\plus\agent\Setting;
  5. use app\api\model\user\User as UserModel;
  6. use app\api\model\order\Order as OrderModel;
  7. use app\api\model\settings\Setting as SettingModel;
  8. use app\api\model\plus\coupon\UserCoupon as UserCouponModel;
  9. use app\common\enum\settings\GetPhoneTypeEnum;
  10. use think\facade\Cache;
  11. use app\api\model\plus\invitationgift\InvitationGift as InvitationGiftModel;
  12. /**
  13. * 个人中心主页
  14. */
  15. class Index extends Controller
  16. {
  17. /**
  18. * 获取当前用户信息
  19. */
  20. public function detail($source = 'wx')
  21. {
  22. // 当前用户信息
  23. $user = $this->getUser();
  24. $coupon_model = new UserCouponModel();
  25. $coupon = $coupon_model->getCount($user['user_id']);
  26. // 订单总数
  27. $model = new OrderModel;
  28. // 分销商基本设置
  29. $setting = Setting::getItem('basic');
  30. // 是否开启分销功能
  31. $agent_open = $setting['is_open'];
  32. $invitation = InvitationGiftModel::getShow();
  33. return $this->renderSuccess('', [
  34. 'coupon' => $coupon,
  35. 'userInfo' => $user,
  36. 'orderCount' => [
  37. 'payment' => $model->getCount($user, 'payment'),
  38. 'delivery' => $model->getCount($user, 'delivery'),
  39. 'received' => $model->getCount($user, 'received'),
  40. 'comment' => $model->getCount($user, 'comment'),
  41. ],
  42. 'setting' => [
  43. 'is_show_personal_points' => SettingModel::getIsShowPersonalPoints(),
  44. 'points_name' => SettingModel::getPointsName(),
  45. 'agent_open' => $agent_open
  46. ],
  47. 'sign' => SettingModel::getItem('sign'),
  48. 'getPhone' => $this->isGetPhone(),
  49. 'menus' => UserModel::getMenus($source, $user['user_id']), // 个人中心菜单列表
  50. 'invitation' => $invitation
  51. ]);
  52. }
  53. /**
  54. * 当前用户设置
  55. */
  56. public function setting()
  57. {
  58. // 当前用户信息
  59. $user = $this->getUser();
  60. return $this->renderSuccess('', [
  61. 'userInfo' => $user
  62. ]);
  63. }
  64. private function isGetPhone()
  65. {
  66. $user = $this->getUser();
  67. if ($user['mobile'] != '') {
  68. return false;
  69. }
  70. $settings = SettingModel::getItem('getPhone');
  71. if (in_array(GetPhoneTypeEnum::USER, $settings['area_type'])) {
  72. // 缓存时间
  73. $key = 'get_phone_' . $user['user_id'];
  74. if (!$data = Cache::get($key)) {
  75. $settings['send_day'] > 0 && Cache::set($key, '1', 86400 * $settings['send_day']);
  76. return true;
  77. }
  78. }
  79. return false;
  80. }
  81. }