Index.php 3.5 KB

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