www.lightcourse.com/app/admin/controller/Vrgroupbuy.php

361 lines
14 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace app\admin\controller;
use think\facade\View;
use think\facade\Lang;
/**
* ============================================================================
* 联课教育商城系统
* ============================================================================
* 版权所有 2022 刻羽互动科技有限公司,并保留所有权利。
* 网站地址: http://www.o1h.cn
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
* 不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* 控制器
*/
class Vrgroupbuy extends AdminControl {
public function initialize() {
parent::initialize(); // TODO: Change the autogenerated stub
Lang::load(base_path() . 'admin/lang/' . config('lang.default_lang') . '/groupbuy.lang.php');
}
/*
* 列表分类
*/
public function index() {
$vrgroupbuyclass_model = model('vrgroupbuyclass');
$vrgroupbuyclass_list = $vrgroupbuyclass_model->getVrgroupbuyclassList();
View::assign('vrgroupbuyclass_list', $vrgroupbuyclass_list);
$this->setAdminCurItem('index');
return View::fetch();
}
/**
* 添加虚拟抢购页面
*/
public function groupbuy_add_vr() {
if (!request()->isPost()) {
// 虚拟抢购分类
View::assign('groupbuy_vr_classes', model('groupbuy')->getGroupbuyVrClasses());
$vrgroupbuyclass_model = model('vrgroupbuyclass');
$classlist = $vrgroupbuyclass_model->getVrgroupbuyclassList(array('vrgclass_parent_id' => 0));
View::assign('classlist', $classlist);
$this->setAdminCurItem('groupbuy_add_vr');
return View::fetch('groupbuy_add_vr');
} else {
//获取提交的数据
$goods_id = intval(input('post.groupbuy_goods_id'));
if (empty($goods_id)) {
ds_json_encode(10001,lang('param_error'));
}
$groupbuy_model = model('groupbuy');
$goods_model = model('goods');
$goods_info = $goods_model->getGoodsInfoByID($goods_id);
if (empty($goods_info)) {
ds_json_encode(10001,lang('param_error'));
}
$param = array();
$param['groupbuy_name'] = input('post.groupbuy_name');
$param['groupbuy_remark'] = input('post.remark');
$param['groupbuy_starttime'] = strtotime(input('post.start_time'));
$param['groupbuy_endtime'] = strtotime(input('post.end_time'));
$param['groupbuy_price'] = floatval(input('post.groupbuy_price'));
$param['groupbuy_rebate'] = ds_price_format(floatval(input('post.groupbuy_price')) / floatval($goods_info['goods_price']) * 10);
$param['groupbuy_image'] = input('post.groupbuy_image');
$param['groupbuy_image1'] = input('post.groupbuy_image1');
$param['virtual_quantity'] = intval(input('post.virtual_quantity'));
$param['groupbuy_upper_limit'] = intval(input('post.upper_limit'));
$param['groupbuy_intro'] = input('post.groupbuy_intro');
$param['gclass_id'] = input('post.gclass_id', 0);
$param['goods_id'] = $goods_info['goods_id'];
$param['goods_commonid'] = $goods_info['goods_commonid'];
$param['goods_name'] = $goods_info['goods_name'];
$param['goods_price'] = $goods_info['goods_price'];
if ($param['groupbuy_upper_limit'] > 0 && $goods_info['virtual_limit'] > 0 && $param['groupbuy_upper_limit'] > $goods_info['virtual_limit']) {
ds_json_encode(10001,sprintf(lang('virtual_panic_buying'), $param['groupbuy_upper_limit'], $goods_info['virtual_limit']));
}
$param += array(
'groupbuy_is_vr' => 1,
'vr_class_id' => (int) input('post.class'),
'vr_s_class_id' => (int) input('post.s_class'),
);
//保存
$result = $groupbuy_model->addGroupbuy($param);
if ($result) {
$this->log(lang('release_snap_up') . $param['groupbuy_name'] . '' . lang('ds_goods_name') . '' . $param['goods_name']);
ds_json_encode(10000,lang('groupbuy_add_success'));
} else {
ds_json_encode(10001,lang('groupbuy_add_fail'));
}
}
}
public function ajax_vr_class() {
$vrgclass_id = intval(input('param.vrgclass_id'));
if (empty($vrgclass_id)) {
exit('false');
}
$condition = array();
$condition[] = array('vrgclass_parent_id','=',$vrgclass_id);
$vrgroupbuyclass_model = model('vrgroupbuyclass');
$class_list = $vrgroupbuyclass_model->getVrgroupbuyclassList($condition);
if (!empty($class_list)) {
echo json_encode($class_list);
} else {
echo 'false';
}
exit;
}
/**
* 选择活动虚拟商品
*/
public function search_vr_goods() {
$goods_model = model('goods');
$condition = array();
$condition[] = array('goods_name','like', '%' . input('param.goods_name') . '%');
$goods_list = $goods_model->getGoodsCommonListForVrPromotion($condition, '*', 8);
View::assign('goods_list', $goods_list);
View::assign('show_page', $goods_model->page_info->render());
echo View::fetch('search_goods');
}
/*
* 添加分类
*/
public function class_add() {
if (request()->isPost()) { //添加虚拟抢购分类
// 数据验证
$data = [
'vrgclass_name' => input('post.vrgclass_name'),
'vrgclass_sort' => input('post.vrgclass_sort'),
];
$vrgroupbuy_validate = ds_validate('vrgroupbuy');
if (!$vrgroupbuy_validate->scene('class_add')->check($data)) {
$this->error($vrgroupbuy_validate->getError());
}
$params = array();
$params['vrgclass_name'] = trim(input('post.vrgclass_name'));
$params['vrgclass_sort'] = intval(input('post.vrgclass_sort'));
if (intval(input('post.vrgclass_parent_id')) > 0) {
$params['vrgclass_parent_id'] = input('post.vrgclass_parent_id');
} else {
$params['vrgclass_parent_id'] = 0;
}
$vrgroupbuyclass_model = model('vrgroupbuyclass');
$res = $vrgroupbuyclass_model->addVrgroupbuyclass($params); //添加分类
if ($res) {
// 删除虚拟抢购分类缓存
model('groupbuy')->dropCachedData('groupbuyvrclasses');
$this->log('添加虚拟抢购分类[ID:' . $res . ']', 1);
dsLayerOpenSuccess(lang('ds_common_op_succ'));
} else {
$this->error(lang('ds_common_op_fail'));
}
} else {
$vrgroupbuyclass_model = model('vrgroupbuyclass'); //一级分类
$vrgroupbuyclass_list = $vrgroupbuyclass_model->getVrgroupbuyclassList(array('vrgclass_parent_id' => 0));
View::assign('vrgroupbuyclass_list', $vrgroupbuyclass_list);
$this->setAdminCurItem('class_add');
$parent_id = input('param.vrgclass_parent_id');
View::assign('vrgclass_parent_id', !empty($parent_id) ? intval($parent_id) : 0);
return View::fetch('class_form');
}
}
/*
* 编辑分类
*/
public function class_edit() {
if (request()->isPost()) {
// 数据验证
$data = [
'vrgclass_name' => input('post.vrgclass_name'),
'vrgclass_sort' => input('post.vrgclass_sort'),
];
$vrgroupbuy_validate = ds_validate('vrgroupbuy');
if (!$vrgroupbuy_validate->scene('class_edit')->check($data)) {
$this->error($vrgroupbuy_validate->getError());
}
$params = array();
$params['vrgclass_name'] = trim(input('post.vrgclass_name'));
$params['vrgclass_sort'] = intval(input('post.vrgclass_sort'));
if (intval(input('post.vrgclass_parent_id')) > 0) {
$params['vrgclass_parent_id'] = input('post.vrgclass_parent_id');
} else {
$params['vrgclass_parent_id'] = 0;
}
$condition = array(); //条件
$condition[] = array('vrgclass_id','=',intval(input('param.vrgclass_id')));
$vrgroupbuyclass_model = model('vrgroupbuyclass');
$result = $vrgroupbuyclass_model->editVrgroupbuyclass($condition, $params);
if ($result >= 0) {
// 删除虚拟抢购分类缓存
model('groupbuy')->dropCachedData('groupbuyvrclasses');
$this->log('编辑虚拟抢购分类[ID:' . intval(input('param.vrgclass_id')) . ']', 1);
dsLayerOpenSuccess(lang('ds_common_op_succ'));
} else {
$this->error(lang('ds_common_op_fail'));
}
} else {
$vrgroupbuyclass_model = model('vrgroupbuyclass'); //分类信息
$class = $vrgroupbuyclass_model->getVrgroupbuyclassInfo(array('vrgclass_id' => intval(input('param.vrgclass_id'))));
if (empty($class)) {
$this->error('该分类不存在');
}
View::assign('class', $class);
$vrgroupbuyclass_list = $vrgroupbuyclass_model->getVrgroupbuyclassList(array('vrgclass_parent_id' => 0));
View::assign('vrgroupbuyclass_list', $vrgroupbuyclass_list);
$this->setAdminCurItem('class_edit');
return View::fetch('class_form');
}
}
/*
* 删除分类
*/
public function class_del() {
$vrgclass_id = input('param.vrgclass_id');
$vrgclass_id_array = ds_delete_param($vrgclass_id);
if ($vrgclass_id_array == FALSE) {
ds_json_encode(10001, lang('param_error'));
}
$vrgroupbuy_model = model('vrgroupbuyclass');
foreach ($vrgclass_id_array as $val) {
$class = $vrgroupbuy_model->getVrgroupbuyclassInfo(array('vrgclass_id' => $val));
if ($class['vrgclass_parent_id'] == 0) {
$class = $vrgroupbuy_model->delVrgroupbuyclass(array('vrgclass_parent_id' => $class['vrgclass_id']));
}
$class = $vrgroupbuy_model->delVrgroupbuyclass(array('vrgclass_id' => $val));
}
// 删除虚拟抢购分类缓存
model('groupbuy')->dropCachedData('groupbuy_vr_classes');
$this->log('删除虚拟抢购分类[ID:' . input('post.vrgclass_id') . ']', 1);
ds_json_encode(10000, lang('ds_common_del_succ'));
}
public function groupbuy_goods_info()
{
$goods_commonid = intval(input('param.goods_commonid'));
$data = array();
$data['result'] = true;
$goods_model = model('goods');
$condition = array();
$condition[] = array('goods_commonid','=',$goods_commonid);
$goods_list = $goods_model->getGoodsOnlineList($condition);
if (empty($goods_list)) {
$data['result'] = false;
$data['message'] = lang('param_error');
echo json_encode($data);
die;
}
$goods_info = $goods_list[0];
$data['goods_id'] = $goods_info['goods_id'];
$data['goods_name'] = $goods_info['goods_name'];
$data['goods_price'] = $goods_info['goods_price'];
$data['goods_image'] = goods_thumb($goods_info, 240);
$data['goods_href'] = url('Goods/index', array('goods_id' => $goods_info['goods_id']));
if ($goods_info['is_virtual']) {
$data['is_virtual'] = 1;
$data['virtual_indate'] = $goods_info['virtual_indate'];
$data['virtual_indate_str'] = date('Y-m-d H:i', $goods_info['virtual_indate']);
$data['virtual_limit'] = $goods_info['virtual_limit'];
}
echo json_encode($data);
die;
}
public function ajax() {
$field = input('param.column');
$id = input('param.id');
$value = input('param.value');
switch (input('param.column')) {
case 'vrgclass_name':
if (mb_strlen((string) $value, 'utf-8') > 10)
return;
break;
case 'vrgclass_sort':
if ($value < 0 || $value > 255)
return;
break;
default:
return;
}
switch (input('param.branch')) {
case 'class':
$vrgroupbuyclass_model = model('vrgroupbuyclass');
$res = $vrgroupbuyclass_model->editVrgroupbuyclass(array('vrgclass_id' => $id), array($field => $value));
if ($res) {
// 删除虚拟抢购分类缓存
model('groupbuy')->dropCachedData('groupbuy_vr_classes');
$this->log('编辑虚拟抢购分类[ID:' . $id . ']', 1);
echo 'true';
} else {
echo 'false';
}
exit;
default:
return;
}
}
protected function getAdminItemList() {
$menu_array = array(
array(
'name' => 'index', 'text' => '分类管理', 'url' => url('Vrgroupbuy/index')
),
array(
'name' => 'groupbuy_add_vr', 'text' => '添加虚拟产品', 'url' => url('Vrgroupbuy/groupbuy_add_vr')
),
array(
'name' => 'class_add', 'text' => '添加分类', 'url' => "javascript:dsLayerOpen('" . url('Vrgroupbuy/class_add') . "','添加分类')"
)
);
return $menu_array;
}
}