quanwei
2025-11-21 2d9362ae6f528f57e6133d5d80f0b633c24e8eb6
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
<?php
namespace app\api\controller\plus\business;
 
use app\api\controller\Controller;
use app\api\model\plus\business\Template as TemplateModel;
 
class Template extends Controller
{
    /**
     * 获取模板列表
     */
    public function getList()
    {
        $model = new TemplateModel();
        $param=$this->request->param();
        $list=$model->lists($param);
        foreach($list as $l=>$v ){
            $list[$l]['style']= json_decode($v['style'],true);
            $width=round($param['screenWidth']/$v['style']['backdrop']['width'],2);
            $v['width']=$width;
            foreach ($v['style'] as $key=>$item){
                if(is_array($item)){
                    foreach ($item as $i=>$y){
                        if($i!='color'&&$i!='src'&&$i!='style'&&$i!='display'&&$i!='type'||is_array($y)){
                            if(is_array($y)&&count($y)){
                                foreach ($y as $u=>$n){
                                    if($u!='color'&&$u!='src'&&$u!='style'&&$n!=0){
                                        $data[$l]['style'][$key][$i][$u]= round($n*$width,2);
                                    }else{
                                        $data[$l]['style'][$key][$i][$u]=$n;
                                    }
                                }
                            }else{
                                $data[$l]['style'][$key][$i]= round($y*$width,2);
                            }
                        }else{
                            $data[$l]['style'][$key][$i]=$y;
                        }
                    }
                }else{
                    $data[$l]['style'][$key]=$item;
                }
            }
        }
        foreach ($data as $l=>$v ){
            $list[$l]['style']=$v['style'];
        }
        return $this->renderSuccess('',$list);
    }
    
    /**
     * 获取模板详情
     * @param $template_id
     * @return array
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public function detail($template_id)
    {
        $model = new TemplateModel();
        $detail = $model->detail($template_id);
        if (!$detail) {
            return $this->renderError('模板不存在');
        }
        $detail['style'] = json_decode($detail['style'], true);
        return $this->renderSuccess($detail);
    }
    
    /**
     * 添加模板
     */
    public function add()
    {
        $param = request()->param();
        $param['style'] = json_encode($param['style'], JSON_UNESCAPED_UNICODE);
        if ((new TemplateModel())->add($param)) {
            return $this->renderSuccess('添加成功');
        }
        return $this->renderError('添加失败');
    }
    
    /**
     * 编辑模板
     */
    public function edit()
    {
        $param = request()->param();
        $model = (new TemplateModel())->detail($param['template_id']);
        if (!$model) {
            return $this->renderError('模板不存在');
        }
        $param['style'] = json_encode($param['style'], JSON_UNESCAPED_UNICODE);
        unset($param['template_id']);
        if ($model->save($param)) {
            return $this->renderSuccess('', '编辑成功');
        }
        return $this->renderError('编辑失败');
    }
}