StoreCouponIssue.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 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\activity\coupon;
  12. use crmeb\basic\BaseModel;
  13. use crmeb\traits\ModelTrait;
  14. use think\Model;
  15. /**
  16. * 发布优惠券Model
  17. * Class StoreCouponIssue
  18. * @package app\model\activity\coupon
  19. */
  20. class StoreCouponIssue 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 = 'store_coupon_issue';
  33. /**
  34. * 适用门店信息
  35. * @param $value
  36. * @return string
  37. */
  38. protected function setApplicableStoreIdAttr($value)
  39. {
  40. if ($value) {
  41. return is_array($value) ? implode(',', $value) : $value;
  42. }
  43. return '';
  44. }
  45. /**
  46. * 适用门店信息
  47. * @param $value
  48. * @return array|false|string[]
  49. */
  50. protected function getApplicableStoreIdAttr($value)
  51. {
  52. if ($value) {
  53. return is_string($value) ? array_map('intval', array_filter(explode(',', $value))) : $value;
  54. }
  55. return [];
  56. }
  57. /**
  58. * 用户是否拥有
  59. * @return \think\model\relation\HasOne
  60. */
  61. public function used()
  62. {
  63. return $this->hasOne(StoreCouponUser::class, 'cid', 'id')->field('id,cid');
  64. }
  65. /**
  66. * id
  67. * @param Model $query
  68. * @param $value
  69. */
  70. public function searchIdAttr($query, $value)
  71. {
  72. if (is_array($value))
  73. $query->whereIn('id', $value);
  74. else
  75. $query->where('id', $value);
  76. }
  77. /**
  78. * 优惠券模板搜索器
  79. * @param Model $query
  80. * @param $value
  81. * @param $data
  82. */
  83. public function searchCidAttr($query, $value, $data)
  84. {
  85. if ($value != '') $query->where('cid', $value);
  86. }
  87. /**
  88. * type
  89. * @param Model $query
  90. * @param $value
  91. */
  92. public function searchTypeAttr($query, $value)
  93. {
  94. if ($value) {
  95. if (is_array($value))
  96. $query->whereIn('type', $value);
  97. else
  98. $query->where('type', $value);
  99. }
  100. }
  101. /**
  102. * 优惠类型搜索器
  103. * @param Model $query
  104. * @param $value
  105. */
  106. public function searchCouponTypeAttr($query, $value)
  107. {
  108. if ($value != '') $query->where('coupon_type', $value);
  109. }
  110. /**
  111. * receive_type
  112. * @param Model $query
  113. * @param $value
  114. */
  115. public function searchReceiveTypeAttr($query, $value)
  116. {
  117. if ($value) {
  118. if (is_array($value))
  119. $query->whereIn('receive_type', $value);
  120. else
  121. $query->where('receive_type', $value);
  122. }
  123. }
  124. /**
  125. * 优惠券是否不限量
  126. * @param Model $query
  127. * @param $value
  128. * @param $data
  129. */
  130. public function searchIsPermanentAttr($query, $value, $data)
  131. {
  132. if ($value !== '') $query->where('is_permanent', $value);
  133. }
  134. /**
  135. * 优惠券是否新人券
  136. * @param Model $query
  137. * @param $value
  138. * @param $data
  139. */
  140. public function searchIsGiveSubscribeAttr($query, $value, $data)
  141. {
  142. if ($value !== '') $query->where('is_give_subscribe', $value);
  143. }
  144. /**
  145. * 优惠券是否满赠
  146. * @param Model $query
  147. * @param $value
  148. * @param $data
  149. */
  150. public function searchIsFullGiveAttr($query, $value, $data)
  151. {
  152. if ($value !== '') $query->where('is_full_give', $value);
  153. }
  154. /**
  155. * 优惠券状态
  156. * @param Model $query
  157. * @param $value
  158. * @param $data
  159. */
  160. public function searchStatusAttr($query, $value, $data)
  161. {
  162. if ($value != '') $query->where('status', $value);
  163. }
  164. /**
  165. * 优惠券是否删除
  166. * @param Model $query
  167. * @param $value
  168. * @param $data
  169. */
  170. public function searchIsDelAttr($query, $value, $data)
  171. {
  172. if ($value !== '') $query->where('is_del', $value ?? 0);
  173. }
  174. /**
  175. * 优惠券名称
  176. * @param Model $query
  177. * @param $value
  178. * @param $data
  179. */
  180. public function searchCouponTitleAttr($query, $value, $data)
  181. {
  182. if ($value) $query->whereLike('coupon_title', '%' . $value . '%');
  183. }
  184. }