AdminMerchant.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Models;
  3. use App\Utils\Admin;
  4. class AdminMerchant extends Model
  5. {
  6. // protected $table = "admin_merchant";
  7. protected $fillable = ['admin_id', 'wxapp_name', 'wxapp_desc',
  8. 'wxapp_app_id', 'wxapp_app_secret', 'phone', 'name', 'email', 'address',
  9. 'proportion', 'wxapp_url', 'pay_mch_id', 'pay_key', 'private_key_file',
  10. 'certificate_file', 'brand', 'cash', 'is_refund', 'username', 'area_name', 'mck_key',
  11. 'order_key', 'refund_callback_url', 'wxapp_qr_code', 'car_qr_code_url', 'factory_qr_code'
  12. ];
  13. const PAST_DUE = 0;//过期状态
  14. const NORMAL = 1;// 正常状态
  15. // ->where(AdminMerchant::getMerchantWhere())
  16. public function admin_user()
  17. {
  18. return $this->hasOne(AdminUser::class, 'id', 'admin_id');
  19. }
  20. /**
  21. * 获取登录账号的商户id
  22. * @return int|mixed
  23. */
  24. public static function getMchId()
  25. {
  26. $merchant_id = 0;
  27. if (Admin::user()->isRole(AdminRole::ADMINISTROTOR)) {
  28. // 技术
  29. $merchant_id = 0;
  30. } else if (Admin::user()->isRole(AdminRole::MERCHANTSADMIN)) {
  31. // 商户
  32. $merchant_id = AdminMerchant::query()->where(['admin_id' => Admin::user()->id])->first(['id'])['id'];
  33. } else {
  34. // 非商户
  35. $merchant_id = Admin::user()->merchant_id;
  36. }
  37. return $merchant_id;
  38. }
  39. /**
  40. * 查询 merchant_id where 条件 数组
  41. * @return array
  42. */
  43. public static function getMerchantWhere()
  44. {
  45. $where = [];
  46. if (Admin::user()->isRole(AdminRole::ADMINISTROTOR)) {
  47. // 技术
  48. $where = [];
  49. } else if (Admin::user()->isRole(AdminRole::MERCHANTSADMIN)) {
  50. // 商户
  51. $where['merchant_id'] = AdminMerchant::query()->where(['admin_id' => Admin::user()->id])->first(['id'])['id'];
  52. } else {
  53. // 非商户
  54. $where['merchant_id'] = Admin::user()->merchant_id;
  55. }
  56. return $where;
  57. }
  58. /**
  59. * 获取登录着的商户id
  60. * @return int|mixed
  61. */
  62. public static function putMerchantId()
  63. {
  64. if (Admin::user()->isRole(AdminRole::ADMINISTROTOR)) {
  65. // 技术
  66. $merchant_id = 0;
  67. } else if (Admin::user()->isRole(AdminRole::MERCHANTSADMIN)) {
  68. // 商户
  69. $merchant_id = AdminMerchant::query()->where(['admin_id' => Admin::user()->id])->first(['id'])['id'];
  70. } else {
  71. // 非商户
  72. $merchant_id = Admin::user()->merchant_id;
  73. }
  74. return $merchant_id;
  75. }
  76. // 判断用户是否属于商户
  77. public static function isUserToMch($user_id)
  78. {
  79. $merchant_id = self::putMerchantId();
  80. if ($merchant_id == 0) {
  81. // 超级管理员
  82. return false;
  83. }
  84. $user_merchant_id = User::query()->where(['id' => $user_id, 'merchant_id' => $merchant_id]);
  85. if ($user_merchant_id) {
  86. return false;
  87. }
  88. // 不存在提示错误
  89. return true;
  90. }
  91. }