348 lines
15 KiB
PHP
348 lines
15 KiB
PHP
<?php
|
|
|
|
namespace app\admin\controller;
|
|
|
|
use think\facade\View;
|
|
use think\facade\Db;
|
|
use think\facade\Lang;
|
|
|
|
/**
|
|
* ============================================================================
|
|
* 联课教育商城系统
|
|
* ============================================================================
|
|
* 版权所有 2022 刻羽互动科技有限公司,并保留所有权利。
|
|
* 网站地址: http://www.o1h.cn
|
|
* ----------------------------------------------------------------------------
|
|
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
|
|
* 不允许对程序代码以任何形式任何目的的再发布。
|
|
* ============================================================================
|
|
* 控制器
|
|
*/
|
|
class Voucher extends AdminControl {
|
|
|
|
private $templatestate_arr;
|
|
|
|
public function initialize() {
|
|
parent::initialize(); // TODO: Change the autogenerated stub
|
|
Lang::load(base_path() . 'admin/lang/' . config('lang.default_lang') . '/voucher.lang.php');
|
|
if (config('ds_config.voucher_allow') != 1 || config('ds_config.points_isuse') != 1) {
|
|
$this->error(lang('admin_voucher_unavailable'), 'operation/setting');
|
|
}
|
|
//代金券模板状态
|
|
$this->templatestate_arr = array(
|
|
'usable' => array(1, lang('admin_voucher_templatestate_usable')),
|
|
'disabled' => array(2, lang('ds_invalidation'))
|
|
);
|
|
View::assign('templatestate_arr', $this->templatestate_arr);
|
|
}
|
|
|
|
/**
|
|
* 代金券列表
|
|
*/
|
|
public function index() {
|
|
//代金券设置为失效
|
|
$this->check_voucher_template_expire();
|
|
|
|
$condition = array();
|
|
if (trim(input('param.sdate'))) {
|
|
$sdate = strtotime(input('param.sdate'));
|
|
$param[] = array('vouchertemplate_adddate', '>=', $sdate);
|
|
}
|
|
if (trim(input('param.edate'))) {
|
|
$edate = strtotime(input('param.edate')) + 86399;
|
|
$param[] = array('vouchertemplate_adddate', '<=', $edate);
|
|
}
|
|
$state = intval(input('param.state'));
|
|
if ($state) {
|
|
$condition[] = array('vouchertemplate_state', '=', $state);
|
|
}
|
|
if (input('param.recommend') === '1') {
|
|
$condition[] = array('vouchertemplate_recommend', '=', 1);
|
|
} elseif (input('param.recommend') === '0') {
|
|
$condition[] = array('vouchertemplate_recommend', '=', 0);
|
|
}
|
|
$voucher_model = model('voucher');
|
|
$vouchertemplate_list = $voucher_model->getVouchertemplateList($condition, '', '', 10, 'vouchertemplate_state asc,vouchertemplate_id desc');
|
|
|
|
|
|
|
|
View::assign('show_page', $voucher_model->page_info->render());
|
|
|
|
View::assign('vouchertemplate_list', $vouchertemplate_list);
|
|
$this->setAdminCurItem('index');
|
|
return View::fetch();
|
|
}
|
|
|
|
/*
|
|
* 代金券模版添加
|
|
*/
|
|
|
|
public function templateadd() {
|
|
if (request()->isPost()) {
|
|
//验证提交的内容面额不能大于限额
|
|
$data = [
|
|
'vouchertemplate_title' => input('post.vouchertemplate_title'),
|
|
'vouchertemplate_total' => input('post.vouchertemplate_total'),
|
|
'vouchertemplate_price' => input('post.vouchertemplate_price'),
|
|
'vouchertemplate_limit' => input('post.vouchertemplate_limit'),
|
|
'vouchertemplate_desc' => input('post.vouchertemplate_desc'),
|
|
];
|
|
|
|
$voucher_validate = ds_validate('voucher');
|
|
$error = '';
|
|
if (!$voucher_validate->scene('templateadd')->check($data)) {
|
|
$error .= $voucher_validate->getError();
|
|
}
|
|
|
|
//金额验证
|
|
$price = intval(input('post.vouchertemplate_price')) > 0 ? intval(input('post.vouchertemplate_price')) : 0;
|
|
$limit = intval(input('post.vouchertemplate_limit')) > 0 ? intval(input('post.vouchertemplate_limit')) : 0;
|
|
if ($price >= $limit)
|
|
$error .= lang('voucher_template_price_error');
|
|
if ($error) {
|
|
$this->error($error);
|
|
} else {
|
|
$insert_arr = array();
|
|
$insert_arr['vouchertemplate_title'] = trim(input('post.vouchertemplate_title'));
|
|
$insert_arr['vouchertemplate_desc'] = trim(input('post.vouchertemplate_desc'));
|
|
$insert_arr['vouchertemplate_startdate'] = TIMESTAMP; //默认代金券模板的有效期为当前时间
|
|
if (input('post.vouchertemplate_enddate')) {
|
|
$enddate = strtotime(input('post.vouchertemplate_enddate'));
|
|
$insert_arr['vouchertemplate_enddate'] = $enddate;
|
|
} else {//如果没有添加有效期则默认为套餐的结束时间
|
|
$insert_arr['vouchertemplate_enddate'] = TIMESTAMP + 30 * 3600 * 24;
|
|
}
|
|
$insert_arr['vouchertemplate_price'] = $price;
|
|
$insert_arr['vouchertemplate_limit'] = $limit;
|
|
$insert_arr['vouchertemplate_state'] = $this->templatestate_arr['usable'][0];
|
|
$insert_arr['vouchertemplate_total'] = intval(input('post.vouchertemplate_total')) > 0 ? intval(input('post.vouchertemplate_total')) : 0;
|
|
$insert_arr['vouchertemplate_giveout'] = 0;
|
|
$insert_arr['vouchertemplate_used'] = 0;
|
|
$insert_arr['vouchertemplate_gettype'] = 1;
|
|
$insert_arr['vouchertemplate_adddate'] = TIMESTAMP;
|
|
$insert_arr['vouchertemplate_points'] = intval(input('post.vouchertemplate_points'));
|
|
$insert_arr['vouchertemplate_eachlimit'] = intval(input('post.eachlimit')) > 0 ? intval(input('post.eachlimit')) : 0;
|
|
//自定义图片
|
|
if (!empty($_FILES['customimg']['name'])) {
|
|
$file_name = date('YmdHis') . rand(10000, 99999) . '.png';
|
|
$res = ds_upload_pic(ATTACH_VOUCHER, 'customimg', $file_name);
|
|
if ($res['code']) {
|
|
$file_name = $res['data']['file_name'];
|
|
$insert_arr['vouchertemplate_customimg'] = $file_name;
|
|
} else {
|
|
$this->error($res['msg']);
|
|
}
|
|
}
|
|
$rs = Db::name('vouchertemplate')->insert($insert_arr);
|
|
if ($rs) {
|
|
$this->success(lang('ds_common_save_succ'), url('Voucher/index'));
|
|
} else {
|
|
$this->error(lang('ds_common_save_fail'));
|
|
}
|
|
}
|
|
} else {
|
|
|
|
View::assign('type', 'add');
|
|
|
|
$t_info = array(
|
|
'vouchertemplate_recommend' => 0,
|
|
'vouchertemplate_enddate' => TIMESTAMP,
|
|
'vouchertemplate_state' => 1,
|
|
'vouchertemplate_price' => 0,
|
|
);
|
|
View::assign('t_info', $t_info);
|
|
|
|
$this->setAdminCurItem('templateadd');
|
|
return View::fetch('templateedit');
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 代金券模版编辑
|
|
*/
|
|
|
|
public function templateedit() {
|
|
$t_id = intval(input('param.tid'));
|
|
if ($t_id <= 0) {
|
|
$this->error(lang('param_error'), url('Voucher/templatelist'));
|
|
}
|
|
//查询模板信息
|
|
$param = array();
|
|
$param['vouchertemplate_id'] = $t_id;
|
|
$voucher_model = model('voucher');
|
|
$t_info = $voucher_model->getVouchertemplateInfo($param);
|
|
if (empty($t_info)) {
|
|
$this->error(lang('param_error'), 'Voucher/templatelist');
|
|
}
|
|
|
|
if (request()->isPost()) {
|
|
//验证提交的内容面额不能大于限额
|
|
$data = [
|
|
'vouchertemplate_title' => input('post.vouchertemplate_title'),
|
|
'vouchertemplate_total' => input('post.vouchertemplate_total'),
|
|
'vouchertemplate_price' => input('post.vouchertemplate_price'),
|
|
'vouchertemplate_limit' => input('post.vouchertemplate_limit'),
|
|
'vouchertemplate_desc' => input('post.vouchertemplate_desc'),
|
|
];
|
|
|
|
$voucher_validate = ds_validate('voucher');
|
|
$error = '';
|
|
if (!$voucher_validate->scene('templateedit')->check($data)) {
|
|
$error .= $voucher_validate->getError();
|
|
}
|
|
//金额验证
|
|
$price = intval(input('post.vouchertemplate_price')) > 0 ? intval(input('post.vouchertemplate_price')) : 0;
|
|
$limit = intval(input('post.vouchertemplate_limit')) > 0 ? intval(input('post.vouchertemplate_limit')) : 0;
|
|
if ($price >= $limit)
|
|
$error .= lang('voucher_template_price_error');
|
|
if ($error) {
|
|
$this->error($error);
|
|
} else {
|
|
$update_arr = array();
|
|
$update_arr['vouchertemplate_title'] = trim(input('post.vouchertemplate_title'));
|
|
$update_arr['vouchertemplate_desc'] = trim(input('post.vouchertemplate_desc'));
|
|
if (input('post.vouchertemplate_enddate')) {
|
|
$enddate = strtotime(input('post.vouchertemplate_enddate'));
|
|
$update_arr['vouchertemplate_enddate'] = $enddate;
|
|
} else {//如果没有添加有效期则默认为套餐的结束时间
|
|
$update_arr['vouchertemplate_enddate'] = TIMESTAMP + 3600 * 24 * 30;
|
|
}
|
|
$update_arr['vouchertemplate_price'] = $price;
|
|
$update_arr['vouchertemplate_limit'] = $limit;
|
|
$update_arr['vouchertemplate_state'] = intval(input('post.tstate')) == $this->templatestate_arr['usable'][0] ? $this->templatestate_arr['usable'][0] : $this->templatestate_arr['disabled'][0];
|
|
$update_arr['vouchertemplate_total'] = intval(input('post.vouchertemplate_total')) > 0 ? intval(input('post.vouchertemplate_total')) : 0;
|
|
$update_arr['vouchertemplate_points'] = intval(input('post.vouchertemplate_points'));
|
|
$update_arr['vouchertemplate_eachlimit'] = intval(input('post.vouchertemplate_eachlimit')) > 0 ? intval(input('post.vouchertemplate_eachlimit')) : 0;
|
|
//自定义图片
|
|
if (!empty($_FILES['customimg']['name'])) {
|
|
$file_name = date('YmdHis') . rand(10000, 99999) . '.png';
|
|
$res = ds_upload_pic(ATTACH_VOUCHER, 'customimg', $file_name);
|
|
if ($res['code']) {
|
|
$file_name = $res['data']['file_name'];
|
|
$update_arr['vouchertemplate_customimg'] = $file_name;
|
|
//删除原图
|
|
if (!empty($t_info['vouchertemplate_customimg'])) {//如果模板存在,则删除原模板图片
|
|
@unlink(BASE_UPLOAD_PATH . DIRECTORY_SEPARATOR . ATTACH_VOUCHER . DIRECTORY_SEPARATOR . $t_info['vouchertemplate_customimg']);
|
|
}
|
|
} else {
|
|
$this->error($res['msg']);
|
|
}
|
|
}
|
|
|
|
$rs = Db::name('vouchertemplate')->where(array('vouchertemplate_id' => $t_info['vouchertemplate_id']))->update($update_arr);
|
|
if ($rs >= 0) {
|
|
$this->success(lang('ds_common_save_succ'), url('Voucher/index'));
|
|
} else {
|
|
$this->error(lang('ds_common_save_fail'));
|
|
}
|
|
}
|
|
} else {
|
|
|
|
View::assign('type', 'edit');
|
|
View::assign('t_info', $t_info);
|
|
$this->setAdminCurItem('templateedit');
|
|
return View::fetch('templateedit');
|
|
}
|
|
}
|
|
|
|
/*
|
|
* 把代金券模版设为失效
|
|
*/
|
|
|
|
private function check_voucher_template_expire($voucher_template_id = '') {
|
|
$condition = array();
|
|
if (empty($voucher_template_id)) {
|
|
$condition[] = array('vouchertemplate_enddate', '<', TIMESTAMP);
|
|
} else {
|
|
$condition[] = array('vouchertemplate_id', '=', $voucher_template_id);
|
|
}
|
|
$condition[] = array('vouchertemplate_state', '=', $this->templatestate_arr['usable'][0]);
|
|
Db::name('vouchertemplate')->where($condition)->update(array('vouchertemplate_state' => $this->templatestate_arr['disabled'][0]));
|
|
}
|
|
|
|
/**
|
|
* 删除代金券
|
|
*/
|
|
public function templatedel() {
|
|
$t_id = intval(input('param.tid'));
|
|
if ($t_id <= 0) {
|
|
$this->error(lang('param_error'), url('Voucher/templatelist'));
|
|
}
|
|
//查询模板信息
|
|
$condition = array();
|
|
$condition[] = array('vouchertemplate_id', '=', $t_id);
|
|
$condition[] = array('vouchertemplate_giveout', '<=', '0'); //会员没领取过代金券才可删除
|
|
$t_info = Db::name('vouchertemplate')->where($condition)->find();
|
|
if (empty($t_info)) {
|
|
ds_json_encode(10001, lang('param_error'));
|
|
}
|
|
$rs = Db::name('vouchertemplate')->where(array('vouchertemplate_id' => $t_info['vouchertemplate_id']))->delete();
|
|
if ($rs) {
|
|
//删除自定义的图片
|
|
if (trim($t_info['vouchertemplate_customimg'])) {
|
|
@unlink(BASE_UPLOAD_PATH . DIRECTORY_SEPARATOR . ATTACH_VOUCHER . DIRECTORY_SEPARATOR . $t_info['vouchertemplate_customimg']);
|
|
}
|
|
ds_json_encode(10000, lang('ds_common_del_succ'));
|
|
} else {
|
|
ds_json_encode(10001, lang('ds_common_del_fail'));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* ajax操作
|
|
*/
|
|
public function ajax() {
|
|
$voucher_model = model('voucher');
|
|
switch (input('param.branch')) {
|
|
case 'vouchertemplate_recommend':
|
|
$voucher_model->editVouchertemplate(array('vouchertemplate_id' => intval(input('param.id'))), array(input('param.column') => intval(input('param.value'))));
|
|
if (intval(input('param.value')) == 1) {//推荐代金券
|
|
$logtext = '推荐代金券';
|
|
} else {
|
|
$logtext = '取消推荐代金券';
|
|
}
|
|
$this->log($logtext . '[ID:' . intval(input('param.id')) . ']', 1);
|
|
echo 'true';
|
|
exit;
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 页面内导航菜单
|
|
* @param string $menu_key 当前导航的menu_key
|
|
* @param array $array 附加菜单
|
|
* @return
|
|
*/
|
|
protected function getAdminItemList() {
|
|
$menu_array = array(
|
|
array(
|
|
'name' => 'index',
|
|
'text' => lang('admin_voucher_template_manage'),
|
|
'url' => url('Voucher/index')
|
|
),
|
|
array(
|
|
'name' => 'templateadd',
|
|
'text' => lang('admin_voucher_template_add'),
|
|
'url' => url('Voucher/templateadd')
|
|
),
|
|
);
|
|
|
|
if (request()->action() == 'templateedit') {
|
|
$menu_array = array(
|
|
array(
|
|
'name' => 'index',
|
|
'text' => lang('admin_voucher_template_manage'),
|
|
'url' => url('Voucher/index')
|
|
), array(
|
|
'name' => 'templateedit',
|
|
'text' => lang('admin_voucher_template_edit'),
|
|
'url' => ''
|
|
)
|
|
);
|
|
}
|
|
return $menu_array;
|
|
}
|
|
|
|
}
|