www.lightcourse.com/app/home/controller/Pointvoucher.php

167 lines
6.2 KiB
PHP

<?php
namespace app\home\controller;
use think\facade\View;
use think\facade\Lang;
/**
* ============================================================================
* 联课教育商城系统
* ============================================================================
* 版权所有 2022 刻羽互动科技有限公司,并保留所有权利。
* 网站地址: http://www.o1h.cn
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
* 不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* 控制器
*/
class Pointvoucher extends BasePointShop
{
public function initialize()
{
parent::initialize(); // TODO: Change the autogenerated stub
Lang::load(base_path().'home/lang/'.config('lang.default_lang').'/voucher.lang.php');
if (config('ds_config.voucher_allow') != 1){
$this->error(lang('voucher_pointunavailable'),HOME_SITE_URL);
}
}
public function index(){
$this->pointvoucher();
return View::fetch($this->template_dir.'pointvoucher');
}
/**
* 代金券列表
*/
public function pointvoucher(){
//查询会员及其附属信息
parent::pointshopMInfo();
$voucher_model = model('voucher');
//代金券模板状态
$templatestate_arr = $voucher_model->getTemplateState();
//查询会员信息
$member_info = model('member')->getMemberInfoByID(session('member_id'));
//查询代金券列表
$where = array();
$where[]=array('vouchertemplate_state','=',$templatestate_arr['usable'][0]);
$where[]=array('vouchertemplate_enddate','>',TIMESTAMP);
if (intval(input('price')) > 0){
$where[]=array('vouchertemplate_price','=',intval(input('price')));
}
//查询仅我能兑换和所需积分
$points_filter = array();
if (intval(input('isable')) == 1){
$points_filter['isable'] = $member_info['member_points'];
}
if (intval(input('points_min')) > 0){
$points_filter['min'] = intval(input('points_min'));
}
if (intval(input('points_max')) > 0){
$points_filter['max'] = intval(input('points_max'));
}
if (count($points_filter) > 0){
asort($points_filter);
if (count($points_filter) > 1){
$points_filter = array_values($points_filter);
$where[] = array('vouchertemplate_points','between',array($points_filter[0],$points_filter[1]));
} else {
if ($points_filter['min']){
$where[]=array('vouchertemplate_points','>=',$points_filter['min']);
} elseif ($points_filter['max']) {
$where[]=array('vouchertemplate_points','<=',$points_filter['max']);
} elseif ($points_filter['isable']) {
$where[]=array('vouchertemplate_points','<=',$points_filter['isable']);
}
}
}
//排序
switch (input('orderby')){
case 'exchangenumdesc':
$orderby = 'vouchertemplate_giveout desc,';
break;
case 'exchangenumasc':
$orderby = 'vouchertemplate_giveout asc,';
break;
case 'pointsdesc':
$orderby = 'vouchertemplate_points desc,';
break;
case 'pointsasc':
$orderby = 'vouchertemplate_points asc,';
break;
default:
$orderby = '';
}
$orderby .= 'vouchertemplate_id desc';
$voucherlist = $voucher_model->getVouchertemplateList($where, '*', 0, 18, $orderby);
View::assign('voucherlist',$voucherlist);
View::assign('show_page', $voucher_model->page_info->render());
//分类导航
$nav_link = array(
0=>array('title'=>lang('ds_index'),'link'=>HOME_SITE_URL),
1=>array('title'=> lang('ds_pointprod'),'link'=>url('Pointshop/index')),
2=>array('title'=> lang('voucher_list'))
);
View::assign('nav_link_list', $nav_link);
}
/**
* 兑换代金券
*/
public function voucherexchange(){
$vid = intval(input('param.vid'));
$result = true;
$message = "";
if ($vid <= 0){
$result = false;
}
if ($result){
//查询可兑换代金券模板信息
$template_info = model('voucher')->getCanChangeTemplateInfo($vid,intval(session('member_id')));
if ($template_info['state'] == false){
$result = false;
$message = $template_info['msg'];
}else {
//查询会员信息
$member_info = model('member')->getMemberInfoByID(session('member_id'));
View::assign('member_info',$member_info);
View::assign('template_info',$template_info['info']);
}
}
View::assign('message',$message);
View::assign('result',$result);
echo View::fetch($this->template_dir.'exchange');exit;
}
/**
* 兑换代金券保存信息
*
*/
public function voucherexchange_save(){
if(session('is_login') != '1'){
ds_json_encode(10001,'异常错误');
}
$vid = intval(input('post.vid'));
if ($vid <= 0){
ds_json_encode(10001,lang('param_error'));
}
$voucher_model = model('voucher');
//验证是否可以兑换代金券
$data = $voucher_model->getCanChangeTemplateInfo($vid,intval(session('member_id')));
if ($data['state'] == false){
ds_json_encode(10001,$data['msg']);
}
//添加代金券信息
$data = $voucher_model->exchangeVoucher($data['info'],session('member_id'),session('member_name'));
if ($data['state'] == true){
ds_json_encode(10000,$data['msg']);
} else {
ds_json_encode(10001,$data['msg']);
}
}
}