# 團購管理
文件路徑:shop/controllers/Seller/Promotion/GroupBuyCtl.php
一、團購列表【方法:index();】
1.套餐過期時間及備注
```
<pre class="calibre14">```
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span>$this<span class="token">-</span><span class="token">></span>selfSupportFlag<span class="token1">)</span> <span class="token5">//普通店鋪</span>
<span class="token1">{</span>
$com_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>comboFlag<span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>comboFlag<span class="token1">)</span><span class="token5">//套餐可用</span>
<span class="token1">{</span>
<span class="token5">//店鋪套餐信息</span>
$combo_row <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyQuotaModel<span class="token">-</span><span class="token">></span><span class="token3">getGroupBuyQuotaByShopID</span><span class="token1">(</span>Perm<span class="token1">:</span><span class="token1">:</span>$shopId<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
```
```
2.團購類型【全部、線上團、虛擬團】
3.活動狀態
```
<pre class="calibre14">```
$cond_row<span class="token1">[</span><span class="token4">'shop_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$shopId<span class="token1">;</span>
<span class="token5">//團購類型</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token3">request_int</span><span class="token1">(</span><span class="token4">'type'</span><span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
$cond_row<span class="token1">[</span><span class="token4">'groupbuy_type'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">request_int</span><span class="token1">(</span><span class="token4">'type'</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">//活動狀態</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token3">request_int</span><span class="token1">(</span><span class="token4">'state'</span><span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//groupbuy_state--團購狀態 1.審核中 2.正常 3.結束 4.審核失敗 5.管理員關閉</span>
$cond_row<span class="token1">[</span><span class="token4">'groupbuy_state'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">request_int</span><span class="token1">(</span><span class="token4">'state'</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">//團購活動列表</span>
$data <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyBaseModel<span class="token">-</span><span class="token">></span><span class="token3">getGroupBuyGoodsList</span><span class="token1">(</span>$cond_row<span class="token1">,</span> <span class="token3">array</span><span class="token1">(</span><span class="token4">'groupbuy_id'</span> <span class="token">=</span><span class="token">></span> <span class="token4">'DESC'</span><span class="token1">)</span><span class="token1">,</span> $page<span class="token1">,</span> $rows<span class="token1">)</span><span class="token1">;</span>
```
```
二、新增(虛擬)團購【方法:add();addVr();】
1.團購活動開始時間:不得小于當前時間,且小于團購套餐結束時間
2.團購活動結束時間:不得小于當前時間,且小于團購套餐結束時間
3.團購商品:選擇商品
通過AJAX獲得店鋪所有商品,并且判斷商品是否已經參加過其他團購活動
```
<pre class="calibre14">```
$<span class="token1">(</span><span class="token4">".btn_show_search_goods"</span><span class="token1">)</span><span class="token1">.</span><span class="token3">on</span><span class="token1">(</span><span class="token4">'click'</span><span class="token1">,</span> <span class="token2">function</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span>
$<span class="token1">(</span><span class="token4">'.search-goods-list'</span><span class="token1">)</span><span class="token1">.</span><span class="token3">show</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$<span class="token1">(</span><span class="token4">'.btn_search_goods'</span><span class="token1">)</span><span class="token1">.</span><span class="token3">click</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//搜索店鋪商品</span>
$<span class="token1">(</span><span class="token4">'.btn_search_goods'</span><span class="token1">)</span><span class="token1">.</span><span class="token3">on</span><span class="token1">(</span><span class="token4">'click'</span><span class="token1">,</span> <span class="token2">function</span><span class="token1">(</span><span class="token1">)</span> <span class="token1">{</span>
var url <span class="token">=</span> <span class="token4">"index.php?ctl=Seller_Promotion_GroupBuy&met=getShopGoods&typ=e"</span><span class="token1">;</span>
var key <span class="token">=</span> $<span class="token1">(</span><span class="token4">"#key"</span><span class="token1">)</span><span class="token1">.</span><span class="token3">val</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
url <span class="token">=</span> key <span class="token">?</span> url <span class="token">+</span> <span class="token4">"&goods_name="</span> <span class="token">+</span> key <span class="token1">:</span> url<span class="token1">;</span>
$<span class="token1">(</span><span class="token4">'.search-goods-list-bd'</span><span class="token1">)</span><span class="token1">.</span><span class="token3">load</span><span class="token1">(</span>url<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span><span class="token1">)</span><span class="token1">;</span>
```
```
4.提交
新增團購活動提交時進行表單驗證:`$('#form').validator({})`
參數:group\_id -> 用于判斷當前活動是修改還是添加
```
<pre class="calibre14">```
$group_info <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyBaseModel<span class="token">-</span><span class="token">></span><span class="token3">getOneByWhere</span><span class="token1">(</span><span class="token1">[</span><span class="token4">'groupbuy_id'</span><span class="token">=</span><span class="token">></span>$group_id<span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
$this<span class="token">-</span><span class="token">></span>groupBuyBaseModel<span class="token">-</span><span class="token">></span>sql<span class="token">-</span><span class="token">></span><span class="token3">startTransactionDb</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span><span class="token1">(</span>$group_info<span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//編輯活動</span>
$field_row<span class="token1">[</span><span class="token4">'groupbuy_state'</span><span class="token1">]</span> <span class="token">=</span> <span class="token6">1</span><span class="token1">;</span>
$status_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyBaseModel<span class="token">-</span><span class="token">></span><span class="token3">editGroupBuy</span><span class="token1">(</span>$group_id<span class="token1">,</span> $field_row<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
<span class="token5">//添加活動</span>
$status_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyBaseModel<span class="token">-</span><span class="token">></span><span class="token3">addGroupBuy</span><span class="token1">(</span>$field_row<span class="token1">,</span> <span class="token6">true</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
三、套餐管理【方法:combo();】
1.店鋪已有套餐列表
`$data = $this->shopCostModel->listByWhere($cond_row,$order_row,$page, $rows);`
2.提交
(1)購買套餐提交表單驗證:`$('#form').validator({})`
(2)在店鋪的賬期結算中扣除相關費用并且在paycenter中添加交易記錄
```
<pre class="calibre15">```
$flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>shopCostModel<span class="token">-</span><span class="token">></span><span class="token3">addCost</span><span class="token1">(</span>$field_row<span class="token1">,</span> <span class="token6">true</span><span class="token1">)</span><span class="token1">;</span> <span class="token5">//記錄到店鋪費用表</span>
$combo_row <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyQuotaModel<span class="token">-</span><span class="token">></span><span class="token3">getGroupBuyQuotaByShopID</span><span class="token1">(</span>Perm<span class="token1">:</span><span class="token1">:</span>$shopId<span class="token1">)</span><span class="token1">;</span><span class="token5">//根據店鋪id號查找店鋪購買套餐情況</span>
<span class="token2">if</span> <span class="token1">(</span>$combo_row<span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//1、原套餐已經過期,更新套餐開始時間和結束時間</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token3">strtotime</span><span class="token1">(</span>$combo_row<span class="token1">[</span><span class="token4">'combo_endtime'</span><span class="token1">]</span><span class="token1">)</span> <span class="token"><</span> <span class="token3">time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
$field<span class="token1">[</span><span class="token4">'combo_starttime'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$field<span class="token1">[</span><span class="token4">'combo_endtime'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">date</span><span class="token1">(</span><span class="token4">'Y-m-d H:i:s'</span><span class="token1">,</span> <span class="token3">strtotime</span><span class="token1">(</span><span class="token4">"+$days days"</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
elseif <span class="token1">(</span><span class="token1">(</span><span class="token3">time</span><span class="token1">(</span><span class="token1">)</span> <span class="token">>=</span> <span class="token3">strtotime</span><span class="token1">(</span>$combo_row<span class="token1">[</span><span class="token4">'combo_starttime'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span> <span class="token">&&</span> <span class="token1">(</span><span class="token3">time</span><span class="token1">(</span><span class="token1">)</span> <span class="token"><=</span> <span class="token3">strtotime</span><span class="token1">(</span>$combo_row<span class="token1">[</span><span class="token4">'combo_endtime'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//2、原套餐尚未過期,只需更新結束時間</span>
$field<span class="token1">[</span><span class="token4">'combo_endtime'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">date</span><span class="token1">(</span><span class="token4">'Y-m-d H:i:s'</span><span class="token1">,</span> <span class="token3">strtotime</span><span class="token1">(</span><span class="token4">"+$days days"</span><span class="token1">,</span> <span class="token3">strtotime</span><span class="token1">(</span>$combo_row<span class="token1">[</span><span class="token4">'combo_endtime'</span><span class="token1">]</span><span class="token1">)</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
$op_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyQuotaModel<span class="token">-</span><span class="token">></span><span class="token3">renewGroupBuyCombo</span><span class="token1">(</span>$combo_row<span class="token1">[</span><span class="token4">'combo_id'</span><span class="token1">]</span><span class="token1">,</span> $field<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">else</span>
<span class="token1">{</span>
<span class="token5">//記錄不存在,添加套餐</span>
$field<span class="token1">[</span><span class="token4">'combo_starttime'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">get_date_time</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$field<span class="token1">[</span><span class="token4">'combo_endtime'</span><span class="token1">]</span> <span class="token">=</span> <span class="token3">date</span><span class="token1">(</span><span class="token4">'Y-m-d H:i:s'</span><span class="token1">,</span> <span class="token3">strtotime</span><span class="token1">(</span><span class="token4">"+$days days"</span><span class="token1">)</span><span class="token1">)</span><span class="token1">;</span>
$field<span class="token1">[</span><span class="token4">'shop_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$shopId<span class="token1">;</span>
$field<span class="token1">[</span><span class="token4">'shop_name'</span><span class="token1">]</span> <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>shopInfo<span class="token1">[</span><span class="token4">'shop_name'</span><span class="token1">]</span><span class="token1">;</span>
$field<span class="token1">[</span><span class="token4">'user_id'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$userId<span class="token1">;</span>
$field<span class="token1">[</span><span class="token4">'user_nickname'</span><span class="token1">]</span> <span class="token">=</span> Perm<span class="token1">:</span><span class="token1">:</span>$row<span class="token1">[</span><span class="token4">'user_account'</span><span class="token1">]</span><span class="token1">;</span>
$op_flag <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>groupBuyQuotaModel<span class="token">-</span><span class="token">></span><span class="token3">addGroupBuyCombo</span><span class="token1">(</span>$field<span class="token1">,</span> <span class="token6">true</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">//在paycenter中添加交易記錄</span>
$rs <span class="token">=</span> <span class="token3">get_url_with_encrypt</span><span class="token1">(</span>$key<span class="token1">,</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s?ctl=Api_Pay_Pay&met=addCombo&typ=json'</span><span class="token1">,</span> $url<span class="token1">)</span><span class="token1">,</span> $formvars<span class="token1">)</span><span class="token1">;</span>
```
```
- 序言
- 系統要求
- 版本更新日志
- 遠豐商城技術對接說明
- 開發指導
- 框架內容
- 基礎
- 開發規范
- 目錄結構
- 架構
- 架構總覽
- 數據庫
- 數據庫連接
- 基本使用
- 緩存
- 配置
- 路由
- 數據字典
- ucenter
- shop
- paycenter
- ucenter_admin
- shop_admin
- paycenter_admin
- 通訊內容
- 商家中心
- 頂部導航欄
- 店鋪信息欄
- 店鋪及商品提示欄
- 交易提示欄
- 銷售情況統計欄
- 單品銷量排行欄
- 店鋪運營推廣欄
- 平臺聯系方式欄
- 訂單物流
- 商品
- 商品列表
- 商品詳情
- 商品發布與編輯
- 分銷商品
- 關聯版式
- 商品規格
- 圖片空間
- 淘寶導入
- 訂單流程
- 交易訂單
- 訂單退款/退貨
- 促銷
- 團購管理
- 加價購
- 限時折扣
- 滿即送
- 代金券管理
- 分銷
- 店鋪
- 店鋪設置
- 自銷產品供應商
- 實體店鋪
- 品牌申請
- 店鋪信息
- 消費者保障服務
- 門店賬號
- 分銷商--產品供應商
- 分銷明細
- 批發市場
- 售后服務
- 咨詢管理
- 投訴管理
- 退款管理
- 退貨管理
- 云方案架構
- 負載集群
- 云存儲
- 接口
- Api接口說明
- 品牌
- 商品規格
- 商品類型
- 商品分類
- 商品
- 訂單
- 商品/店鋪收藏
- 足跡
- 退款及退貨
- 商家店鋪
- 會員
- 入駐協議
- 訂單接口
- 商品接口
- 訂單物流接口
- 商家中心接口
- 促銷接口
- 快遞鳥物流接口
- 代金券接口
- 首頁版塊
- 團購
- 平臺紅包
- 限時折扣接口
- 拼團接口
- wap首頁模板
- 雜項
- 遠程上傳圖片
- JS
- 銀聯支付
- 多語言
- 商品評分
- 圖片加載
- 買家申請退款退貨
- 商家退款退貨
- 平臺退款退貨
- 添加發票
- 提交訂單
- 確認訂單
- 運費銷售區域
- 獲取會員地址
- 充值
- 導出XLS
- 商城系統集成
- 多語言實現
- 三級分銷推廣鏈接發展推廣員
- app.ini.php
- 去分銷
- 版本更新
- 物流支持
- 運營人員建議
- 業務邏輯
- 統計結算
- 客服消息
- 賬號
- 三級分銷
- IM
- 配置
- 平臺帳號
- 活動數據表說明