Index.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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\supplier\Supplier as SupplierModel;
  12. use app\api\model\plus\chat\Chat as ChatModel;
  13. /**
  14. * 个人中心主页
  15. */
  16. class Index extends Controller
  17. {
  18. /**
  19. * 获取当前用户信息
  20. */
  21. public function detail($source = 'wx')
  22. {
  23. // 当前用户信息
  24. $user = $this->getUser();
  25. //店铺信息
  26. $user['is_recycle'] = $user['supplierUser']?SupplierModel::detail($user['supplierUser']['shop_supplier_id'])['is_recycle']:'';
  27. $coupon_model = new UserCouponModel();
  28. $coupon = count($coupon_model->getList($user['user_id'], -1, false, false));
  29. // 订单总数
  30. $model = new OrderModel;
  31. // 分销商基本设置
  32. $setting = Setting::getItem('basic');
  33. // 是否开启分销功能
  34. $agent_open = $setting['is_open'];
  35. //商城设置
  36. $store = SettingModel::getItem('store');
  37. //供应商入住背景图
  38. $supplier_image = isset($store['supplier_image'])?$store['supplier_image']:'';
  39. // 充值功能是否开启
  40. $balance_setting = SettingModel::getItem('balance');
  41. $balance_open = intval($balance_setting['is_open']);
  42. return $this->renderSuccess('', [
  43. 'coupon' => $coupon,
  44. 'userInfo' => $user,
  45. 'orderCount' => [
  46. 'payment' => $model->getCount($user, 'payment'),
  47. 'delivery' => $model->getCount($user, 'delivery'),
  48. 'received' => $model->getCount($user, 'received'),
  49. 'comment' => $model->getCount($user, 'comment'),
  50. ],
  51. 'setting' => [
  52. 'points_name' => SettingModel::getPointsName(),
  53. 'agent_open' => $agent_open,
  54. 'supplier_image' => $supplier_image,
  55. 'balance_open' => $balance_open
  56. ],
  57. 'sign' => SettingModel::getItem('sign'),
  58. 'getPhone' => $this->isGetPhone(),
  59. 'msgcount' => (new ChatModel)->mCount($user),
  60. 'menus' => UserModel::getMenus($user, $source) // 个人中心菜单列表
  61. ]);
  62. }
  63. /**
  64. * 当前用户设置
  65. */
  66. public function setting()
  67. {
  68. // 当前用户信息
  69. $user = $this->getUser();
  70. return $this->renderSuccess('', [
  71. 'userInfo' => $user
  72. ]);
  73. }
  74. private function isGetPhone(){
  75. $user = $this->getUser();
  76. if($user['mobile'] != ''){
  77. return false;
  78. }
  79. $settings = SettingModel::getItem('getPhone');
  80. if(in_array(GetPhoneTypeEnum::USER, $settings['area_type'])){
  81. // 缓存时间
  82. $key = 'get_phone_' . $user['user_id'];
  83. if (!$data = Cache::get($key)) {
  84. $settings['send_day'] > 0 && Cache::set($key, '1', 86400 * $settings['send_day']);
  85. return true;
  86. }
  87. }
  88. return false;
  89. }
  90. }