UserGiftQuota.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\model\user;
  12. use app\model\order\StoreOrder;
  13. use crmeb\basic\BaseModel;
  14. use crmeb\traits\ModelTrait;
  15. use think\Model;
  16. /**
  17. * Class UserGroup
  18. * @package app\model\user
  19. */
  20. class UserGiftQuota extends BaseModel
  21. {
  22. use ModelTrait;
  23. /**
  24. * 数据表主键
  25. * @var string
  26. */
  27. protected $pk = 'id';
  28. /**
  29. * 模型名称
  30. * @var string
  31. */
  32. protected $name = 'user_gift_quota';
  33. /**
  34. * 关联订单表
  35. * @return UserBill|model\relation\HasOne
  36. */
  37. public function order()
  38. {
  39. return $this->hasOne(StoreOrder::class, 'id', 'link_id')->field(['id', 'total_num'])->bind(['total_num']);
  40. }
  41. /**
  42. * 关联用户
  43. * @return model\relation\HasOne
  44. */
  45. public function user()
  46. {
  47. return $this->hasOne(User::class, 'uid', 'uid');
  48. }
  49. /**
  50. * 用户uid
  51. * @param Model $query
  52. * @param $value
  53. */
  54. public function searchUidAttr($query, $value)
  55. {
  56. if ($value !== '') {
  57. if (is_array($value))
  58. $query->whereIn('uid', $value);
  59. else
  60. $query->where('uid', $value);
  61. }
  62. }
  63. /**
  64. * 关联id
  65. * @param Model $query
  66. * @param $value
  67. */
  68. public function searchLinkIdAttr($query, $value)
  69. {
  70. if (is_array($value))
  71. $query->whereIn('link_id', $value);
  72. else
  73. $query->where('link_id', $value);
  74. }
  75. /**
  76. * 支出|获得
  77. * @param Model $query
  78. * @param $value
  79. */
  80. public function searchPmAttr($query, $value)
  81. {
  82. if ($value !== '') $query->where('pm', $value);
  83. }
  84. /**
  85. * 类型
  86. * @param Model $query
  87. * @param $value
  88. */
  89. public function searchTypeAttr($query, $value)
  90. {
  91. if (is_array($value))
  92. $query->whereIn('type', $value);
  93. else
  94. $query->where('type', $value);
  95. }
  96. /**
  97. * @param Model $query
  98. * @param $value
  99. */
  100. public function searchNotTypeAttr($query, $value)
  101. {
  102. if (is_array($value))
  103. $query->whereNotIn('type', $value);
  104. else
  105. $query->where('type', '<>', $value);
  106. }
  107. /**
  108. * 状态 0:带确定 1:有效 -1:无效
  109. * @param Model $query
  110. * @param $value
  111. */
  112. public function searchStatusAttr($query, $value)
  113. {
  114. $query->where('status', $value);
  115. }
  116. /**
  117. * 是否收货 0:未收货 1:已收货
  118. * @param Model $query
  119. * @param $value
  120. */
  121. public function searchTakeAttr($query, $value)
  122. {
  123. $query->where('take', $value);
  124. }
  125. /**
  126. * 模糊搜索
  127. * @param Model $query
  128. * @param $value
  129. */
  130. public function searchLikeAttr($query, $value)
  131. {
  132. $query->where(function ($query) use ($value) {
  133. $query->where('uid|title', 'like', "%$value%")->whereOr('uid', 'in', function ($query) use ($value) {
  134. $query->name('user')->whereLike('uid|account|nickname|phone', '%' . $value . '%')->field('uid')->select();
  135. });
  136. });
  137. }
  138. /**
  139. * 时间
  140. * @param Model $query
  141. * @param $value
  142. */
  143. public function searchAddTimeAttr($query, $value)
  144. {
  145. if (is_string($value)) $query->whereTime($query, $value);
  146. if (is_array($value) && count($value) == 2) $query->whereTime('add_time', 'between', $value);
  147. }
  148. }