<?php /** * Created by PhpStorm. * User: Administrator * Date: 2019/6/5 * Time: 19:55 */ namespace app\portal\controller; use app\portal\model\AddressModel; use app\portal\model\IndentGoodsModel; use app\portal\model\IndentModel; use cmf\controller\WeChatBaseController; use think\Db; class OrderController extends WeChatBaseController { /** * 全部订单 * @return mixed * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function get_all(){ $state = $this->request->param('state',0,'intval'); // if(!empty($state)){ // $where1['state'] = ['eq',$state]; // } $user_id = cmf_get_current_user_id(); $indentModel = new IndentModel(); $where1['uid'] = ['eq',$user_id]; $data = $indentModel->selectData($where1); if(!empty($data)){ $indentGoodsModel = new IndentGoodsModel(); foreach($data as $key => $vo){ $where2['indent_id'] = ['eq',$vo['id']]; $indentGoods = $indentGoodsModel->selectData($where2); $data[$key]['indent_goods'] = $indentGoods; if($vo['is_courier'] == 1){ if(empty($vo['name'])){ unset($data[$key]); } }else if($vo['is_courier'] == 2){ if(empty($vo['indent_address'])){ unset($data[$key]); } }else{ unset($data[$key]); } } } $this->assign('data',$data); $this->assign('state',$state); return $this->fetch(); } public function get_one(){ $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this->error('缺少必要参数','','',''); } $user_id = cmf_get_current_user_id(); $where1['uid'] = ['eq',$user_id]; $where1['id'] = ['eq',$id]; $indentModel = new IndentModel(); $data = $indentModel->findData($where1)->toArray(); if(empty($data)){ $this->error('未查询到该订单','','',''); } $where2['indent_id'] = ['eq',$data['id']]; $indentGoodsModel = new IndentGoodsModel(); $indentGoods = $indentGoodsModel->selectData($where2); $addressModle = new AddressModel(); $address = $addressModle->findData(['id'=>$data['indent_address']]); $data['address'] = $address; $data['indent_goods'] = $indentGoods; $this->assign('data',$data); //显示售后咨询手机号 $phone = Db::name('token') -> where('id',3) -> find(); $this -> assign('phone',$phone); return $this->fetch(); } public function cancel_order(){ $id = $this->request->param('id',0,'intval'); if(empty($id)){ $this->error('缺少必要参数','','',''); } $where1['id'] = ['eq',$id]; $indentModel = new IndentModel(); $data = $indentModel->findData($where1); if(empty($data)){ $this->error('缺少必要参数','','',''); } if($data['state'] != 4){ $this->error('订单不是待支付状态','','',''); } $result = $indentModel->deleteData($where1); if(empty($result)){ $this->error('sql执行失败','','',''); } $this->success('SUCCESS'); } public function delivery(){ $id = $this->request->param('indent_id',0,'intval'); if(empty($id)){ $this->error('缺少必要参数'); } $where1['id'] = ['eq',$id]; $indentModel = new IndentModel(); $data = $indentModel->findData($where1); if(empty($data)){ $this->error('缺少必要参数','','',''); } $where2['indent_id'] = ['eq',$data['id']]; $indentGoodsModel = new IndentGoodsModel(); $indentGoods = $indentGoodsModel->selectData($where2); $data['indent_goods'] = $indentGoods; $data['create_time'] = date('Y-m-d H:i:s',$data['create_time']); if($data['state'] != 5){ $this->error('订单不是待收货状态','','',''); } $result = $indentModel->updateData($where1,['state'=>3]); if(empty($result)){ $this->error('sql执行失败','','',''); } $this->success('SUCCESS','',$data); } /** * 判断用户去支付是否为上级业务员所卖书籍 */ public function is_my_salesman(){ $uid = cmf_get_current_user_id(); $indent_id = $_POST['indent_id']; //获取这条订单 $indent = Db::name('indent') -> where('id',$indent_id) -> find(); //如果这条订单为平台订单 if($indent['indent_type'] == 1){ //获取这条订单下的所有商品 $pingtai_goods = Db::name('indent_goods') -> where('indent_id',$indent_id) -> select(); //循环判断商品是否存在是否下架 foreach ($pingtai_goods as $key => $val){ $pt_goods = Db::name('goods') -> where('id',$val['goods_id']) -> find(); //判断商品是否存在 if(empty($pt_goods)){ return false; } //判断商品是否下架 if($pt_goods['is_out'] == 0){ return false; } } return true; } //获取当前用户身份 $my_user = Db::name('my_user') -> where('uid',$uid) -> find(); //判断用户身份 获取上级业务员 if($my_user['status'] == 3){ //当为老师时 $salesman = Db::name('my_user') -> where('id',$my_user['pid']) -> find(); if(empty($salesman)){ return false; } } if($my_user['status'] == 4){ //当为学生时 $teacher = Db::name('my_user') -> where('id',$my_user['pid']) -> find(); if(empty($teacher)){ return false; } $salesman = Db::name('my_user') -> where('id',$teacher['pid']) -> find(); } //获取订单下的商品 $indent_goods = Db::name('indent_goods') -> where('indent_id',$indent_id) -> select(); foreach ($indent_goods as $key => $val){ $goods = Db::name('goods') -> where('id',$val['goods_id']) -> find(); //判断商品是否存在 if(empty($goods)){ return false; } //判断商品是否下架 if($goods['is_out'] == 0){ return false; } if($salesman['uid'] != $goods['uid']){ return false; } } return true; } }