<?php
|
|
namespace app\common\model\plus\regactivity;
|
|
use app\common\model\BaseModel;
|
|
/**
|
* 活动模型
|
*/
|
class Activity extends BaseModel
|
{
|
protected $name = 'registration_activity';
|
protected $pk = 'activity_id';
|
|
/**
|
* 追加字段
|
* @var string[]
|
*/
|
protected $append = [
|
'register_time_text',
|
'activity_time_text',
|
'status_text',
|
];
|
|
/**
|
*报名时间
|
* @param $value
|
* @param $data
|
* @return string
|
*/
|
public function getRegisterTimeTextAttr($value, $data)
|
{
|
return $data['register_start_time'] ? date('Y-m-d H:i:s', $data['register_start_time']).'至' . date('Y-m-d H:i:s', $data['register_end_time']) : '';
|
}
|
/**
|
* 活动时间
|
* @param $value
|
* @param $data
|
* @return string
|
*/
|
public function getActivityTimeTextAttr($value, $data)
|
{
|
return $data['activity_start_time'] ? date('Y-m-d H:i:s', $data['activity_start_time']).'至' . date('Y-m-d H:i:s', $data['activity_end_time']) : '';
|
}
|
/**
|
* 活动状态
|
* @param $value
|
* @param $data
|
* @return string
|
*/
|
public function getStatusTextAttr($value, $data)
|
{
|
if(time() >= $data['activity_start_time'] && ($data['activity_end_time']) >= time()){
|
$status_text="活动进行中";
|
$status=1;
|
}elseif(time() > ($data['activity_end_time'])){
|
$status_text="活动已结束";
|
$status=2;
|
}else{
|
$status_text="活动未开始";
|
$status=0;
|
}
|
if(time() >= $data['register_start_time'] && ($data['register_end_time']) >= time()){
|
$reg_status_text="报名进行中";
|
$reg_status=1;
|
}elseif(time() > ($data['register_end_time'])){
|
$reg_status_text="已结束报名";
|
$reg_status=2;
|
}else{
|
$reg_status_text="未开始报名";
|
$reg_status=0;
|
}
|
$activity_end_time = date("Y-m-d H:i:s",($data['activity_end_time']));
|
$register_end_time = date("Y-m-d H:i:s",($data['register_end_time']));
|
return ["status"=>$status,"status_text"=>$status_text,"reg_status"=>$reg_status,"reg_status_text"=>$reg_status_text,"act_end_time"=>$activity_end_time,"reg_end_time"=>$register_end_time];
|
}
|
/**
|
* 关联封面图
|
* @return \think\model\relation\HasOne
|
*/
|
public function image()
|
{
|
return $this->hasOne('app\\common\\model\\file\\UploadFile', 'file_id', 'image_id');
|
}
|
|
/**
|
* 关联活动分类表
|
* @return \think\model\relation\BelongsTo
|
*/
|
public function category()
|
{
|
$module = self::getCalledModule() ?: 'common';
|
return $this->BelongsTo("app\\{$module}\\model\\plus\\regactivity\\Category", 'category_id', 'category_id');
|
}
|
|
/**
|
* 活动详情
|
*/
|
public static function detail($activity_id)
|
{
|
return (new static())->with(['image', 'category'])->find($activity_id);
|
}
|
}
|