// +---------------------------------------------------------------------- namespace app\common\model\store\service; use app\common\model\BaseModel; use app\common\model\store\order\StoreOrder; use app\common\model\store\order\StoreRefundOrder; use app\common\model\store\product\Product; use app\common\model\store\product\ProductGroup; use app\common\model\store\product\ProductPresell; use app\common\model\system\merchant\Merchant; use app\common\model\user\User; class StoreServiceLog extends BaseModel { public static function tablePk(): ?string { return 'service_log_id'; } public static function tableName(): string { return 'store_service_log'; } public function orderInfo() { return $this->hasOne(StoreOrder::class, 'order_id', 'msn')->with('orderProduct'); } public function product() { return $this->hasOne(Product::class, 'product_id', 'msn'); } public function presell() { return $this->hasOne(ProductPresell::class, 'product_presell_id', 'msn')->append(['product']); } public function productGroup() { return $this->hasOne(ProductGroup::class, 'product_group_id', 'msn')->append(['product']); } public function refundOrder() { return $this->hasOne(StoreRefundOrder::class, 'refund_order_id', 'msn')->with('refundProduct.product'); } public function user() { return $this->hasOne(User::class, 'uid', 'uid')->field('uid,avatar,nickname'); } public function service() { return $this->hasOne(StoreService::class, 'service_id', 'service_id')->field('uid,service_id,avatar,nickname'); } public function merchant() { return $this->hasOne(Merchant::class, 'mer_id', 'mer_id'); } public function getSendTimeAttr() { return strtotime($this->create_time); } public function getSendDateAttr() { return date('H:i',strtotime($this->create_time)); } public function getMsnInfoAttr($value) { $value = $this->msn; //4=商品 5=订单 6=退款单 switch ($this->msn_type) { case 4: $mode = Product::where(['product_id' => $value])->find(); $msn = '[商品ID:' .$value.'],'. $mode->store_name; break; case 5: $mode = StoreOrder::where(['order_id' => $value])->find(); $msn = '[订单ID:' .$value.'],'. $mode->order_sn; break; case 6: $mode = StoreRefundOrder::where(['refund_order_id' => $value])->find(); $msn = '[退款单ID:' .$value.'],'. $mode->refund_order_sn; break; default: $msn = $value; break; } return $msn; } }