215 lines
7.1 KiB
PHP
215 lines
7.1 KiB
PHP
<?php
|
|
/**
|
|
* SAAS应用系统 --- 十年开发经验汇集巨献!
|
|
* ==========================================================
|
|
* Copy right 2020-2050 成都众联思索科技有限公司,保留所有权利。
|
|
* ----------------------------------------------------------
|
|
* 官方网址: https://www.zoomtk.com
|
|
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
|
|
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布传播。
|
|
* 唯一发布渠道www.zoomtk.com;非官方渠道统一视为侵权行为。
|
|
* ==========================================================
|
|
*/
|
|
namespace app\model\system;
|
|
use app\model\BaseModel;
|
|
use think\facade\Cache;
|
|
/**
|
|
* 店铺套餐
|
|
* @author Administrator
|
|
*/
|
|
class SiteGroup extends BaseModel
|
|
{
|
|
/**
|
|
* getSiteGroupInfo 详情
|
|
* @param $condtion
|
|
* @param string $fields
|
|
*/
|
|
public function getSiteGroupInfo($condtion, $fields = '*')
|
|
{
|
|
$res = model('site_group')->getInfo($condtion, $fields);
|
|
return $this->success($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* getSiteGroupDetail 详情
|
|
* @param $condtion
|
|
* @param string $fields
|
|
*/
|
|
public function getSiteGroupDetail($condtion, $fields = '*')
|
|
{
|
|
$res = model('site_group')->getInfo($condtion, $fields);
|
|
return $this->success($res);
|
|
}
|
|
|
|
/**
|
|
* 添加
|
|
*/
|
|
public function addSiteGroup($data)
|
|
{
|
|
$count = model('site_group')->getCount([['group_name', '=', $data[ 'group_name' ],['site_id','=',$data['site_id']]]]);
|
|
if ($count > 0) {
|
|
return $this->error('-1', '该套餐名称已经存在!');
|
|
}
|
|
$data[ 'create_time' ] = time();
|
|
$res = model('site_group')->add($data);
|
|
return $this->success($res);
|
|
}
|
|
/**
|
|
* 多个添加
|
|
*/
|
|
public function addSiteGroupList($data)
|
|
{
|
|
foreach ($data as $k => $v) {
|
|
$count = model('site_group')->getCount([ [ 'group_name', '=', $v[ 'group_name' ]],['site_id','=',$data['site_id']] ]);
|
|
if ($count > 0) {
|
|
return $this->error('-1', '该套餐名称已经存在!');
|
|
}
|
|
$data[ $k ][ 'create_time' ] = time();
|
|
}
|
|
$res = model('site_group')->addList($data);
|
|
return $this->success($res);
|
|
}
|
|
/**
|
|
* 修改,只能单个修改
|
|
* @param $site_data
|
|
* @param $condition
|
|
* @return int
|
|
*/
|
|
public function editSiteGroup($data, $condition)
|
|
{
|
|
$check_data = array_column($condition, 2, 0);
|
|
if (empty($check_data[ 'group_id' ])) {
|
|
return $this->error(-1, '参数错误');
|
|
}
|
|
$group_id = $check_data[ 'group_id' ];
|
|
$count = model('site_group')->getCount([ [ 'group_id', '<>', $group_id ], [ 'group_name', '=', $data[ 'group_name' ] ] ]);
|
|
if ($count > 0) {
|
|
return $this->error(-1, '该套餐名称已经存在!');
|
|
}
|
|
$data[ 'modify_time' ] = time();
|
|
$res = model('site_group')->update($data, $condition);
|
|
if ($res) {
|
|
//修改对应店铺信息
|
|
$data_site = [
|
|
'site_addon' => $data[ 'addon_array' ],
|
|
'group_name' => $data[ 'group_name' ]
|
|
];
|
|
model("site")->update($data_site, [ [ 'group_id', '=', $group_id ] ]);
|
|
}
|
|
return $this->success($res);
|
|
}
|
|
/**
|
|
* 获取列表
|
|
*/
|
|
public function getSiteGroupPageList($condition, $page, $page_size, $order = "create_time desc", $fields = '*')
|
|
{
|
|
$res = model('site_group')->pageList($condition, $fields, $order, $page, $page_size);
|
|
return $this->success($res);
|
|
}
|
|
/**
|
|
* 获取列表
|
|
*/
|
|
public function getSiteGroupList($condition, $fields = '*', $order = "create_time desc")
|
|
{
|
|
$res = model('site_group')->getList($condition, $fields, $order);
|
|
return $this->success($res);
|
|
}
|
|
/**
|
|
* 删除
|
|
* @param $condition
|
|
*/
|
|
public function deleteSiteGroup($group_id)
|
|
{
|
|
//开店套餐删除之前要考虑店铺 - 订单
|
|
$site_count = model('site')->getCount([ [ 'group_id', '=', $group_id ] ]);
|
|
if ($site_count > 0) {
|
|
return $this->error('-1', '该套餐存在店铺,不得删除!');
|
|
}
|
|
$order_count = model('sys_order')->getCount([ [ 'group_id', '=', $group_id ], [ 'pay_status', '=', 0 ] ]);
|
|
if ($order_count > 0) {
|
|
return $this->error('-1', '该套餐存在未支付订单,不得删除!');
|
|
}
|
|
$res = model('site_group')->delete([ [ 'group_id', '=', $group_id ] ]);
|
|
return $this->success($res);
|
|
}
|
|
/********************************************************************** 订单相关 start *********************************************************************************/
|
|
/**
|
|
* 订单完成
|
|
*/
|
|
public function orderPay($order_info)
|
|
{
|
|
$result = $this->orderSuccess($order_info);
|
|
return $result;
|
|
}
|
|
/**
|
|
* 套餐订单完成
|
|
*/
|
|
public function orderSuccess($order_info)
|
|
{
|
|
if ($order_info[ 'order_type' ] == 'group') {
|
|
if ($order_info[ 'site_id' ] == 0) {
|
|
//创建店铺
|
|
$site_data = [
|
|
'site_name' => $order_info[ 'site_name' ],//店铺名称
|
|
'sys_uid' => $order_info[ 'buyer_uid' ],
|
|
'is_try' => 0,
|
|
'group_id' => $order_info[ 'group_id' ],
|
|
'expire_time' => strtotime('+' . $order_info[ 'group_num' ] . $order_info[ 'group_period_unit' ])
|
|
];
|
|
$site_model = new Site();
|
|
$res = $site_model->addSite($site_data);
|
|
if ($res[ 'code' ] >= 0) {
|
|
model('sys_order')->update([ 'site_id' => $res[ 'data' ]], [ [ 'order_id', '=', $order_info[ 'order_id' ] ] ]);
|
|
}
|
|
return $res;
|
|
} else {
|
|
//已经有店铺
|
|
$site_info = model("site")->getInfo([ [ 'site_id', '=', $order_info[ 'site_id' ] ] ], '*');
|
|
if ($site_info[ 'is_try' ] == 1) {
|
|
$cache = Cache::get("niushop_cert");
|
|
if (!empty($cache)) {
|
|
if ($cache[ 'site_num' ] != 0) {
|
|
$site_count = model("site")->getCount([ [ 'site_type', '=', 'shop' ], [ 'is_try', '=', 0 ] ]);
|
|
if ($site_count >= $cache[ 'site_num' ]) {
|
|
return $this->error(-1, "当前系统授权最大店铺数量".$cache[ 'site_num' ].",请联系管理员购买");
|
|
}
|
|
}
|
|
}
|
|
//体验店铺
|
|
$end_time = strtotime('+' . $order_info[ 'group_num' ] . $order_info[ 'group_period_unit' ], time());
|
|
} else {
|
|
//站点续期
|
|
$now = time();
|
|
if ($now > $site_info[ 'expire_time' ]) {
|
|
//站点已经过期
|
|
$end_time = strtotime('+' . $order_info[ 'group_num' ] . $order_info[ 'group_period_unit' ]);
|
|
} else {
|
|
//站点未过期
|
|
$end_time = strtotime('+' . $order_info[ 'group_num' ] . $order_info[ 'group_period_unit' ], $site_info[ 'expire_time' ]);
|
|
}
|
|
}
|
|
model('sys_order')->update(['is_renew' => 1] , [ [ 'order_id', '=', $order_info[ 'order_id' ] ] ]);
|
|
//站点变化
|
|
$site_group_model = new SiteGroup();
|
|
$group_info = $site_group_model->getSiteGroupInfo([ [ 'group_id', '=', $order_info[ 'group_id' ] ] ], 'group_id, group_name, addon_array,sms_num');
|
|
if ($site_info[ 'is_try' ] == 1) {
|
|
$sms_num = $group_info[ 'data' ][ 'sms_num' ];
|
|
} else {
|
|
$sms_num = $site_info[ 'sms_num' ];
|
|
}
|
|
$data = [
|
|
'group_id' => $group_info[ 'data' ][ 'group_id' ],
|
|
'group_name' => $group_info[ 'data' ][ 'group_name' ],
|
|
'site_addon' => $group_info[ 'data' ][ 'addon_array' ],
|
|
'expire_time' => $end_time,
|
|
'sms_num' => $sms_num,
|
|
'is_try' => 0
|
|
];
|
|
$site_model = new Site();
|
|
$res = $site_model->editSite($data, [ [ 'site_id', '=', $order_info[ 'site_id' ] ] ]);
|
|
return $res;
|
|
}
|
|
}
|
|
}
|
|
} |