liyaozhi
2025-10-28 1320688354fd168c51cf2e05f29a2253f4ed9c00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
 
namespace app\common\model\plus\assemble;
 
use app\common\model\BaseModel;
 
/**
 * 参与记录模型
 */
class Active extends BaseModel
{
    protected $name = 'assemble_activity';
    protected $pk = 'assemble_activity_id';
 
    //附加字段
    protected $append = ['status_text', 'start_time_text','end_time_text', 'join_end_time_text','join_status'];
    /**
     * 有效期-开始时间
     */
    public function getStartTimeTextAttr($value, $data)
    {
        return date('Y-m-d H:i:s', $data['start_time']);
    }
 
    /**
     * 有效期-开始时间
     */
    public function getEndTimeTextAttr($value, $data)
    {
        return date('Y-m-d H:i:s', $data['end_time']);
    }
    /**
     * 报名截止日期
     */
    public function getJoinEndTimeTextAttr($value, $data)
    {
        return date('Y-m-d H:i:s', $data['join_end_time']);
    }
    /**
     * 状态
     * @param $val
     * @return string
     */
    public function getStatusTextAttr($value, $data)
    {
        if($data['status'] == 0){
            return '未生效';
        }
        if ($data['start_time'] > time()) {
            return '未开始';
        }
        if ($data['end_time'] < time()) {
            return '已结束';
        }
        if ($data['start_time'] < time() && $data['end_time'] > time()) {
            return '生效-进行中';
        }
        return '';
    }
     /**
     * 状态
     * @param $val
     * @return string
     */
    public function getJoinStatusAttr($value, $data)
    {
        if($data['status'] == 0){
            return 0;
        }
        if ($data['end_time'] < time()) {
            return 0;
        }
        if ($data['join_end_time'] < time()) {
            return 0;
        }
 
        return 1;
    }
    public static function detail($assemble_activity_id)
    {
        return (new static())->with(['file'])->where('assemble_activity_id', '=', $assemble_activity_id)->find($assemble_activity_id);
    }
    /**
     * 处理过的详情数据
     */
    public static function detailWithTrans($assemble_activity_id)
    {
        $model = (new static())->with(['file'])->where('assemble_activity_id', '=', $assemble_activity_id)->find();
 
        $detail = [
            'title' => $model['title'],
            'image_id' => $model['image_id'],
            'file_path' => $model['file']['file_path'],
            'status' => $model['status'],
            'fail_type' => $model['fail_type'],
            'is_single' => $model['is_single'],
            'sort' => $model['sort'],
            'is_delete' => $model['is_delete'],
            'together_time' => $model['together_time'],
            'start_time' => $model['start_time'],
            'end_time' => $model['end_time'],
            'join_end_time' => date('Y-m-d H:i:s', $model['join_end_time']),
            'active_time' => [
                date('Y-m-d H:i:s', $model['start_time']),
                date('Y-m-d H:i:s', $model['end_time']),
            ],
        ];
 
        return $detail;
    }
 
    public function file()
    {
        return $this->belongsTo('app\\common\\model\\file\\UploadFile', 'image_id', 'file_id');
    }
 
    public function assembleProduct()
    {
        return $this->hasMany('Product', 'assemble_activity_id', 'assemble_activity_id');
    }
 
}