品牌分类优化
parent
29aff1aca4
commit
f3f1441316
|
|
@ -12,6 +12,7 @@ namespace app\admin\controller;
|
|||
|
||||
use think\facade\Hook;
|
||||
use app\service\BrandService;
|
||||
use app\service\BrandCategoryService;
|
||||
|
||||
/**
|
||||
* 品牌管理
|
||||
|
|
@ -138,7 +139,7 @@ class Brand extends Common
|
|||
$this->assign('common_is_enable_list', lang('common_is_enable_list'));
|
||||
|
||||
// 品牌分类
|
||||
$brand_category = BrandService::BrandCategoryList(['field'=>'id,name']);
|
||||
$brand_category = BrandCategoryService::BrandCategoryList(['field'=>'id,name']);
|
||||
$this->assign('brand_category', $brand_category['data']);
|
||||
|
||||
// 品牌编辑页面钩子
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\controller;
|
||||
|
||||
use app\service\BrandService;
|
||||
use app\service\BrandCategoryService;
|
||||
|
||||
/**
|
||||
* 品牌分类管理
|
||||
|
|
@ -71,7 +71,7 @@ class BrandCategory extends Common
|
|||
}
|
||||
|
||||
// 开始操作
|
||||
return BrandService::BrandCategoryNodeSon(input());
|
||||
return BrandCategoryService::BrandCategoryNodeSon($this->data_request);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -90,7 +90,7 @@ class BrandCategory extends Common
|
|||
}
|
||||
|
||||
// 开始操作
|
||||
return BrandService::BrandCategorySave(input());
|
||||
return BrandCategoryService::BrandCategorySave($this->data_request);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -109,9 +109,9 @@ class BrandCategory extends Common
|
|||
}
|
||||
|
||||
// 开始操作
|
||||
$params = input('post.');
|
||||
$params = $this->data_post;
|
||||
$params['admin'] = $this->admin;
|
||||
return BrandService::BrandCategoryDelete($params);
|
||||
return BrandCategoryService::BrandCategoryDelete($params);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -10,7 +10,9 @@
|
|||
// +----------------------------------------------------------------------
|
||||
namespace app\admin\form;
|
||||
|
||||
use think\Db;
|
||||
use app\service\BrandService;
|
||||
use app\service\BrandCategoryService;
|
||||
|
||||
/**
|
||||
* 品牌动态表格
|
||||
|
|
@ -86,15 +88,16 @@ class Brand
|
|||
[
|
||||
'label' => '品牌分类',
|
||||
'view_type' => 'field',
|
||||
'view_key' => 'brand_category_name',
|
||||
'view_key' => 'brand_category_text',
|
||||
'search_config' => [
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'brand_category_id',
|
||||
'where_type' => 'in',
|
||||
'data' => $this->BrandCategoryList(),
|
||||
'data_key' => 'id',
|
||||
'data_name' => 'name',
|
||||
'is_multiple' => 1,
|
||||
'form_type' => 'select',
|
||||
'form_name' => 'id',
|
||||
'where_type' => 'in',
|
||||
'data' => $this->BrandCategoryList(),
|
||||
'data_key' => 'id',
|
||||
'data_name' => 'name',
|
||||
'is_multiple' => 1,
|
||||
'where_handle_custom' => 'WhereValueBrandCategory',
|
||||
],
|
||||
],
|
||||
[
|
||||
|
|
@ -155,8 +158,37 @@ class Brand
|
|||
*/
|
||||
public function BrandCategoryList()
|
||||
{
|
||||
$ret = BrandService::BrandCategoryList(['field'=>'id,name']);
|
||||
$ret = BrandCategoryService::BrandCategoryList(['field'=>'id,name']);
|
||||
return isset($ret['data']) ? $ret['data'] : [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类条件处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-06-03
|
||||
* @desc description
|
||||
* @param [array] $value [条件值]
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public function WhereValueBrandCategory($value, $params = [])
|
||||
{
|
||||
if(!empty($value))
|
||||
{
|
||||
// 是否为数组
|
||||
if(!is_array($value))
|
||||
{
|
||||
$value = [$value];
|
||||
}
|
||||
|
||||
// 获取品牌 id
|
||||
$ids = Db::name('BrandCategoryJoin')->where(['brand_category_id'=>$value])->column('brand_id');
|
||||
|
||||
// 避免空条件造成无效的错觉
|
||||
return empty($ids) ? [0] : $ids;
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -15,10 +15,9 @@
|
|||
</div>
|
||||
<div class="am-form-group">
|
||||
<label>品牌分类</label>
|
||||
<select name="brand_category_id" class="am-radius chosen-select" data-placeholder="可选择..." data-validation-message="请选择品牌分类" required>
|
||||
<option value="">可选择...</option>
|
||||
<select name="brand_category_id" class="am-radius chosen-select" multiple="multiple" minchecked="1" data-placeholder="可选择..." data-validation-message="请选择品牌分类" required>
|
||||
{{foreach $brand_category as $v}}
|
||||
<option value="{{$v.id}}" {{if isset($data['brand_category_id']) and $data['brand_category_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
<option value="{{$v.id}}" {{if isset($data['brand_category_ids']) and is_array($data['brand_category_ids']) and in_array($v['id'], $data['brand_category_ids'])}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -96,13 +96,7 @@
|
|||
{{if !empty($brand_list)}}
|
||||
<option value="0">请选择...</option>
|
||||
{{foreach $brand_list as $v}}
|
||||
<optgroup label="{{$v.name}}">
|
||||
{{if !empty($v['items'])}}
|
||||
{{foreach $v.items as $vs}}
|
||||
<option style="padding-left: 30px;" value="{{$vs.id}}" {{if isset($data['brand_id']) and $data['brand_id'] eq $vs['id']}}selected{{/if}}>{{$vs.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</optgroup>
|
||||
<option value="{{$v.id}}" {{if isset($data['brand_id']) and $data['brand_id'] eq $v['id']}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
</select>
|
||||
|
|
|
|||
|
|
@ -2,12 +2,7 @@
|
|||
{{if !empty($module_data['data']) && !empty($module_data['form_name_key'])}}
|
||||
<select class="am-radius chosen-select" multiple name="{{$module_data.form_name_key}}" data-placeholder="品牌...">
|
||||
{{foreach $module_data.data as $v}}
|
||||
<optgroup label="{{$v.name}}">
|
||||
{{if !empty($v['items'])}}
|
||||
{{foreach $v.items as $vs}}
|
||||
<option style="padding-left: 15px;" value="{{$vs.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($vs['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{$vs.name}}</option>
|
||||
{{/foreach}}
|
||||
{{/if}}
|
||||
<option value="{{$v.id}}" {{if !empty($module_data['params']) and !empty($module_data['params'][$module_data['form_name_key']]) and is_array($module_data['params'][$module_data['form_name_key']]) and in_array($v['id'], $module_data['params'][$module_data['form_name_key']])}}selected{{/if}}>{{$v.name}}</option>
|
||||
{{/foreach}}
|
||||
</select>
|
||||
{{/if}}
|
||||
|
|
@ -445,5 +445,56 @@ class Devtest extends Common
|
|||
}
|
||||
echo 'count:'.count($data).', success:'.$success.', fail:'.$fail;
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类数据处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-08-01
|
||||
* @desc description
|
||||
*/
|
||||
public function BrandCategoryHandle()
|
||||
{
|
||||
if(input('pwd') != 'shopxo520')
|
||||
{
|
||||
die('非法访问');
|
||||
}
|
||||
|
||||
// 状态
|
||||
$success = 0;
|
||||
$fail = 0;
|
||||
|
||||
// 获取品牌列表
|
||||
$data = Db::name('Brand')->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as $v)
|
||||
{
|
||||
if(!empty($v['brand_category_id']))
|
||||
{
|
||||
if(Db::name('BrandCategoryJoin')->where(['brand_id'=>$v['id']])->count() <= 0)
|
||||
{
|
||||
// 删除数据
|
||||
Db::name('BrandCategoryJoin')->where(['brand_id'=>$v['id']])->delete();
|
||||
|
||||
// 添加数据
|
||||
$temp_data = [
|
||||
'brand_id' => $v['id'],
|
||||
'brand_category_id' => $v['brand_category_id'],
|
||||
'add_time' => time(),
|
||||
];
|
||||
if(Db::name('BrandCategoryJoin')->insertGetId($temp_data) > 0)
|
||||
{
|
||||
$success++;
|
||||
} else {
|
||||
$fail++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo 'success:'.$success.', fail:'.$fail;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -0,0 +1,158 @@
|
|||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ShopXO 国内领先企业级B2C免费开源电商系统
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: Devil
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\service;
|
||||
|
||||
use think\Db;
|
||||
|
||||
/**
|
||||
* 品牌分类服务层
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 0.0.1
|
||||
* @datetime 2016-12-01T21:51:08+0800
|
||||
*/
|
||||
class BrandCategoryService
|
||||
{
|
||||
/**
|
||||
* 品牌分类
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-08-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategoryList($params = [])
|
||||
{
|
||||
$field = empty($params['field']) ? '*' : $params['field'];
|
||||
$order_by = empty($params['order_by']) ? 'sort asc' : trim($params['order_by']);
|
||||
|
||||
$data = Db::name('BrandCategory')->where(['is_enable'=>1])->field($field)->order($order_by)->select();
|
||||
|
||||
return DataReturn('处理成功', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取品牌分类节点数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-16T23:54:46+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategoryNodeSon($params = [])
|
||||
{
|
||||
// 获取数据
|
||||
$field = '*';
|
||||
$data = Db::name('BrandCategory')->field($field)->order('sort asc')->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as &$v)
|
||||
{
|
||||
$v['is_son'] = 'no';
|
||||
$v['ajax_url'] = MyUrl('admin/brandcategory/getnodeson', array('id'=>$v['id']));
|
||||
$v['delete_url'] = MyUrl('admin/brandcategory/delete');
|
||||
$v['json'] = json_encode($v);
|
||||
}
|
||||
return DataReturn('操作成功', 0, $data);
|
||||
}
|
||||
return DataReturn('没有相关数据', -100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-17T01:04:03+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategorySave($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'name',
|
||||
'checked_data' => '2,16',
|
||||
'error_msg' => '名称格式 2~16 个字符',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 数据
|
||||
$data = [
|
||||
'name' => $params['name'],
|
||||
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
|
||||
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
|
||||
];
|
||||
|
||||
// 添加
|
||||
if(empty($params['id']))
|
||||
{
|
||||
$data['add_time'] = time();
|
||||
if(Db::name('BrandCategory')->insertGetId($data) > 0)
|
||||
{
|
||||
return DataReturn('添加成功', 0);
|
||||
}
|
||||
return DataReturn('添加失败', -100);
|
||||
} else {
|
||||
$data['upd_time'] = time();
|
||||
if(Db::name('BrandCategory')->where(['id'=>intval($params['id'])])->update($data))
|
||||
{
|
||||
return DataReturn('编辑成功', 0);
|
||||
}
|
||||
return DataReturn('编辑失败', -100);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-17T02:40:29+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategoryDelete($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'id',
|
||||
'error_msg' => '删除数据id有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'admin',
|
||||
'error_msg' => '用户信息有误',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 开始删除
|
||||
if(Db::name('BrandCategory')->where(['id'=>intval($params['id'])])->delete())
|
||||
{
|
||||
return DataReturn('删除成功', 0);
|
||||
}
|
||||
return DataReturn('删除失败', -100);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -63,9 +63,11 @@ class BrandService
|
|||
}
|
||||
|
||||
// 分类名称
|
||||
if(isset($v['brand_category_id']))
|
||||
if(isset($v['id']))
|
||||
{
|
||||
$v['brand_category_name'] = isset($cnames[$v['brand_category_id']]) ? $cnames[$v['brand_category_id']] : '';
|
||||
$v['brand_category_ids'] = Db::name('BrandCategoryJoin')->where(['brand_id'=>$v['id']])->column('brand_category_id');
|
||||
$category_name = Db::name('BrandCategory')->where(['id'=>$v['brand_category_ids']])->column('name');
|
||||
$v['brand_category_text'] = implode(',', $category_name);
|
||||
}
|
||||
|
||||
// logo
|
||||
|
|
@ -112,15 +114,7 @@ class BrandService
|
|||
*/
|
||||
public static function CategoryBrand($params = [])
|
||||
{
|
||||
$data = Db::name('BrandCategory')->where(['is_enable'=>1])->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as &$v)
|
||||
{
|
||||
$v['items'] = Db::name('Brand')->field('id,name')->where(['is_enable'=>1, 'brand_category_id'=>$v['id']])->order('sort asc')->select();
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
return Db::name('Brand')->field('id,name')->where(['is_enable'=>1])->order('sort asc')->select();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -183,25 +177,6 @@ class BrandService
|
|||
return empty($brand_id) ? null : Db::name('Brand')->where(['id'=>intval($brand_id)])->value('name');
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-08-29
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategoryList($params = [])
|
||||
{
|
||||
$field = empty($params['field']) ? '*' : $params['field'];
|
||||
$order_by = empty($params['order_by']) ? 'sort asc' : trim($params['order_by']);
|
||||
|
||||
$data = Db::name('BrandCategory')->where(['is_enable'=>1])->field($field)->order($order_by)->select();
|
||||
|
||||
return DataReturn('处理成功', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存
|
||||
* @author Devil
|
||||
|
|
@ -274,7 +249,6 @@ class BrandService
|
|||
// 数据
|
||||
$data = [
|
||||
'name' => $params['name'],
|
||||
'brand_category_id' => intval($params['brand_category_id']),
|
||||
'logo' => $attachment['data']['logo'],
|
||||
'website_url' => empty($params['website_url']) ? '' : $params['website_url'],
|
||||
'sort' => intval($params['sort']),
|
||||
|
|
@ -298,22 +272,70 @@ class BrandService
|
|||
return $ret;
|
||||
}
|
||||
|
||||
// 启动事务
|
||||
Db::startTrans();
|
||||
if(empty($params['id']))
|
||||
{
|
||||
$data['add_time'] = time();
|
||||
if(Db::name('Brand')->insertGetId($data) > 0)
|
||||
$brand_id = Db::name('Brand')->insertGetId($data);
|
||||
if($brand_id <= 0)
|
||||
{
|
||||
return DataReturn('添加成功', 0);
|
||||
Db::rollback();
|
||||
return DataReturn('添加失败', -100);
|
||||
}
|
||||
return DataReturn('添加失败', -100);
|
||||
} else {
|
||||
$data['upd_time'] = time();
|
||||
if(Db::name('Brand')->where(['id'=>intval($params['id'])])->update($data))
|
||||
$brand_id = intval($params['id']);
|
||||
if(Db::name('Brand')->where(['id'=>$brand_id])->update($data) === false)
|
||||
{
|
||||
return DataReturn('编辑成功', 0);
|
||||
Db::rollback();
|
||||
return DataReturn('编辑失败', -100);
|
||||
}
|
||||
return DataReturn('编辑失败', -100);
|
||||
}
|
||||
|
||||
// 添加分类
|
||||
$ret = self::BrandCategoryInsert(explode(',', $params['brand_category_id']), $brand_id);
|
||||
if($ret['code'] != 0)
|
||||
{
|
||||
// 回滚事务
|
||||
Db::rollback();
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// 提交事务
|
||||
Db::commit();
|
||||
return DataReturn('操作成功', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类添加
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-08-01
|
||||
* @desc description
|
||||
* @param [array] $data [分类数据]
|
||||
* @param [int] $brand_id [品牌id]
|
||||
*/
|
||||
private static function BrandCategoryInsert($data, $brand_id)
|
||||
{
|
||||
Db::name('BrandCategoryJoin')->where(['brand_id'=>$brand_id])->delete();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as $category_id)
|
||||
{
|
||||
$temp_category = [
|
||||
'brand_id' => $brand_id,
|
||||
'brand_category_id' => $category_id,
|
||||
'add_time' => time(),
|
||||
];
|
||||
if(Db::name('BrandCategoryJoin')->insertGetId($temp_category) <= 0)
|
||||
{
|
||||
return DataReturn('品牌分类添加失败', -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return DataReturn('添加成功', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -389,124 +411,5 @@ class BrandService
|
|||
}
|
||||
return DataReturn('操作失败', -100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取品牌分类节点数据
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-16T23:54:46+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategoryNodeSon($params = [])
|
||||
{
|
||||
// id
|
||||
$id = isset($params['id']) ? intval($params['id']) : 0;
|
||||
|
||||
// 获取数据
|
||||
$field = '*';
|
||||
$data = Db::name('BrandCategory')->field($field)->where(['pid'=>$id])->order('sort asc')->select();
|
||||
if(!empty($data))
|
||||
{
|
||||
foreach($data as &$v)
|
||||
{
|
||||
$v['is_son'] = (Db::name('BrandCategory')->where(['pid'=>$v['id']])->count() > 0) ? 'ok' : 'no';
|
||||
$v['ajax_url'] = MyUrl('admin/brandcategory/getnodeson', array('id'=>$v['id']));
|
||||
$v['delete_url'] = MyUrl('admin/brandcategory/delete');
|
||||
$v['json'] = json_encode($v);
|
||||
}
|
||||
return DataReturn('操作成功', 0, $data);
|
||||
}
|
||||
return DataReturn('没有相关数据', -100);
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类保存
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-17T01:04:03+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategorySave($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'length',
|
||||
'key_name' => 'name',
|
||||
'checked_data' => '2,16',
|
||||
'error_msg' => '名称格式 2~16 个字符',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 数据
|
||||
$data = [
|
||||
'name' => $params['name'],
|
||||
'pid' => isset($params['pid']) ? intval($params['pid']) : 0,
|
||||
'sort' => isset($params['sort']) ? intval($params['sort']) : 0,
|
||||
'is_enable' => isset($params['is_enable']) ? intval($params['is_enable']) : 0,
|
||||
];
|
||||
|
||||
// 添加
|
||||
if(empty($params['id']))
|
||||
{
|
||||
$data['add_time'] = time();
|
||||
if(Db::name('BrandCategory')->insertGetId($data) > 0)
|
||||
{
|
||||
return DataReturn('添加成功', 0);
|
||||
}
|
||||
return DataReturn('添加失败', -100);
|
||||
} else {
|
||||
$data['upd_time'] = time();
|
||||
if(Db::name('BrandCategory')->where(['id'=>intval($params['id'])])->update($data))
|
||||
{
|
||||
return DataReturn('编辑成功', 0);
|
||||
}
|
||||
return DataReturn('编辑失败', -100);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 品牌分类删除
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-17T02:40:29+0800
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function BrandCategoryDelete($params = [])
|
||||
{
|
||||
// 请求参数
|
||||
$p = [
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'id',
|
||||
'error_msg' => '删除数据id有误',
|
||||
],
|
||||
[
|
||||
'checked_type' => 'empty',
|
||||
'key_name' => 'admin',
|
||||
'error_msg' => '用户信息有误',
|
||||
],
|
||||
];
|
||||
$ret = ParamsChecked($params, $p);
|
||||
if($ret !== true)
|
||||
{
|
||||
return DataReturn($ret, -1);
|
||||
}
|
||||
|
||||
// 开始删除
|
||||
if(Db::name('BrandCategory')->where(['id'=>intval($params['id'])])->delete())
|
||||
{
|
||||
return DataReturn('删除成功', 0);
|
||||
}
|
||||
return DataReturn('删除失败', -100);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -35,6 +35,7 @@ return array (
|
|||
'plugins_css' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\freightfee\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_buy_group_goods_handle' =>
|
||||
array (
|
||||
|
|
@ -44,5 +45,49 @@ return array (
|
|||
array (
|
||||
0 => 'app\\plugins\\freightfee\\Hook',
|
||||
),
|
||||
'plugins_js' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_navigation_header_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_users_center_left_menu_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_header_navigation_top_right_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_buy_goods_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_buy_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_buy_form_inside' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_success' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_order_status_change_history_success_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_user_register_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
);
|
||||
?>
|
||||
|
|
@ -8,6 +8,8 @@
|
|||
4. 商品管理去除库存的配置,移动到独立库存中管理
|
||||
5. 新增仓库管理,仓库商品库存管理(多仓库、多库存)
|
||||
6. 新增 Ipay88 支付方式
|
||||
7. 订单新增批量合并支付
|
||||
8. 支付日志、退款日志、用户消息优化
|
||||
|
||||
web端
|
||||
1. 所有条件、数据列表、新增、编辑、删除 新增钩子(公共 form 表单封装)
|
||||
|
|
@ -20,6 +22,9 @@ web端
|
|||
8. 用户积分实时获取
|
||||
9. 管理员新增状态
|
||||
10. 后台左侧菜单优化,更简洁方便,小程序管理集合
|
||||
11. 后台新增商品复制功能
|
||||
12. 后台小程序配置集中管理
|
||||
13. 品牌支持关联多个分类
|
||||
|
||||
小程序端
|
||||
1. 支持商品自定义销售类型模式
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,8 @@
|
|||
/**
|
||||
* 列表
|
||||
* 上传文件
|
||||
*/
|
||||
.am-form-file input[type="file"] {
|
||||
margin-top: 0;
|
||||
width: 95px;
|
||||
height: 28px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
|
@ -95,12 +95,15 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 安装
|
||||
* 上传文件
|
||||
*/
|
||||
input[name="file"] { width: 105px !important; height: 32px; }
|
||||
input.file-event { margin-top: 0 !important; }
|
||||
.am-form-file input[type="file"] {
|
||||
width: 92px;
|
||||
height: 28px;
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除modal
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ iframe { border: 0; }
|
|||
/**
|
||||
* 公共图片上传
|
||||
*/
|
||||
.am-form-file input[type="file"] { width: 95px !important; height: 28px; margin-top: 10px !important; overflow:hidden; }
|
||||
.am-form-file input[type="file"] { overflow:hidden; }
|
||||
.am-form-file input.original-images-url { display: -webkit-inline-box !important; width: calc(100% - 110px) !important; background: #f5f5f5 !important; float: right; }
|
||||
.am-form-file i.original-images-url-delete { position: absolute; right: 3px; margin-top: 5px; cursor: pointer; background: #f5f5f5; padding: 0px 10px; }
|
||||
.am-form-file input.original-images-url-delete { padding-right: 35px !important; }
|
||||
|
|
|
|||
|
|
@ -935,7 +935,7 @@ button { outline: none !important; }
|
|||
.common-cropper-popup .preview-sm { width:50px; height:50px; }
|
||||
.common-cropper-popup .img-preview { margin-left:20px; border: 1px solid #eee; background-color: #f9f9f9; }
|
||||
.common-cropper-popup .cropper-container, .cropper-input-images-submit { border-radius:2px; }
|
||||
.common-cropper-popup .am-form-file input[type="file"] { margin-top: 0; }
|
||||
.common-cropper-popup .am-form-file input[type="file"] { width: 105px; height: 32px; }
|
||||
.common-cropper-popup .am-form-group { width: auto; }
|
||||
.common-cropper-popup form.am-form .am-form-group-refreshing { padding: 0 !important; }
|
||||
@media only screen and (max-width:641px){
|
||||
|
|
|
|||
Loading…
Reference in New Issue