model = new \app\admin\model\Order; } /** * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ /** * 查看 */ public function index() { //当前是否为关联查询 $this->relationSearch = false; //设置过滤方法 $this->request->filter(['strip_tags']); if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('keyField')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $total = $this->model ->where($where) ->order($sort, $order) ->count(); $list = $this->model ->where($where) ->order($sort, $order) ->limit($offset, $limit) ->select(); foreach ($list as $row) { $row['status']=config('orderStatus')[$row['orderStatus']]; } $list = collection($list)->toArray(); $result = array("total" => $total, "rows" => $list); return json($result); } return $this->view->fetch(); } /* 订单详情 */ function info() { $ids=input('ids'); $orderinfo=db('order')->where(['id'=>$ids])->find(); $orderinfo['status']=config('orderStatus')[$orderinfo['orderStatus']]; if(empty($orderinfo)) { $this->error('订单不存在'); } $goods=db('order_goods')->where(['orderid'=>$ids])->select(); if(empty($goods)) { $goods=[]; } $this->view->assign([ 'info'=>$orderinfo, 'goods'=>$goods, ]); return $this->view->fetch(); } /* 发货 */ function send() { if ($this->request->isPost()) { $params=$this->request->post('row/a'); if(empty($params['express'])) { $this->error("请输入快递公司名称"); } if(empty($params['expressNo'])) { $this->error("请输入快递单号"); } $params['orderStatus']=2; $params['utime']=time(); $res=db('order')->where(['id'=>$params['id']])->update($params); if($res) { $orderinfo=db('order')->where(['id'=>$params['id']])->find(); db('order_log')->insertGetId(['orderid'=>$params['id'],'content'=>'您的订单已发货,请注意查收','userid'=>$orderinfo['userid'],'ctime'=>time()]); $this->success("发货完成"); }else{ $this->error("发货失败"); } } $ids=input('ids'); $this->view->assign('id',$ids); return $this->view->fetch(); } function cancelsend() { $ids=input('ids'); $orderinfo=db('order')->where(['id'=>$ids])->find(); if(empty($orderinfo)) { $this->error('要操作的数据不存在'); }else{ db()->startTrans(); $orgoods=db('order_goods')->where(['orderid'=>$ids])->find(); $res1=db('order')->where(['id'=>$ids])->update(['orderStatus'=>-1,'utime'=>time()]); $res2=db('goods')->where(['id'=>$orgoods['goodsid']])->update(['on_sale'=>1]); if($res1 && $res2) { db()->commit(); $this->success('取消成功'); }else{ db()->rollback(); $this->error('取消失败'); } } } /* 退款 */ function refund() { if ($this->request->isPost()) { $isagree=$this->request->post('isagree'); $id=$this->request->post('id'); $orderinfo=db('order')->where(['id'=>$id])->find(); if($isagree == 1) { $res=db('order')->where(['id'=>$id])->update(['orderStatus'=>-3,'utime'=>time()]); $changedata=[ 'type'=>15, 'money'=>$orderinfo['totalMoney']+$orderinfo['deliverMoney'], 'userid'=>$orderinfo['userid'], 'relevant_userid'=>$orderinfo['userid'], 'remark'=>'取消返还', ]; $res=caiwu($changedata, 'bonus'); if($res) { db('order_log')->insertGetId(['orderid'=>$id,'content'=>'您的订单已同意退款申请,请注意查收退款额','userid'=>$orderinfo['userid'],'ctime'=>time()]); $this->success("退款完成"); }else{ $this->error("退款失败"); } }else{ $express=$this->request->post('express'); if(empty($express)) { $this->error('请输入物流公司'); } $expressNo=$this->request->post('expressNo'); if(empty($expressNo)) { $this->error('请输入快递单号'); } $res=db('order')->where(['id'=>$id])->update(['orderStatus'=>2,'express'=>$express,'expressNo'=>$expressNo,'utime'=>time()]); if($res) { db('order_log')->insertGetId(['orderid'=>$id,'content'=>'您的订单已发货,请注意查收','userid'=>$orderinfo['userid'],'ctime'=>time()]); $this->success("操作完成"); }else{ $this->error("操作失败"); } } } $ids=input('ids'); $orderinfo=db('order')->where(['id'=>$ids])->find(); $this->view->assign('info',$orderinfo); return $this->view->fetch(); } }