// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\common\model; use app\common\model\store\Setting; use app\common\model\RefundCompensateHis; use app\common\enum\order\refund\RefundType as RefundTypeEnum; use app\common\enum\order\refund\AuditStatus as AuditStatusEnum; use app\common\enum\order\refund\RefundStatus as RefundStatusEnum; use app\common\enum\order\refund\FinanceRefundStatus as FinanceRefundStatusEnum; /** * 售后单补偿单模型 * Class OrderRefund * @package app\common\model\wxapp */ class RefundCompensate extends BaseModel { // 定义表名 protected $name = 'refund_compensate'; // 定义主键 protected $pk = 'id'; // const TYPE =[10=>'退货退款',20=>'不退货退款',30=>'未发货退款']; const FINANCE_REFUND =[0=>'待退款',10=>'已退款']; /** * 追加字段 * @var array */ protected $append = [ // 'state_text', // 售后单状态 // 'type_text', // 'finance_refund_text' ]; // public function getTypeTextAttr($value,$data){ // return self::TYPE[$data['type']]??''; // } public function getFinanceRefundTextAttr($value,$data){ return self::FINANCE_REFUND[$data['finance_refund']]??''; } // /** // * 关联门店表 // * @return \think\model\relation\BelongsTo // */ // public function shops() // { // $module = self::getCalledModule(); // return $this->belongsTo("app\\{$module}\\model\\shop\\Shops", 'shop_id'); // } // /** // * 关联用户表 // * @return \think\model\relation\BelongsTo // */ // public function user() // { // return $this->belongsTo('User'); // } /** * 关联记录 * @return \think\model\relation\BelongsTo */ public function his() { return $this->hasMany('RefundCompensateHis','refund_compensate_id','id'); } /** * 关联订单主表 * @return \think\model\relation\BelongsTo */ public function orderData() { return $this->belongsTo('Order'); } /** * 关联单个订单商品表 * @return \think\model\relation\BelongsTo */ public function orderGoods() { return $this->belongsTo('OrderGoods')->withoutField(['content']); } // /** // * 关联全部订单商品 // */ // public function orderGoodsAll() // { // return $this->hasMany('OrderGoods', 'order_id', 'order_id')->withoutField(['content']); // } // /** // * 关联核销人用户 // * @return \think\model\relation\BelongsTo // */ // public function hxUser() // { // $module = self::getCalledModule(); // return $this->belongsTo("app\\{$module}\\model\\User", 'hx_refund_user_id')->field('user_id,mobile,nick_name'); // } /** * 关联图片记录表 * @return \think\model\relation\HasMany */ // public function images() // { // return $this->hasMany('OrderRefundImage'); // } /** * 获取凭证图片 */ public function getImagesAttr($value) { if($value){ $arr = array_map(function($v){ $setting = Setting:: getItem('storage',10001); $oss_domain = $setting['engine']['aliyun']['domain']??''; return (stripos($v,"http") === false) ? $oss_domain.'/'.$v : $v; },explode(',',$value)); return $arr; } return []; } /** * 存凭证图片 */ public function setImagesAttr($value) { if($value&&is_array($value)){ return implode(',',$value); } return $value; } // /** // * 关联物流公司表 // * @return \think\model\relation\BelongsTo // */ // public function express() // { // return $this->belongsTo('Express'); // } // /** // * 关联用户表 // * @return \think\model\relation\HasOne // */ // public function address() // { // return $this->hasOne('OrderRefundAddress'); // } /** * 售后单详情 * @param array|int $where * @param array $with * @return null|static */ public static function detail($where, array $with = []) { return static::get($where, $with); } // /** // * 退款成功时间 // * @param $value // * @return false|string // */ // public function getRefundSuccTimeAttr($value) // { // return format_time($value); // } // /** // * 门店操作退款时间 // * @param $value // * @return false|string // */ // public function getHxRefundTimeAttr($value) // { // return format_time($value); // } }