Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

StoreOrderCartInfo.php 3.9KB

il y a 2 ans
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?php
  2. namespace app\model\order;
  3. use crmeb\basic\BaseModel;
  4. use crmeb\traits\ModelTrait;
  5. use think\Model;
  6. /**
  7. * 订单记录Model
  8. * Class StoreOrderCartInfo
  9. * @package app\model\order
  10. */
  11. class StoreOrderCartInfo extends BaseModel
  12. {
  13. use ModelTrait;
  14. /**
  15. * 模型名称
  16. * @var string
  17. */
  18. protected $name = 'store_order_cart_info';
  19. /**
  20. * 购物车信息获取器
  21. * @param $value
  22. * @return array|mixed
  23. */
  24. public function getCartInfoAttr($value)
  25. {
  26. return is_string($value) ? json_decode($value, true) ?? [] : [];
  27. }
  28. /**
  29. * 订单ID搜索器
  30. * @param Model $query
  31. * @param $value
  32. * @param $data
  33. */
  34. public function searchOidAttr($query, $value, $data)
  35. {
  36. if ($value) {
  37. if (is_array($value)) {
  38. $query->whereIn('oid', $value);
  39. } else {
  40. $query->where('oid', $value);
  41. }
  42. }
  43. }
  44. /**
  45. * UID搜索器
  46. * @param Model $query
  47. * @param $value
  48. */
  49. public function searchUidAttr($query, $value)
  50. {
  51. if ($value) {
  52. if (is_array($value)) {
  53. $query->whereIn('uid', $value);
  54. } else {
  55. $query->where('uid', $value);
  56. }
  57. }
  58. }
  59. /**
  60. * product_id搜索器
  61. * @param Model $query
  62. * @param $value
  63. */
  64. public function searchProductIdAttr($query, $value)
  65. {
  66. if ($value) {
  67. if (is_array($value)) {
  68. $query->whereIn('product_id', $value);
  69. } else {
  70. $query->where('product_id', $value);
  71. }
  72. }
  73. }
  74. /**
  75. * 优惠活动ID搜索器
  76. * @param Model $query
  77. * @param $value
  78. */
  79. public function searchPromotionsIdAttr($query, $value)
  80. {
  81. if ($value) {
  82. if (is_array($value)) {
  83. $query->where(function($q) use ($value) {
  84. foreach ($value as $key => $v) {
  85. $q->whereOr(function ($c) use ($v) {
  86. $c->whereFindInSet('promotions_id', $v);
  87. });
  88. }
  89. });
  90. } else {
  91. $query->whereFindInSet('promotions_id', $value);
  92. }
  93. }
  94. }
  95. /**
  96. * 购物车ID搜索器
  97. * @param Model $query
  98. * @param $value
  99. * @param $data
  100. */
  101. public function searchCartIdAttr($query, $value, $data)
  102. {
  103. if ($value) {
  104. if (is_array($value)) {
  105. $query->whereIn('cart_id', $value);
  106. } else {
  107. $query->where('cart_id', $value);
  108. }
  109. }
  110. }
  111. /**
  112. * 原购物车ID搜索器
  113. * @param Model $query
  114. * @param $value
  115. * @param $data
  116. */
  117. public function searchOldCartIdAttr($query, $value, $data)
  118. {
  119. if (is_array($value)) {
  120. $query->whereIn('old_cart_id', $value);
  121. } else {
  122. $query->where('old_cart_id', $value);
  123. }
  124. }
  125. /**
  126. * 拆分状态搜索器
  127. * @param Model $query
  128. * @param $value
  129. * @param $data
  130. */
  131. public function searchSplitStatusAttr($query, $value)
  132. {
  133. if (is_array($value)) {
  134. $query->whereIn('split_status', $value);
  135. } else {
  136. if (in_array($value, [0, 1, 2])) {
  137. $query->where('split_status', $value);
  138. }
  139. }
  140. }
  141. /**
  142. * 是否赠送搜索器
  143. * @param Model $query
  144. * @param $value
  145. * @param $data
  146. */
  147. public function searchIsGiftAttr($query, $value)
  148. {
  149. if ($value !== '') {
  150. $query->where('is_writeoff', $value);
  151. }
  152. }
  153. /**
  154. * 是否核销搜索器
  155. * @param Model $query
  156. * @param $value
  157. * @param $data
  158. */
  159. public function searchIsWriteoffAttr($query, $value)
  160. {
  161. if ($value !== '') {
  162. $query->where('is_writeoff', $value);
  163. }
  164. }
  165. }