ShopCashOut.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的多应用管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\model\shop;
  12. use app\dict\shop\ShopCashOutDict;
  13. use app\dict\shop\ShopTransferDict;
  14. use app\model\site\Site;
  15. use core\base\BaseModel;
  16. use think\db\Query;
  17. /**
  18. * 店铺提现模型
  19. * Class Category
  20. * @package addon\mall\app\model\shop
  21. */
  22. class ShopCashOut extends BaseModel
  23. {
  24. protected $type = [
  25. 'audit_time' => 'timestamp',
  26. 'transfer_time' => 'timestamp',
  27. ];
  28. /**
  29. * 数据表主键
  30. * @var string
  31. */
  32. protected $pk = 'id';
  33. /**
  34. * 模型名称
  35. * @var string
  36. */
  37. protected $name = 'site_shop_cash_out';
  38. public function siteInfo()
  39. {
  40. return $this->hasOne(Site::class, 'site_id', 'site_id');
  41. }
  42. /**
  43. * 提现单号搜索器
  44. * @param $query
  45. * @param $value
  46. * @param $data
  47. */
  48. public function searchCashOutNoAttr($query, $value, $data)
  49. {
  50. if ($value) {
  51. $query->where('cash_out_no', 'like', '%'.$value.'%');
  52. }
  53. }
  54. /**
  55. * 关键字搜索器
  56. * @param $query
  57. * @param $value
  58. * @param $data
  59. */
  60. public function searchKeywordAttr($query, $value, $data)
  61. {
  62. if ($value) {
  63. $query->where('site_name|phone', 'like', '%'.$value.'%');
  64. }
  65. }
  66. /**
  67. * 创建时间搜索器
  68. * @param Query $query
  69. * @param $value
  70. * @param $data
  71. */
  72. public function searchCreateTimeAttr(Query $query, $value, $data)
  73. {
  74. $start_time = empty($value[0]) ? 0 : strtotime($value[0]);
  75. $end_time = empty($value[1]) ? 0 : strtotime($value[1]);
  76. if ($start_time > 0 && $end_time > 0) {
  77. $query->whereBetweenTime('create_time', $start_time, $end_time);
  78. } else if ($start_time > 0 && $end_time == 0) {
  79. $query->where([['create_time', '>=', $start_time]]);
  80. } else if ($start_time == 0 && $end_time > 0) {
  81. $query->where([['create_time', '<=', $end_time]]);
  82. }
  83. }
  84. /**
  85. * 创建连表时间搜索器
  86. * @param Query $query
  87. * @param $value
  88. * @param $data
  89. */
  90. public function searchJoinCreateTimeAttr(Query $query, $value, $data)
  91. {
  92. $start_time = empty($value[0]) ? 0 : strtotime($value[0]);
  93. $end_time = empty($value[1]) ? 0 : strtotime($value[1]);
  94. if ($start_time > 0 && $end_time > 0) {
  95. $query->whereBetweenTime('shop_cash_out.create_time', $start_time, $end_time);
  96. } else if ($start_time > 0 && $end_time == 0) {
  97. $query->where([['shop_cash_out.create_time', '>=', $start_time]]);
  98. } else if ($start_time == 0 && $end_time > 0) {
  99. $query->where([['shop_cash_out.create_time', '<=', $end_time]]);
  100. }
  101. }
  102. /**
  103. * 审核时间搜索器
  104. * @param Query $query
  105. * @param $value
  106. * @param $data
  107. */
  108. public function searchAuditTimeAttr(Query $query, $value, $data)
  109. {
  110. $start_time = empty($value[0]) ? 0 : strtotime($value[0]);
  111. $end_time = empty($value[1]) ? 0 : strtotime($value[1]);
  112. if ($start_time > 0 && $end_time > 0) {
  113. $query->whereBetweenTime('audit_time', $start_time, $end_time);
  114. } else if ($start_time > 0 && $end_time == 0) {
  115. $query->where([['audit_time', '>=', $start_time]]);
  116. } else if ($start_time == 0 && $end_time > 0) {
  117. $query->where([['audit_time', '<=', $end_time]]);
  118. }
  119. }
  120. /**
  121. * 转账时间搜索器
  122. * @param Query $query
  123. * @param $value
  124. * @param $data
  125. */
  126. public function searchTransferTimeAttr(Query $query, $value, $data)
  127. {
  128. $start_time = empty($value[0]) ? 0 : strtotime($value[0]);
  129. $end_time = empty($value[1]) ? 0 : strtotime($value[1]);
  130. if ($start_time > 0 && $end_time > 0) {
  131. $query->whereBetweenTime('transfer_time', $start_time, $end_time);
  132. } else if ($start_time > 0 && $end_time == 0) {
  133. $query->where([['transfer_time', '>=', $start_time]]);
  134. } else if ($start_time == 0 && $end_time > 0) {
  135. $query->where([['transfer_time', '<=', $end_time]]);
  136. }
  137. }
  138. /**
  139. * 提现方式搜索
  140. * @param $query
  141. * @param $value
  142. * @param $data
  143. */
  144. public function searchTransferTypeAttr($query, $value, $data)
  145. {
  146. if ($value) {
  147. $query->where('transfer_type', '=', $value);
  148. }
  149. }
  150. /**
  151. * 提现状态搜索
  152. * @param $query
  153. * @param $value
  154. * @param $data
  155. */
  156. public function searchStatusAttr($query, $value, $data)
  157. {
  158. if ($value) {
  159. $query->where('shop_cash_out.status', '=', $value);
  160. }
  161. }
  162. /**
  163. * 状态字段转化
  164. * @param $value
  165. * @param $data
  166. * @return mixed
  167. */
  168. public function getStatusNameAttr($value, $data)
  169. {
  170. if (empty($data['status']))
  171. return '';
  172. return ShopCashOutDict::getStatus()[$data['status']] ?? '';
  173. }
  174. /**
  175. * 转账方式名称
  176. * @param $value
  177. * @param $data
  178. * @return array|mixed|string
  179. */
  180. public function getTransferTypeNameAttr($value, $data)
  181. {
  182. if (empty($data['transfer_type']))
  183. return '';
  184. return ShopTransferDict::getType()[$data['transfer_type']] ?? '';
  185. }
  186. }