// +---------------------------------------------------------------------- namespace app\model\order; use app\model\supplier\SystemSupplier; use app\model\user\User; use crmeb\basic\BaseModel; use crmeb\traits\ModelTrait; use think\Model; /** * Class StoreOrderRefund * @package app\model\order */ class StoreOrderRefund extends BaseModel { use ModelTrait; protected $pk = 'id'; protected $name = 'store_order_refund'; /** * 购物车信息获取器 * @param $value * @return array|mixed */ public function getCartInfoAttr($value) { return is_string($value) ? json_decode($value, true) ?? [] : []; } /** * 图片获取器 * @param $value * @return array|mixed */ public function getRefundImgAttr($value) { return is_string($value) ? json_decode($value, true) ?? [] : []; } /** * 图片获取器 * @param $value * @return array|mixed */ public function getRefundGoodsImgAttr($value) { return is_string($value) ? json_decode($value, true) ?? [] : []; } /** * * @return StoreOrderRefund|\think\model\relation\HasOne */ public function order() { return $this->hasOne(StoreOrder::class, 'id', 'store_order_id'); } /** * 订单配送类型 * @return StoreOrderRefund|\think\model\relation\HasOne */ public function orderShippingType() { return $this->hasOne(StoreOrder::class, 'id', 'store_order_id')->field('id,shipping_type')->bind(['shipping_type']); } /** * 一对一关联用户表 * @return \think\model\relation\HasOne */ public function user() { return $this->hasOne(User::class, 'uid', 'uid', false)->field(['uid', 'avatar', 'nickname', 'phone', 'now_money', 'integral', 'delete_time'])->bind([ 'avatar' => 'avatar', 'nickname' => 'nickname', 'phone' => 'phone', 'now_money' => 'now_money', 'integral' => 'integral', 'delete_time' => 'delete_time', ]); } /** * 一对一关联订单表 * @return StoreOrderRefund|\think\model\relation\HasOne */ public function orderData() { return $this->hasOne(StoreOrder::class, 'id', 'store_order_id')->field('id, order_id, pay_type, paid, real_name,user_phone, user_address, pay_time') ->bind([ 'store_order_sn' => 'order_id', 'pay_type', 'paid', 'real_name', 'user_phone', 'user_address', 'pay_uid', 'pay_time' ]); } /** * 订单ID搜索器 * @param $query * @param $value */ public function searchStoreOrderIdAttr($query, $value) { if ($value !== '') { if (is_array($value)) { $query->whereIn('store_order_id', $value); } else { $query->where('store_order_id', $value); } } } /** * 门店ID * @param $query * @param $value */ public function searchStoreIdAttr($query, $value) { if ($value !== '') { if ($value == -1) {//所有门店 $query->where('store_id', '>', 0); } else { $query->where('store_id', $value); } } } /** * @param Model $query * @param $value */ public function searchUidAttr($query, $value) { if ($value !== '' && !is_null($value)) { if (is_array($value)) { $query->whereIn('uid', $value); } else { $query->where('uid', $value); } } } /** * is_cancel * @param Model $query * @param $value */ public function searchIsCancelAttr($query, $value) { if ($value !== '' && !is_null($value)) $query->where('is_cancel', $value); } /** * 退款快递单号搜索器 * @param \think\db\Query $query 查询对象 * @param mixed $value 搜索值 */ public function searchRefundExpressAttr($query, $value) { if ($value !== '' && !is_null($value)) $query->where('refund_express', $value); } /** * is_del搜索器 * @param Model $query * @param $value */ public function searchIsDelAttr($query, $value) { if ($value !== '' && !is_null($value)) $query->where('is_del', $value); } /** * 供应商ID * @param $query * @param $value */ public function searchSupplierIdAttr($query, $value) { if ($value !== '') { if ($value == -1) { $query->where('supplier_id', '>', 0); } else { $query->where('supplier_id', $value); } } } /** * 一对一关联供应商 * @return \think\model\relation\HasOne */ public function supplier() { return $this->hasOne(SystemSupplier::class, 'id', 'supplier_id')->field(['id', 'supplier_name'])->bind([ 'supplier_name' ]); } /** * 渠道搜索器 * @param \think\db\Query $query 查询对象 * @param mixed $value 搜索值 */ public function searchChannelAttr($query, $value) { if ($value !== '') $query->where('channel', $value); } }