# 數據庫字典
## 權限表 acl
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| slug | varchar(255), NOT NULL | 模型層控制器方法 |
| title | varchar(255), NOT NULL | 權限名稱 |
| pid | int(11) , DEFAULT '0' | 上一層 |
>[info]權限是讀取的是數據庫 讓方法寫進權限表里 一定要在控制器的方法注釋相應的權限名稱 注釋一定要規范
例如 :
/**
* @desc 賬號權限
*
*/
/**
* @desc 賬號權限
*/
## 權限關聯角色表 acl_roles
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11) NOT NULL | 自增 |
| acl_id | int(11) NOT NULL | acl表 關聯ID |
| roles_id | int(11) NOT NULL | 角色ID |
| users_id | int(11) NOT NULL | 商家ID|
| status | int(4) DEFAULT '0' | 權限狀態,1開啟,2關閉 |
| created | int(11) NOT NULL | 創建時間 |
>[info]剛才介紹的權限表只是存權限的方法 要通過 acl_id 和 roles_id 關聯角色 來使權限表起到作用
users_id 是商家id 這個角色的所有的權限 只能在這家門店下使用
/*
*@desc 權限列表
*/
static public function acl_list(){
$id = login::getUid(null,1);
$list = users::where('id',$id)->first()->yf_shop_base;
if($list){
foreach($list as $k=>$v){
$arr[] = yf_shop_base::where('id',$v->id)->first()->shop_users;
}
}
if($arr){
foreach($arr as $k=>$v){
foreach($v as $k1=>$v1){
$in[] = $v1->id;
}
}
}
if($in){
foreach($in as $v){
$role_list[] = role_users::where('user_id',$v)->first();
}
}
if($role_list){
foreach($role_list as $k=>$v){
$role[] = roles::where('id',$v->role_id)->first();
}
}
if($role){
$role = array_unique($role);
return $role;
}else{
return array();
}
}
## 超級管理員表 admin_users
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| user | varchar(20) CHARACTER SET utf8 NOT NULL | 賬號 |
| pwd | varchar(100) CHARACTER SET utf8 NOT NULL | 密碼 |
| level | tinyint(1) DEFAULT '1' | 等級 |
| created | int(11) NOT NULL | 創建時間 |
>[info] 設置超級管理員賬號 超級管理員賬號等級默認為1
1, 超級管理員可行使的權利:
1),創建商家賬號 創建門店;
2),查看所有門店的 商品 訂單 會員 營業狀況 銷售單據 交接班記錄;
3),員工賬號 新建 編輯 刪除
4),會員賬號 新建 編輯 刪除
5),商品分類 新建 編輯 刪除
2, 超級管理員不可行使的權利:
1),不可執行退貨操作
/*
*
*@desc 驗證登錄賬號
*
*/
static function login($user,$pwd){
$one = self::where('user','=',$user)->first();
if(!$one){
return false;
}else{
if (password_verify($pwd, $one['pwd'])) {
$login = new login();
$login->admin_setcookie($one);
return true;
}else{
return false;
}
}
}
## 商家賬號表 users
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| ucenter_id | bigint(20) NOT NULL | 綁定商城的ucenter_id |
| ucenter_name | varchar(200) NOT NULL | 賬號 |
| service_start_time | datetime NOT NULL | 服務開始時間 |
| service_end_time | datetime NOT NULL | 服務結束時間 |
| max_stores | int(11) NOT NULL | 最多擁有門店數 |
| max_nums | int(11) NOT NULL | 單個門店最多人數 |
| authorization_module | int(11) NOT NULL | 授權模塊 |
| level | tinyint(1) DEFAULT '2' | 等級 |
| created | int(11) NOT NULL | 創建時間 |
| updated | int(11) NOT NULL | 更新時間 |
| deleted_at | datetime NOT NULL | 軟刪除 |
| local_ucenter_id | bigint(20) NOT NULL | 本地ucenter_id |
>[info]商家賬號分為兩種:
1,綁定商城的商家賬號:
可同步所屬商城賬號下 門店 用戶 商品 分類 訂單等。
2,未綁定商城的商家賬號:
只可針對本地 門店 用戶 員工 商品 分類 訂單 的 進行操作 。
/**
* @desc 添加數據
*/
public function add(){
return view('users_save');
}
/**
* @desc 編輯數據
*/
public function edit(){
$id = get_data('id');
$data['info'] = model::find($id);
return view('users_save',$data);
}
/**
* @desc 刪除數據
*/
public function delete(){
$id = get_data('id');
model::deleteForm($id);
echo 1;
exit;
}
/**
* @desc 保存數據
*/
public function save(){
if(is_ajax()){
model::saveForm();
exit(json_encode(['status'=>1,'msg'=>__('操作成功') ,'url'=>url('doc/users/index') ]));
}
}
## 角色表 roles
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| title | varchar(200) NOT NULL | 角色名稱 |
| slug | varchar(200) NOT NULL | 唯一標識 |
| created | int(11) NOT NULL | 創建時間 |
| updated | int(11) NOT NULL | 更新時間 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info]創建角色 可與員工表 權限表 關聯
/*
*@desc 關聯role_users
*
*/
public function role_users(){
return $this->hasMany('models\role_users','role_id');
}
## 角色關聯用戶表 role_users
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| user_id | int(11) NOT NULL | 員工ID |
| role_id | int(11) NOT NULL | 角色ID |
>[info] 此表是作為 員工賬號表 關聯 角色表的一個中間表 一個員工賬號 對應一個角色
/**
* 獲取所屬店鋪信息
*/
public function roles()
{
return $this->hasOne('models\roles','id','role_id');
}
## 員工賬號表 shop_users
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| yf_shop_base_id | int(11) NOT NULL | 所屬店鋪id |
| user | varchar(200) NOT NULL | 賬號 |
| pwd | varchar(200) NOT NULL | 密碼 |
| created | int(11) NOT NULL | 創建時間 |
| nickname | varchar(50) NOT NULL | 員工姓名 |
| sex | tinyint(1) NOT NULL | 性別 |
| phone | varchar(50) NOT NULL | 手機號 |
| id_card | varchar(200) NOT NULL | 身份證 |
| num | varchar(200) NOT NULL | 員工編號 |
| level | tinyint(1) DEFAULT '3' | 等級 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info]商家創建的員工賬號 可由商家進行分配 所屬門店 ,角色和權限
/**
* @desc 獲取所屬店鋪信息
*/
public function yf_shop_base()
{
return $this->hasOne('models\yf_shop_base','id','yf_shop_base_id');
}
/**
* @desc 獲取退貨訂單信息
*/
public function wp_order_return()
{
$start_time = request_data('start_time')?:date('Y-m-d 00:00:00', time());
$end_time = request_data('end_time')?:date('Y-m-d 23:59:59', time());
return $this->hasMany('models\wp_order_return','shop_users_id')
->where('created','>=',strtotime($start_time))
->where('created','<=',strtotime($end_time))
->where('type','!=',1);
}
/**
*@desc 獲取所屬角色信息
*/
public function role_users()
{
return $this->hasOne('models\role_users','user_id');
}
/**
*@desc 獲取訂單信息
*/
public function wp_order()
{
$start_time = request_data('start_time')?:date('Y-m-d 00:00:00', time());
$end_time = request_data('end_time')?:date('Y-m-d 23:59:59', time());
return $this->hasMany('models\wp_order','shop_users_id')
->where('ended','>=',strtotime($start_time))
->where('ended','<=',strtotime($end_time))
->where('type','!=',1);
}
## 員工交接班記錄表 record_succession
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| shop_users_id | int(11) NOT NULL | 收銀員帳號 |
| start_time | int(11) DEFAULT NULL | 開始時間 |
| end_time | int(11) DEFAULT NULL | 結束時間 |
| cash_payments | decimal(16,2) DEFAULT '0.00' | 現金支付 |
| unionpay_pay | decimal(16,2) DEFAULT '0.00' | 銀聯支付 |
| weixin_pay | decimal(16,2) DEFAULT '0.00' | 微信支付 |
| alipay_pay |decimal(16,2) DEFAULT '0.00' | 支付寶支付 |
| wp_users_pay | decimal(16,2) DEFAULT '0.00' | 會員余額支付 |
| standby_money | decimal(16,2) DEFAULT '0.00' | 備用金 |
| yf_shop_base_id | int(11) DEFAULT NULL | 等級所屬門店id|
>[info]記錄當前門店 的收銀員 從登錄到退出的各種支付方式的營收情況。
/**
* @desc 獲取賬號信息
*/
public function shop_users()
{
return $this->hasOne('models\shop_users','id','shop_users_id');
}
/**
*@desc 獲取所屬門店信息
*/
public function yf_shop_base()
{
return $this->hasOne('models\yf_shop_base','id','yf_shop_base_id');
}
## 店鋪表 yf_shop_base
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| user_id | int(11) NOT NULL | 屬于哪個用戶的 |
| title | varchar(200) NOT NULL | 門店名稱 |
| address | varchar(255) NOT NULL | 門店地址 |
| phone | varchar(20) NOT NULL | 電話 |
| created | int(11) NOT NULL | 門店開啟時間 |
| updated | int(11) DEFAULT NULL | 門店結束時間 |
| type_id | int(11) NOT NULL | 0門店創建,1商城同步 |
| shop_num | int(11) NOT NULL | 店員數 |
>[info] 門店隸屬于商家 一個商家可擁有多家門店
/**
* @desc 列表頁數據顯示
*
*/
public function index(){
$data['wq'] = get_data('wq');
return view('yf_shop_base_list',$data);
}
/**
* @desc ajax列表搜索
*
*/
public function ajax(){
$data = [];
$model = model::DefaultWhere()->paginate(config('app.page_size'));
//設置當前分頁中的URL路徑
$model->setPath(url(url_string()) );
$data['model'] = $model;
$output['html'] = view('yf_shop_base_ajax',$data);
echo json_encode(['status'=>true,'html'=>$output['html'],'render'=>'ajax_load_table']);
exit;
}
## 訂單表 wp_order
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| order_id | varchar(200) NOT NULL | 訂單編號 |
| shop_users_id | int(11) NOT NULL | 收銀員ID |
| user_id | int(11) DEFAULT NULL | 購買者 |
| payid | int(11) NOT NULL | 支付方式 |
| good_price | decimal(18,2) NOT NULL | 實際支付的費用 |
| user_price | decimal(18,2) DEFAULT NULL | 顧客支付的金額 |
| return_price | decimal(18,2) DEFAULT '0.00' | 找零 |
| good_num | varchar(200) NOT NULL | 數量 |
| created | int(11) NOT NULL | 下單時間 |
| ended | int(11) NOT NULL | 結單時間 |
| good_price_ori | decimal(18,2) NOT NULL DEFAULT '0.00' | 產品總價 |
| order_status | tinyint(1) NOT NULL | 訂單狀態 6.已完成 1.待支付 |
| coupon | varchar(255) DEFAULT NULL | 優惠券 |
| type | tinyint(4) NOT NULL | 1代表商城導入 |
| deleted_at | datetime NOT NULL | 軟刪除 |
| shop_id | int(11) NOT NULL | 店鋪id |
| payment_way | int(11) DEFAULT NULL | 記錄小票掃碼 |
>[info] 記錄門店的訂單 訂單信息也可從商城同步到線下
/*
*
*@desc 獲取門店信息
*/
public function yf_shop_base(){
return $this->belongsTo('models\yf_shop_base','shop_id');
}
/*
*
*@desc 獲取收銀員信息
*/
public function shop_users(){
return $this->belongsTo('models\shop_users','shop_users_id');
}
/*
*
*@desc 關聯訂單詳情
*/
public function wp_order_value(){
return $this->hasMany('models\wp_order_value','order_id','order_id');
}
/**
* @desc獲取會員信息
*/
public function wp_users()
{
return $this->belongsTo('models\wp_users','user_id','ucenter_id');
}
## 訂單詳情表 wp_order_value
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| order_id | varchar(200) NOT NULL | 訂單ID |
| goods_id | int(11) NOT NULL | 商品ID |
| goods_name | varchar(255) NOT NULL | 商品名稱 |
| goods_values | text NOT NULL | 商品其他信息 |
| good_price | decimal(18,2) NOT NULL | 實際支付的費用 |
| shop_id | int(11) NOT NULL | 店鋪ID |
| shop_name | varchar(255) NOT NULL | 店鋪名稱 |
| shop_users_id | int(11) NOT NULL | 員工id |
| num | int(11) NOT NULL | 購買數量 |
| status | tinyint(1) NOT NULL DEFAULT '1' | 1為正常,-1為退貨 |
| good_price_ori | decimal(18,2) NOT NULL | 原價 |
| type | tinyint(4) NOT NULL | 1代表商城導入 |
| created | int(11) NOT NULL | 下單時間 |
| updated | int(11) NOT NULL | 更新時間 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info]記錄門店下 各訂單中詳細的購買商品的信息
/**
* 獲取訂單信息
*/
public function wp_order_info()
{
return $this->belongsTo('models\wp_order','order_id','order_id');
}
## 訂單退貨表 wp_order_return
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| order_id | varchar(200) NOT NULL | 訂單ID |
| goods_id | int(11) NOT NULL | 商品ID |
| goods_name | varchar(255) NOT NULL | 商品名稱 |
| goods_values | text NOT NULL | 商品其他信息 |
| good_price | decimal(18,2) NOT NULL | 實際支付的費用 |
| shop_id | int(11) NOT NULL | 店鋪ID |
| shop_name | varchar(255) NOT NULL | 店鋪名稱 |
| shop_users_id | int(11) NOT NULL | 員工id |
| num | int(11) NOT NULL | 購買數量 |
| status | tinyint(1) NOT NULL DEFAULT '0' | 0為退貨 |
| return_payid | tinyint(4) NOT NULL | 退貨方式 |
| good_price_ori | decimal(18,2) NOT NULL | 原價 |
| type | tinyint(4) NOT NULL | 1代表商城導入 |
| created | int(11) NOT NULL | 下單時間 |
| updated | int(11) NOT NULL | 更新時間 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info]記錄門店下 各訂單中詳細的退貨商品的信息。
/*
* 關聯訂單表
* */
public function wp_order(){
return $this->belongsTo('models\wp_order','order_id','order_id','goods_id');
}
## 會員表 wp_users
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| ucenter_id | int(11) NOT NULL | ucenter用戶ID |
| sex | tinyint(1) NOT NULL | 性別 |
| phone | varchar(200) NOT NULL | 手機號 |
| email | varchar(200) NOT NULL | 郵箱 |
| bron | int(11) DEFAULT NULL | 生日 |
| realname | varchar(200) DEFAULT NULL | 真實性名 |
| ucenter_name | varchar(200) NOT NULL | 用戶名 |
| account_balance | decimal(18,2) DEFAULT '0.00' | 會員余額 |
| type | tinyint(4) DEFAULT '0' | 1代表商城導入 |
| created | int(11) NOT NULL | 注冊時間 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info]會員可在線下門店創建 也可商城同步 同步商城后注冊的會員都儲存在ucenter里 可直接用會員賬號登錄商城
/**
* @desc 會員列表
*/
public function ajax(){
$data = [];
$model = model::DefaultWhere()->paginate(config('app.page_size'));
$model->setPath(url(url_string()) );
$data['model'] = $model;
$output['html'] = view('wp_users_discount_ajax',$data);
echo json_encode(['status'=>true,'html'=>$output['html'],'render'=>'ajax_load_table']);
exit;
}
## 會員折扣表 wp_users_discount
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| wp_user_id | int(11) NOT NULL | ucenter用戶ID |
| discount | int(11) DEFAULT '100' | 折扣卡 |
| users_id | int(11) DEFAULT NULL | 商家id |
| numbers | varchar(200) NOT NULL | 會員卡號,自動生成 |
| type | tinyint(4) DEFAULT '0' | 1代表商城導入 |
| status | tinyint(4) NOT NULL DEFAULT '1' | 是否享受折扣,1享受,0不享受 |
| started | int(11) NOT NULL | 開始時間 |
| ended | int(11) NOT NULL | 結束時間 |
>[info]會員可享受折扣 此表與wp_users表關聯 關聯表的主要作用是用來區別不同商家下會員享受的不同折扣
/*
* @desc 關聯會員信息表
*/
public function wp_users(){
return $this->belongsTo('models\wp_users', 'wp_user_id')->orderBy('created', 'desc');
}
## 商品分類表 yf_goods_cat
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| cat_name | varchar(50) NOT NULL | 分類名稱 |
| cat_parent_id | int(11) NOT NULL DEFAULT '0' | 父類 |
| cat_displayorder | smallint(3) NOT NULL DEFAULT '255' | 排序 |
| level | int(11) NOT NULL | 分類級別 |
| type | tinyint(4) DEFAULT NULL | 1代表商城導入 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info]可用此表把商品分類 分類也可根據門店所經營商品進行創建 也可從商城同步到線下分類表
/**
* @desc 同步商城分類
*/
public function ajax_sync(){
$model = type::getCat();
$data = [];
if($model){
$insertnum = 0;
$updatenum = 0;
foreach($model as $k=>$v){
$li = model::where('id',$v['cat_id'])->withTrashed()->first();
$data['cat_name'] = $v['cat_name'];
$data['cat_parent_id'] = $v['cat_parent_id'];
$data['cat_displayorder'] = $v['cat_displayorder'];
$data['level'] = $v['level'];
$data['type'] = 1;
if(!$li){
$data['id'] = $v['cat_id'];
model::insert($data);
$insertnum++;
}else{
model::where('id',$v['cat_id'])->update($data);
$updatenum++;
}
}
exit(json_encode(['status'=>1,'msg'=>__('本次同步插入')."$insertnum".__('條數據,更新')."$updatenum".__('條數據')]));
}else{
exit(json_encode(['status'=>0,'msg'=>__('無數據導入')]));
}
}
## 店鋪關聯商品表 yf_goods_shop_common
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11), NOT NULL | 自增 |
| common_id | int(11) NOT NULL | 商品id |
| shop_id | int(11) NOT NULL | 店鋪id |
| type | tinyint(4) DEFAULT '0' | 1代表商城導入 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info] 店鋪關聯商品表 作用:一件商品存在于多個門店
/*
*獲取商品信息
*
*/
public function yf_goods_common(){
return $this->belongsTo('models\yf_goods_common','common_id');
}
/*
*獲取店鋪信息
*
*/
public function yf_shop_base(){
return $this->belongsTo('models\yf_shop_base','shop_id');
}
## 商品詳情表 yf_goods_common
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(10) unsigned NOT NULL | 自增 商品id |
| goods_id | int(11) NOT NULL | 商品同步商城id |
| common_name | varchar(50) NOT NULL | 商品名稱 |
| cat_id | int(10) unsigned NOT NULL | 商品分類 |
| common_spec_name | varchar(255) DEFAULT NULL | 規格名稱 |
| file | varchar(255) NOT NULL | 商品主圖 |
| common_state | tinyint(3) unsigned DEFAULT NULL | 商品狀態 2下架,1正常 |
| common_add_time | int(11) DEFAULT NULL | 商品添加時間 |
| common_sell_time | int(11) NOT NULL | 上架時間 |
| common_price | decimal(10,2) NOT NULL | 商品價格 |
| common_market_price | decimal(10,2) DEFAULT NULL | 市場價 |
| common_cost_price | decimal(10,2) DEFAULT NULL | 成本價 |
| common_stock | int(10) unsigned DEFAULT NULL | 商品庫存 |
| common_alarm | int(10) unsigned DEFAULT '0' | 庫存預警值 |
| common_cubage | decimal(10,2) DEFAULT NULL | 商品重量 |
| common_salenum | int(10) unsigned DEFAULT '0' | 商品銷量 |
| common_discounts | tinyint(1) DEFAULT '0' | 折扣狀態 |
| common_invoices | tinyint(3) unsigned DEFAULT '0' | 是否開具增值稅發票 |
| common_goods_from | tinyint(1) DEFAULT '0' | 1代表商城導入 |
| common_code | varchar(200) DEFAULT NULL | 商品條碼 |
| deleted_at | datetime NOT NULL | 軟刪除 |
>[info] 商品詳情表 可從商城店鋪同步數據 也可在線下創建
/**
* @desc 商品信息管理
*/
public function index(){
$data['shop_list'] = yf_shop_base::shop_list();
return view('yf_goods_shop_common_list',$data);
}
/**
* @desc 商品列表
*/
public function ajax(){
$model = model::DefaultWhere()->paginate(config('app.page_size'));
//設置當前分頁中的URL路徑
$model->setPath(url(url_string()) );
$data['model'] = $model;
$output['html'] = view('yf_goods_shop_common_ajax',$data);
echo json_encode(['status'=>true,'html'=>$output['html'],'render'=>'ajax_load_table']);
exit;
}
## 支付方式表 yf_payment_way
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11) NOT NULL | 自增 |
| paycenter_id | int(11) NOT NULL | 綁定商城的paycenter_id |
| pay_way | varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL | 支付名稱 |
| user_id | int(11) DEFAULT NULL | 商家id |
| status | tinyint(1) NOT NULL | 是否開啟’1 開啟, 0關閉 |
| created | int(11) NOT NULL | 創建時間 |
>[info] 設置門店的支付方式 根據user_is 每家門店可設置自己門店允許的支付方式
/*
*@desc 支付方式
*/
static function pay_list(){
$model = new self;
$list = self::get()->toArray();
if(!$list){
foreach(config('payment') as $k=>$v){
$model->insert(['pay_way'=>$k,'paycenter_id'=>$v,'status'=>1,'created'=>time()]);
}
}
}
## 優惠券表 wp_coupon
| 字段 | 類型 | 注釋 |
| ------------- |:-------------:| -----:|
| id | int(11) NOT NULL | 自增 |
| title | varchar(255) NOT NULL | 優惠券 |
| price | decimal(18,2) NOT NULL | 面值 |
| start_time | int(11) NOT NULL | 有效期開始時間 |
| end_time | int(11) NOT NULL | 有效期結束時間 |
| created | int(11) NOT NULL | 創建時間 |
| status | tinyint(1) NOT NULL | 1為啟用,0不啟用 |
| max_num | int(11) NOT NULL | 數量 |
| shop_id | int(11) NOT NULL | 店鋪 |
| cat_id | tinyint(1) NOT NULL | 分類 |
| condition | decimal(18,2) NOT NULL | 使用條件 |
>[info]可供各門店用于門店活動