RechargeOrderItemRefund.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\model\order;
  12. use app\dict\order\RechargeOrderDict;
  13. use app\model\member\Member;
  14. use app\model\pay\Refund;
  15. use core\base\BaseModel;
  16. use think\model\relation\HasOne;
  17. /**
  18. * 订单项目模型
  19. * Class OrderItem
  20. * @package app\model\order
  21. */
  22. class RechargeOrderItemRefund extends BaseModel
  23. {
  24. //类型
  25. protected $type = [
  26. 'create_time' => 'timestamp',
  27. 'audit_time' => 'timestamp',
  28. 'transfer_time' => 'timestamp',
  29. ];
  30. /**
  31. * 数据表主键
  32. * @var string
  33. */
  34. protected $pk = 'refund_id';
  35. /**
  36. * 模型名称
  37. * @var string
  38. */
  39. protected $name = 'recharge_order_item_refund';
  40. /**
  41. * 退款状态字段处理
  42. * @param $value
  43. * @param $data
  44. * @return mixed
  45. */
  46. public function getStatusNameAttr($value, $data)
  47. {
  48. if (empty($data['status']))
  49. return '';
  50. $temp = RechargeOrderDict::getRefundStatus()[$data['status']] ?? [];
  51. return $temp['name'] ?? '';
  52. }
  53. /**
  54. *
  55. * @return HasOne
  56. */
  57. public function item()
  58. {
  59. return $this->hasOne(RechargeOrderItem::class, 'order_item_id', 'order_item_id')->joinType('inner');
  60. }
  61. /**
  62. * 订单会员
  63. * @return HasOne
  64. */
  65. public function member()
  66. {
  67. return $this->hasOne(Member::class, 'member_id', 'member_id')->withField('member_id, username, mobile, nickname, headimg')->joinType('left');
  68. }
  69. /**
  70. * 关联退款支付记录表
  71. * @return HasOne
  72. */
  73. public function payrefund()
  74. {
  75. return $this->hasOne(Refund::class, 'refund_no', 'refund_no');
  76. }
  77. /**
  78. * 会员id搜索
  79. * @param $query
  80. * @param $value
  81. * @param $data
  82. */
  83. public function searchRefundNoAttr($query, $value, $data)
  84. {
  85. if ($value) {
  86. $query->where('refund_no', '=', $value);
  87. }
  88. }
  89. /**
  90. * 订单号搜索
  91. * @param $query
  92. * @param $value
  93. * @param $data
  94. */
  95. public function searchOrderNoAttr($query, $value, $data)
  96. {
  97. if ($value) {
  98. $query->where('order_no', '=', $value);
  99. }
  100. }
  101. /**
  102. * 订单号搜索(用于关联)
  103. * @param $query
  104. * @param $value
  105. * @param $data
  106. */
  107. public function searchJoinOrderNoAttr($query, $value, $data)
  108. {
  109. if ($value) {
  110. $query->where('recharge_order_item_refund.order_no', '=', $value);
  111. }
  112. }
  113. /**
  114. * 会员id搜索
  115. * @param $query
  116. * @param $value
  117. * @param $data
  118. */
  119. public function searchMemberIdAttr($query, $value, $data)
  120. {
  121. if ($value) {
  122. $query->where('member_id', '=', $value);
  123. }
  124. }
  125. /**
  126. * 会员id搜索
  127. * @param $query
  128. * @param $value
  129. * @param $data
  130. */
  131. public function searchJoinMemberIdAttr($query, $value, $data)
  132. {
  133. if ($value) {
  134. $query->where('recharge_order_item_refund.member_id', '=', $value);
  135. }
  136. }
  137. /**
  138. * 退款状态
  139. * @param $query
  140. * @param $value
  141. * @param $data
  142. */
  143. public function searchStatusAttr($query, $value, $data)
  144. {
  145. if ($value != '') {
  146. $query->where('status', '=', $value);
  147. }
  148. }
  149. /**
  150. * 退款状态
  151. * @param $query
  152. * @param $value
  153. * @param $data
  154. */
  155. public function searchJoinStatusAttr($query, $value, $data)
  156. {
  157. if ($value != '') {
  158. $query->where('recharge_order_item_refund.status', '=', $value);
  159. }
  160. }
  161. /**
  162. * 创建时间搜索器
  163. * @param $query
  164. * @param $value
  165. * @param $data
  166. */
  167. public function searchCreateTimeAttr($query, $value, $data)
  168. {
  169. $start_time = empty($value[0]) ? 0 : strtotime($value[0]);
  170. $end_time = empty($value[1]) ? 0 : strtotime($value[1]);
  171. if ($start_time > 0 && $end_time > 0) {
  172. $query->whereBetweenTime('create_time', $start_time, $end_time);
  173. } else if ($start_time > 0 && $end_time == 0) {
  174. $query->where([['create_time', '>=', $start_time]]);
  175. } else if ($start_time == 0 && $end_time > 0) {
  176. $query->where([['create_time', '<=', $end_time]]);
  177. }
  178. }
  179. /**
  180. * 创建时间搜索器
  181. * @param $query
  182. * @param $value
  183. * @param $data
  184. */
  185. public function searchJoinCreateTimeAttr($query, $value, $data)
  186. {
  187. $start_time = empty($value[0]) ? 0 : strtotime($value[0]);
  188. $end_time = empty($value[1]) ? 0 : strtotime($value[1]);
  189. if ($start_time > 0 && $end_time > 0) {
  190. $query->whereBetweenTime('recharge_order_item_refund.create_time', $start_time, $end_time);
  191. } else if ($start_time > 0 && $end_time == 0) {
  192. $query->where([['recharge_order_item_refund.create_time', '>=', $start_time]]);
  193. } else if ($start_time == 0 && $end_time > 0) {
  194. $query->where([['recharge_order_item_refund.create_time', '<=', $end_time]]);
  195. }
  196. }
  197. }