isAjax()){ //分页参数 $length = input('rows',10,'intval'); //每页条数 $page = input('page',1,'intval'); //第几页 $start = ($page - 1) * $length; //分页开始位置 //排序 $sortRow = input('sidx','sort','trim'); //排序列 $sort = input('sord','asc','trim'); //排序方式 $order = $sortRow.' '.$sort.' ,id desc'; $order_sn = input('order_sn','','trim'); if($order_sn){ $map[] = ['order_sn','=',$order_sn]; } $name = input('name','','trim'); if($name){ $map[] = ['name','like','%'.$name.'%']; } $status = input('status','','trim'); if($status != ''){ if($status==99){ $ids = Db::name('wx_orders_refund') ->where('org_id',$this->orgId) ->where('status',1) ->column('order_id'); if(empty($ids)){ $map[]=['id','=',-1]; }else{ $map[]=['id','in',$ids]; } }else{ $map[] = ['status','=',$status]; } } // if($this->user_id > 1){ // $map[] = ['user_id','=',$this->user_id]; // } $order_type = input('order_type','','trim'); if($order_type!=''){ $map[] = ['order_type','=',$order_type]; } $cate_id = input('cate_id','','trim'); if($cate_id != ''){ $goodIds = Db::name('wx_goods') ->where('cate_id',$cate_id) ->column('id'); if(empty($goodIds)){ $map[] = ['id','=',-1]; }else{ $ii = Db::name('wx_orders_goods') ->where('goods_id','in',$goodIds) ->column('order_id'); if(empty($ii)){ $map[] = ['id','=',-1]; }else{ $map[] = ['id','in',$ii]; } } } $b = input('begin','','trim'); $e = input('end','','trim'); if($b){ $b = date('Y-m-d 00:00:00',strtotime($b)); $map[] = ['create_time','>=',$b]; } if($e){ $e = date('Y-m-d 23:59:59',strtotime($e)); $map[] = ['create_time','<=',$e]; } $map[] = ['org_id','=',cur_org_id()]; $map[] = ['del','=',0]; $map = empty($map) ? true: $map; //数据查询 $lists = Db::name('wx_orders')->where($map)->limit($start,$length)->order($order)->select(); foreach ($lists as $k=>$v){ $lists[$k]['status_name'] =isset(model('WxOrders')->status[$v['status']])?model('WxOrders')->status[$v['status']]:''; $r = model('wxOrders')->checkOrderSend($v['id']); $lists[$k]['checkOrderSend'] = $r; if($r==2){ $lists[$k]['status_name'] = $lists[$k]['status_name'].'(已退款)'; }elseif ($r==1){ $lists[$k]['status_name'] = $lists[$k]['status_name'].'(部分退款)'; }elseif ($r==3){ $lists[$k]['status_name'] = $lists[$k]['status_name'].'(退款中)'; } } //数据返回 $totalCount = Db::name('wx_orders')->where($map)->count(); $totalPage = ceil($totalCount/$length); $yzf = Db::name('wx_orders') ->where($map) ->where('status','in',[1,2,3]) ->sum('amount'); $ytk = Db::name('wx_orders') ->where($map) ->sum('refund_money'); $result['yzf'] = $yzf; $result['ytk'] = $ytk; $result['page'] = $page; $result['total'] = $totalPage; $result['records'] = $totalCount; $result['rows'] = $lists; return json($result); }else{ $cate = model('WxGoodsCate')->lists($this->orgId); $status = model('WxOrders')->status; $this->assign('status',$status); $this->assign('cate',$cate); $this->assign('meta_title','订单列表'); return $this->fetch(); } } public function details($id){ if(!$id){ $this->error('参数错误'); } $ret = model('WxOrders')->details($id); $this->assign('info',$ret); $this->assign('meta_title','订单详情'); return $this->fetch(); } public function send($id){ $info = Db::name('wx_orders')->where('id',$id) ->find(); if($info['status']!=1){ $this->error('当前订单状态不可发货'); } $res = Db::name('wx_orders')->where('id',$id) ->update([ 'status'=>2, 'send_time'=>getTime(), ]); if($res){ $this->success('操作成功',url('index')); }else{ $this->error('操作失败'); } } /** * 退款 */ public function refund($id = 0){ if(request()->isPost()){ $res = model('GOrders')->refundOrder($this->userId); if($res){ $this->success('操作成功',url('index')); }else{ $this->error(model('GOrders')->getError()); } }else{ $pay = Db::name('g_orders')->where('id',$id)->find(); $money = $pay['amount']; $this->assign('money',$money); $this->assign('pay',$pay); $this->assign('id',$id); return $this->fetch(); } } }