Card.php 13 KB
<?php
namespace app\admin\controller;
use think\Db;
use think\facade\Request;
class Card extends Common
{
    /**
     * 商家卡券-优惠券-卡券列表
     */
    public function sellercard(){
        if(Request::isAjax()){
            $data = Request::except('file');

            $where = '';
            $channel = $data['channel'] ? $data['channel'] : 1;

            $where .= ($channel && $channel==4) ? ' re.type_id in (1,2,3)' : " re.type_id in ($channel)";
            $where .= $data['key'] ? ' and s.sellername like "%'.$data['key'].'%"' : "";
            
            $offset = ($data["page"] - 1) * $data["limit"];
            $limit  = " LIMIT $offset,".$data['limit'];

            //卡券信息
            $rs = Db::query("SELECT
                                s.*
                            FROM
                                `xt-member-two-LINE`.xt_dc_dz_card_info AS s
                                LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
                            WHERE
                            ".$where." order by s.sid".$limit);
            //格式化数据
            foreach ($rs as $key => $value) {
                $rs[$key]['create_time'] = date("Y年m月d日",$value['create_time']);
                switch ($value['status']) {
                    case '1':
                        $rs[$key]['status'] = '已投放';
                        break;
                    case '2':
                        $rs[$key]['status'] = '未投放';
                        break;
                    case '3':
                        $rs[$key]['status'] = '停止投放';
                        break;
                    default:
                        # code...
                        break;
                }
            }

            //获取总条数
            $total = Db::query("SELECT
                            s.id 
                        FROM
                            `xt-member-two-LINE`.xt_dc_dz_card_info AS s
                            LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
                        WHERE
                            ".$where."");
            return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
        }
        $this->assign ( 'title','商家卡券');
        return $this->fetch();
    }

    /**
     * 优惠券-卡券详情
     */
    public function carddetail(){
        //print_r(Request::except('file'));die;
        $data = Request::except('file');
        //获取运营人员列表
        $rs = Db::query("SELECT
                                car.*,
                                base.*
                            FROM
                                `xt-member-two-LINE`.xt_dc_dz_card_info as car
                                LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_card_base as base
                                on car.bid = base.card_id
                            WHERE id = ".$data['id']."
                            ");
        switch ($rs[0]['status']) {
            case '1':
                $rs[0]['status_meg'] =  '已投放';
                break;
            case '2':
                $rs[0]['status_meg'] =  '未投放';
                break;
            case '3':
                $rs[0]['status_meg'] =  '停止投放';
                break;
            default:
                # code...
                break;
        }
        $rs[0]['start_time'] =  date("Y年m月d日",$rs[0]['start_time']);
        $rs[0]['end_time']   =  date("Y年m月d日",$rs[0]['end_time']);
        $this->assign ('rs',$rs[0]);
        $this->assign ( 'title','优惠券详情');
        return $this->fetch();
    }

    /**
     * 创建优惠券-选择商户
     */
    public function selectseller(){
        $this->assign ( 'title','创建卡券');
        return $this->fetch();
    }

    /**
     * 创建优惠券-商家列表
     */
    public function sellerlist(){
        if(Request::isAjax()){
            $data = Request::except('file');

            $where = '';
            $channel = $data['channel'] ? $data['channel'] : 1;

            $where .= ($channel && $channel==4) ? ' re.type_id in (1,2,3)' : " re.type_id in ($channel)";
            $where .= $data['key'] ? ' and s.sellername like "%'.$data['key'].'%"' : "";
            
            
            $offset = ($data["page"] - 1) * $data["limit"];
            $limit  = " LIMIT $offset,".$data['limit'];

            //商家基本数据
            $rs = Db::query("SELECT
                                s.id,
                                s.sellername
                            FROM
                                `xt-member-two-LINE`.xt_seller AS s
                                LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
                            WHERE
                                s.isopen_dc = 1 
                            AND ".$where." GROUP BY s.id order by s.id".$limit);
            //获取总条数
            $total = Db::query("SELECT
                            s.id 
                        FROM
                            `xt-member-two-LINE`.xt_seller AS s
                            LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
                        WHERE
                            s.isopen_dc = 1 
                            AND ".$where."
                        GROUP BY
                            s.id");
            return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
        }
        return $this->fetch();
    }

    /**
     * 创建优惠券-卡券类型选择
     */
    public function cardtypelist(){
        if(Request::isAjax()){
            //商家基本数据
            $rs = Db::query("SELECT
                                *
                            FROM
                                `xt-member-two-LINE`.xt_dc_dz_card_base ");
            
            return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'rel'=>2];
        }
        return $this->fetch();
    }

    /**
     * 创建优惠券-完成创建
     */
    public function add_card(){
        $data = Request::except('file');
        if(Request::isAjax()){
            $arr = [];
            $arr['sid']        = $data['seller_id'];
            $arr['sellername'] = $data['seller_name'];
            $arr['bid']        = $data['card_id'];
            $arr['card_title'] = $data['title'];
            $arr['price']      = $data['price'];
            $arr['owner']      = $data['card_from_type'];
            $time              = $data['date'] ? explode(' - ', $data['date']) : '';
            $arr['start_time'] = $time ? strtotime(date($time[0],time())) : '';
            $arr['end_time']   = $time ? strtotime(date($time[1],time())) : '';
            $arr['create_time']= time();
            $arr['creator']    = $_SESSION['think']['username'];
            //有新加参数 需在此后追加。。。

            $key =  implode(',',array_keys($arr));

            $res = Db::query("INSERT INTO `xt-member-two-LINE`.xt_dc_dz_card_info 
                ($key) 
                VALUES(".$arr['sid'].",'".$arr['sellername']."',".$arr['bid'].",'".$arr['card_title']."',".$arr['price'].",".$arr['owner'].",".$arr['start_time'].",".$arr['end_time'].",".$arr['create_time'].",'".$arr['creator']."')");

            if(!$res){
                $result = ['code'=>1,'msg'=>'添加成功!','rel'=>1];
            }else{
                $result = ['code'=>0,'msg'=>'添加失败!','rel'=>1];
            }
            return $result;
        }
        return $this->fetch();
    }

    /**
     * 商家卡券-卡券投放-卡券列表
     */
    public function cardput(){
        if(Request::isAjax()){
            $data = Request::except('file');

            $where = '';
            $channel = $data['channel'] ? $data['channel'] : 1;

            $where .= ($channel && $channel==4) ? ' re.type_id in (1,2,3)' : " re.type_id in ($channel)";
            $where .= $data['key'] ? ' and s.sellername like "%'.$data['key'].'%"' : "";
            
            $offset = ($data["page"] - 1) * $data["limit"];
            $limit  = " LIMIT $offset,".$data['limit'];

            //卡券信息
            $rs = Db::query("SELECT
                                s.*
                            FROM
                                `xt-member-two-LINE`.xt_dc_dz_card_info AS s
                                LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
                            WHERE
                            ".$where." order by s.sid".$limit);
            //格式化数据
            foreach ($rs as $key => $value) {
                $rs[$key]['create_time'] = date("Y年m月d日",$value['create_time']);
                switch ($value['status']) {
                    case '1':
                        $rs[$key]['status_msg'] = '已投放';
                        break;
                    case '2':
                        $rs[$key]['status_msg'] = '未投放';
                        break;
                    case '3':
                        $rs[$key]['status_msg'] = '停止投放';
                        break;
                    default:
                        # code...
                        break;
                }
            }

            //获取总条数
            $total = Db::query("SELECT
                            s.id 
                        FROM
                            `xt-member-two-LINE`.xt_dc_dz_card_info AS s
                            LEFT JOIN `xt-member-two-LINE`.xt_dc_dz_seller_type_rel AS re ON re.sid = s.id
                        WHERE
                            ".$where."");
            return $result = ['code'=>0,'msg'=>'获取成功!','data'=>$rs,'count'=>count($total),'rel'=>1];
        }
        $this->assign ( 'title','商家卡券');
        return $this->fetch();
    }

    /**
     * 商家卡券-卡券投放- 停止投放
     */
    public function cardstop(){
        if(Request::isAjax()){
            $data = Request::except('file');
            $ups = Db::query("UPDATE `xt-member-two-LINE`.xt_dc_dz_card_info set status = 3 where id = ".$data['id']);
            if(!$ups){
                $result['code'] = 1;
                $result['msg'] = '该卡券已停止投放!';
            }else{
                $result['code'] = 0;
                $result['msg'] = '请求错误,请联系管理员!';
            }
            return $result;
        }
        return view();
    }

    /**
     * 商家卡券-卡券投放- 投放-弹层
     */
    public function cardputin(){
        $id = Request::except('file');
        if(request()->isPost()){
            $data = input('post.');

            //商家基本数据
            $end_time = Db::query("SELECT
                            end_time
                        FROM
                            `xt-member-two-LINE`.xt_dc_dz_card_info
                        WHERE id=".$data['cid']);

            $arr = [];
            $time              = $data['date'] ? explode(' - ', $data['date']) : '';
            $arr['receive_start_time'] = $time ? strtotime(date($time[0],time())) : '';
            $arr['receive_end_time']   = $time ? strtotime(date($time[1],time())) : '';
            $arr['total_limit']        = $data['total_limit']=='on' ? 1 : 0;
            $arr['total']              = $data['total'] ? intval($data['total']) : 0;
            $arr['receive_condition']  = $data['receive_condition'] ? intval($data['receive_condition']) : 0;
            $arr['order_price']        = $data['order_price'] ? $data['order_price'] : 0;
            $arr['contributor']        = $_SESSION['think']['username'];
            $arr['contributor_time']   = time();
            $arr['status']             = 1;

            
            if($end_time[0]['end_time'] < $arr['receive_end_time']){
                $result['code'] = 0;
                $result['msg'] = '领取期限必须在卡券有效期内!';
                return $result;
            }

            $sql = "UPDATE `xt-member-two-LINE`.xt_dc_dz_card_info SET "; 
            foreach ($arr as $key=>$val){
                $sql .= "".$key."='".$val."',";
            }
            $sql = substr( $sql,0, strlen($sql)-1 );
            $sql .= ' where id = '.$data['cid'];

            $ups = Db::query($sql);
            if(!$ups){
                $result['code'] = 1;
                $result['msg'] = '已成功投放!';
            }else{
                $result['code'] = 0;
                $result['msg'] = '请求错误,请联系管理员!';
            }
            return $result;
        }
        //商家基本数据
        $rs = Db::query("SELECT
                            id,
                            sellername,
                            card_title,
                            end_time
                        FROM
                            `xt-member-two-LINE`.xt_dc_dz_card_info
                        WHERE id=".$id['id']);
        $this->assign ( 'rs',$rs[0]);
        $this->assign ( 'title','卡券投放');
        return $this->fetch();
    }
}