// 我的购买订单列表,分页
public function my_order_list() {
// 待发货
// 待确认
// 全部(待发货,待确认,已完成,已取消【5,6】)
$uid = (int)trim($_POST['uid']);
if (!$uid){
$this->json->setErr(10001,'缺少参数');
$this->json->Send();
}
$type = (int)trim($_POST['type']); // 1 待发货 2 待收货 3 全部
if (!$type){
$this->json->setErr(10002,'缺少参数');
$this->json->Send();
}
if (!isset($_POST['page']) || $_POST['page'] < 1) {
$page = 1;
} else {
$page = $_POST['page'];
}
switch ($type) {
case 1: // 待发货
$where['status'] = 2;
break;
case 2: // 待收货
$where['status'] = 3;
break;
case 3: // 全部
$where['status'] = array('in','2,3,4,5,6');
break;
}
$where['uid'] = $uid;
$where['user_del'] = 1;
$order_model = M('order');
$count = $order_model->where($where)->count();
$total_page = ceil($count / C('PAGE_NORMAL'));
$total_page = $total_page ? $total_page : 1;
if ($page > $total_page) {
$this->json->setErr(10003,'没有更多了');
$this->json->Send();
}
$limit = (($page - 1) * C('PAGE_NORMAL')) . "," .C('PAGE_NORMAL');
$order_list = $order_model->where($where)->limit($limit)->order('id desc')->field('id as order_id,order_num,total_payed_price,status')->select();
if ($order_list) {
$product_model = M('product');
$order_product_model = M('order_product');
foreach ($order_list as $k=>&$v) {
$v['total_payed_price'] = $v['total_payed_price']/100;
// 获取订单商品信息
$order_product_list = $order_product_model->where(['order_id'=>$v['order_id']])->field('pid,pnum,p_name,p_price')->select();
foreach ($order_product_list as $opk=>&$opv) {
$opv['p_price'] = $opv['p_price'] / 100;
$product_info = $product_model->where(['id'=>$opv['pid']])->find();
$opv['img'] = $product_info['title_img2'];
}
$v['product_list'] = $order_product_list;
}
}
if ($order_list) {
$returnData = ['total_page' => $total_page, 'order' => $order_list,'current_page'=>$page];
} else {
$returnData = ['total_page' => 0, 'order' => [],'current_page'=>$page];
}
$this->json->setErr(0, '获取成功');
$this->json->setAttr('data',$returnData);
$this->json->Send();
}
// 订单列表
public function lists()
{
$this->checkLogin();
$ordersModel = D('Orders');
$ordersGoodsModel = D('OrdersGoods');
$goodsModel = D('Goods');
$goodsImagesModel = D('GoodsImages');
$ordersRefundModel = D('OrdersRefund');
if (!isset($_POST['page']) || $_POST['page'] < 1) {
$_POST['page'] = 1;
}
$where = [
'uid' => $_POST['uid'],
'status' => 1,
];
$orderType = $_POST['type'] ?: 0;
switch ($orderType) {
// is_pay = 0
case 1:
$where['is_pay'] = 0;
$where['create_time'] = ['gt', time() - C('ORDER_EXPIRED')];
break;
case 2:
$where['is_deliver'] = 0;
$where['is_pay'] = 1;
$where['is_cancel'] = 0;
break;
case 3:
$where['is_get'] = 0;
$where['is_pay'] = 1;
$where['is_deliver'] = 1;
break;
case 4:
$where['is_get'] = 1;
$where['is_evaluate'] = 0;
$where['is_cancel'] = 0;
break;
case 5:
$where['is_cancel'] = 1;
break;
default:
break;
}
$count = $ordersModel->where($where)->count();
$hasPage = ceil($count / C('PAGE.LIMIT'));
$hasPage = $hasPage ? $hasPage : 1;
$limit = (($_POST['page'] - 1) * C('PAGE.LIMIT')) . "," .C('PAGE.LIMIT');
$orders = $ordersModel->where($where)->limit($limit)->order('id desc')->select();
foreach ($orders as $k => $v) {
$good = $ordersGoodsModel->field('id,price,count,good_id,is_evaluate,load_data')->where(['order_id' => $v['id']])->select();
$isEvaluate = 1;
foreach ($good as $key => $val) {
$loadDataGood = json_decode($val['load_data'], true);
$orderGoodInfo = [
'id' => $loadDataGood['id'],
'name' => $loadDataGood['name'],
'img_list' => $loadDataGood['images'],
];
$good[$key]['info'] = $orderGoodInfo;
if (!$val['is_evaluate']) {
$isEvaluate = $val['is_evaluate'];
}
}
$orders[$k]['goods'] = $good;
if ($v['is_cancel']) {
$orders[$k]['refund_status'] = $ordersRefundModel->where(['id' => $v['order_refund_id']])->getField('status');
} else {
$orders[$k]['refund_status'] = 0;
}
$orders[$k]['process_status'] = $ordersModel->status($v['id']);
$orders[$k]['is_evaluate'] = $isEvaluate;
}
if ($orders) {
$returnData = ['all_page' => $hasPage, 'order' => $orders];
} else {
$returnData = ['all_page' => 0, 'order' => []];
}
$this->json->setAttr("data", $returnData);
$this->json->Send();
}