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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?php
 
namespace app\shop\controller\branch;
 
use app\shop\controller\Controller;
use app\shop\model\branch\Activity as ActivityModel;
use app\shop\model\branch\Category as CategoryModel;
use app\shop\model\user\User as UserModel;
use app\common\service\qrcode\BranchActivityService;
use app\common\model\branch\ActivityProductPrice as ActivityProductPriceModel;
 
/**
 * 活动控制器
 */
class Activity extends Controller
{
    /**
     * 列表
     */
    public function index()
    {
        $model = new ActivityModel;
        $list = $model->getList($this->postData());
        return $this->renderSuccess('', compact('list'));
    }
 
    /**
     * 添加活动
     */
    public function add()
    {
        if($this->request->isGet()){
            // 活动分类
            $catgory = CategoryModel::getAll();
            return $this->renderSuccess('', compact('catgory'));
        }
        $model = new ActivityModel;
        //Vue要添加的数据
        $data = $this->postData();
        if(empty($data['reg_date'])){
            return $this->renderError('请选择报名时间');
        }
        if(empty($data['act_date'])){
            return $this->renderError('请选择活动时间');
        }
        $coordinate = explode(',', $data['coordinate']);
        if (count($coordinate) <= 1) {
            return $this->renderError('请在地图点击选择坐标');
        }
        // 新增记录
        if ($model->add($data)) {
            return $this->renderSuccess('活动添加成功');
        }
        return $this->renderError($model->getError() ?: '添加失败');
    }
 
    /**
     *活动详情
     */
    public function detail($activity_id)
    {
        $model = new ActivityModel;
        return $this->renderSuccess('', $model->detail($activity_id));
    }
 
    /**
     * 更新活动
     */
    public function edit($activity_id)
    {
        if($this->request->isGet()){
            // 活动分类
            $catgory = CategoryModel::getAll();
            $model = ActivityModel::detail($activity_id);
            //报名时间
            $tem_regdate[0]=date("Y-m-d H:i:s",$model['register_start_time']);
            $tem_regdate[1]=date("Y-m-d H:i:s",$model['register_end_time']);
            $model['reg_date'] = $tem_regdate;
            //活动时间
            $tem_act_date[0] = date("Y-m-d H:i:s",$model['activity_start_time']);
            $tem_act_date[1] = date("Y-m-d H:i:s",$model['activity_end_time']);
            $model['act_date'] = $tem_act_date;
            $model['coordinate'] = $model['latitude'] . ',' . $model['longitude'];
            $model['product_list'] = (new ActivityProductPriceModel())->getProductPricelist($activity_id);
            
            return $this->renderSuccess('', compact('catgory', 'model'));
        }
        // 活动详情
        $model = ActivityModel::detail($activity_id);
        //Vue要添加的数据
        $data = $this->postData();
        if(empty($data['reg_date'])){
            return $this->renderError('请选择报名时间');
        }
        if(empty($data['act_date'])){
            return $this->renderError('请选择活动时间');
        }
        $coordinate = explode(',', $data['coordinate']);
        if (count($coordinate) <= 1) {
            return $this->renderError('请在地图点击选择坐标');
        }
        // 更新记录
        if ($model->edit($this->postData())) {
            return $this->renderSuccess('更新成功');
        }
        return $this->renderError($model->getError() ?: '更新失败');
    }
 
    /**
     * 删除活动
     */
    public function delete($activity_id)
    {
        // 文章详情
        $model = ActivityModel::detail($activity_id);
        if ($model->setDelete()) {
            return $this->renderSuccess('删除成功');
        }
        return $this->renderError($model->getError() ?:'删除失败');
    }
 
    /**
     * 开启禁止
     */
    public function status($activity_id, $status)
    {
        // 商品详情
        $model = ActivityModel::detail($activity_id);
        if (!$model->setStatus($status)) {
            return $this->renderError('操作失败');
        }
        return $this->renderSuccess('操作成功');
    }
 
    /**
     * 核销二维码
     */
    public function qrcode($activity_id, $source)
    {
        $detail = ActivityModel::detail($activity_id);
        $Qrcode = new BranchActivityService($detail, [], $source);
        $fullPath = $Qrcode->getVerifyImage();
 
        header('Content-Type: image/png');
        header('Content-disposition: attachment; filename='. $detail['name'] .'_.png');
        readfile($fullPath);
        header('Content-Length: ' .filesize($fullPath));
        
    }
 
}