OrderpageController.php 13.2 KB
<?php
// +----------------------------------------------------------------------
// | bronet [ 以客户为中心 以奋斗者为本 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.bronet.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
namespace app\portal\controller;

use cmf\controller\WeChatBaseController;
use think\Db;

class OrderpageController extends WeChatBaseController{

    /**
     * 显示平台订单页
     */
    public function order_page(){

        $indet_id = $this -> request -> param();
        $uid = cmf_get_current_user_id();
        if(!empty($indet_id['address_id'])){
            $address = Db::name('address') -> where('id',$indet_id['address_id']) -> find();
            $this -> assign('address',$address);
            $this -> assign('address_id',$indet_id['address_id']);
        }else{
            $address = Db::name('address') -> where("uid=".$uid." and default_address=1 and delete_time = 0") -> find();
            if(empty($address)){
                $this -> assign('address',4);
                $this -> assign('address_id','');
            }else{
                $indet_data = Db::name('indent') -> where("id",$indet_id['indet_id']) -> find();
                if($indet_data['state'] == 4){
                    $indet_data_update['id'] = $indet_id['indet_id'];
                    $indet_data_update['indent_address'] = $address['id'];
                    $indet_data_update['name'] = $address['name'];
                    $indet_data_update['phone'] = $address['phone'];
                    Db::name('indent')  -> update($indet_data_update);
                }
                $this -> assign('address',$address);
                $this -> assign('address_id',$address['id']);
            }
        }

        $data = Db::name('indent_goods') -> where('indent_id',$indet_id['indet_id']) -> select() -> toArray();
        foreach ($data as $key => $val){
            $pricing = explode('.',$val['pricing']);
            $data[$key]['pricing0'] = $pricing[0];
            $data[$key]['pricing1'] = $pricing[1];
        }
        $money = Db::name('indent') -> where('id',$indet_id['indet_id']) -> find();
        $this -> assign('money',$money['money']);
        $this -> assign('data',$data);
        $this -> assign('indent_id',$indet_id['indet_id']);
        $this -> assign('type',5);
        return $this -> fetch();

    }

    /**
     * 显示业务员统一订单页mmmmm
     */
    public function order_salesman_ty(){

        $indet_id = $this -> request -> param();
        $data = Db::name('indent_goods') -> where('indent_id',$indet_id['indet_id']) -> select() -> toArray();
        foreach ($data as $key => $val){
            $pricing = explode('.',$val['price']);
            $data[$key]['price0'] = $pricing[0];
            $data[$key]['price1'] = $pricing[1];
        }
        $money = Db::name('indent') -> where('id',$indet_id['indet_id']) -> find();
        $money['money'] = explode('.',$money['money']);
        $this -> assign('money',$money['money']);
        $this -> assign('data',$data);
        $courier = Db::name('money_ratio') -> where('id',1) -> find();
        $this -> assign('courier',$courier['courier']);
        $this -> assign('indent_id',$indet_id['indet_id']);
        //判断这个用户所属哪个业务员
        $uid = cmf_get_current_user_id();
        $user = Db::name('my_user') -> where('uid',$uid) -> find();
        $salesman = '';
        //当当前用户为老师时
        if($user['status'] == 3){
            $salesman = Db::name('my_user') -> where('id',$user['pid']) -> find();
        }
        //当前用户为学生时
        if($user['status'] == 4){
            $teacher = Db::name('my_user') -> where('id',$user['pid']) -> find();
            $salesman = Db::name('my_user') -> where('id',$teacher['pid']) -> find();
        }
        //查询这个用户下添加的学校
        $school = Db::name('school') -> where("uid",$salesman['uid']) -> select() -> toArray();

        if(!empty($school)){
            $grade_class = Db::name('grade_class') -> where("school_id",$school[0]['id']) -> select();

            foreach ($grade_class as $key => $val){
                $class = explode('-',$val['class']);
                for($i=$class[0];$i<=$class[1];$i++){
                    $grade_class_show[] = $val['grade'].' - '.$i."班";
                }
            }

        }

        $this -> assign('school',$school);
        $this -> assign('grade_class_show',!empty($grade_class_show) ? $grade_class_show : '');
        return $this -> fetch();

    }

    /**
     * 商品数量加一
     */
    public function shop_cart_numadd(){

        $id = $_POST['id'];
        $data = Db::name('indent_goods') -> where('id',$id) -> find();
        if($data['number']<200){
            $res = Db::name('indent_goods') -> where('id',$id) -> setInc('number');
            $indent_id = Db::name('indent_goods') -> where('id',$id) -> find();
            Db::name('indent') -> where('id',$indent_id['indent_id']) -> setInc('money',$_POST['price']);
        }
        return true;

    }

    /**
     * 商品数量减一
     */
    public function shop_cart_numdec(){

        $id = $_POST['id'];
        $data = Db::name('indent_goods') -> where('id',$id) -> find();
        if($data['number']>1){
            Db::name('indent_goods') -> where('id',$id) -> setDec('number');
            $indent_id = Db::name('indent_goods') -> where('id',$id) -> find();
            Db::name('indent') -> where('id',$indent_id['indent_id']) -> setDec('money',$_POST['price']);
        }
        return true;

    }

    /**
     * 显示业务员快递订单页
     */
    public function order_salesman_kd(){

        $uid = cmf_get_current_user_id();
        $indent_id = $this -> request -> param();
        $money = Db::name('indent') -> where("id =".$indent_id['indet_id']) -> find();
        $indent_goods_data = Db::name('indent_goods') -> where('indent_id',$indent_id['indet_id']) -> select();
        $this -> assign('data',$indent_goods_data);
        $courier = Db::name('money_ratio') -> where('id',1) -> find();
        $this -> assign('courier',$courier['courier']);
        $money['money'] = $money['money']+$courier['courier'];
        $this -> assign('money',$money['money']);
        if(empty($indent_id['address_id'])){
            $address = Db::name('address') -> where("uid=".$uid." and default_address=1 and delete_time = 0") -> find();
        }else{
            $address = Db::name('address') -> where('id',$indent_id['address_id']) -> find();
        }

        if(empty($address)){
            $this -> assign('address',4);
        }else{
            $indet_data = Db::name('indent') -> where("id",$indent_id['indet_id']) -> find();
            if($indet_data['state'] == 4){
                $indet_data_update['id'] = $indent_id['indet_id'];
                $indet_data_update['indent_address'] = $address['id'];
                $indet_data_update['name'] = $address['name'];
                $indet_data_update['phone'] = $address['phone'];
                $indet_data_update['region'] = $address['region'];
                $indet_data_update['region_detail'] = $address['detailed'];
                Db::name('indent')  -> update($indet_data_update);
            }
            $this -> assign('address',$address);
        }
        $this -> assign('indet_id',$indent_id['indet_id']);
        return $this -> fetch();

    }

    /**
     * 业务员快递去支付
     */
    public function salesman_go_pay(){

        $_POST['is_courier'] = 2;
        $data_update = Db::name('indent') -> update($_POST);
       return true;

    }

    /**
     * 取消支付时
     */
    public function cancel_pay(){

        $indent_id = $this -> request -> param();
        $data = Db::name('indent') -> where('id',$indent_id['id']) -> find();
        $money_ratio = Db::name('money_ratio') -> where('id',1) -> find();
       /* if($data['indent_type'] == 2 && $data['is_courier'] == 2){
            Db::name('indent') -> where('id',$indent_id['id']) -> setDec('money',$money_ratio['courier']);
        }*/
        $this -> redirect('index/index');

    }

    /**
     * 平台商品去支付时 更新买家留言
     */
    public function goods_leave_word_update(){

        $_POST['is_courier'] = 2;
        $data = Db::name('indent') -> update($_POST);
        return true;

    }

    /**
     * 点击学校时获取年级班级
     */
    public function get_grade_class(){

        $school_id = $_POST['id'];
        $grade_class = Db::name('grade_class') -> where("school_id",$school_id) -> select() -> toArray();
        if(!empty($grade_class)){
            foreach ($grade_class as $key => $val){
                $class = explode('-',$val['class']);
                for($i=$class[0];$i<=$class[1];$i++){
                    $grade_class_show[] = $val['grade'].' - '.$i."班";
                }
            }
            return json_encode($grade_class_show);
        }else{
            return false;
        }

    }

    /**
     * 业务员统一配送页去支付
     */
    public function salesman_ty_go_pay(){

        $_POST['is_courier'] = 1;
        $class = explode('-',$_POST['grade']);
        $_POST['grade'] = trim($class[0]);
        $_POST['class'] = trim($class[1]);
        $indent_data['id'] = $_POST['id'];
        $indent_data['region'] = $_POST['region'];
        $indent_data['name'] = $_POST['name'];
        $indent_data['phone'] = $_POST['phone'];
        $indent_data['is_courier'] = $_POST['is_courier'];
        $indent_data['school'] = $_POST['school'];
        $indent_data['grade'] = $_POST['grade'];
        $indent_data['class'] = $_POST['class'];
        $indent_data['leave_word'] = $_POST['leave_word'];
        $data = Db::name('indent') -> update($indent_data);
        if($data){
           return true;
        }else{
            return false;
        }

    }

    /**
     * 显示收货地址
     */
    public function go_add_address(){

        $indent_id = $this -> request -> param();
        $uid = cmf_get_current_user_id();
        $data = Db::name('address') -> where("delete_time = 0 and uid =".$uid) ->  select() -> toArray();
        $this -> assign('indent_id',$indent_id['indet_id']);
        $this -> assign('data',$data);
        if(!empty($indent_id['type'])){
            $this -> assign('type',5);
        }else{
            $this -> assign('type',6);
        }
        return $this -> fetch();

    }

    /**
     * 获取学校
     */
    public function get_school(){
        $user_id = $this->request->param('user_id');
        if(empty($user_id)){
            $user_id = cmf_get_current_user_id();
        }
        $my_user = Db::name('my_user')->where('uid',$user_id)->find();
        if($my_user['status'] == 3){
            $my_user2 = Db::name('my_user')->where('id',$my_user['pid'])->find();
        }else{
            $my_user3 = Db::name('my_user')->where('id',$my_user['pid'])->find();
            $my_user2 = Db::name('my_user') -> where('id',$my_user3['pid']) -> find();
        }

        $area = $this->request->param('area',0);
        if(empty($area)){
            $this->error('缺少必要参数');
        }
        $where['region'] = ['like',"%$area%"];
        $where['uid'] = ['eq',$my_user2['uid']];
        $data = Db::name('school')->where($where)->select()->toArray();
        //循环组建新数据
        foreach ($data as $key=>$val){
            $datas[$key]['value'] = $val['id'];
            $datas[$key]['text'] = $val['school'];
        }
        if(!empty($datas)){
            return json_encode($datas);
        }else{
            return false;
        }

//        $this->success('SUCCESS','',$datas);
    }

    /**
     * 新增地址页
     */
    public function add_shop_address(){

        if($this -> request -> isPost()){
            $uid = cmf_get_current_user_id();
            $_POST['uid'] = $uid;
            $add = Db::name('address') -> insert($_POST);
            if($add){
                return true;
            }else{
                return false;
            }
        }else{
            $indent_id = $this -> request -> param();
            $this -> assign('indent_id',$indent_id['indet_id']);
            if($indent_id['type']==5){
                $this -> assign('type',5);
            }else{
                $this -> assign('type',6);
            }
            return $this -> fetch();
        }

    }

    /**
     * 编辑地址
     */
    public function address_edit(){

        if($this -> request -> isPost()){
            $data_update = Db::name('address') -> update($_POST);
            if($data_update){
                return true;
            }else{
                return false;
            }
        }else{
            $id = $this -> request -> param();
            $data = Db::name('address') -> where('id',$id['id']) -> find();
            $this -> assign('data',$data);
            $this -> assign('indent_id',$id['indet_id']);
            if($id['type']==5){
                $this -> assign('type',5);
            }else{
                $this -> assign('type',6);
            }
            return $this -> fetch();
        }

    }















}