| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- /**
- * Created by PhpStorm.
- * Name: 芸众商城系统
- * Author: 广州市芸众信息科技有限公司
- * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
- * Date: 2021/12/23
- * Time: 14:13
- */
- namespace app\common\models\refund;
- use app\common\models\BaseModel;
- use app\common\models\OrderGoods;
- use app\framework\Database\Eloquent\Builder;
- use Illuminate\Database\Eloquent\SoftDeletes;
- /**
- * Class RefundGoodsLog
- * @package app\common\models\refund
- */
- class RefundGoodsLog extends BaseModel
- {
- use SoftDeletes;
- public $table = 'yz_order_refund_goods_log';
- protected $guarded = ['id'];
- protected $appends = ['goods_id','goods_title','goods_option_title','goods_thumb'];
- protected $hidden = ['orderGoods', 'created_at','updated_at','deleted_at'];
- const CANCEL_STATUS = -1; //驳回/取消
- const WAIT_STATUS = 0; //等待审核
- const COMPLETE_STATUS = 1; //完成
- /**
- * 记录申请售后商品
- * @param RefundApply $refund
- * @param array $orderGoods
- * @return bool
- */
- public static function saveData(RefundApply $refund, $orderGoods)
- {
- $log = self::where('order_goods_id', $orderGoods['id'])->where('refund_id', $refund)->first();
- $log = is_null($log) ? new self() : $log;
- $log->fill([
- 'refund_id' => $refund->id,
- 'order_id' => $refund->order->id,
- 'refund_type' => $refund->refund_type,
- 'order_goods_id' => $orderGoods['id'],
- 'send_num' => $orderGoods['total'],
- 'refund_total' => $orderGoods['total'],
- 'refund_price' => $orderGoods['refund_price'],
- ]);
- return $log->save();
- }
- public static function getRefundedGoods($order_goods_id)
- {
- return self::where('order_goods_id', $order_goods_id)->join('yz_order_refund', function ($join) {
- $join->on('yz_order_refund.id', '=', 'yz_order_refund_goods_log.refund_id')
- ->where('yz_order_refund.refund_type','!=', RefundApply::REFUND_TYPE_EXCHANGE_GOODS)
- ->where('yz_order_refund.status', '>=', RefundApply::COMPLETE);
- });
- }
- public function getGoodsIdAttribute()
- {
- return $this->orderGoods->goods_id;
- }
- public function getGoodsTitleAttribute()
- {
- return $this->orderGoods->title;
- }
- public function getGoodsOptionTitleAttribute()
- {
- return $this->orderGoods->goods_option_title;
- }
- public function getGoodsThumbAttribute()
- {
- return yz_tomedia($this->orderGoods->thumb);
- }
- public function scopePluginId(Builder $query, $pluginId = 0)
- {
- return parent::scopePluginId($query, $pluginId); // TODO: Change the autogenerated stub
- }
- public function scopeByOrderId(Builder $query, $order_id)
- {
- return $query->where('order_id', $order_id);
- }
- public function scopeByOrderGoodsId(Builder $query, $order_goods_id)
- {
- return $query->where('order_goods_id', $order_goods_id);
- }
- public function orderGoods()
- {
- return $this->hasOne(OrderGoods::class, 'id', 'order_goods_id');
- }
- public function hasOneOrderGoods()
- {
- return $this->hasOne(OrderGoods::class, 'id', 'order_goods_id');
- }
- public function belongsToOrderFund()
- {
- return $this->belongsTo(RefundApply::class, 'order_id', 'order_id');
- }
- }
|