thinkCMF5后台商品添加模板

前台列表模板

<include file="public@header"/>
</head>
<body>
<div class="wrap js-check-wrap">
    <ul class="nav nav-tabs">
        <li class="active"><a href="javascript:;">所有商品</a></li>
        <li><a href="{:url('AdminGoods/add')}">添加商品</a></li>
    </ul>
    <form class="well form-inline margin-top-20" method="post" action="{:url('AdminGoods/index')}">
        所属分类:
        <select class="form-control" name="cate_id" style="width: 140px;">
            <option value='0'>全部</option>
            <volist name="catelist" id="vo">
                <option value="{$vo.id}" <php>if($vo['id'] == $cate_id){echo "selected";}</php>>{$vo.cate_name}</option>
            </volist>
        </select> &nbsp;&nbsp;
        关键词:
        <input type="text" class="form-control" name="keyword" style="width: 200px;"
               value="{$keyword|default=''}" placeholder="商品名称">
        <input type="submit" class="btn btn-primary" value="搜索"/>
        <a class="btn btn-danger" href="{:url('AdminGoods/index')}">清空</a>
    </form>
    <form class="js-ajax-form" action="" method="post">
        <!--<div class="table-actions">-->
            <!--<button class="btn btn-primary btn-sm js-ajax-submit" type="submit"-->
                    <!--data-action="{:url('AdminGoods/recommend')}" data-subcheck="true">推荐-->
            <!--</button>-->

        <!--</div>-->
        <table class="table table-hover table-bordered table-list">
            <thead>
            <tr>
                <!--<th width="15">-->
                    <!--<label>-->
                        <!--<input type="checkbox" class="js-check-all" data-direction="x" data-checklist="js-check-x">-->
                    <!--</label>-->
                <!--</th>-->
                <th width="50">ID</th>
                <th width="80">缩略图</th>
                <th width="120">所属分类</th>
                <th width="120">展示价格</th>
                <th width="120">市场价格</th>
                <th>商品名称</th>
                <th>商品简介</th>
                <th width="150">操作</th>
            </tr>
            </thead>
            <foreach name="list" item="vo">
                <tr>
                    <!--<td>-->
                        <!--<input type="checkbox" class="js-check" data-yid="js-check-y" data-xid="js-check-x" name="ids[]"-->
                               <!--value="{$vo.id}" title="ID:{$vo.id}">-->
                    <!--</td>-->
                    <td><b>{$vo.id}</b></td>
                    <td><img src="{:cmf_get_image_url($vo.goods_thumb)}" style="width: 30px;"></td>
                    <td>{$vo.cate_name}</td>
                    <td>¥{$vo.show_price}</td>
                    <td>¥{$vo.market_price}</td>
                    <td>{$vo.goods_name}</td>
                    <td>{$vo.shortcontent}</td>
                    <td>
                        <a href="{:url('AdminGoods/edit',array('id'=>$vo['id']))}">{:lang('EDIT')}</a> |
                        <a href="{:url('AdminGoods/delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:lang('DELETE')}</a>
                    </td>
                </tr>
            </foreach>
        </table>
        <ul class="pagination">{$page|default=''}</ul>
    </form>
</div>
<script src="__STATIC__/js/admin.js"></script>
<script>

    function reloadPage(win) {
        win.location.reload();
    }

    $(function () {
        setCookie("refersh_time", 0);
        Wind.use('ajaxForm', 'artDialog', 'iframeTools', function () {
            //批量复制
            $('.js-articles-copy').click(function (e) {
                var ids = [];
                $("input[name='ids[]']").each(function () {
                    if ($(this).is(':checked')) {
                        ids.push($(this).val());
                    }
                });

                if (ids.length == 0) {
                    art.dialog.through({
                        id: 'error',
                        icon: 'error',
                        content: '您没有勾选信息,无法进行操作!',
                        cancelVal: '关闭',
                        cancel: true
                    });
                    return false;
                }

                ids = ids.join(',');
                art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=copy&ids=" + ids, {
                    title: "批量复制",
                    width: "300px"
                });
            });
            //批量移动
            $('.js-articles-move').click(function (e) {
                var ids = [];
                $("input[name='ids[]']").each(function () {
                    if ($(this).is(':checked')) {
                        ids.push($(this).val());
                    }
                });

                if (ids.length == 0) {
                    art.dialog.through({
                        id: 'error',
                        icon: 'error',
                        content: '您没有勾选信息,无法进行操作!',
                        cancelVal: '关闭',
                        cancel: true
                    });
                    return false;
                }

                ids = ids.join(',');
                art.dialog.open("__ROOT__/index.php?g=portal&m=AdminArticle&a=move&old_term_id={$term.term_id|default=0}&ids=" + ids, {
                    title: "批量移动",
                    width: "300px"
                });
            });
        });
    });
</script>
</body>
</html>

前台模板添加模板

<include file="public@header"/>
<style type="text/css">
    .pic-list li {
        margin-bottom: 5px;
    }
</style>
<script type="text/html" id="photos-item-tpl">
    <li id="saved-image{id}">
        <input id="photo-{id}" type="hidden" name="thumb[]" value="{filepath}">
        <img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
             onclick="imagePreviewDialog(this.src);">
        <a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
        <a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
    </li>
</script>

</head>
<body>
<div class="wrap js-check-wrap">
    <ul class="nav nav-tabs">
        <li><a href="{:url('AdminGoods/index')}">全部商品</a></li>
        <li class="active"><a href="javascript:;">添加商品</a></li>
    </ul>
    <form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal js-ajax-form margin-top-20">
    <!--<form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal margin-top-20">-->
        <div class="row">
            <div class="col-md-9">
                <table class="table table-bordered">
                    <tr>
                        <th width="100">分类<span class="form-required">*</span></th>
                        <td>
                            <select name="cate" style="width:150px;" class="form-control">
                                <volist name="catelist" id="vo">
                                    <option>{$vo.cate_name}</option>
                                </volist>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <th>商品名称<span class="form-required">*</span></th>
                        <td>
                            <input class="form-control" type="text" name="goods_name" required value=""/>
                        </td>
                    </tr>
                    <tr>
                        <th>市场价格<span class="form-required">*</span></th>
                        <td>
                            <input class="form-control" type="number" name="market_price" required value=""/>
                        </td>
                    </tr>
                    <tr>
                        <th>展示价格<span class="form-required">*</span></th>
                        <td>
                            <input class="form-control" type="number" name="show_price" required value=""/>
                        </td>
                    </tr>
                    <tr>
                        <th>商品简介</th>
                        <td>
                            <textarea class="form-control" name="shortcontent" style="height: 50px;"
                                      placeholder="请填写摘要"></textarea>
                        </td>
                    </tr>
                    <tr>
                        <th>商品详情</th>
                        <td>
                            <script type="text/plain" id="content" name="content"></script>
                        </td>
                    </tr>
                    <tr>
                        <th>相册图集</th>
                        <td>
                            <ul id="photos" class="pic-list list-unstyled form-inline"></ul>
                            <a href="javascript:uploadMultiImage('图片上传','#photos','photos-item-tpl');"
                               class="btn btn-default btn-sm">选择图片</a>
                        </td>
                    </tr>
                    <tr>
                        <th>商品属性</th>
                        <td>
                            <a class="btn btn-default btn-sm" id="setDefault" style="margin-bottom: 8px;">设为默认</a>
                            <ul id="goodsatt" class="pic-list list-unstyled form-inline">
                                <li>
                                    <input class="form-control"  type="text" name="attkey_name[]" style="width: 150px;" placeholder="属性名称:如尺寸">
                                    <input class="form-control"  type="text" name="attvalue_name[]" style="width: 250px;" placeholder="M,L,XL,XXL">
                                    <input class="form-control"  type="text" name="sell_price[]" style="width: 250px;" placeholder="10,20,30,40">
                                    <input class="form-control"  type="text" name="stock[]" style="width: 250px;" placeholder="5,10,15,20">
                                </li>
                            </ul>
                            <!--<a class="btn btn-default btn-sm" id="addattr">添加属性</a>-->
                        </td>
                    </tr>
                </table>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="submit" class="btn btn-primary js-ajax-submit">{:lang('ADD')}</button>
                        <!--<button type="submit" class="btn btn-primary">{:lang('ADD')}</button>-->
                        <a class="btn btn-default" href="{:url('AdminArticle/index')}">{:lang('BACK')}</a>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <table class="table table-bordered">
                    <tr>
                        <th><b>缩略图</b></th>
                    </tr>
                    <tr>
                        <td>
                            <div style="text-align: center;">
                                <input type="hidden" name="goods_thumb" id="thumbnail" value="">
                                <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
                                    <img src="__TMPL__/public/assets/images/default-thumbnail.png"
                                         id="thumbnail-preview"
                                         width="135" style="cursor: pointer"/>
                                </a>
                                <input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <th><b>是否上架</b></th>
                    </tr>
                    <tr>
                        <td>
                            <input type="radio" name="if_shelf" value="1" checked>是&nbsp;&nbsp;
                            <input type="radio" name="if_shelf" value="0">否
                        </td>
                    </tr>
                </table>
            </div>
        </div>
    </form>
</div>
<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
<script type="text/javascript">
    //编辑器路径定义
    var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
    $(function () {

        editorcontent = new baidu.editor.ui.Editor();
        editorcontent.render('content');
        try {
            editorcontent.sync();
        } catch (err) {
        }

        $('.btn-cancel-thumbnail').click(function () {
            $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
            $('#thumbnail').val('');
        });

    });

    function doSelectCategory() {
        var selectedCategoriesId = $('#js-categories-id-input').val();
        openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
            area: ['700px', '400px'],
            btn: ['确定', '取消'],
            yes: function (index, layero) {
                //do something

                var iframeWin          = window[layero.find('iframe')[0]['name']];
                var selectedCategories = iframeWin.confirm();
                if (selectedCategories.selectedCategoriesId.length == 0) {
                    layer.msg('请选择分类');
                    return;
                }
                $('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
                $('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
                //console.log(layer.getFrameIndex(index));
                layer.close(index); //如果设定了yes回调,需进行手工关闭
            }
        });
    }

    //添加属性
    $('#addattr').click(function () {
        var html = `<li>
                                    <input class="form-control"  type="text" name="attkey_name[]" style="width: 150px;" placeholder="属性名称:如尺寸">
                                    <input class="form-control"  type="text" name="attvalue_name[]" style="width: 250px;" placeholder="M,L,XL,XXL">
                                    <input class="form-control"  type="text" name="sell_price[]" style="width: 250px;" placeholder="10,20,30,40">
                                    <input class="form-control"  type="text" name="stock[]" style="width: 250px;" placeholder="5,10,15,20">
                                    <a onclick="$(this).parent().remove()" style="cursor:pointer">移除</a>
                                </li>`;
        $('#goodsatt').append(html);
    })

    //设为默认属性
    $('#setDefault').click(function () {
        var defaultHtml = `<li>
                                    <input class="form-control"  type="text" name="attkey_name[]" style="width: 150px;" value="规格" readonly>
                                    <input class="form-control"  type="text" name="attvalue_name[]" style="width: 250px;" value="默认" readonly>
                                    <input class="form-control"  type="text" name="sell_price[]" style="width: 250px;" value="100">
                                    <input class="form-control"  type="text" name="stock[]" style="width: 250px;" value="100">
                                </li>`;
        $('#goodsatt').html(defaultHtml);
        $('#setDefault').remove();
    })
</script>
</body>
</html>

前台编辑模板

<include file="public@header"/>
<style type="text/css">
    .pic-list li {
        margin-bottom: 5px;
    }
</style>
<script type="text/html" id="photos-item-tpl">
    <li id="saved-image{id}">
        <input id="photo-{id}" type="hidden" name="banner[]" value="{filepath}">
        <img id="photo-{id}-preview" src="{url}" style="height:36px;width: 36px;"
             onclick="imagePreviewDialog(this.src);">
        <a href="javascript:uploadOneImage('图片上传','#photo-{id}');">替换</a>
        <a href="javascript:(function(){$('#saved-image{id}').remove();})();">移除</a>
    </li>
</script>

</head>
<body>
<div class="wrap js-check-wrap">
    <ul class="nav nav-tabs">
        <li><a href="{:url('AdminGoods/index')}">全部商品</a></li>
        <li class="active"><a href="javascript:;">商品详情</a></li>
    </ul>
    <!--<form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal js-ajax-form margin-top-20">-->
        <form action="{:url('AdminGoods/add')}" method="post" class="form-horizontal margin-top-20">
        <div class="row">
            <div class="col-md-9">
                <table class="table table-bordered">
                    <tr>
                        <th width="100">分类<span class="form-required">*</span></th>
                        <td>
                            <select name="cate" style="width:150px;" class="form-control">
                                <volist name="catelist" id="vo">
                                    <option value="{$vo.id}" <if condition="$info['cate_id'] eq $vo['id']" >selected</if>>{$vo.cate_name}</option>
                                </volist>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <th>商品名称<span class="form-required">*</span></th>
                        <td>
                            <input class="form-control" type="text" name="goods_name" required value="{$info.goods_name}"/>
                        </td>
                    </tr>
                    <tr>
                        <th>市场价格<span class="form-required">*</span></th>
                        <td>
                            <input class="form-control" type="number" name="market_price" required value="{$info.market_price}"/>
                        </td>
                    </tr>
                    <tr>
                        <th>展示价格<span class="form-required">*</span></th>
                        <td>
                            <input class="form-control" type="number" name="show_price" required value="{$info.show_price}"/>
                        </td>
                    </tr>
                    <tr>
                        <th>商品简介</th>
                        <td>
                            <textarea class="form-control" name="shortcontent" style="height: 50px;"
                                      placeholder="请填写摘要">{$info.shortcontent}</textarea>
                        </td>
                    </tr>
                    <tr>
                        <th>商品详情</th>
                        <td>
                            <script type="text/plain" id="content" name="content">{$info.content}</script>
                        </td>
                    </tr>
                    <tr>
                        <th>相册图集</th>
                        <td>
                            <ul id="photos" class="pic-list list-unstyled form-inline">
                                <foreach name="info.goods_banner" item="vo">
                                    <php>$img_url=cmf_get_image_preview_url($vo);</php>
                                    <li id="saved-image{$key}">
                                        <input id="photo-{$key}" type="hidden" name="banner[]"
                                               value="{$vo}">
                                        <img id="photo-{$key}-preview"
                                             src="{:cmf_get_image_preview_url($vo)}"
                                             style="height:36px;width: 36px;"
                                             onclick="parent.imagePreviewDialog(this.src);">
                                        <a href="javascript:uploadOneImage('图片上传','#photo-{$key}');">替换</a>
                                        <a href="javascript:(function(){$('#saved-image{$key}').remove();})();">移除</a>
                                    </li>
                                </foreach>
                            </ul>
                            <a href="javascript:uploadMultiImage('图片上传','#photos','photos-item-tpl');"
                               class="btn btn-default btn-sm">选择图片</a>
                        </td>
                    </tr>
                    <tr>
                        <th>商品属性</th>
                        <td>
                            <ul id="goodsatt" class="pic-list list-unstyled form-inline">
                                <volist name="list" id="vo" key="k">
                                    <li>
                                        <input class="form-control"  type="text" name="attkey_name[]" value="{$vo.attkey_name}" style="width: 150px;" placeholder="属性名称:如尺寸" required>
                                        <input class="form-control"  type="text" name="attvalue_name[]" value="{$vo.str_attvalue_name}" style="width: 250px;" placeholder="M,L,XL,XXL" required>
                                        <input class="form-control"  type="text" name="sell_price[]" value="{$vo.str_sell_price}" style="width: 250px;" placeholder="售卖价格" required>
                                        <input class="form-control"  type="text" name="stock[]" value="{$vo.str_stock}" style="width: 250px;" placeholder="库存" required>
                                        <if condition="$k neq 1">
                                            <a onclick="$(this).parent().remove()" style="cursor:pointer">移除</a>
                                        </if>
                                    </li>
                                </volist>
                            </ul>
                            <!--<a class="btn btn-default btn-sm" id="addattr">添加属性</a>-->
                        </td>
                    </tr>
                </table>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <!--<button type="submit" class="btn btn-primary js-ajax-submit">更新</button>-->
                        <button type="submit" class="btn btn-primary">更新</button>
                        <a class="btn btn-default" href="{:url('AdminGoods/index')}">{:lang('BACK')}</a>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <table class="table table-bordered">
                    <tr>
                        <th><b>缩略图</b></th>
                    </tr>
                    <tr>
                        <td>
                            <div style="text-align: center;">
                                <input type="hidden" name="info[goods_thumb]" id="thumbnail"
                                       value="{$post.more.thumbnail|default=''}">
                                <a href="javascript:uploadOneImage('图片上传','#thumbnail');">
                                    <img src="{:cmf_get_image_preview_url($info.goods_thumb)}"
                                         id="thumbnail-preview"
                                         width="135" style="cursor: pointer"/>
                                </a>
                                <input type="button" class="btn btn-sm btn-cancel-thumbnail" value="取消图片">
                            </div>
                        </td>
                    </tr>
                    <!--<tr>-->
                        <!--<th><b>是否上架</b></th>-->
                    <!--</tr>-->
                    <!--<tr>-->
                        <!--<td>-->
                            <!--<input type="radio" name="if_shelf" value="1" checked>是&nbsp;&nbsp;-->
                            <!--<input type="radio" name="if_shelf" value="0">否-->
                        <!--</td>-->
                    <!--</tr>-->
                </table>
            </div>
        </div>
    </form>
</div>
<script type="text/javascript" src="__STATIC__/js/admin.js"></script>
<script type="text/javascript">
    //编辑器路径定义
    var editorURL = GV.WEB_ROOT;
</script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.config.js"></script>
<script type="text/javascript" src="__STATIC__/js/ueditor/ueditor.all.min.js"></script>
<script type="text/javascript">
    $(function () {

        editorcontent = new baidu.editor.ui.Editor();
        editorcontent.render('content');
        try {
            editorcontent.sync();
        } catch (err) {
        }

        $('.btn-cancel-thumbnail').click(function () {
            $('#thumbnail-preview').attr('src', '__TMPL__/public/assets/images/default-thumbnail.png');
            $('#thumbnail').val('');
        });

    });

    function doSelectCategory() {
        var selectedCategoriesId = $('#js-categories-id-input').val();
        openIframeLayer("{:url('AdminCategory/select')}?ids=" + selectedCategoriesId, '请选择分类', {
            area: ['700px', '400px'],
            btn: ['确定', '取消'],
            yes: function (index, layero) {
                //do something

                var iframeWin          = window[layero.find('iframe')[0]['name']];
                var selectedCategories = iframeWin.confirm();
                if (selectedCategories.selectedCategoriesId.length == 0) {
                    layer.msg('请选择分类');
                    return;
                }
                $('#js-categories-id-input').val(selectedCategories.selectedCategoriesId.join(','));
                $('#js-categories-name-input').val(selectedCategories.selectedCategoriesName.join(' '));
                //console.log(layer.getFrameIndex(index));
                layer.close(index); //如果设定了yes回调,需进行手工关闭
            }
        });
    }

    //添加属性
    $('#addattr').click(function () {
        var html = `<li>
                                    <input class="form-control"  type="text" name="attkey_name[]" style="width: 150px;" placeholder="属性名称:如尺寸">
                                    <input class="form-control"  type="text" name="attvalue_name[]" style="width: 250px;" placeholder="M,L,XL,XXL">
                                    <input class="form-control"  type="text" name="sell_price[]" style="width: 250px;" placeholder="10,20,30,40">
                                    <input class="form-control"  type="text" name="stock[]" style="width: 250px;" placeholder="5,10,15,20">
                                    <a onclick="$(this).parent().remove()" style="cursor:pointer">移除</a>
                                </li>`;
        $('#goodsatt').append(html);
    })

    //设为默认属性
    $('#setDefault').click(function () {
        var defaultHtml = `<li>
                                    <input class="form-control"  type="text" name="attkey_name[]" style="width: 150px;" value="规格" readonly>
                                    <input class="form-control"  type="text" name="attvalue_name[]" style="width: 250px;" value="默认" readonly>
                                    <input class="form-control"  type="text" name="sell_price[]" style="width: 250px;" value="100">
                                    <input class="form-control"  type="text" name="stock[]" style="width: 250px;" value="100">
                                </li>`;
        $('#goodsatt').html(defaultHtml);
        $('#setDefault').remove();
    })
</script>
</body>
</html>

后台列表查询操作

/**
     * 商品列表
     */
    public function index()
    {
        $where = [];
        $cate_id = $this->request->param('cate_id','','intval');
        $keyword = $this->request->param('keyword','');
        if(!empty($cate_id)){
            $where['c.id'] = $cate_id;
        }
        if(!empty($keyword)){
            $where['g.goods_name'] = ['like',"%$keyword%"];
        }
        $cate = new CateModel();
        $goods = new GoodsModel();
        $list = $goods
            ->alias('g')
            ->field('g.*,c.cate_name')
            ->join('__CATE__ c','g.cate_id = c.id')
            ->order('g.id DESC')
            ->where($where)
            ->paginate(20);
        $catelist = $cate->select();

        $this->assign('catelist',$catelist);
        $this->assign('page',$list->render());
        $this->assign('list',$list);
        $this->assign('cate_id',empty($cate_id)?'':$cate_id);
        $this->assign('keyword',empty($keyword)?'':$keyword);
        return $this->fetch();
    }

后台模板添加操作

 /**
     * 添加商品
     */
    public function add()
    {
        if($this->request->isPost()){
            $param = $this->request->param();
            $data_goods = [
                'cate_id' => $param['cate'],
                'goods_name' => $param['goods_name'],
                'goods_thumb' => $param['goods_thumb'],
                'goods_banner' => empty($param['thumb'])?'':json_encode($param['thumb']),
                'shortcontent' => $param['shortcontent'],
                'content' => empty($param['content'])?'':$param['content'],
                'market_price' => $param['market_price'],
                'show_price' => $param['show_price'],
                'create_time' => time(),
            ];
            $goods = new GoodsModel();
            $attkey = new GoodsAttkeyModel();
            $attvalue = new GoodsAttvalueModel();
            Db::startTrans();
            $res1 = $goods_id = $goods->insertGetId($data_goods);
            foreach ($param['attkey_name'] as $k=>$v){
                $res2 = $goods_attkey_id = $attkey->insertGetId([
                    'goods_id' => $goods_id,
                    'attkey_name' => $v
                ]);
                if(!$res2){
                    Db::rollback();
                    $this->error('信息不正确');
                }
                $valuelist = explode(',',$param['attvalue_name'][$k]);
                $value_sell_price = explode(',',$param['sell_price'][$k]);
                $value_stock = explode(',',$param['stock'][$k]);
                foreach ($valuelist as $kk=>$vv){
                    $res3 = $attvalue-> insert([
                        'goods_attkey_id' => $goods_attkey_id,
                        'attvalue_name' => $vv,
                        'sell_price' => $value_sell_price[$kk],
                        'stock' => $value_stock[$kk]
                    ]);
                    if(!$res3){
                        Db::rollback();
                        $this->error('信息不正确');
                    }
                }
            }
            if(!$res1){
                Db::rollback();
                $this->error('信息不正确');
            }
            Db::commit();
            $this->success('添加成功');
        }else{
            $cate = new CateModel();
            $catelist = $cate->select();
            $this->assign('catelist',$catelist);
            return $this->fetch();
        }
    }

后台编辑模板

/**
     * 编辑
     */
    public function edit()
    {
        if($this->request->isPost()){
            $param = $this->request->param();
            $data_goods = [
                'id' => $param['id'],
                'goods_name' => $param['goods_name'],
                'cate_id' => $param['cate'],
                'goods_thumb' => $param['goods_thumb'],
                'goods_banner' => empty($param['goods_banner'])?'':json_encode($param['goods_banner']),
                'shortcontent' => $param['shortcontent'],
                'content' => empty($param['content'])?'':$param['content'],
                'market_price' => $param['market_price'],
                'show_price' => $param['show_price'],
                'create_time' => time(),
                'if_del' => 0
            ];
            $goods = new GoodsModel();
            $attkey = new GoodsAttkeyModel();
            $attvalue = new GoodsAttvalueModel();
            Db::startTrans();
            $arr_goods_attkey_id = $attkey->where('goods_id',$param['id'])->column('id');
            $arr_goods_attvalue_id = $attvalue->where('goods_attkey_id','in',$arr_goods_attkey_id)->column('id');
            $res1 = $attkey->where('id','in',$arr_goods_attkey_id)->delete();
            $res2 = $attvalue->where('id','in',$arr_goods_attvalue_id)->delete();
            $res3 = $goods->update($data_goods);
            if(!$res1 or !$res2 or !$res3){
                Db::rollback();
                $this->error('信息填写错误');
            }
            foreach ($param['attkey_name'] as $k=>$v){
                $res4 = $goods_attkey_id = $attkey->insertGetId([
                    'goods_id' => $param['id'],
                    'attkey_name' => $v,
                ]);
                if(!$res4){
                    Db::rollback();
                    $this->error('信息填写不正确');
                }
                $valuelist = explode(',',$param['attvalue_name'][$k]);
                $value_sell_price = explode(',',$param['sell_price'][$k]);
                $value_stock = explode(',',$param['stock'][$k]);

                foreach ($valuelist as $kk=>$vv){
                    $res5 = $attvalue-> insert([
                        'goods_attkey_id' => $goods_attkey_id,
                        'attvalue_name' => $vv,
                        'sell_price' => $value_sell_price[$kk],
                        'stock' => $value_stock[$kk]
                    ]);
                    if(!$res5){
                        Db::rollback();
                        $this->error('信息填写不正确');
                    }
                }
            }
            Db::commit();
            $this->success('更新成功');
        }else{
            $id = $this->request->param('id','','intval');
            $cate = new CateModel();
            $goods = new GoodsModel();
            $goods_attkey = new GoodsAttkeyModel();
            $goods_attvalue = new GoodsAttvalueModel();
            $info = $goods->find($id)->toArray();
            $info['content'] = htmlspecialchars_decode($info['content']);
            $info['goods_banner'] = json_decode($info['goods_banner'],true);
            $list = $goods_attkey->where('goods_id',$info['id'])->select()->toArray();
            foreach ($list as $k=>$v){
                $info_val = $goods_attvalue->where('goods_attkey_id',$v['id'])->column('attvalue_name');
                $list[$k]['str_attvalue_name'] = implode(',',$info_val);
                $info_val2 = $goods_attvalue->where('goods_attkey_id',$v['id'])->column('sell_price');
                $list[$k]['str_sell_price'] = implode(',',$info_val2);
                $info_val3 = $goods_attvalue->where('goods_attkey_id',$v['id'])->column('stock');
                $list[$k]['str_stock'] = implode(',',$info_val3);
            }

            $catelist = $cate->select();

            $this->assign('catelist',$catelist);
            $this->assign('info',$info);
            $this->assign('list',$list);
            return $this->fetch();
        }
    }

后台删除模板

 /**
     * 删除
     */
    public function delete()
    {
        $goods_id = $this->request->param('id','','intval');
        $goods = new GoodsModel();
        $goods_attkey = new GoodsAttkeyModel();
        $goods_attvalue = new GoodsAttvalueModel();
        $attkey_id = $goods_attkey->where('goods_id',$goods_id)->value('id');
        Db::startTrans();
        $res = $goods->where('id',$goods_id)->delete();
        $res2 = $goods_attkey->where('goods_id',$goods_id)->delete();
        $res3 = $goods_attvalue->where('goods_attkey_id',$attkey_id)->delete();
        if(!$res or !$res2 or !$res3){
            Db::rollback();
        }
        Db::commit();
        $this->success('删除成功');
    }

数据库文件

sql文件下载地址

猜你喜欢

转载自blog.csdn.net/weixin_42330073/article/details/83011033
今日推荐