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
<?php
 
namespace app\common\model\branch;
 
use app\common\model\BaseModel;
use think\facade\Cache;
 
/**
 * 连盟设置模型
 */
class Setting extends BaseModel
{
    protected $name = 'branch_setting';
    protected $createTime = false;
 
    /**
     * 转义数组格式
     * @param $value
     * @return mixed
     */
    public function getValuesAttr($value)
    {
        return json_decode($value, true);
    }
 
    /**
     * 转义成json格式
     * @param $value
     * @return false|string
     */
    public function setValuesAttr($value)
    {
        return json_encode($value);
    }
 
    /**
     * 获取指定项设置
     * @param $key
     * @param null $app_id
     * @return array|mixed
     */
    public static function getItem($key, $app_id = null)
    {
        $data = static::getAll($app_id);
        return isset($data[$key]) ? $data[$key]['values'] : [];
    }
 
    /**
     * 获取设置
     */
    public static function getAll($app_id = null)
    {
        $self = new static;
        is_null($app_id) && $app_id = $self::$app_id;
        if (!$data = Cache::get('branch_setting_' . $app_id)) {
            $data = array_column($self->select()->toArray(), null, 'key');
            Cache::tag('cache')->set('branch_setting_' . $app_id, $data);
        }
        return array_merge_multiple($self->defaultData(), $data);
    }
 
    /**
     * 获取设置项信息
     */
    public static function detail($key)
    {
        return (new static())->find(compact('key'));
    }
 
    /**
     * 是否开启分销功能
     */
    public static function isOpen($app_id = null)
    {
        return static::getItem('basic', $app_id)['is_open'];
    }
 
    /**
     * 分销中心页面名称
     */
    public static function getbranchTitle($app_id = null)
    {
        return static::getItem('words', $app_id)['index']['title']['value'];
    }
 
    /**
     * 默认配置
     */
    public function defaultData()
    {
        return [
            'basic' => [
                'key' => 'basic',
                'describe' => '基础设置',
                'values' => [
                    'visit_company' => '100',   // 被走访的企业获得积分
                    'space_company' => '100',   // 提供场地的企业获得积分
                    'organize_branch' => '10', // 组织活动的分会获得积分
                    'participate_user' => '10', // 参与活动的人获得积分
                    'download_image_points' => 1, // 下载活动图片消耗的积分
                    'download_video_points' => 2, // 下载活动视频消耗的积分
                ],
            ],
            'license' => [
                'key' => 'license',
                'describe' => '申请协议',
                'values' => [
                    'license' => ''
                ]
            ],
            'template_msg' => [
                'key' => 'template_msg',
                'describe' => '模板消息',
                'values' => [
                    'activity_start_tpl' => '',    // 活动开始通知
                ]
            ],
        ];
    }
}