quanwei
2025-12-04 12913c1069347ea4b1f6ab87f480da0f8d8c646a
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
<?php
 
namespace app\shop\model\branch;
 
use app\common\model\branch\Category as CategoryModel;
use app\shop\model\branch\Activity as ActivityModel;
 
/**
 * 主营分类模型
 */
class Category extends CategoryModel
{
    /**
     * 分类详情
     */
    public static function detail($category_id)
    {
        return (new static())->find($category_id);
    }
 
    /**
     * 添加新记录
     */
    public function add($data)
    {
        $data['app_id'] = self::$app_id;
        $isExist = static::where('name','=',$data['name'])->find();
        if($isExist){
            $this->error='名称已存在';
            return false;
        }
        return $this->save($data);
    }
 
    /**
     * 编辑记录
     */
    public function edit($data)
    {   
        $isExist = static::where('name','=',$data['name'])->where('category_id','<>',$data['category_id'])->find();
        if($isExist){
            $this->error='名称已存在';
            return false;
        }
        $data['create_time'] = strtotime($data['create_time']);
        $data['update_time'] = time();
        return $this->save($data);
    }
 
    /**
     * 删除分类
     */
    public function remove()
    {
        // 判断是否存在活动
        $Count = ActivityModel::getTotal(['category_id' => $this['category_id']]);
        if ($Count > 0) {
            $this->error = '该分类下存在' . $Count . '个活动,不允许删除';
            return false;
        }
        return $this->delete();
    }
 
    /**
     * 开启禁止
     */
    public function setStatus($status)
    {   
        // 开启事务
        $this->startTrans();
        try {
            //更改分会状态
            $this->save(['status' => $status]); 
            $this->commit();
            return true;
        } catch (\Exception $e) {
            $this->error = $e->getMessage();
            $this->rollback();
            return false;
        }
    }
 
}