2863 行
137 KiB
PHP
可执行文件
2863 行
137 KiB
PHP
可执行文件
<?php
|
||
|
||
namespace SmallProgramApi\Controller;
|
||
|
||
use Common\Business\BillOrder;
|
||
use Common\Model\BillOrderViewModel;
|
||
use Common\Model\RetailBillAdvanceModel;
|
||
use Common\Model\RetailBillGroupModel;
|
||
use Common\Model\RetailBillOnlineModel;
|
||
use Common\Model\RetailBillOrderModel;
|
||
use Common\Model\RetailDaOrderModel;
|
||
use Common\Model\RetailSellModel;
|
||
use Common\Model\RetailStoreModel;
|
||
use Common\Model\RetailUuOrderModel;
|
||
use LittleGift\Business\Order;
|
||
use Make\Model\MakeOrderModel;
|
||
|
||
use Common\Business\Plug;
|
||
use Blessing\Business\Index;
|
||
|
||
//[1.8.73]
|
||
|
||
class OrderController extends BaseController
|
||
{
|
||
|
||
/**
|
||
* 订单列表
|
||
*/
|
||
public function orderList()
|
||
{
|
||
$store_id = self::$store_id;
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$type = I("post.type");//1:全部订单 2:待发货/自提 3:待收货 4:待评价
|
||
$page = I("post.page");
|
||
if (empty($uid) || empty($type) || empty($page)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$BillOrderModel = D('RetailBillOrder');
|
||
$BillOnlineModel = D('RetailBillOnline');
|
||
$BillDiscountModel = D('RetailBillDiscount');
|
||
|
||
$map = array(
|
||
'b.' . $BillOrderModel::STORE_ID => $store_id,
|
||
'b.' . $BillOrderModel::UID => $uid,
|
||
'b.' . $BillOrderModel::MERCHANT_ID => $merchant_id,
|
||
'b.' . $BillOrderModel::TYPE => 1,
|
||
'b.' . $BillOrderModel::PAY_STATE => 1,
|
||
'b.' . $BillOrderModel::ORDER_TYPE => 1,
|
||
'b.' . $BillOrderModel::PAY_TYPE => array('in', '5,6,8'),
|
||
'b.' . $BillOrderModel::ADD_TIME => array('gt', time() - 86400 * 60),
|
||
'b.' . $BillOrderModel::REFUND_STATUS => 0,
|
||
'o.' . $BillOnlineModel::ORDER_GENRE => 1,
|
||
);
|
||
|
||
if ($type == 2) {
|
||
//自提或待发货订单
|
||
$map['o.' . $BillOnlineModel::STATUS] = 1;
|
||
} else if ($type == 3) {
|
||
//待收货
|
||
$map['o.' . $BillOnlineModel::PICKUP_TYPE] = 2;
|
||
$map['o.' . $BillOnlineModel::STATUS] = 2;
|
||
} else if ($type == 4) {
|
||
//待评价
|
||
$map['o.' . $BillOnlineModel::STATUS] = 3;
|
||
$map['o.' . $BillOnlineModel::EVAL_STATUS] = 0;
|
||
} else {
|
||
unset($map['b.' . $BillOrderModel::REFUND_STATUS]);
|
||
}
|
||
$limit = 15;
|
||
$fields = array(
|
||
'b.' . $BillOrderModel::ID,
|
||
'b.' . $BillOrderModel::ALL_MONEY,
|
||
'b.' . $BillOrderModel::ADD_TIME,
|
||
'b.' . $BillOrderModel::ORDER_NO,
|
||
'b.' . $BillOrderModel::REFUND_STATUS,
|
||
'b.' . $BillOrderModel::PAY_STATE,
|
||
'o.' . $BillOnlineModel::REMARK,
|
||
'o.' . $BillOnlineModel::STATUS,
|
||
'o.' . $BillOnlineModel::PICKUP_TYPE,
|
||
'o.' . $BillOnlineModel::REMIND_STATE,
|
||
'o.' . $BillOnlineModel::PICK_CODE,
|
||
'o.' . $BillOnlineModel::REFUND_TIME,
|
||
'o.' . $BillOnlineModel::CANCEL_TIME,
|
||
'o.' . $BillOnlineModel::EVAL_STATUS,
|
||
'o.' . $BillOnlineModel::DELIVERY_TYPE,
|
||
'o.' . $BillOnlineModel::DELIVERY_RECORD_ID,
|
||
'o.' . $BillOnlineModel::DELIVERY_FEE,
|
||
'd.' . $BillDiscountModel::COUPON_MONEY,
|
||
'd.' . $BillDiscountModel::VIP_DIS_MONEY,
|
||
);
|
||
$order_info = $BillOrderModel->getBillFind($map, $fields, 'b.' . $BillOrderModel::ADD_TIME . ' desc', $page . ',' . $limit);
|
||
if ($order_info) {
|
||
$orderList = array();
|
||
$UuOrderModel = D('RetailUuOrder');
|
||
$DaOrderModel = D('RetailDaOrder');
|
||
$SellModel = D('RetailSell');
|
||
foreach ($order_info as &$val) {
|
||
$val[$BillOnlineModel::PICK_CODE] = $val[$BillOnlineModel::PICK_CODE] ? $val[$BillOnlineModel::PICK_CODE] : '';
|
||
$val[$BillOrderModel::ADD_TIME] = date('Y-m-d H:i:s', $val[$BillOrderModel::ADD_TIME]);
|
||
if ($val[$BillOnlineModel::STATUS] == 1) {
|
||
//门店配送
|
||
if ($val[$BillOrderModel::REFUND_STATUS] == 0) {
|
||
//正常订单
|
||
$val['state'] = '待发货';
|
||
if ($val[$BillOnlineModel::PICKUP_TYPE] == 1) { // 自取
|
||
$val['state'] = '待自取';
|
||
}
|
||
} else if ($val[$BillOrderModel::REFUND_STATUS] == 1) {
|
||
$val['state'] = '待商家确认退款';
|
||
} else if ($val[$BillOrderModel::REFUND_STATUS] == 3) {
|
||
$val['state'] = '部分退款';
|
||
} else {
|
||
$val['state'] = '已退款';
|
||
}
|
||
} else if ($val[$BillOnlineModel::STATUS] == 2) {
|
||
$val['state'] = '待收货';
|
||
} else if ($val[$BillOnlineModel::STATUS] == 3) {
|
||
$val['state'] = '交易完成';
|
||
if ($val[$BillOrderModel::REFUND_STATUS] == 1) {
|
||
$val['state'] = '待商家确认退款';
|
||
} else if ($val[$BillOrderModel::REFUND_STATUS] == 2) {
|
||
$val['state'] = '已退款';
|
||
} else if ($val[$BillOrderModel::REFUND_STATUS] == 3) {
|
||
$val['state'] = '部分退款';
|
||
} else {
|
||
$val['state'] = '已完成';
|
||
}
|
||
}
|
||
//达达配送delivery_type
|
||
if ($val[$BillOnlineModel::DELIVERY_TYPE] == 2) {
|
||
$clerkInfo = $DaOrderModel->getFind(array($DaOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]));
|
||
$val['order_status'] = $clerkInfo[$DaOrderModel::ORDER_STATUS];
|
||
} else if ($val[$BillOnlineModel::DELIVERY_TYPE] == 3) {
|
||
//uu跑腿转成达达状态显示
|
||
$state_uu = $UuOrderModel->getFind(array($UuOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]), $UuOrderModel::STATE);
|
||
if ($state_uu == 1) {
|
||
$val['order_status'] = 1;
|
||
} else if ($state_uu == 3 || $state_uu == 4) {
|
||
$val['order_status'] = 2;
|
||
} else if ($state_uu == 5 || $state_uu == 6) {
|
||
$val['order_status'] = 3;
|
||
}
|
||
$val[$BillOnlineModel::DELIVERY_TYPE] = 2;
|
||
}
|
||
$goods_info = $SellModel->getFind(array($SellModel::BILL_ID => $val[$BillOrderModel::ID]), '*', $SellModel::ALL_MONEY . ' desc');
|
||
$goodsItem = array();
|
||
$goodsItem['count'] = $SellModel->getCount(array($SellModel::BILL_ID => $val[$BillOrderModel::ID]));
|
||
$goodsItem['goods_id'] = $goods_info[$SellModel::GOODS_ID];
|
||
$goodsItem['img'] = $this->getGoodsImage($goods_info[$SellModel::GOODS_IMG_ID]);
|
||
$goodsItem['goods_name'] = $goods_info[$SellModel::GOODS_NAME];
|
||
$goodsItem['num'] = intval($goods_info[$SellModel::NUM]);
|
||
$goodsItem['price'] = $goods_info[$SellModel::PRICE];
|
||
if (!empty($goods_info[$SellModel::SKU_JSON_INFO])) {
|
||
$goodsItem[$SellModel::SKU_JSON_INFO] = $goods_info[$SellModel::SKU_JSON_INFO] ? json_decode($goods_info[$SellModel::SKU_JSON_INFO], true) : '';
|
||
}
|
||
$val['goods_info'] = $goodsItem;
|
||
$orderList[] = $val;
|
||
}
|
||
$res['status'] = 1;
|
||
$res['count'] = $limit;
|
||
$res['order_info'] = $orderList;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '暂无订单';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 订单列表
|
||
*/
|
||
public function orderList_v1()
|
||
{
|
||
$store_id = self::$store_id;
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$type = I("post.type");//1:全部订单 2:待发货/自提 3:待收货 4:待评价
|
||
$page = I("post.page");
|
||
if (empty($uid) || empty($type) || empty($page)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$BillOrderModel = D('RetailBillOrder');
|
||
$BillOnlineModel = D('RetailBillOnline');
|
||
$BillDiscountModel = D('RetailBillDiscount');
|
||
|
||
$map = array(
|
||
'b.' . $BillOrderModel::STORE_ID => $store_id,
|
||
'b.' . $BillOrderModel::UID => $uid,
|
||
'b.' . $BillOrderModel::MERCHANT_ID => $merchant_id,
|
||
'b.' . $BillOrderModel::TYPE => 1,
|
||
'b.' . $BillOrderModel::PAY_STATE => 1,
|
||
'b.' . $BillOrderModel::ORDER_TYPE => 1,
|
||
'b.' . $BillOrderModel::PAY_TYPE => array('in', '5,6,8'),
|
||
'b.' . $BillOrderModel::ADD_TIME => array('gt', time() - 86400 * 60),
|
||
'b.' . $BillOrderModel::REFUND_STATUS => array('in', '0,1'),
|
||
'o.' . $BillOnlineModel::ORDER_GENRE => 1,
|
||
);
|
||
|
||
if ($type == 2) {
|
||
//自提或待发货订单
|
||
$map['o.' . $BillOnlineModel::STATUS] = 1;
|
||
} else if ($type == 3) {
|
||
//待收货
|
||
$map['o.' . $BillOnlineModel::PICKUP_TYPE] = 2;
|
||
$map['o.' . $BillOnlineModel::STATUS] = 2;
|
||
} else if ($type == 4) {
|
||
//待评价
|
||
$map['o.' . $BillOnlineModel::STATUS] = 3;
|
||
$map['o.' . $BillOnlineModel::EVAL_STATUS] = 0;
|
||
} else {
|
||
unset($map['b.' . $BillOrderModel::REFUND_STATUS]);
|
||
}
|
||
$limit = 15;
|
||
$fields = array(
|
||
'b.' . $BillOrderModel::ID,
|
||
'b.' . $BillOrderModel::ALL_MONEY,
|
||
'b.' . $BillOrderModel::ADD_TIME,
|
||
'b.' . $BillOrderModel::ORDER_NO,
|
||
'b.' . $BillOrderModel::REFUND_STATUS,
|
||
'b.' . $BillOrderModel::PAY_STATE,
|
||
'o.' . $BillOnlineModel::REMARK,
|
||
'o.' . $BillOnlineModel::STATUS,
|
||
'o.' . $BillOnlineModel::PICKUP_TYPE,
|
||
'o.' . $BillOnlineModel::REMIND_STATE,
|
||
'o.' . $BillOnlineModel::PICK_CODE,
|
||
'o.' . $BillOnlineModel::REFUND_TIME,
|
||
'o.' . $BillOnlineModel::CANCEL_TIME,
|
||
'o.' . $BillOnlineModel::EVAL_STATUS,
|
||
'o.' . $BillOnlineModel::DELIVERY_TYPE,
|
||
'o.' . $BillOnlineModel::DELIVERY_RECORD_ID,
|
||
'o.' . $BillOnlineModel::DELIVERY_FEE,
|
||
'd.' . $BillDiscountModel::COUPON_MONEY,
|
||
'd.' . $BillDiscountModel::VIP_DIS_MONEY,
|
||
);
|
||
$order_info = $BillOrderModel->getBillFind($map, $fields, 'b.' . $BillOrderModel::ADD_TIME . ' desc', $page . ',' . $limit);
|
||
if ($order_info) {
|
||
$orderList = array();
|
||
$UuOrderModel = D('RetailUuOrder');
|
||
$DaOrderModel = D('RetailDaOrder');
|
||
$SellModel = D('RetailSell');
|
||
foreach ($order_info as &$val) {
|
||
$val[$BillOnlineModel::PICK_CODE] = $val[$BillOnlineModel::PICK_CODE] ? $val[$BillOnlineModel::PICK_CODE] : '';
|
||
$val[$BillOrderModel::ADD_TIME] = date('Y-m-d H:i:s', $val[$BillOrderModel::ADD_TIME]);
|
||
if ($val[$BillOnlineModel::STATUS] == 1) {
|
||
//门店配送
|
||
if ($val[$BillOrderModel::REFUND_STATUS] == 0) {
|
||
//正常订单
|
||
$val['state'] = '待发货';
|
||
if ($val[$BillOnlineModel::PICKUP_TYPE] == 1) { // 自取
|
||
$val['state'] = '待自取';
|
||
}
|
||
} else if ($val[$BillOrderModel::REFUND_STATUS] == 1) {
|
||
$val['state'] = '已申请售后';
|
||
}
|
||
} else if ($val[$BillOnlineModel::STATUS] == 2) {
|
||
$val['state'] = '待收货';
|
||
} else if ($val[$BillOnlineModel::STATUS] == 3) {
|
||
$val['state'] = '交易完成';
|
||
if ($val[$BillOrderModel::REFUND_STATUS] == 1) {
|
||
$val['state'] = '已申请售后';
|
||
} else {
|
||
$val['state'] = '已完成';
|
||
}
|
||
}
|
||
//达达配送delivery_type
|
||
if ($val[$BillOnlineModel::DELIVERY_TYPE] == 2) {
|
||
$clerkInfo = $DaOrderModel->getFind(array($DaOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]));
|
||
$val['order_status'] = $clerkInfo[$DaOrderModel::ORDER_STATUS];
|
||
} else if ($val[$BillOnlineModel::DELIVERY_TYPE] == 3) {
|
||
//uu跑腿转成达达状态显示
|
||
$state_uu = $UuOrderModel->getFind(array($UuOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]), $UuOrderModel::STATE);
|
||
if ($state_uu == 1) {
|
||
$val['order_status'] = 1;
|
||
} else if ($state_uu == 3 || $state_uu == 4) {
|
||
$val['order_status'] = 2;
|
||
} else if ($state_uu == 5 || $state_uu == 6) {
|
||
$val['order_status'] = 3;
|
||
}
|
||
$val[$BillOnlineModel::DELIVERY_TYPE] = 2;
|
||
}
|
||
$goods_info = $SellModel->getFind(array($SellModel::BILL_ID => $val[$BillOrderModel::ID]), '*', $SellModel::ALL_MONEY . ' desc');
|
||
$goodsItem = array();
|
||
$goodsItem['count'] = $SellModel->getCount(array($SellModel::BILL_ID => $val[$BillOrderModel::ID]));
|
||
$goodsItem['goods_id'] = $goods_info[$SellModel::GOODS_ID];
|
||
$goodsItem['img'] = $this->getGoodsImage($goods_info[$SellModel::GOODS_IMG_ID]);
|
||
$goodsItem['goods_name'] = $goods_info[$SellModel::GOODS_NAME];
|
||
$goodsItem['num'] = intval($goods_info[$SellModel::NUM]);
|
||
$goodsItem['price'] = $goods_info[$SellModel::PRICE];
|
||
if (!empty($goods_info[$SellModel::SKU_JSON_INFO])) {
|
||
$goodsItem[$SellModel::SKU_JSON_INFO] = $goods_info[$SellModel::SKU_JSON_INFO] ? json_decode($goods_info[$SellModel::SKU_JSON_INFO], true) : '';
|
||
}
|
||
$val['goods_info'] = $goodsItem;
|
||
$orderList[] = $val;
|
||
}
|
||
$res['status'] = 1;
|
||
$res['count'] = $limit;
|
||
$res['order_info'] = $orderList;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '暂无订单';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 2020-4-1
|
||
* 2020-05-11
|
||
* 订单列表整合预售
|
||
*/
|
||
public function orderList_v2()
|
||
{
|
||
$uid = self::$uid;
|
||
$store_id = self::$store_id;
|
||
$merchant_id = self::$merchant_id;
|
||
$type = I("post.type");//1:全部订单 2:待发货/自提 3:待收货 4:待评价
|
||
$page = I("post.page");
|
||
if (empty($uid) || empty($type) || empty($page)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$BillOrderModel = D('RetailBillOrder');
|
||
$BillOnlineModel = D('RetailBillOnline');
|
||
$BillDiscountModel = D('RetailBillDiscount');
|
||
$map = array(
|
||
'b.' . $BillOrderModel::STORE_ID => $store_id,
|
||
'b.' . $BillOrderModel::UID => $uid,
|
||
'b.' . $BillOrderModel::MERCHANT_ID => $merchant_id,
|
||
'b.' . $BillOrderModel::TYPE => 1,
|
||
'b.' . $BillOrderModel::PAY_STATE => array('in', '1,2'),
|
||
'b.' . $BillOrderModel::ORDER_TYPE => 1,
|
||
'b.' . $BillOrderModel::PAY_TYPE => array('in', '5,6,8'),
|
||
'b.' . $BillOrderModel::ADD_TIME => array('gt', time() - 86400 * 60),
|
||
'b.' . $BillOrderModel::REFUND_STATUS => array('in', '0,1'),
|
||
'o.' . $BillOnlineModel::ORDER_GENRE => array('in', '1,4'),
|
||
);
|
||
|
||
if ($type == 2) {
|
||
//自提或待发货订单
|
||
$map['o.' . $BillOnlineModel::STATUS] = 1;
|
||
} else if ($type == 3) {
|
||
//待收货
|
||
$map['o.' . $BillOnlineModel::PICKUP_TYPE] = 2;
|
||
$map['o.' . $BillOnlineModel::STATUS] = 2;
|
||
} else if ($type == 4) {
|
||
//待评价
|
||
$map['o.' . $BillOnlineModel::STATUS] = 3;
|
||
$map['o.' . $BillOnlineModel::EVAL_STATUS] = 0;
|
||
} else {
|
||
unset($map['b.' . $BillOrderModel::REFUND_STATUS]);
|
||
}
|
||
$limit = 10;
|
||
$fields = array(
|
||
'b.' . $BillOrderModel::ID,
|
||
'b.' . $BillOrderModel::ALL_MONEY,
|
||
'b.' . $BillOrderModel::ADD_TIME,
|
||
'b.' . $BillOrderModel::ORDER_NO,
|
||
'b.' . $BillOrderModel::REFUND_STATUS,
|
||
'b.' . $BillOrderModel::PAY_STATE,
|
||
'o.' . $BillOnlineModel::REMARK,
|
||
'o.' . $BillOnlineModel::STATUS,
|
||
'o.' . $BillOnlineModel::PICKUP_TYPE,
|
||
'o.' . $BillOnlineModel::REMIND_STATE,
|
||
'o.' . $BillOnlineModel::PICK_CODE,
|
||
'o.' . $BillOnlineModel::REFUND_TIME,
|
||
'o.' . $BillOnlineModel::CANCEL_TIME,
|
||
'o.' . $BillOnlineModel::EVAL_STATUS,
|
||
'o.' . $BillOnlineModel::DELIVERY_TYPE,
|
||
'o.' . $BillOnlineModel::DELIVERY_RECORD_ID,
|
||
'o.' . $BillOnlineModel::DELIVERY_FEE,
|
||
'o.order_genre',
|
||
'd.' . $BillDiscountModel::COUPON_MONEY,
|
||
'd.' . $BillDiscountModel::VIP_DIS_MONEY,
|
||
'd.use_integral',
|
||
'b.store_id',
|
||
);
|
||
$order_info = $BillOrderModel->getBillFind($map, $fields, 'b.' . $BillOrderModel::ADD_TIME . ' desc', $page . ',' . $limit);
|
||
if ($order_info) {
|
||
$orderList = array();
|
||
$UuOrderModel = D('RetailUuOrder');
|
||
$DaOrderModel = D('RetailDaOrder');
|
||
$SellModel = D('RetailSell');
|
||
foreach ($order_info as &$val) {
|
||
$val[$BillOnlineModel::PICK_CODE] = $val[$BillOnlineModel::PICK_CODE] ? $val[$BillOnlineModel::PICK_CODE] : '';
|
||
$val[$BillOrderModel::ADD_TIME] = date('Y-m-d H:i:s', $val[$BillOrderModel::ADD_TIME]);
|
||
switch ($val['order_genre']) {
|
||
case 4:
|
||
//预售订单
|
||
$advance_info = D("RetailBillAdvance")->bill_advance(array('bill_id' => $val['id']));
|
||
$val['tail_start_time'] = date('m月d日 H:i', $advance_info['tail_start_time']);
|
||
break;
|
||
}
|
||
if ($val[$BillOnlineModel::STATUS] == 1) {
|
||
//门店配送
|
||
if ($val[$BillOrderModel::REFUND_STATUS] == 0) {
|
||
//正常订单
|
||
$val['state'] = '待发货';
|
||
if ($val[$BillOnlineModel::PICKUP_TYPE] == 1) { // 自取
|
||
$val['state'] = '待自取';
|
||
}
|
||
} else if ($val[$BillOrderModel::REFUND_STATUS] == 1) {
|
||
$val['state'] = '已申请售后';
|
||
}
|
||
} else if ($val[$BillOnlineModel::STATUS] == 2) {
|
||
$val['state'] = '待收货';
|
||
} else if ($val[$BillOnlineModel::STATUS] == 3) {
|
||
$val['state'] = '交易完成';
|
||
if ($val[$BillOrderModel::REFUND_STATUS] == 1) {
|
||
$val['state'] = '已申请售后';
|
||
} else {
|
||
$val['state'] = '已完成';
|
||
}
|
||
} else if ($val[$BillOnlineModel::STATUS] == 0 && $val['order_genre'] == 4 && $val['pay_state'] == 2) {
|
||
if ($val['cancel_time'] > 0) {
|
||
$val['state'] = '已申请售后';
|
||
$val['tail_money_state'] = 0;
|
||
} else if ($advance_info['tail_end_time'] < time()) {
|
||
$val['state'] = '超出尾款支付时间';
|
||
$val['tail_money_state'] = 0;
|
||
} else if ($advance_info['tail_start_time'] > time()) {
|
||
$val['state'] = '未到尾款支付时间';
|
||
$val['tail_money_state'] = 0;
|
||
} else {
|
||
$val['state'] = '待付尾款';
|
||
$val['tail_money_state'] = 1;
|
||
}
|
||
}
|
||
//达达配送delivery_type
|
||
if ($val[$BillOnlineModel::DELIVERY_TYPE] == 2) {
|
||
$clerkInfo = $DaOrderModel->getFind(array($DaOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]));
|
||
$val['order_status'] = $clerkInfo[$DaOrderModel::ORDER_STATUS];
|
||
} else if ($val[$BillOnlineModel::DELIVERY_TYPE] == 3) {
|
||
//uu跑腿转成达达状态显示
|
||
$state_uu = $UuOrderModel->getFind(array($UuOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]), $UuOrderModel::STATE);
|
||
if ($state_uu == 1) {
|
||
$val['order_status'] = 1;
|
||
} else if ($state_uu == 3 || $state_uu == 4) {
|
||
$val['order_status'] = 2;
|
||
} else if ($state_uu == 5 || $state_uu == 6) {
|
||
$val['order_status'] = 3;
|
||
}
|
||
$val[$BillOnlineModel::DELIVERY_TYPE] = 2;
|
||
}
|
||
$goods_info = $SellModel->getFind(array($SellModel::BILL_ID => $val[$BillOrderModel::ID]), '*', $SellModel::ALL_MONEY . ' desc');
|
||
$goodsItem = array();
|
||
$goodsItem['count'] = $SellModel->getCount(array($SellModel::BILL_ID => $val[$BillOrderModel::ID]));
|
||
$goodsItem['goods_id'] = $goods_info[$SellModel::GOODS_ID];
|
||
$goodsItem['img'] = $this->getGoodsImage($goods_info[$SellModel::GOODS_IMG_ID]);
|
||
$goodsItem['goods_name'] = $goods_info[$SellModel::GOODS_NAME];
|
||
$goodsItem['num'] = intval($goods_info[$SellModel::NUM]);
|
||
$goodsItem['price'] = $goods_info[$SellModel::PRICE];
|
||
if (!empty($goods_info[$SellModel::SKU_JSON_INFO])) {
|
||
$goodsItem[$SellModel::SKU_JSON_INFO] = $goods_info[$SellModel::SKU_JSON_INFO] ? json_decode($goods_info[$SellModel::SKU_JSON_INFO], true) : '';
|
||
}
|
||
$val['goods_info'] = $goodsItem;
|
||
$orderList[] = $val;
|
||
}
|
||
$res['status'] = 1;
|
||
$res['count'] = $limit;
|
||
$res['order_info'] = $orderList;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '暂无订单';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 订单列表 不限制门店
|
||
* 2020-05-22
|
||
*/
|
||
public function orderList_v3()
|
||
{
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$type = I("post.type");//-1 待付款 1:全部订单 2:待发货/自提 3:待收货 4:待评价
|
||
$page = I("post.page");
|
||
$order_genre = I("post.order_genre");//订单类型 1.普通订单 2.拼团订单 3.秒杀订单 4.预售订单
|
||
|
||
if (empty($uid) || empty($type) || empty($page)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
//获取该用户的待支付列表
|
||
$redis_key = 'retail_*_*_*_' . $uid . '_*';
|
||
$ApiRedis = new \Addons\Api\RedisController();
|
||
$wait_pay_list = $ApiRedis::$redis->mget($ApiRedis::$redis->keys($redis_key));
|
||
$billId = array();//存储在待支付列表里的订单ID
|
||
$waitPayTimeArr = array();//待支付订单的付款倒计时
|
||
if (!empty($wait_pay_list)) {
|
||
foreach ($wait_pay_list as $value) {
|
||
$data = json_decode($value, true);
|
||
if (!in_array($data['bill_id'], $billId)) {
|
||
$billId[] = $data['bill_id'];
|
||
$waitPayTimeArr[] = $data['expiration_time'];
|
||
}
|
||
}
|
||
}
|
||
|
||
$map = array(
|
||
'uid' => $uid,
|
||
'merchant_id' => $merchant_id,
|
||
'type' => 1,
|
||
'order_type' => 1,
|
||
'refund_status' => array('in', '0,1'),
|
||
'order_genre' => array('in', '1,2,3,4'),
|
||
);//查询条件
|
||
//订单类型 1.普通订单 2.拼团订单 3.秒杀订单 4.预售订单
|
||
if (!empty($order_genre)) {
|
||
$map['order_genre'] = $order_genre;
|
||
}
|
||
//订单状态
|
||
switch ($type) {
|
||
case '-1':
|
||
$map['id'] = array('in', $billId ? $billId : array(0));
|
||
//查询待支付订单
|
||
break;
|
||
case '1':
|
||
//全部订单
|
||
break;
|
||
case '2':
|
||
//自提或待发货订单
|
||
$map['status'] = 1;
|
||
$map['refund_status'] = 0;
|
||
break;
|
||
case '3':
|
||
//待收货
|
||
$map['pickup_type'] = ['in', '2,3'];
|
||
$map['status'] = 2;
|
||
$map['refund_status'] = 0;
|
||
break;
|
||
case '4':
|
||
//待评价
|
||
$map['status'] = 3;
|
||
$map['eval_status'] = 0;
|
||
$map['refund_status'] = 0;
|
||
break;
|
||
}
|
||
$limit = 10;
|
||
$fields = array(
|
||
'id',
|
||
'all_money',
|
||
'add_time',
|
||
'order_no',
|
||
'refund_status',
|
||
'pay_state',
|
||
'status',
|
||
'pickup_type',
|
||
'remind_state',
|
||
'pick_code',
|
||
'refund_time',
|
||
'cancel_time',
|
||
'eval_status',
|
||
'delivery_type',
|
||
'delivery_record_id',
|
||
'delivery_fee',
|
||
'order_genre',
|
||
'store_id',
|
||
'store_id',
|
||
);
|
||
$BillViewModel = new BillOrderViewModel();
|
||
$orderList = $BillViewModel->getSelect($map, $fields, 'id desc', $page . ',' . $limit);
|
||
if ($orderList) {
|
||
$UuOrderModel = new RetailUuOrderModel();//uu订单模型
|
||
$DaOrderModel = new RetailDaOrderModel();//达达订单模型
|
||
$SellModel = new RetailSellModel();//商品销售记录模型
|
||
$StoreModel = new RetailStoreModel();//门店表模型
|
||
$storeList = array();
|
||
$RetailBillAdvanceModel = new RetailBillAdvanceModel();
|
||
$BillGroupModel = new RetailBillGroupModel();
|
||
|
||
$plugClass = new Plug();
|
||
|
||
$data = array();
|
||
foreach ($orderList as &$val) {
|
||
|
||
$pick_code = $val['pick_code'] ? $val['pick_code'] : '';
|
||
$add_time = date('Y-m-d H:i:s', $val['add_time']);
|
||
$tail_start_time = '';
|
||
$group_desc_time = '';
|
||
$pay_desc_time = '';
|
||
$state_msg = '';
|
||
if ($val['order_genre'] == 4) {//预售订单
|
||
$advance_info = $RetailBillAdvanceModel->bill_advance(array('bill_id' => $val['id']));
|
||
$tail_start_time = date('m月d日 H:i', $advance_info['tail_start_time']);
|
||
}
|
||
//按钮 1开启 0关闭
|
||
$button = array(
|
||
'pick_code' => 0, //取货码按钮
|
||
'remind_send' => 0, //提醒发货按钮
|
||
'cancel_order' => 0,//(已支付)取消订单
|
||
'cancel_pay' => 0, //(未支付)取消订单
|
||
'see_rider' => 0, //查看骑手
|
||
'see_logistics' => 0,//查看物流
|
||
'receipt' => 0, //确认收货
|
||
'evaluate' => 0, //评价
|
||
'service' => 0, //售后
|
||
'pay_status' => 0, //支付
|
||
'tail_pay_status' => 0,//支付尾款
|
||
'extraction_code' => 0,//祝福语按钮
|
||
);
|
||
//判断这条订单所属门店,是否有权限
|
||
$storePlugStatusPost = [
|
||
'store_id' => $val['store_id'],
|
||
'identification_arr' => ['blessing'],//插件标识
|
||
];
|
||
$blessing = $plugClass->plugStoreStatus($storePlugStatusPost);
|
||
if ($blessing === true) {
|
||
//门店有权限,并开启插件,查询订单是否有祝福码
|
||
$extractionCode = new Index();
|
||
$extraction_code = $extractionCode->obtainExtractionCode($val['id']);//祝福码
|
||
//订单有祝福语,没过期
|
||
if ($extraction_code) {
|
||
$button['extraction_code'] = 1;
|
||
}
|
||
}
|
||
switch ($val['status']) {
|
||
case '0':
|
||
//未支付
|
||
if ($val['order_genre'] == 4 && $val['pay_state'] == 2) {
|
||
//预售已支付定金
|
||
if ($advance_info['tail_end_time'] < time()) {
|
||
$state_msg = '超出尾款支付时间';
|
||
} else if ($advance_info['tail_start_time'] > time()) {
|
||
$state_msg = '未到尾款支付时间';
|
||
} else {
|
||
$state_msg = '待付尾款';
|
||
$button['tail_pay_status'] = 1;
|
||
}
|
||
} else {
|
||
//把不在待支付订单列表中的订单改为不能支付
|
||
$state_msg = '待付款';
|
||
$index = array_search($val['id'], $billId);
|
||
if ($index === false) {
|
||
$button['pay_status'] = 0;
|
||
} else {
|
||
$button['pay_status'] = 1;
|
||
$pay_desc_time = $waitPayTimeArr[$index];
|
||
}
|
||
|
||
if ($button['pay_status'] == 1) {
|
||
$button['cancel_pay'] = 1;
|
||
} else {
|
||
$state_msg = '交易关闭';
|
||
}
|
||
}
|
||
break;
|
||
case '1':
|
||
//待发货、待自提
|
||
if ($val['refund_status'] == 0) {
|
||
//正常订单
|
||
if ($val['order_genre'] == 2) {
|
||
//拼团订单
|
||
$group = $BillGroupModel->getFind(array('bill_id' => $val['id']), 'state,end_time');
|
||
if ($group['state'] == 1) {
|
||
$state_msg = '拼团中';
|
||
$group_desc_time = $group['end_time'];
|
||
} else if ($group['state'] == 2) {
|
||
$state_msg = '拼团成功';
|
||
} else {
|
||
$state_msg = '拼团失败';
|
||
}
|
||
} else {
|
||
if ($val['pickup_type'] == 1) { // 自取
|
||
$state_msg = '待自取';
|
||
$button['pick_code'] = 1;
|
||
} else {
|
||
$state_msg = '待发货';
|
||
$button['remind_send'] = $val['remind_state'] == 1 ? 0 : 1;
|
||
}
|
||
if ($val['order_genre'] == 1 || $val['order_genre'] == 4) {
|
||
$button['cancel_order'] = 1;
|
||
}
|
||
}
|
||
} else if ($val['refund_status'] == 1) {
|
||
$state_msg = '已申请售后';
|
||
}
|
||
break;
|
||
case '2':
|
||
//待收货
|
||
$state_msg = '待收货';
|
||
$button['receipt'] = 1;
|
||
break;
|
||
case '3':
|
||
//已收货
|
||
$state_msg = '交易完成';
|
||
if ($val['refund_status'] == 1) {
|
||
$state_msg = '已申请售后';
|
||
} else {
|
||
if ($val['eval_status'] != 1) {
|
||
$state_msg = '待评价';
|
||
}
|
||
}
|
||
if ($val['eval_status'] != 1) {
|
||
$button['evaluate'] = 1;
|
||
}
|
||
if (($val['order_genre'] == 1 || $val['order_genre'] == 4) && ($val['refund_status'] == 0 || $val['refund_status'] == 1)) {
|
||
$button['service'] = 1;
|
||
}
|
||
break;
|
||
}
|
||
$order_status = 0;
|
||
if ($val['pickup_type'] != 1) {
|
||
switch ($val['delivery_type']) {
|
||
case '1':
|
||
//商家配送
|
||
break;
|
||
case '2':
|
||
//达达配送
|
||
$order_status = $DaOrderModel->getFindField(array('id' => $val['delivery_record_id']), 'order_status');
|
||
break;
|
||
case '3':
|
||
//uu跑腿
|
||
//转成达达状态显示
|
||
$state_uu = $UuOrderModel->getFindField(array('id' => $val['delivery_record_id']), 'state');
|
||
if ($state_uu == 1) {
|
||
$order_status = 1;
|
||
} else if ($state_uu == 3 || $state_uu == 4) {
|
||
$order_status = 2;
|
||
} else if ($state_uu == 5 || $state_uu == 6) {
|
||
$order_status = 3;
|
||
} else if ($state_uu == -1) {
|
||
$order_status = 5;
|
||
}
|
||
break;
|
||
case '4':
|
||
//快递发货
|
||
if ($val['refund_status'] == 0) {
|
||
$button['see_logistics'] = 1;
|
||
}
|
||
break;
|
||
case '5':
|
||
//码科配送
|
||
$MakeOrderModel = new MakeOrderModel();//码科订单模型
|
||
$status = $MakeOrderModel->getFindField(['id' => $val['delivery_record_id']], 'status');
|
||
switch ($status) {
|
||
case 'payed':
|
||
//待接单
|
||
$order_status = 1;
|
||
break;
|
||
case 'accepted':
|
||
//'待取件
|
||
$order_status = 2;
|
||
break;
|
||
case 'geted':
|
||
//待收件
|
||
$order_status = 3;
|
||
break;
|
||
case 'gotoed':
|
||
//待评价
|
||
$order_status = 4;
|
||
break;
|
||
case 'completed':
|
||
//订单已完成
|
||
$order_status = 4;
|
||
break;
|
||
case 'cancel':
|
||
//已取消
|
||
$order_status = 5;
|
||
break;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
switch ($order_status) {
|
||
case '1':
|
||
$state_msg = '骑手接单中';
|
||
break;
|
||
case '2':
|
||
$button['see_rider'] = 1;
|
||
$state_msg = '骑手取货中';
|
||
break;
|
||
case '3':
|
||
$button['see_rider'] = 1;
|
||
$state_msg = '骑手配送中';
|
||
break;
|
||
case '5':
|
||
$state_msg = '骑手接单中';
|
||
break;
|
||
}
|
||
|
||
$goods_info = $SellModel->getFind(array('bill_id' => $val['id']), '*', 'all_money desc');
|
||
$goodsItem = array(
|
||
'count' => $SellModel->getCount(array('bill_id' => $val['id'])),
|
||
'goods_id' => $goods_info['goods_id'],
|
||
'goods_img' => $this->getGoodsImage($goods_info['goods_img_id']),
|
||
'goods_name' => $goods_info['goods_name'],
|
||
'num' => intval($goods_info['num']),
|
||
'price' => $goods_info['price'],
|
||
);
|
||
|
||
if (!empty($goods_info['sku_json_info'])) {
|
||
$goodsItem['sku_name'] = $goods_info['sku_json_info'] ? json_decode($goods_info['sku_json_info'], true)['name'] : '';
|
||
}
|
||
|
||
//门店图片
|
||
if (!$storeList[$val['store_id']]) {
|
||
$store = $StoreModel->getFind(array('id' => $val['store_id']), 'storetag as store_name,shopimg_id');
|
||
$store['store_image'] = getImage($store['shopimg_id']);
|
||
$storeList[$val['store_id']] = $store;
|
||
}
|
||
|
||
$data[] = array(
|
||
'store_name' => $storeList[$val['store_id']]['store_name'],
|
||
'store_image' => $storeList[$val['store_id']]['store_image'],
|
||
'id' => $val['id'],
|
||
'store_id' => $val['store_id'],
|
||
'all_money' => $val['all_money'],
|
||
'order_genre' => $val['order_genre'],
|
||
'order_no' => $val['order_no'],
|
||
'add_time' => $add_time,
|
||
'state_msg' => $state_msg,
|
||
'pick_code' => $pick_code,
|
||
'tail_start_time' => $tail_start_time,
|
||
'group_desc_time' => $group_desc_time,
|
||
'pay_desc_time' => $pay_desc_time,
|
||
'goods_info' => $goodsItem,
|
||
'button' => $button,
|
||
);
|
||
}
|
||
$res['status'] = 1;
|
||
$res['msg'] = '获取成功';
|
||
$res['count'] = $limit;
|
||
$res['data'] = $data;
|
||
} else {
|
||
$res['status'] = 1;
|
||
$res['msg'] = '暂无订单';
|
||
$res['count'] = $limit;
|
||
$res['data'] = array();
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
|
||
/**
|
||
* 订单列表 线上线下结合
|
||
*/
|
||
public function orderList_v4()
|
||
{
|
||
$data = I('post.');
|
||
$BillOrderClass = new BillOrder();
|
||
$result = $BillOrderClass->orderList([
|
||
'merchant_id' => self::$merchant_id,
|
||
'uid' => self::$uid,
|
||
'vip_id' => self::$user['vid'],
|
||
'order_type' => $data['order_type'],
|
||
'order_status' => $data['order_status'],
|
||
'order_genre' => $data['order_genre'],
|
||
'page' => $data['page'],
|
||
]);
|
||
$this->ajaxReturn($result);
|
||
}
|
||
|
||
|
||
/**
|
||
* 确认收货
|
||
*/
|
||
public function confirmGoods()
|
||
{
|
||
if (IS_POST) {
|
||
$uid = self::$uid;
|
||
$id = I('post.order_id');
|
||
$BillModel = new RetailBillOrderModel();
|
||
$map = array(
|
||
$BillModel::ID => $id,
|
||
$BillModel::UID => $uid,
|
||
$BillModel::MERCHANT_ID => self::$merchant_id,
|
||
);
|
||
$order = $BillModel->getBillFind($map);
|
||
if (empty($order)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '订单有误';
|
||
} else {
|
||
$OnlineModel = new RetailBillOnlineModel();
|
||
$data[$OnlineModel::STATUS] = 3;
|
||
$data[$OnlineModel::PICK_CODE] = "";
|
||
$save = $OnlineModel->updateOrder(array($OnlineModel::BILL_ID => $id), $data);
|
||
if ($save) {
|
||
$up = array(
|
||
$BillModel::FINISH_TIME => time()
|
||
);
|
||
$BillModel->updateOrder($map, $up);
|
||
|
||
$plugClass = new Plug();
|
||
//订单获取祝福码,判断该门店是否,有,并且开启
|
||
$storePlugStatusPost = [
|
||
'store_id' => $order['store_id'],
|
||
'identification_arr' => ['blessing'],
|
||
];
|
||
$storePlugStatus = $plugClass->plugStoreStatus($storePlugStatusPost);//获取状态
|
||
if ($storePlugStatus === true) {
|
||
//有权限,可以修改有效期
|
||
$index = new Index();
|
||
$index->validityTimeSave($id, 2);//修改有效期:$type == 1:首次扫码(id = 门店id),2:确认订单(id = 订单id)
|
||
}
|
||
|
||
$res['status'] = 1;
|
||
$res['msg'] = '确认成功';
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '确认失败';
|
||
}
|
||
}
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '网络错误';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 获取订单详情
|
||
*/
|
||
public function getOrderDetail_v1()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
if (empty($order_no)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$BillModel = D('RetailBillOrder');
|
||
$oMap = array(
|
||
$BillModel::ORDER_NO => strval($order_no),
|
||
$BillModel::UID => $uid,
|
||
$BillModel::MERCHANT_ID => $merchant_id,
|
||
$BillModel::PAY_STATE => array('in', '0,1'), //0待支付 1已支付
|
||
$BillModel::ORDER_TYPE => 1,//购买订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
$fields = array(
|
||
$BillModel::ID, //id
|
||
$BillModel::ALL_MONEY, //订单总金额
|
||
$BillModel::PAY_TYPE, //支付类型 1现金 2银行卡 3微信支付 4支付宝支付 5会员卡余额支付 6小程序商城微信支付 7其他支付方式 8组合支付
|
||
$BillModel::PAY_STATE, //0交易关闭 1已支付 2待支付
|
||
$BillModel::REFUND_STATUS,//主要判断商品退款 0正常买单 1申请退款 2退款成功 3部分退款成功 -1退款失败
|
||
$BillModel::VID, //会员id
|
||
$BillModel::ORDER_NO, //订单编号
|
||
$BillModel::UID, //小程序用户id
|
||
$BillModel::REFUND_MONEY,//总退款金额
|
||
$BillModel::ADD_TIME, //下单时间
|
||
$BillModel::FINISH_TIME,//订单完成时间
|
||
);
|
||
$order_info = $BillModel->getFind($oMap, $fields);
|
||
if (!empty($order_info)) {
|
||
$time = time();
|
||
if ($order_info['pay_state'] == 1) {
|
||
$StoreModel = D('RetailStore');
|
||
$refund_time_limit = self::$store[$StoreModel::REFUND_TIME_LIMIT];
|
||
$order_info['can_refund'] = 1;
|
||
$order_info['can_refund_time'] = ($time - $order_info[$BillModel::FINISH_TIME]) / 86400;
|
||
if (!empty($order_info[$BillModel::FINISH_TIME]) && ($time - $order_info[$BillModel::FINISH_TIME]) / 86400 > $refund_time_limit) {
|
||
$order_info['can_refund'] = 0;
|
||
}
|
||
} else {
|
||
$order_info['can_refund'] = 0;
|
||
}
|
||
$SellModel = D('RetailSell');
|
||
$sMap = array(
|
||
$SellModel::BILL_ID => $order_info[$BillModel::ID]
|
||
);
|
||
$sFields = array(
|
||
$SellModel::ID,
|
||
$SellModel::GOODS_ID,
|
||
$SellModel::GOODS_IMG_ID,
|
||
$SellModel::GOODS_NAME,
|
||
$SellModel::NUM,
|
||
$SellModel::PRICE,
|
||
$SellModel::ORIGINAL_PRICE,
|
||
$SellModel::VIP_PRICE,
|
||
$SellModel::PLUS_VIP_PRICE,
|
||
$SellModel::REFUND_NUM,
|
||
$SellModel::SKU_JSON_INFO,
|
||
$SellModel::WAIT_REFUND_NUM,
|
||
);
|
||
$sellGoods = $SellModel->getSelect($sMap, $sFields);
|
||
$can_refund_goods = array();
|
||
foreach ($sellGoods as &$sVal) {
|
||
$sVal['goods_count'] = 0;
|
||
$sVal['checked'] = false;
|
||
$sVal['goods_img'] = $this->getGoodsImage($sVal[$SellModel::GOODS_IMG_ID]);
|
||
$sVal['less_num'] = round($sVal[$SellModel::NUM] - $sVal[$SellModel::REFUND_NUM] - $sVal[$SellModel::WAIT_REFUND_NUM], 3);
|
||
if (!empty($sVal[$SellModel::SKU_JSON_INFO])) {
|
||
$sVal[$SellModel::SKU_JSON_INFO] = json_decode($sVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$sVal[$SellModel::PRICE] = floatval($sVal[$SellModel::PRICE]);
|
||
$sVal[$SellModel::ORIGINAL_PRICE] = floatval($sVal[$SellModel::ORIGINAL_PRICE]);
|
||
$sVal[$SellModel::VIP_PRICE] = floatval($sVal[$SellModel::VIP_PRICE]);
|
||
$sVal[$SellModel::PLUS_VIP_PRICE] = floatval($sVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$sVal[$SellModel::NUM] = floatval($sVal[$SellModel::NUM]);
|
||
$sVal[$SellModel::REFUND_NUM] = floatval($sVal[$SellModel::REFUND_NUM]);
|
||
if ($sVal['less_num'] > 0 && $order_info['pay_state'] == 1) {
|
||
$can_refund_goods[] = $sVal;
|
||
}
|
||
}
|
||
$DiscountModel = D('RetailBillDiscount');
|
||
$OnlineModel = D('RetailBillOnline');
|
||
$refund_bill = array();
|
||
$wait_refund_bill = array();
|
||
$waitRefundGoods = array(); //正在申请退的款商品
|
||
$refundGoods = array(); //已经退款成功的商品
|
||
//已经支付完成
|
||
switch ($order_info['order_genre']) {
|
||
case '1':
|
||
//普通订单
|
||
if ($order_info['pay_state'] == 1) {
|
||
$wMap = array(
|
||
$BillModel::REFUND_NO => strval($order_info[$BillModel::ORDER_NO]),
|
||
$BillModel::REFUND_STATUS => 1,//正在申请退款
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
$wFields = array(
|
||
$BillModel::ID,
|
||
$BillModel::ALL_MONEY,
|
||
$DiscountModel::USE_INTEGRAL,
|
||
$DiscountModel::GET_INTEGRAL,
|
||
$OnlineModel::DELIVERY_FEE,
|
||
);
|
||
$wait_refund_bill_order = $BillModel->getOrderLinkSelect($wMap, $wFields);//正在申请退款的订单
|
||
|
||
if (!empty($wait_refund_bill_order)) {
|
||
$wait_refund_bill_id = array();
|
||
$wait_refund_bill = array(
|
||
$BillModel::ALL_MONEY => 0,
|
||
$DiscountModel::USE_INTEGRAL => 0,
|
||
$DiscountModel::GET_INTEGRAL => 0,
|
||
$OnlineModel::DELIVERY_FEE => 0,
|
||
);
|
||
foreach ($wait_refund_bill_order as $wB) {
|
||
$wait_refund_bill_id[] = $wB[$BillModel::ID];
|
||
$wait_refund_bill[$BillModel::ALL_MONEY] += $wB[$BillModel::ALL_MONEY];
|
||
$wait_refund_bill[$DiscountModel::USE_INTEGRAL] += $wB[$DiscountModel::USE_INTEGRAL];
|
||
$wait_refund_bill[$DiscountModel::GET_INTEGRAL] += $wB[$DiscountModel::GET_INTEGRAL];
|
||
$wait_refund_bill[$OnlineModel::DELIVERY_FEE] += $wB[$OnlineModel::DELIVERY_FEE];
|
||
}
|
||
$waitRefundGoods = $SellModel->getSelect(array($SellModel::BILL_ID => array('in', $wait_refund_bill_id)));
|
||
foreach ($waitRefundGoods as &$wVal) {
|
||
$wVal['goods_img'] = $this->getGoodsImage($wVal[$SellModel::GOODS_IMG_ID]);
|
||
if (!empty($wVal[$SellModel::SKU_JSON_INFO])) {
|
||
$wVal[$SellModel::SKU_JSON_INFO] = json_decode($wVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$wVal[$SellModel::PRICE] = floatval($wVal[$SellModel::PRICE]);
|
||
$wVal[$SellModel::ORIGINAL_PRICE] = floatval($wVal[$SellModel::ORIGINAL_PRICE]);
|
||
$wVal[$SellModel::VIP_PRICE] = floatval($wVal[$SellModel::VIP_PRICE]);
|
||
$wVal[$SellModel::PLUS_VIP_PRICE] = floatval($wVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$wVal[$SellModel::NUM] = floatval($wVal[$SellModel::NUM]);
|
||
$wVal[$SellModel::REFUND_NUM] = floatval($wVal[$SellModel::REFUND_NUM]);
|
||
}
|
||
}
|
||
$rMap = array(
|
||
$BillModel::REFUND_NO => strval($order_info[$BillModel::ORDER_NO]),
|
||
$BillModel::REFUND_STATUS => array('in', '2,3'),
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
|
||
$refund_bill_order = $BillModel->getOrderLinkSelect($rMap, $wFields);//正在申请退款的订单
|
||
|
||
if (!empty($refund_bill_order)) {
|
||
$refund_bill_id = array();
|
||
$refund_bill = array(
|
||
$BillModel::ALL_MONEY => 0,
|
||
$DiscountModel::USE_INTEGRAL => 0,
|
||
$DiscountModel::GET_INTEGRAL => 0,
|
||
$OnlineModel::DELIVERY_FEE => 0,
|
||
);
|
||
foreach ($refund_bill_order as $rB) {
|
||
$refund_bill_id[] = $rB[$BillModel::ID];
|
||
$refund_bill[$BillModel::ALL_MONEY] += $rB[$BillModel::ALL_MONEY];
|
||
$refund_bill[$DiscountModel::USE_INTEGRAL] += $rB[$DiscountModel::USE_INTEGRAL];
|
||
$refund_bill[$DiscountModel::GET_INTEGRAL] += $rB[$DiscountModel::GET_INTEGRAL];
|
||
$refund_bill[$OnlineModel::DELIVERY_FEE] += $rB[$OnlineModel::DELIVERY_FEE];
|
||
}
|
||
$refundGoods = $SellModel->getSelect(array($SellModel::BILL_ID => array('in', $refund_bill_id)));
|
||
foreach ($refundGoods as &$rVal) {
|
||
$rVal['goods_img'] = $this->getGoodsImage($rVal[$SellModel::GOODS_IMG_ID]);
|
||
if (!empty($rVal[$SellModel::SKU_JSON_INFO])) {
|
||
$rVal[$SellModel::SKU_JSON_INFO] = json_decode($rVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$rVal[$SellModel::PRICE] = floatval($rVal[$SellModel::PRICE]);
|
||
$rVal[$SellModel::ORIGINAL_PRICE] = floatval($rVal[$SellModel::ORIGINAL_PRICE]);
|
||
$rVal[$SellModel::VIP_PRICE] = floatval($rVal[$SellModel::VIP_PRICE]);
|
||
$rVal[$SellModel::PLUS_VIP_PRICE] = floatval($rVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$rVal[$SellModel::NUM] = floatval($rVal[$SellModel::NUM]);
|
||
$rVal[$SellModel::REFUND_NUM] = floatval($rVal[$SellModel::REFUND_NUM]);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case '2':
|
||
//拼团订单
|
||
$order_info['act_state'] = D('RetailBillGroup')->getFindField(array('bill_id' => $order_info['id']), 'state');
|
||
break;
|
||
case '3':
|
||
//秒杀订单
|
||
$order_info['act_state'] = D('RetailBillSpike')->getFindField(array('bill_id' => $order_info['id']), 'state');
|
||
break;
|
||
case '4':
|
||
//预售订单
|
||
$order_info['advance_info'] = D("RetailBillAdvance")->bill_advance(array('bill_id' => $order_info['id']));
|
||
break;
|
||
}
|
||
|
||
$billDis = $DiscountModel->getFind(array($DiscountModel::BILL_ID => $order_info[$BillModel::ID]));
|
||
$billOnline = $OnlineModel->getFind(array($OnlineModel::BILL_ID => $order_info[$BillModel::ID]));
|
||
|
||
$order_info['wait_refund_order'] = $wait_refund_bill;
|
||
$order_info['refund_order'] = $refund_bill;
|
||
$order_info['all_money'] = floatval($order_info[$BillModel::ALL_MONEY]);
|
||
$order_info['refund_money'] = floatval($order_info[$BillModel::REFUND_MONEY]);
|
||
$order_info['less_money'] = round($order_info[$BillModel::ALL_MONEY] - $order_info[$BillModel::REFUND_MONEY], 2);
|
||
$order_info['delivery_fee'] = floatval($billOnline[$OnlineModel::DELIVERY_FEE]);
|
||
$order_info['sell_info'] = $sellGoods;//全部
|
||
$order_info['wait_refund_info'] = $waitRefundGoods;//售后中
|
||
$order_info['refund_info'] = $refundGoods;//售后完成
|
||
$order_info['can_refund_goods'] = $can_refund_goods;//售后完成
|
||
$order_info['add_time'] = date('Y-m-d H:i:s', $order_info[$BillModel::ADD_TIME]);
|
||
$order_info['finish_time'] = date('Y-m-d H:i:s', $order_info[$BillModel::FINISH_TIME]);
|
||
|
||
$order_info = array_merge($order_info, $billDis, $billOnline);
|
||
if ($order_info['pay_state'] == 1) {
|
||
if ($order_info[$OnlineModel::STATUS] == 1) {
|
||
//门店配送
|
||
if ($order_info[$BillModel::REFUND_STATUS] == 0) {
|
||
//正常订单
|
||
$order_info['state'] = '待发货';
|
||
if ($order_info[$OnlineModel::PICKUP_TYPE] == 1) { // 自取
|
||
$order_info['state'] = '待自取';
|
||
}
|
||
} else if ($order_info[$BillModel::REFUND_STATUS] == 1) {
|
||
$order_info['state'] = '待商家确认退款';
|
||
} else {
|
||
$order_info['state'] = '已完成';
|
||
}
|
||
} else if ($order_info[$OnlineModel::STATUS] == 2) {
|
||
$order_info['state'] = '待收货';
|
||
} else if ($order_info[$OnlineModel::STATUS] == 3) {
|
||
$order_info['state'] = '交易完成';
|
||
if ($order_info[$BillModel::REFUND_STATUS] == 1) {
|
||
$order_info['state'] = '待商家确认退款';
|
||
} else if ($order_info[$BillModel::REFUND_STATUS] == 2) {
|
||
$order_info['state'] = '已退款';
|
||
} else {
|
||
$order_info['state'] = '已完成';
|
||
}
|
||
}
|
||
$order_info['payList'] = getPayTypeList($order_info[$BillModel::PAY_TYPE], $order_info[$BillModel::ALL_MONEY], $order_info[$BillModel::ID]);
|
||
// 评价
|
||
if ($order_info[$OnlineModel::EVAL_STATUS] == 1) {
|
||
$EvaluateModel = D('RetailEvaluate');
|
||
$evaluateContent = $EvaluateModel->getFindField(array('order_id' => $order_info['id']), 'content');
|
||
$order_info['evaluateContent'] = $evaluateContent ? $evaluateContent : '未发表评价内容';
|
||
} else {
|
||
$order_info['evaluateContent'] = '未发表评价内容';
|
||
}
|
||
if ($order_info[$OnlineModel::PICKUP_TYPE] == 2) {
|
||
//获取配送信息
|
||
$delivery = $this->getDriver($order_info[$OnlineModel::DELIVERY_RECORD_ID], $order_info[$OnlineModel::DELIVERY_TYPE]);
|
||
$order_info['delivery_status'] = $delivery['delivery_status'];
|
||
$order_info['deliverInfo'] = $delivery;
|
||
}
|
||
} else {
|
||
$order_info['state'] = '待付款';
|
||
if ($order_info['pickup_type'] == 2) {
|
||
$order_info['deliverInfo'] = array(
|
||
'driver_name' => '商家配送',
|
||
'driver_mobile' => '',
|
||
'driver_type' => '商家配送'
|
||
);
|
||
}
|
||
}
|
||
if ($order_info['pickup_type'] == 3) {
|
||
$order_info['deliverInfo'] = array(
|
||
'driver_name' => '快递发货',
|
||
'driver_mobile' => '',
|
||
'driver_type' => '快递发货'
|
||
);
|
||
}
|
||
// 统计所有优惠
|
||
$order_info['dis_all_money'] = round($order_info[$DiscountModel::COUPON_MONEY] + $order_info[$DiscountModel::VIP_DIS_MONEY] + $order_info[$DiscountModel::VIP_LESS_MONEY], 2);
|
||
|
||
$res['status'] = 1;
|
||
$res['order_info'] = $order_info;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '未找到该订单';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 整合预售订单获取订单详情
|
||
*/
|
||
public function getOrderDetail_v2()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
if (empty($order_no)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$BillModel = D('RetailBillOrder');
|
||
$oMap = array(
|
||
'b.' . $BillModel::ORDER_NO => strval($order_no),
|
||
'b.' . $BillModel::UID => $uid,
|
||
'b.' . $BillModel::MERCHANT_ID => $merchant_id,
|
||
'b.' . $BillModel::ORDER_TYPE => 1,//购买订单
|
||
'b.' . $BillModel::TYPE => 1, //商城订单
|
||
);
|
||
$fields = array(
|
||
'b.' . $BillModel::ID, //id
|
||
'b.' . $BillModel::ALL_MONEY, //订单总金额
|
||
'b.' . $BillModel::PAY_TYPE, //支付类型 1现金 2银行卡 3微信支付 4支付宝支付 5会员卡余额支付 6小程序商城微信支付 7其他支付方式 8组合支付
|
||
'b.' . $BillModel::PAY_STATE, //0交易关闭 1已支付 2待支付
|
||
'b.' . $BillModel::REFUND_STATUS,//主要判断商品退款 0正常买单 1申请退款 2退款成功 3部分退款成功 -1退款失败
|
||
'b.' . $BillModel::VID, //会员id
|
||
'b.' . $BillModel::ORDER_NO, //订单编号
|
||
'b.' . $BillModel::UID, //小程序用户id
|
||
'b.' . $BillModel::REFUND_MONEY,//总退款金额
|
||
'b.' . $BillModel::ADD_TIME, //下单时间
|
||
'b.' . $BillModel::FINISH_TIME,//订单完成时间
|
||
'o.order_genre', //订单类型
|
||
'b.store_id',
|
||
);
|
||
$order_info = $BillModel->getBillFind($oMap, $fields);
|
||
if (!empty($order_info)) {
|
||
$time = time();
|
||
if ($order_info['pay_state'] == 1) {
|
||
$StoreModel = D('RetailStore');
|
||
$refund_time_limit = self::$store[$StoreModel::REFUND_TIME_LIMIT];
|
||
$order_info['can_refund'] = 1;
|
||
$order_info['can_refund_time'] = ($time - $order_info[$BillModel::FINISH_TIME]) / 86400;
|
||
if (!empty($order_info[$BillModel::FINISH_TIME]) && ($time - $order_info[$BillModel::FINISH_TIME]) / 86400 > $refund_time_limit) {
|
||
$order_info['can_refund'] = 0;
|
||
}
|
||
} else {
|
||
$order_info['can_refund'] = 0;
|
||
}
|
||
$SellModel = D('RetailSell');
|
||
$sMap = array(
|
||
$SellModel::BILL_ID => $order_info[$BillModel::ID]
|
||
);
|
||
$sFields = array(
|
||
$SellModel::ID,
|
||
$SellModel::GOODS_ID,
|
||
$SellModel::GOODS_IMG_ID,
|
||
$SellModel::GOODS_NAME,
|
||
$SellModel::NUM,
|
||
$SellModel::PRICE,
|
||
$SellModel::ORIGINAL_PRICE,
|
||
$SellModel::VIP_PRICE,
|
||
$SellModel::PLUS_VIP_PRICE,
|
||
$SellModel::REFUND_NUM,
|
||
$SellModel::SKU_JSON_INFO,
|
||
$SellModel::WAIT_REFUND_NUM,
|
||
"integral_marketing",
|
||
"mem_integral",
|
||
"use_integral",
|
||
"integral_dis_money"
|
||
);
|
||
$sellGoods = $SellModel->getSelect($sMap, $sFields);
|
||
$can_refund_goods = array();
|
||
foreach ($sellGoods as &$sVal) {
|
||
$sVal['goods_count'] = 0;
|
||
$sVal['checked'] = false;
|
||
$sVal['goods_img'] = $this->getGoodsImage($sVal[$SellModel::GOODS_IMG_ID]);
|
||
$sVal['less_num'] = round($sVal[$SellModel::NUM] - $sVal[$SellModel::REFUND_NUM] - $sVal[$SellModel::WAIT_REFUND_NUM], 3);
|
||
if (!empty($sVal[$SellModel::SKU_JSON_INFO])) {
|
||
$sVal[$SellModel::SKU_JSON_INFO] = json_decode($sVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$sVal[$SellModel::PRICE] = floatval($sVal[$SellModel::PRICE]);
|
||
$sVal[$SellModel::ORIGINAL_PRICE] = floatval($sVal[$SellModel::ORIGINAL_PRICE]);
|
||
$sVal[$SellModel::VIP_PRICE] = floatval($sVal[$SellModel::VIP_PRICE]);
|
||
$sVal[$SellModel::PLUS_VIP_PRICE] = floatval($sVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$sVal[$SellModel::NUM] = floatval($sVal[$SellModel::NUM]);
|
||
$sVal[$SellModel::REFUND_NUM] = floatval($sVal[$SellModel::REFUND_NUM]);
|
||
if ($sVal['less_num'] > 0 && $order_info['pay_state'] == 1) {
|
||
$can_refund_goods[] = $sVal;
|
||
}
|
||
}
|
||
$DiscountModel = D('RetailBillDiscount');
|
||
$OnlineModel = D('RetailBillOnline');
|
||
$refund_bill = array();
|
||
$wait_refund_bill = array();
|
||
$waitRefundGoods = array(); //正在申请退的款商品
|
||
$refundGoods = array(); //已经退款成功的商品
|
||
//已经支付完成
|
||
switch ($order_info['order_genre']) {
|
||
case '1':
|
||
//普通订单
|
||
if ($order_info['pay_state'] == 1) {
|
||
$wMap = array(
|
||
$BillModel::REFUND_NO => strval($order_info[$BillModel::ORDER_NO]),
|
||
$BillModel::REFUND_STATUS => 1,//正在申请退款
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
$wFields = array(
|
||
$BillModel::ID,
|
||
$BillModel::ALL_MONEY,
|
||
$DiscountModel::USE_INTEGRAL,
|
||
$DiscountModel::GET_INTEGRAL,
|
||
$OnlineModel::DELIVERY_FEE,
|
||
);
|
||
$wait_refund_bill_order = $BillModel->getOrderLinkSelect($wMap, $wFields);//正在申请退款的订单
|
||
|
||
if (!empty($wait_refund_bill_order)) {
|
||
$wait_refund_bill_id = array();
|
||
$wait_refund_bill = array(
|
||
$BillModel::ALL_MONEY => 0,
|
||
$DiscountModel::USE_INTEGRAL => 0,
|
||
$DiscountModel::GET_INTEGRAL => 0,
|
||
$OnlineModel::DELIVERY_FEE => 0,
|
||
);
|
||
foreach ($wait_refund_bill_order as $wB) {
|
||
$wait_refund_bill_id[] = $wB[$BillModel::ID];
|
||
$wait_refund_bill[$BillModel::ALL_MONEY] += $wB[$BillModel::ALL_MONEY];
|
||
$wait_refund_bill[$DiscountModel::USE_INTEGRAL] += $wB[$DiscountModel::USE_INTEGRAL];
|
||
$wait_refund_bill[$DiscountModel::GET_INTEGRAL] += $wB[$DiscountModel::GET_INTEGRAL];
|
||
$wait_refund_bill[$OnlineModel::DELIVERY_FEE] += $wB[$OnlineModel::DELIVERY_FEE];
|
||
}
|
||
$waitRefundGoods = $SellModel->getSelect(array($SellModel::BILL_ID => array('in', $wait_refund_bill_id)));
|
||
foreach ($waitRefundGoods as &$wVal) {
|
||
$wVal['goods_img'] = $this->getGoodsImage($wVal[$SellModel::GOODS_IMG_ID]);
|
||
if (!empty($wVal[$SellModel::SKU_JSON_INFO])) {
|
||
$wVal[$SellModel::SKU_JSON_INFO] = json_decode($wVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$wVal[$SellModel::PRICE] = floatval($wVal[$SellModel::PRICE]);
|
||
$wVal[$SellModel::ORIGINAL_PRICE] = floatval($wVal[$SellModel::ORIGINAL_PRICE]);
|
||
$wVal[$SellModel::VIP_PRICE] = floatval($wVal[$SellModel::VIP_PRICE]);
|
||
$wVal[$SellModel::PLUS_VIP_PRICE] = floatval($wVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$wVal[$SellModel::NUM] = floatval($wVal[$SellModel::NUM]);
|
||
$wVal[$SellModel::REFUND_NUM] = floatval($wVal[$SellModel::REFUND_NUM]);
|
||
}
|
||
}
|
||
$rMap = array(
|
||
$BillModel::REFUND_NO => strval($order_info[$BillModel::ORDER_NO]),
|
||
$BillModel::REFUND_STATUS => array('in', '2,3'),
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
|
||
$refund_bill_order = $BillModel->getOrderLinkSelect($rMap, $wFields);//正在申请退款的订单
|
||
|
||
if (!empty($refund_bill_order)) {
|
||
$refund_bill_id = array();
|
||
$refund_bill = array(
|
||
$BillModel::ALL_MONEY => 0,
|
||
$DiscountModel::USE_INTEGRAL => 0,
|
||
$DiscountModel::GET_INTEGRAL => 0,
|
||
$OnlineModel::DELIVERY_FEE => 0,
|
||
);
|
||
foreach ($refund_bill_order as $rB) {
|
||
$refund_bill_id[] = $rB[$BillModel::ID];
|
||
$refund_bill[$BillModel::ALL_MONEY] += $rB[$BillModel::ALL_MONEY];
|
||
$refund_bill[$DiscountModel::USE_INTEGRAL] += $rB[$DiscountModel::USE_INTEGRAL];
|
||
$refund_bill[$DiscountModel::GET_INTEGRAL] += $rB[$DiscountModel::GET_INTEGRAL];
|
||
$refund_bill[$OnlineModel::DELIVERY_FEE] += $rB[$OnlineModel::DELIVERY_FEE];
|
||
}
|
||
$refundGoods = $SellModel->getSelect(array($SellModel::BILL_ID => array('in', $refund_bill_id)));
|
||
foreach ($refundGoods as &$rVal) {
|
||
$rVal['goods_img'] = $this->getGoodsImage($rVal[$SellModel::GOODS_IMG_ID]);
|
||
if (!empty($rVal[$SellModel::SKU_JSON_INFO])) {
|
||
$rVal[$SellModel::SKU_JSON_INFO] = json_decode($rVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$rVal[$SellModel::PRICE] = floatval($rVal[$SellModel::PRICE]);
|
||
$rVal[$SellModel::ORIGINAL_PRICE] = floatval($rVal[$SellModel::ORIGINAL_PRICE]);
|
||
$rVal[$SellModel::VIP_PRICE] = floatval($rVal[$SellModel::VIP_PRICE]);
|
||
$rVal[$SellModel::PLUS_VIP_PRICE] = floatval($rVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$rVal[$SellModel::NUM] = floatval($rVal[$SellModel::NUM]);
|
||
$rVal[$SellModel::REFUND_NUM] = floatval($rVal[$SellModel::REFUND_NUM]);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case '2':
|
||
//拼团订单
|
||
$order_info['act_state'] = D('RetailBillGroup')->getFindField(array('bill_id' => $order_info['id']), 'state');
|
||
break;
|
||
case '3':
|
||
//秒杀订单
|
||
$order_info['act_state'] = D('RetailBillSpike')->getFindField(array('bill_id' => $order_info['id']), 'state');
|
||
break;
|
||
case '4':
|
||
//预售订单
|
||
$order_info['advance_info'] = D("RetailBillAdvance")->bill_advance(array('bill_id' => $order_info['id']));
|
||
$order_info['advance_info']['tail_money'] = round($order_info['all_money'] - $order_info['advance_info']['all_earnest_price'], 2);
|
||
break;
|
||
}
|
||
$billDis = $DiscountModel->getFind(array($DiscountModel::BILL_ID => $order_info[$BillModel::ID]));
|
||
$billOnline = $OnlineModel->getFind(array($OnlineModel::BILL_ID => $order_info[$BillModel::ID]));
|
||
|
||
$order_info['wait_refund_order'] = $wait_refund_bill;
|
||
$order_info['refund_order'] = $refund_bill;
|
||
$order_info['all_money'] = floatval($order_info[$BillModel::ALL_MONEY]);
|
||
$order_info['refund_money'] = floatval($order_info[$BillModel::REFUND_MONEY]);
|
||
$order_info['less_money'] = round($order_info[$BillModel::ALL_MONEY] - $order_info[$BillModel::REFUND_MONEY], 2);
|
||
$order_info['delivery_fee'] = floatval($billOnline[$OnlineModel::DELIVERY_FEE]);
|
||
$order_info['sell_info'] = $sellGoods;//全部
|
||
$order_info['wait_refund_info'] = $waitRefundGoods;//售后中
|
||
$order_info['refund_info'] = $refundGoods;//售后完成
|
||
$order_info['can_refund_goods'] = $can_refund_goods;//售后完成
|
||
$order_info['add_time'] = date('Y-m-d H:i:s', $order_info[$BillModel::ADD_TIME]);
|
||
$order_info['finish_time'] = date('Y-m-d H:i:s', $order_info[$BillModel::FINISH_TIME]);
|
||
|
||
$order_info = array_merge($order_info, $billDis, $billOnline);
|
||
if ($order_info['pay_state'] == 1) {
|
||
if ($order_info[$OnlineModel::STATUS] == 1) {
|
||
//门店配送
|
||
if ($order_info[$BillModel::REFUND_STATUS] == 0) {
|
||
//正常订单
|
||
$order_info['state'] = '待发货';
|
||
if ($order_info[$OnlineModel::PICKUP_TYPE] == 1) { // 自取
|
||
$order_info['state'] = '待自取';
|
||
}
|
||
} else if ($order_info[$BillModel::REFUND_STATUS] == 1) {
|
||
$order_info['state'] = '待商家确认退款';
|
||
} else {
|
||
$order_info['state'] = '已完成';
|
||
}
|
||
} else if ($order_info[$OnlineModel::STATUS] == 2) {
|
||
$order_info['state'] = '待收货';
|
||
} else if ($order_info[$OnlineModel::STATUS] == 3) {
|
||
$order_info['state'] = '交易完成';
|
||
if ($order_info[$BillModel::REFUND_STATUS] == 1) {
|
||
$order_info['state'] = '待商家确认退款';
|
||
} else if ($order_info[$BillModel::REFUND_STATUS] == 2) {
|
||
$order_info['state'] = '已退款';
|
||
} else {
|
||
$order_info['state'] = '已完成';
|
||
}
|
||
}
|
||
$order_info['payList'] = getPayTypeList($order_info[$BillModel::PAY_TYPE], $order_info[$BillModel::ALL_MONEY], $order_info[$BillModel::ID]);
|
||
// 评价
|
||
if ($order_info[$OnlineModel::EVAL_STATUS] == 1) {
|
||
$EvaluateModel = D('RetailEvaluate');
|
||
$evaluateContent = $EvaluateModel->getFindField(array('order_id' => $order_info['id']), 'content');
|
||
$order_info['evaluateContent'] = $evaluateContent ? $evaluateContent : '未发表评价内容';
|
||
} else {
|
||
$order_info['evaluateContent'] = '未发表评价内容';
|
||
}
|
||
if ($order_info[$OnlineModel::PICKUP_TYPE] == 2) {
|
||
//获取配送信息
|
||
$delivery = $this->getDriver($order_info[$OnlineModel::DELIVERY_RECORD_ID], $order_info[$OnlineModel::DELIVERY_TYPE]);
|
||
$order_info['delivery_status'] = $delivery['delivery_status'];
|
||
$order_info['deliverInfo'] = $delivery;
|
||
}
|
||
} else if ($order_info[$OnlineModel::STATUS] == 0 && $order_info['order_genre'] == 4 && $order_info['pay_state'] == 2) {
|
||
if ($billOnline['cancel_time'] > 0) {
|
||
$order_info['state'] = '已申请售后';
|
||
$order_info['tail_money_state'] = 0;
|
||
} else if ($order_info['advance_info']['tail_end_time'] < time()) {
|
||
$order_info['state'] = '超出尾款支付时间';
|
||
$order_info['tail_money_state'] = 0;
|
||
} else if ($order_info['advance_info']['tail_start_time'] > time()) {
|
||
$order_info['state'] = '未到付尾款时间';
|
||
$order_info['tail_money_state'] = 0;
|
||
} else {
|
||
$order_info['state'] = '待付尾款';
|
||
$order_info['tail_money_state'] = 1;
|
||
}
|
||
} else {
|
||
$order_info['state'] = '待付款';
|
||
}
|
||
switch ($order_info['pickup_type']) {
|
||
case 2:
|
||
$order_info['deliverInfo'] = array(
|
||
'driver_name' => '商家配送',
|
||
'driver_mobile' => '',
|
||
'driver_type' => '商家配送'
|
||
);
|
||
break;
|
||
case 3:
|
||
$order_info['deliverInfo'] = array(
|
||
'driver_name' => '快递发货',
|
||
'driver_mobile' => '',
|
||
'driver_type' => '快递发货'
|
||
);
|
||
break;
|
||
}
|
||
// 统计所有优惠
|
||
$order_info['dis_all_money'] = round($order_info[$DiscountModel::COUPON_MONEY] + $order_info[$DiscountModel::VIP_DIS_MONEY] + $order_info[$DiscountModel::VIP_LESS_MONEY], 2);
|
||
switch ($order_info['order_genre']) {
|
||
case 4:
|
||
if ($order_info['advance_info']['state'] == 2 && $order_info['advance_info']['advance_type'] == 2) {
|
||
$trade_date = D("RetailPayOrder")->getFindField(array('id' => $order_info['advance_info']['tail_pay_order_id']), "trade_date");
|
||
$order_info['advance_info']['trade_date'] = date('Y-m-d H:i:s', $trade_date);
|
||
}
|
||
$order_info['advance_info']['tail_start_time'] = date('m月d日 H:i:s', $order_info['advance_info']['tail_start_time']);
|
||
$order_info['advance_info']['tail_end_time'] = date('m月d日 H:i:s', $order_info['advance_info']['tail_end_time']);
|
||
}
|
||
$res['status'] = 1;
|
||
$res['order_info'] = $order_info;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '未找到该订单';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
|
||
/**
|
||
* 整合所有商城商品订单的订单详情
|
||
*/
|
||
public function getOrderDetail_v3()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
if (empty($order_no)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$BillModel = new RetailBillOrderModel();
|
||
$oMap = array(
|
||
'b.' . $BillModel::ORDER_NO => strval($order_no),
|
||
'b.' . $BillModel::MERCHANT_ID => $merchant_id,
|
||
'b.' . $BillModel::ORDER_TYPE => 1,//购买订单
|
||
'b.' . $BillModel::TYPE => ['in', '1,2'], //商城订单
|
||
[] => [
|
||
['b.uid' => $uid],
|
||
['b.vid' => self::$user['vid']],
|
||
'_logic' => 'OR'
|
||
]
|
||
);
|
||
$fields = array(
|
||
'b.' . $BillModel::ID, //id
|
||
'b.' . $BillModel::ALL_MONEY, //订单总金额
|
||
'b.' . $BillModel::PAY_TYPE, //支付类型 1现金 2银行卡 3微信支付 4支付宝支付 5会员卡余额支付 6小程序商城微信支付 7其他支付方式 8组合支付
|
||
'b.' . $BillModel::PAY_STATE, //0交易关闭 1已支付 2待支付
|
||
'b.' . $BillModel::REFUND_STATUS,//主要判断商品退款 0正常买单 1申请退款 2退款成功 3部分退款成功 -1退款失败
|
||
'b.' . $BillModel::VID, //会员id
|
||
'b.' . $BillModel::ORDER_NO, //订单编号
|
||
'b.' . $BillModel::UID, //小程序用户id
|
||
'b.' . $BillModel::REFUND_MONEY,//总退款金额
|
||
'b.' . $BillModel::ADD_TIME, //下单时间
|
||
'b.' . $BillModel::FINISH_TIME,//订单完成时间
|
||
'o.order_genre', //订单类型
|
||
'b.store_id',
|
||
'b.type'
|
||
);
|
||
$order_info = $BillModel->getBillFind($oMap, $fields);
|
||
if (!empty($order_info)) {
|
||
//获取该用户的待支付列表
|
||
$redis_key = 'retail_*_*_*_' . $uid . '_*';
|
||
$ApiRedis = new \Addons\Api\RedisController();
|
||
$wait_pay_list = $ApiRedis::$redis->mget($ApiRedis::$redis->keys($redis_key));
|
||
$billId = array();//存储在待支付列表里的订单ID
|
||
$waitPayTimeArr = array();//待支付订单的付款倒计时
|
||
if (!empty($wait_pay_list)) {
|
||
foreach ($wait_pay_list as $value) {
|
||
$data = json_decode($value, true);
|
||
if (!in_array($data['bill_id'], $billId)) {
|
||
$billId[] = $data['bill_id'];
|
||
$waitPayTimeArr[] = $data['expiration_time'];
|
||
}
|
||
}
|
||
}
|
||
$time = time();
|
||
if ($order_info['pay_state'] == 1) {
|
||
$StoreModel = D('RetailStore');
|
||
$refund_time_limit = self::$store[$StoreModel::REFUND_TIME_LIMIT];
|
||
$order_info['can_refund'] = 1;
|
||
$order_info['can_refund_time'] = ($time - $order_info[$BillModel::FINISH_TIME]) / 86400;
|
||
if (!empty($order_info[$BillModel::FINISH_TIME]) && ($time - $order_info[$BillModel::FINISH_TIME]) / 86400 > $refund_time_limit) {
|
||
$order_info['can_refund'] = 0;
|
||
}
|
||
} else {
|
||
$order_info['can_refund'] = 0;
|
||
}
|
||
$SellModel = D('RetailSell');
|
||
$sMap = array(
|
||
$SellModel::BILL_ID => $order_info[$BillModel::ID]
|
||
);
|
||
$sFields = array(
|
||
$SellModel::ID,
|
||
$SellModel::GOODS_ID,
|
||
$SellModel::GOODS_IMG_ID,
|
||
$SellModel::GOODS_NAME,
|
||
$SellModel::NUM,
|
||
$SellModel::PRICE,
|
||
$SellModel::ORIGINAL_PRICE,
|
||
$SellModel::VIP_PRICE,
|
||
$SellModel::PLUS_VIP_PRICE,
|
||
$SellModel::REFUND_NUM,
|
||
$SellModel::SKU_JSON_INFO,
|
||
$SellModel::WAIT_REFUND_NUM,
|
||
"integral_marketing",
|
||
"mem_integral",
|
||
"use_integral",
|
||
"integral_dis_money",
|
||
"goods_gifts_id"
|
||
);
|
||
$sellGoods = $SellModel->getSelect($sMap, $sFields);
|
||
$can_refund_goods = array();
|
||
foreach ($sellGoods as &$sVal) {
|
||
$sVal['goods_count'] = 0;
|
||
$sVal['checked'] = false;
|
||
$sVal['goods_img'] = $this->getGoodsImage($sVal[$SellModel::GOODS_IMG_ID]);
|
||
$sVal['less_num'] = round($sVal[$SellModel::NUM] - $sVal[$SellModel::REFUND_NUM] - $sVal[$SellModel::WAIT_REFUND_NUM], 3);
|
||
if (!empty($sVal[$SellModel::SKU_JSON_INFO])) {
|
||
$sVal[$SellModel::SKU_JSON_INFO] = json_decode($sVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$sVal[$SellModel::PRICE] = floatval($sVal[$SellModel::PRICE]);
|
||
$sVal[$SellModel::ORIGINAL_PRICE] = floatval($sVal[$SellModel::ORIGINAL_PRICE]);
|
||
$sVal[$SellModel::VIP_PRICE] = floatval($sVal[$SellModel::VIP_PRICE]);
|
||
$sVal[$SellModel::PLUS_VIP_PRICE] = floatval($sVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$sVal[$SellModel::NUM] = floatval($sVal[$SellModel::NUM]);
|
||
$sVal[$SellModel::REFUND_NUM] = floatval($sVal[$SellModel::REFUND_NUM]);
|
||
if ($sVal['less_num'] > 0 && $order_info['pay_state'] == 1) {
|
||
$can_refund_goods[] = $sVal;
|
||
}
|
||
}
|
||
$DiscountModel = D('RetailBillDiscount');
|
||
$OnlineModel = D('RetailBillOnline');
|
||
$refund_bill = array();
|
||
$wait_refund_bill = array();
|
||
$waitRefundGoods = array(); //正在申请退的款商品
|
||
$refundGoods = array(); //已经退款成功的商品
|
||
//已经支付完成
|
||
if ($order_info['type'] == 1) {
|
||
$order_info['type_name'] = '线上';
|
||
//线上订单
|
||
switch ($order_info['order_genre']) {
|
||
case '1':
|
||
//普通订单
|
||
if ($order_info['pay_state'] == 1) {
|
||
$wMap = array(
|
||
$BillModel::REFUND_NO => strval($order_info[$BillModel::ORDER_NO]),
|
||
$BillModel::REFUND_STATUS => 1,//正在申请退款
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
$wFields = array(
|
||
$BillModel::ID,
|
||
$BillModel::ALL_MONEY,
|
||
$DiscountModel::USE_INTEGRAL,
|
||
$DiscountModel::GET_INTEGRAL,
|
||
$OnlineModel::DELIVERY_FEE,
|
||
);
|
||
$wait_refund_bill_order = $BillModel->getOrderLinkSelect($wMap, $wFields);//正在申请退款的订单
|
||
|
||
if (!empty($wait_refund_bill_order)) {
|
||
$wait_refund_bill_id = array();
|
||
$wait_refund_bill = array(
|
||
$BillModel::ALL_MONEY => 0,
|
||
$DiscountModel::USE_INTEGRAL => 0,
|
||
$DiscountModel::GET_INTEGRAL => 0,
|
||
$OnlineModel::DELIVERY_FEE => 0,
|
||
);
|
||
foreach ($wait_refund_bill_order as $wB) {
|
||
$wait_refund_bill_id[] = $wB[$BillModel::ID];
|
||
$wait_refund_bill[$BillModel::ALL_MONEY] += $wB[$BillModel::ALL_MONEY];
|
||
$wait_refund_bill[$DiscountModel::USE_INTEGRAL] += $wB[$DiscountModel::USE_INTEGRAL];
|
||
$wait_refund_bill[$DiscountModel::GET_INTEGRAL] += $wB[$DiscountModel::GET_INTEGRAL];
|
||
$wait_refund_bill[$OnlineModel::DELIVERY_FEE] += $wB[$OnlineModel::DELIVERY_FEE];
|
||
}
|
||
$waitRefundGoods = $SellModel->getSelect(array($SellModel::BILL_ID => array('in', $wait_refund_bill_id)));
|
||
foreach ($waitRefundGoods as &$wVal) {
|
||
$wVal['goods_img'] = $this->getGoodsImage($wVal[$SellModel::GOODS_IMG_ID]);
|
||
if (!empty($wVal[$SellModel::SKU_JSON_INFO])) {
|
||
$wVal[$SellModel::SKU_JSON_INFO] = json_decode($wVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$wVal[$SellModel::PRICE] = floatval($wVal[$SellModel::PRICE]);
|
||
$wVal[$SellModel::ORIGINAL_PRICE] = floatval($wVal[$SellModel::ORIGINAL_PRICE]);
|
||
$wVal[$SellModel::VIP_PRICE] = floatval($wVal[$SellModel::VIP_PRICE]);
|
||
$wVal[$SellModel::PLUS_VIP_PRICE] = floatval($wVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$wVal[$SellModel::NUM] = floatval($wVal[$SellModel::NUM]);
|
||
$wVal[$SellModel::REFUND_NUM] = floatval($wVal[$SellModel::REFUND_NUM]);
|
||
}
|
||
}
|
||
$rMap = array(
|
||
$BillModel::REFUND_NO => strval($order_info[$BillModel::ORDER_NO]),
|
||
$BillModel::REFUND_STATUS => array('in', '2,3'),
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
|
||
$refund_bill_order = $BillModel->getOrderLinkSelect($rMap, $wFields);//正在申请退款的订单
|
||
|
||
if (!empty($refund_bill_order)) {
|
||
$refund_bill_id = array();
|
||
$refund_bill = array(
|
||
$BillModel::ALL_MONEY => 0,
|
||
$DiscountModel::USE_INTEGRAL => 0,
|
||
$DiscountModel::GET_INTEGRAL => 0,
|
||
$OnlineModel::DELIVERY_FEE => 0,
|
||
);
|
||
foreach ($refund_bill_order as $rB) {
|
||
$refund_bill_id[] = $rB[$BillModel::ID];
|
||
$refund_bill[$BillModel::ALL_MONEY] += $rB[$BillModel::ALL_MONEY];
|
||
$refund_bill[$DiscountModel::USE_INTEGRAL] += $rB[$DiscountModel::USE_INTEGRAL];
|
||
$refund_bill[$DiscountModel::GET_INTEGRAL] += $rB[$DiscountModel::GET_INTEGRAL];
|
||
$refund_bill[$OnlineModel::DELIVERY_FEE] += $rB[$OnlineModel::DELIVERY_FEE];
|
||
}
|
||
$refundGoods = $SellModel->getSelect(array($SellModel::BILL_ID => array('in', $refund_bill_id)));
|
||
foreach ($refundGoods as &$rVal) {
|
||
$rVal['goods_img'] = $this->getGoodsImage($rVal[$SellModel::GOODS_IMG_ID]);
|
||
if (!empty($rVal[$SellModel::SKU_JSON_INFO])) {
|
||
$rVal[$SellModel::SKU_JSON_INFO] = json_decode($rVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$rVal[$SellModel::PRICE] = floatval($rVal[$SellModel::PRICE]);
|
||
$rVal[$SellModel::ORIGINAL_PRICE] = floatval($rVal[$SellModel::ORIGINAL_PRICE]);
|
||
$rVal[$SellModel::VIP_PRICE] = floatval($rVal[$SellModel::VIP_PRICE]);
|
||
$rVal[$SellModel::PLUS_VIP_PRICE] = floatval($rVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$rVal[$SellModel::NUM] = floatval($rVal[$SellModel::NUM]);
|
||
$rVal[$SellModel::REFUND_NUM] = floatval($rVal[$SellModel::REFUND_NUM]);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case '2':
|
||
//拼团订单
|
||
$order_info['act_state'] = D('RetailBillGroup')->getFindField(array('bill_id' => $order_info['id']), 'state');
|
||
break;
|
||
case '3':
|
||
//秒杀订单
|
||
$order_info['act_state'] = D('RetailBillSpike')->getFindField(array('bill_id' => $order_info['id']), 'state');
|
||
break;
|
||
case '4':
|
||
//预售订单
|
||
$order_info['advance_info'] = D("RetailBillAdvance")->bill_advance(array('bill_id' => $order_info['id']));
|
||
$order_info['advance_info']['tail_money'] = round($order_info['all_money'] - $order_info['advance_info']['all_earnest_price'], 2);
|
||
break;
|
||
}
|
||
$billOnline = $OnlineModel->getFind(array($OnlineModel::BILL_ID => $order_info[$BillModel::ID]));
|
||
$order_info['delivery_fee'] = floatval($billOnline[$OnlineModel::DELIVERY_FEE]);
|
||
} else {
|
||
$order_info['type_name'] = '线下';
|
||
}
|
||
$billDis = $DiscountModel->getFind(array($DiscountModel::BILL_ID => $order_info[$BillModel::ID]));
|
||
|
||
$order_info['wait_refund_order'] = $wait_refund_bill;
|
||
$order_info['refund_order'] = $refund_bill;
|
||
$order_info['all_money'] = floatval($order_info[$BillModel::ALL_MONEY]);
|
||
$order_info['refund_money'] = floatval($order_info[$BillModel::REFUND_MONEY]);
|
||
$order_info['less_money'] = round($order_info[$BillModel::ALL_MONEY] - $order_info[$BillModel::REFUND_MONEY], 2);
|
||
|
||
$order_info['sell_info'] = $sellGoods;//全部
|
||
$order_info['wait_refund_info'] = $waitRefundGoods;//售后中
|
||
$order_info['refund_info'] = $refundGoods;//售后完成
|
||
$order_info['can_refund_goods'] = $can_refund_goods;//售后完成
|
||
$order_info['add_time'] = date('Y-m-d H:i:s', $order_info[$BillModel::ADD_TIME]);
|
||
$order_info['finish_time'] = date('Y-m-d H:i:s', $order_info[$BillModel::FINISH_TIME]);
|
||
$order_info = array_merge($order_info, $billDis, $billOnline ? $billOnline : []);
|
||
$order_info['payList'] = getPayTypeList($order_info['pay_type'],$order_info['all_money'],$order_info['id']);
|
||
if ($order_info['type'] == 1) {
|
||
if ($order_info['pay_state'] == 1) {
|
||
if ($order_info[$OnlineModel::STATUS] == 1) {
|
||
//门店配送
|
||
if ($order_info[$BillModel::REFUND_STATUS] == 0) {
|
||
//正常订单
|
||
$order_info['state'] = '待发货';
|
||
if ($order_info[$OnlineModel::PICKUP_TYPE] == 1) { // 自取
|
||
$order_info['state'] = '待自取';
|
||
}
|
||
} else if ($order_info[$BillModel::REFUND_STATUS] == 1) {
|
||
$order_info['state'] = '待商家确认退款';
|
||
} else {
|
||
$order_info['state'] = '已完成';
|
||
}
|
||
} else if ($order_info[$OnlineModel::STATUS] == 2) {
|
||
$order_info['state'] = '待收货';
|
||
} else if ($order_info[$OnlineModel::STATUS] == 3) {
|
||
$order_info['state'] = '交易完成';
|
||
if ($order_info[$BillModel::REFUND_STATUS] == 1) {
|
||
$order_info['state'] = '待商家确认退款';
|
||
} else if ($order_info[$BillModel::REFUND_STATUS] == 2) {
|
||
$order_info['state'] = '已退款';
|
||
} else {
|
||
$order_info['state'] = '已完成';
|
||
}
|
||
}
|
||
$order_info['payList'] = getPayTypeList($order_info[$BillModel::PAY_TYPE], $order_info[$BillModel::ALL_MONEY], $order_info[$BillModel::ID]);
|
||
// 评价
|
||
if ($order_info[$OnlineModel::EVAL_STATUS] == 1) {
|
||
$EvaluateModel = D('RetailEvaluate');
|
||
$evaluateContent = $EvaluateModel->getFindField(array('order_id' => $order_info['id']), 'content');
|
||
$order_info['evaluateContent'] = $evaluateContent ? $evaluateContent : '未发表评价内容';
|
||
} else {
|
||
$order_info['evaluateContent'] = '未发表评价内容';
|
||
}
|
||
if ($order_info[$OnlineModel::PICKUP_TYPE] == 2) {
|
||
//获取配送信息
|
||
$delivery = $this->getDriver($order_info[$OnlineModel::DELIVERY_RECORD_ID], $order_info[$OnlineModel::DELIVERY_TYPE]);
|
||
$order_info['delivery_status'] = $delivery['delivery_status'];
|
||
$order_info['deliverInfo'] = $delivery;
|
||
}
|
||
} else if ($order_info[$OnlineModel::STATUS] == 0 && $order_info['order_genre'] == 4 && $order_info['pay_state'] == 2) {
|
||
if ($billOnline['cancel_time'] > 0) {
|
||
$order_info['state'] = '已申请售后';
|
||
$order_info['tail_money_state'] = 0;
|
||
} else if ($order_info['advance_info']['tail_end_time'] < time()) {
|
||
$order_info['state'] = '超出尾款支付时间';
|
||
$order_info['tail_money_state'] = 0;
|
||
} else if ($order_info['advance_info']['tail_start_time'] > time()) {
|
||
$order_info['state'] = '未到付尾款时间';
|
||
$order_info['tail_money_state'] = 0;
|
||
} else {
|
||
$order_info['state'] = '待付尾款';
|
||
$order_info['tail_money_state'] = 1;
|
||
}
|
||
} else {
|
||
$order_info['state'] = '待付款';
|
||
}
|
||
if ($order_info['pay_state'] == 0) {
|
||
if (!in_array($order_info['id'], $billId)) {
|
||
$order_info['pay_state'] = -1;
|
||
}
|
||
}
|
||
// switch ($order_info['pickup_type']) {
|
||
// case 2:
|
||
// $order_info['deliverInfo'] = array(
|
||
// 'driver_name' => '商家配送',
|
||
// 'driver_mobile' => '',
|
||
// 'driver_type' => '商家配送'
|
||
// );
|
||
// break;
|
||
// case 3:
|
||
// $order_info['deliverInfo'] = array(
|
||
// 'driver_name' => '快递发货',
|
||
// 'driver_mobile' => '',
|
||
// 'driver_type' => '快递发货'
|
||
// );
|
||
// break;
|
||
// }
|
||
switch ($order_info['order_genre']) {
|
||
case 4:
|
||
if ($order_info['advance_info']['state'] == 2 && $order_info['advance_info']['advance_type'] == 2) {
|
||
$trade_date = D("RetailPayOrder")->getFindField(array('id' => $order_info['advance_info']['tail_pay_order_id']), "trade_date");
|
||
$order_info['advance_info']['trade_date'] = date('Y-m-d H:i:s', $trade_date);
|
||
}
|
||
$order_info['advance_info']['tail_start_time'] = date('m月d日 H:i:s', $order_info['advance_info']['tail_start_time']);
|
||
$order_info['advance_info']['tail_end_time'] = date('m月d日 H:i:s', $order_info['advance_info']['tail_end_time']);
|
||
}
|
||
// 统计所有优惠
|
||
$order_info['dis_all_money'] = round($order_info[$DiscountModel::COUPON_MONEY] + $order_info[$DiscountModel::VIP_DIS_MONEY] + $order_info[$DiscountModel::VIP_LESS_MONEY], 2);
|
||
} else {
|
||
$order_info['state'] = '已完成';
|
||
// 统计所有优惠
|
||
$order_info['dis_all_money'] = round($billDis['coupon_money'] + $billDis['vip_dis_money'] + $billDis['cashier_dis_money'] + $billDis['small_changes_money'] + $billDis['cashier_manual_money'], 2);
|
||
}
|
||
|
||
$plugClass = new Plug();
|
||
//订单获取祝福码,判断该门店是否,有,并且开启
|
||
$storePlugStatusPost = [
|
||
'store_id' => $order_info['store_id'],
|
||
'identification_arr' => ['blessing'],
|
||
];
|
||
$storePlugStatus = $plugClass->plugStoreStatus($storePlugStatusPost);//获取状态
|
||
|
||
if ($storePlugStatus === true) {
|
||
//门店有权限,并开启插件,查询订单是否有祝福码
|
||
$extractionCode = new Index();
|
||
$order_info['extraction_code'] = $extractionCode->obtainExtractionCode($order_info['id']);//祝福码
|
||
} else {
|
||
//门店无权限,或没开启
|
||
$order_info['extraction_code'] = null;
|
||
}
|
||
|
||
$res['status'] = 1;
|
||
$res['order_info'] = $order_info;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '未找到该订单';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
|
||
/**
|
||
* 获取配送员信息
|
||
* @param $id 配送id
|
||
* @param $type 配送类型
|
||
* @return array|bool|mixed
|
||
*/
|
||
public function getDriver($id, $type)
|
||
{
|
||
if ($type == 1) {
|
||
// 门店自己配送
|
||
$driver = array(
|
||
'driver_name' => '商家配送',
|
||
'driver_mobile' => '',
|
||
'driver_type' => '商家配送'
|
||
);
|
||
return $driver;
|
||
} else if ($type == 2) {
|
||
//达达配送
|
||
$DaOrderModel = D('RetailDaOrder');
|
||
$fields = array(
|
||
$DaOrderModel::DM_NAME . ' as driver_name',
|
||
$DaOrderModel::DM_MOBILE . ' as driver_mobile',
|
||
$DaOrderModel::CLIENT_ID . ' as driver_order',
|
||
$DaOrderModel::ORDER_STATUS . ' as delivery_status'
|
||
);
|
||
$driver = $DaOrderModel->getFind(array($DaOrderModel::ID => $id, $DaOrderModel::ORDER_STATUS => array('EGT', 3)), $fields);
|
||
if ($driver) {
|
||
$driver['driver_type'] = '达达配送';
|
||
return $driver;
|
||
}
|
||
} else if ($type == 3) {
|
||
//uu跑腿
|
||
$UuOrderModel = D('RetailUuOrder');
|
||
$fields = array(
|
||
$UuOrderModel::DRIVER_NAME . ' as driver_name',
|
||
$UuOrderModel::DRIVER_MOBILE . ' as driver_mobile',
|
||
$UuOrderModel::ORDER_CODE . ' as driver_order',
|
||
$UuOrderModel::STATE . ' as delivery_status'
|
||
);
|
||
$driver = $UuOrderModel->getFind(array($UuOrderModel::ID => $id, $UuOrderModel::STATE => array('EGT', 3)), $fields);
|
||
if ($driver) {
|
||
if ($driver['delivery_status'] == 1) {
|
||
$driver['delivery_status'] = 1;
|
||
} else if ($driver['delivery_status'] == 3 || $driver['delivery_status'] == 4) {
|
||
$driver['delivery_status'] = 2;
|
||
} else if ($driver['delivery_status'] == 5 || $driver['delivery_status'] == 6) {
|
||
$driver['delivery_status'] = 3;
|
||
}
|
||
$driver['driver_type'] = 'UU跑腿';
|
||
return $driver;
|
||
}
|
||
} else if ($type == 6) {
|
||
$billOrder = (new \Common\Model\RetailBillOrderModel)->field('order_no')->where(['id' => $id])->find();
|
||
$delivery = (new \Common\Model\RetailMaiyatianDeliveryModel)->where(['order_id' => $billOrder['order_no']])->find();
|
||
if ($delivery) {
|
||
$driver = [
|
||
'delivery' => 6,
|
||
'driver_name' => $delivery['rider_name'],
|
||
'driver_mobile' => '',
|
||
'driver_type' => $driver['driver_type'],
|
||
'driver_order' => $delivery['logistic_no'],
|
||
];
|
||
if ($delivery['status'] === 'PENDING') {
|
||
$driver['delivery_status'] = 1;
|
||
} else if (in_array($delivery['status'], ['GRABBED', 'PICKUP', 'DELIVERING'])) {
|
||
$driver['delivery_status'] = 2;
|
||
} else if ($delivery['status'] === 'DONE') {
|
||
$driver['delivery_status'] = 3;
|
||
}
|
||
$driver['driver_type'] = \Common\Lib\MaiyatianEnum::getKey('delivery.logistic_tag', strtoupper($delivery['logistic_tag']))['value'];
|
||
return $driver;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* 申请退款(取消订单)
|
||
*/
|
||
public function doRefund_v1()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
$refund_list = I('post.refund_list'); //退款sell列表
|
||
$type = I('post.type'); //类型 1取消订单 2退款(订单已完成)
|
||
if (empty($order_no) || empty($type)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '缺少参数';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$BillModel = D('RetailBillOrder');
|
||
$bMap = array(
|
||
$BillModel::ORDER_NO => strval($order_no),
|
||
$BillModel::MERCHANT_ID => $merchant_id,
|
||
$BillModel::UID => $uid,
|
||
$BillModel::TYPE => 1,
|
||
$BillModel::ORDER_TYPE => 1,
|
||
$BillModel::REFUND_STATUS => 0
|
||
);
|
||
if ($type == 2) {
|
||
//部分(全部)退款
|
||
if (empty($refund_list)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '缺少参数';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$refund_list = htmlspecialchars_decode($refund_list);
|
||
$refund_list = json_decode($refund_list, true);
|
||
if (!is_array($refund_list) || count($refund_list) == 0) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '退款商品信息有误';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$bMap[$BillModel::REFUND_STATUS] = array('not in', '1,2');
|
||
} else if ($type != 1) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '参数值有误';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
|
||
$billOrder = $BillModel->getFind($bMap);//原订单
|
||
if (empty($billOrder)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '请求有误,请刷新重试';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
if ($billOrder[$BillModel::UPGRADE_STATE] == 1) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '升级为PLUS会员的订单无法退款';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$store_id = $billOrder['store_id'];
|
||
// 判断是否为购买次卡
|
||
$CardOrder = D('RetailCardOrder');
|
||
$co_map = array(
|
||
$CardOrder::MERCHANT_ID => $billOrder[$BillModel::MERCHANT_ID],
|
||
$CardOrder::VIP_ID => $billOrder[$BillModel::VID],
|
||
$CardOrder::BILL_ID => $billOrder[$BillModel::ID],
|
||
);
|
||
$card_order = $CardOrder->getFind($co_map);
|
||
if (!empty($card_order)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '该订单为购买次卡活动订单,无法退款';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
// 判断是否送次卡
|
||
if (!empty($billOrder[$BillModel::VID])) {
|
||
$judge_refund = A('PayApi/Refund')->judgeRefund($billOrder);
|
||
if ($judge_refund['status'] == 0) {
|
||
$this->ajaxReturn($judge_refund);
|
||
}
|
||
}
|
||
$BillOnlineModel = D('RetailBillOnline');
|
||
$oMap = array(
|
||
$BillOnlineModel::BILL_ID => $billOrder[$BillModel::ID]
|
||
);
|
||
$billOnline = $BillOnlineModel->getFind($oMap);//查询线上订单表
|
||
|
||
$BillDisModel = D('RetailBillDiscount');
|
||
$BillOnlineModel = D('RetailBillOnline');
|
||
$SellModel = D('RetailSell');
|
||
if ($type == 1) {
|
||
if ($billOnline[$BillOnlineModel::STATUS] != 1) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '该订单已发货,不能取消';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$refundSellList = $SellModel->getSelect(array($SellModel::BILL_ID => $billOrder[$BillModel::ID]));
|
||
$new_discount = $BillDisModel->getFind(array($BillDisModel::BILL_ID => $billOrder[$BillModel::ID]));
|
||
$refundData = array(
|
||
'allMoney' => round($billOrder[$BillModel::ALL_MONEY] - $billOnline[$BillOnlineModel::DELIVERY_FEE], 2),
|
||
'refundSellList' => $refundSellList,
|
||
'new_discount' => $new_discount,
|
||
'status' => 1
|
||
);
|
||
} else {
|
||
if ($billOnline[$BillOnlineModel::STATUS] != 3) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '该订单未完成,不能进行部分退款';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$rMap = array(
|
||
$BillModel::REFUND_NO => strval($order_no),
|
||
$BillModel::MERCHANT_ID => $merchant_id,
|
||
$BillModel::UID => $uid,
|
||
$BillModel::TYPE => 1,
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::REFUND_STATUS => 1,//正常正在等待退款的订单
|
||
$BillModel::PAY_STATE => 1,//正常正在等待退款的订单
|
||
);
|
||
$refundOrder = $BillModel->getFind($rMap);
|
||
if (!empty($refundOrder)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '正在进行的退款订单完成之后才能发起退款操作';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$refundData = getRefundList($refund_list, $billOrder[$BillModel::ID]);
|
||
}
|
||
|
||
if ($refundData['status'] == 0) {
|
||
$this->ajaxReturn($refundData);
|
||
}
|
||
$allMoney = $refundData['allMoney'];//退款总金额
|
||
$refund_list = $refundData['refundSellList'];//退款列表
|
||
$new_discount = $refundData['new_discount'];//新优惠数据
|
||
|
||
$time = time();
|
||
$newBill = array(
|
||
$BillModel::ALL_MONEY => $allMoney,
|
||
$BillModel::PAY_STATE => 1,
|
||
$BillModel::REFUND_STATUS => 1,
|
||
$BillModel::TYPE => 1,
|
||
$BillModel::ORDER_TYPE => 2,
|
||
$BillModel::ADD_TIME => $time,
|
||
$BillModel::REFUND_NO => $billOrder[$BillModel::ORDER_NO],
|
||
$BillModel::REFUND_MONEY => $allMoney,
|
||
$BillModel::UID => $billOrder[$BillModel::UID],
|
||
$BillModel::VID => $billOrder[$BillModel::VID],
|
||
$BillModel::STORE_ID => $billOrder['store_id'],
|
||
$BillModel::MERCHANT_ID => $merchant_id,
|
||
);
|
||
$newBill = $BillModel->addBillOrder($newBill);
|
||
if ($newBill) {
|
||
$new_discount[$BillDisModel::BILL_ID] = $newBill[$BillModel::ID];
|
||
$add_dis = $BillDisModel->addOrder($new_discount);
|
||
$old_online = $BillOnlineModel->getFind(array($BillOnlineModel::BILL_ID => $billOrder[$BillModel::ID]));
|
||
if ($type == 1) {
|
||
$old_online[$BillOnlineModel::CANCEL_TIME]++;
|
||
$online_save[$BillOnlineModel::CANCEL_TIME] = $old_online[$BillOnlineModel::CANCEL_TIME];
|
||
} else {
|
||
$old_online[$BillOnlineModel::REFUND_TIME]++;
|
||
$online_save[$BillOnlineModel::REFUND_TIME] = $old_online[$BillOnlineModel::REFUND_TIME];
|
||
}
|
||
$old_online[$BillOnlineModel::BILL_ID] = $newBill[$BillModel::ID];
|
||
$old_online[$BillOnlineModel::DELIVERY_FEE] = 0;//先默认为不退换配送费
|
||
$add_online = $BillOnlineModel->addOrder($old_online);
|
||
if ($add_dis && $add_online) {
|
||
//可进行退换货操作
|
||
$success_array = array();
|
||
foreach ($refund_list as $key => $val) {
|
||
$newSell = $val;
|
||
unset($newSell[$SellModel::ID]);
|
||
$newSell[$SellModel::SELL_TYPE] = 2;//退款
|
||
$newSell[$SellModel::PAY_STATE] = 0;//未成功退款
|
||
$newSell[$SellModel::BILL_ID] = $newBill[$BillModel::ID];
|
||
$newSell[$SellModel::SELL_ID] = $val[$SellModel::ID];
|
||
$newSell[$SellModel::ADD_TIME] = time();
|
||
$add_sell = $SellModel->addOrder($newSell);
|
||
if ($add_sell) {
|
||
$newSell[$SellModel::ID] = $add_sell;
|
||
$success_array[] = $newSell;
|
||
$SellModel->toSetInc(array($SellModel::ID => $val[$SellModel::ID]), $SellModel::WAIT_REFUND_NUM, $val[$SellModel::NUM]);
|
||
}
|
||
}
|
||
if (count($success_array) == count($refund_list)) {
|
||
$result['status'] = 1;
|
||
$result['msg'] = '退款申请发起成功';
|
||
$data = array(
|
||
'refund_status' => 1,
|
||
'cancel_time' => 1,
|
||
'refund_time' => 1
|
||
);
|
||
$result['data'] = $data;
|
||
$result['state'] = '待商家确认退款';
|
||
$BillModel->updateOrder($bMap, array($BillModel::REFUND_STATUS => 1));//修改原订单状态
|
||
$BillOnlineModel->updateOrder($oMap, $online_save);
|
||
if ($type == 1) {
|
||
sendsockets($store_id, "有线上订单申请取消订单", 1);
|
||
//新版推送
|
||
$sockets = array(
|
||
'login_string' => '',
|
||
'username' => '',
|
||
'type' => 2,
|
||
'message' => "有线上订单申请取消订单",
|
||
);
|
||
sendSockets($store_id, $sockets, -1);
|
||
} else {
|
||
sendsockets($store_id, "有线上订单申请退款", 2);
|
||
//新版推送
|
||
$sockets = array(
|
||
'login_string' => '',
|
||
'username' => '',
|
||
'type' => 3,
|
||
'message' => "有线上订单申请退款",
|
||
);
|
||
sendSockets($store_id, $sockets, -1);
|
||
}
|
||
} else {
|
||
$BillModel->deleteOrder(array($BillModel::ID => $newBill[$BillModel::ID]));
|
||
$SellModel->deleteOrder(array($SellModel::BILL_ID => $newBill[$BillModel::ID]));
|
||
foreach ($success_array as $value) {
|
||
$SellModel->toSetDec(array($SellModel::ID => $value[$SellModel::BILL_ID]), $SellModel::WAIT_REFUND_NUM, $value[$SellModel::NUM]);
|
||
}
|
||
$result['status'] = 0;
|
||
$result['msg'] = '数据操作有误2';
|
||
}
|
||
} else {
|
||
$BillModel->deleteOrder(array($BillModel::ID => $newBill[$BillModel::ID]));
|
||
$result['status'] = 0;
|
||
$result['msg'] = '退款请求失败,请稍后重试';
|
||
}
|
||
} else {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '退款请求失败,请稍后重试1';
|
||
}
|
||
$this->ajaxReturn($result);
|
||
}
|
||
|
||
/**获取满足售后条件的商品列表
|
||
* 2020/3/4
|
||
* @param order_no 订单号
|
||
*/
|
||
public function getRefundGoods()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
if (empty($order_no)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少订单号';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$BillModel = D('RetailBillOrder');
|
||
$oMap = array(
|
||
$BillModel::ORDER_NO => strval($order_no),
|
||
$BillModel::UID => $uid,
|
||
$BillModel::MERCHANT_ID => $merchant_id,
|
||
$BillModel::PAY_STATE => 1, //已支付
|
||
$BillModel::ORDER_TYPE => 1,//购买订单
|
||
$BillModel::TYPE => 1, //商城订单
|
||
);
|
||
$order_info = $BillModel->getFind($oMap);
|
||
if (!empty($order_info)) {
|
||
$overtime = overtime(self::$store, $order_info, 1);
|
||
if ($overtime['status'] == 0) {
|
||
$this->ajaxReturn($overtime);
|
||
}
|
||
$SellModel = D('RetailSell');
|
||
$RetailGoodsModel = D("RetailGoods");
|
||
$sMap = array(
|
||
$SellModel::BILL_ID => $order_info[$BillModel::ID]
|
||
);
|
||
$sFields = array(
|
||
$SellModel::ID,
|
||
$SellModel::GOODS_ID,
|
||
$SellModel::GOODS_IMG_ID,
|
||
$SellModel::GOODS_NAME,
|
||
$SellModel::NUM,
|
||
$SellModel::PRICE,
|
||
$SellModel::ORIGINAL_PRICE,
|
||
$SellModel::VIP_PRICE,
|
||
$SellModel::PLUS_VIP_PRICE,
|
||
$SellModel::REFUND_NUM,
|
||
$SellModel::SKU_JSON_INFO,
|
||
$SellModel::WAIT_REFUND_NUM,
|
||
$SellModel::GOODS_GIFTS_ID,
|
||
);
|
||
$sellGoods = $SellModel->getSelect($sMap, $sFields);
|
||
$can_refund_goods = array();
|
||
foreach ($sellGoods as &$sVal) {
|
||
$goods = $RetailGoodsModel->getFind(array('id' => $sVal['goods_id']), "refund_state,exchange_state");
|
||
if ($goods['refund_state'] == 0 && $goods['exchange_state'] == 0) {
|
||
continue;
|
||
}
|
||
$sVal['less_num'] = round($sVal[$SellModel::NUM] - $sVal[$SellModel::REFUND_NUM] - $sVal[$SellModel::WAIT_REFUND_NUM], 3);
|
||
if ($sVal['less_num'] <= 0) {
|
||
continue;
|
||
}
|
||
$sVal['goods_count'] = 0;
|
||
$sVal['checked'] = false;
|
||
$sVal['goods_img'] = $this->getGoodsImage($sVal[$SellModel::GOODS_IMG_ID]);
|
||
if (!empty($sVal[$SellModel::SKU_JSON_INFO])) {
|
||
$sVal[$SellModel::SKU_JSON_INFO] = json_decode($sVal[$SellModel::SKU_JSON_INFO], true);
|
||
}
|
||
$sVal[$SellModel::PRICE] = floatval($sVal[$SellModel::PRICE]);
|
||
$sVal[$SellModel::ORIGINAL_PRICE] = floatval($sVal[$SellModel::ORIGINAL_PRICE]);
|
||
$sVal[$SellModel::VIP_PRICE] = floatval($sVal[$SellModel::VIP_PRICE]);
|
||
$sVal[$SellModel::PLUS_VIP_PRICE] = floatval($sVal[$SellModel::PLUS_VIP_PRICE]);
|
||
$sVal[$SellModel::NUM] = floatval($sVal[$SellModel::NUM]);
|
||
$sVal[$SellModel::REFUND_NUM] = floatval($sVal[$SellModel::REFUND_NUM]);
|
||
$can_refund_goods[] = $sVal;
|
||
}
|
||
$res['msg'] = '暂无可退款换货商品';
|
||
$res['status'] = 1;
|
||
$res['sell_list'] = $can_refund_goods;
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '未找到该支付订单';
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
|
||
/**
|
||
* 申请退款换货(取消订单) 2020/3/5
|
||
* @param order_no 订单号
|
||
* @param refund_list 退款sell列表
|
||
* @param apply_reason 申请退款换货原因
|
||
* @param type 类型 1取消订单 2退款(订单已完成) 3换货(订单已完成)
|
||
* @param user_address 换货的收货地址
|
||
* @param $user_name 姓名
|
||
* @param $user_phone 手机号
|
||
* @param $reason_img 图片id , 拼接
|
||
*/
|
||
public function doRefund_v2()
|
||
{
|
||
$parameter = array(
|
||
'order_no' => I('post.order_no'),
|
||
'refund_list' => I('post.refund_list'),
|
||
'type' => I('post.type'),
|
||
'apply_reason' => I('post.apply_reason'),
|
||
'reason_img' => I("post.reason_img"),
|
||
'user_address' => I("post.user_address"),
|
||
'user_name' => I("post.user_name"),
|
||
'user_phone' => I("post.user_phone"),
|
||
'store' => self::$store,
|
||
'merchant_id' => self::$merchant_id,
|
||
'uid' => self::$uid,
|
||
'user_type' => 1,
|
||
'platform_type' => self::$merchant['platform_type'] ? self::$merchant['platform_type'] : 1
|
||
);
|
||
$result = A("Api/Customer")->order_cancel($parameter);
|
||
$this->ajaxReturn($result);
|
||
}
|
||
|
||
/**
|
||
* 取消退款申请
|
||
*/
|
||
public function cancelRefund_v1()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
if (empty($order_no)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '缺少参数';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$uid = self::$uid;
|
||
$merchant_id = self::$merchant_id;
|
||
$BillModel = D('RetailBillOrder');
|
||
$bMap = array(
|
||
$BillModel::ORDER_NO => strval($order_no),
|
||
$BillModel::MERCHANT_ID => $merchant_id,
|
||
$BillModel::UID => $uid,
|
||
$BillModel::TYPE => 1,
|
||
$BillModel::ORDER_TYPE => 1,//退款订单
|
||
$BillModel::REFUND_STATUS => 1,//正常正在等待退款的订单
|
||
$BillModel::PAY_STATE => 1,//正常正在等待退款的订单
|
||
);
|
||
$billOrder = $BillModel->getFind($bMap);//原订单
|
||
if (empty($billOrder)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '您的操作有误';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$store_id = $billOrder['store_id'];
|
||
$rMap = array(
|
||
$BillModel::REFUND_NO => strval($order_no),
|
||
$BillModel::STORE_ID => $store_id,
|
||
$BillModel::MERCHANT_ID => $merchant_id,
|
||
$BillModel::UID => $uid,
|
||
$BillModel::TYPE => 1,
|
||
$BillModel::ORDER_TYPE => 2,//退款订单
|
||
$BillModel::REFUND_STATUS => 1,//正常正在等待退款的订单
|
||
$BillModel::PAY_STATE => 1,//正常正在等待退款的订单
|
||
);
|
||
$refundOrder = $BillModel->getFind($rMap);
|
||
if (empty($refundOrder)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '订单不存在';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
/*修改退库记录状态*/
|
||
$updateRefund = $BillModel->updateOrder($rMap, array($BillModel::REFUND_STATUS => 0, $BillModel::PAY_STATE => 0));
|
||
if (!empty($updateRefund)) {
|
||
$SellModel = D('RetailSell');
|
||
$sMap = array(
|
||
$SellModel::BILL_ID => $refundOrder[$BillModel::ID],
|
||
$SellModel::SELL_TYPE => 2,//退款
|
||
);
|
||
$sellOrder = $SellModel->getSelect($sMap);//退款出售记录表
|
||
if (empty($sellOrder)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '数据操作有误';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$success_array = array();
|
||
foreach ($sellOrder as $value) {
|
||
$map = array(
|
||
$SellModel::ID => $value[$SellModel::SELL_ID]
|
||
);
|
||
$updateSell = $SellModel->toSetDec($map, $SellModel::WAIT_REFUND_NUM, $value[$SellModel::NUM]);
|
||
if ($updateSell) {
|
||
$success_array[] = $value;
|
||
}
|
||
}
|
||
if (count($success_array) == count($sellOrder)) {
|
||
//修改原表状态
|
||
$data = array(
|
||
'cancel_time' => 1,
|
||
'refund_time' => 1
|
||
);
|
||
if ($billOrder[$BillModel::REFUND_MONEY] > 0) {
|
||
//有退款
|
||
$data['refund_status'] = 3;
|
||
$BillModel->updateOrder($bMap, array($BillModel::REFUND_STATUS => 3));
|
||
} else {
|
||
//无退款
|
||
$data['refund_status'] = 0;
|
||
$BillModel->updateOrder($bMap, array($BillModel::REFUND_STATUS => 0));
|
||
}
|
||
$result['data'] = $data;
|
||
$OnlineModel = D('RetailBillOnline');
|
||
$onlineOrder = $OnlineModel->getFind(array($OnlineModel::BILL_ID => $billOrder[$BillModel::ID]));
|
||
if ($onlineOrder[$OnlineModel::STATUS] == 1) {
|
||
sendsockets($store_id, "有线上订单撤销取消订单申请", 3);
|
||
//新版推送
|
||
$sockets = array(
|
||
'login_string' => '',
|
||
'username' => '',
|
||
'type' => 4,
|
||
'message' => "有线上订单撤销取消订单申请",
|
||
);
|
||
sendSockets($store_id, $sockets, -1);
|
||
if ($onlineOrder[$OnlineModel::PICKUP_TYPE] == 1) {
|
||
$result['state'] = '待自提';
|
||
} else {
|
||
$result['state'] = '待发货';
|
||
}
|
||
} else {
|
||
sendsockets($store_id, "有线上订单取消退款申请", 4);
|
||
//新版推送
|
||
$sockets = array(
|
||
'login_string' => '',
|
||
'username' => '',
|
||
'type' => 5,
|
||
'message' => "有线上订单取消退款申请",
|
||
);
|
||
sendSockets($store_id, $sockets, -1);
|
||
$result['state'] = '已完成';
|
||
}
|
||
$result['status'] = 1;
|
||
$result['msg'] = '操作成功';
|
||
} else {
|
||
foreach ($success_array as $val) {
|
||
$map = array(
|
||
$SellModel::ID => $val[$SellModel::SELL_ID]
|
||
);
|
||
$SellModel->toSetInc($map, $SellModel::WAIT_REFUND_NUM, $val[$SellModel::NUM]);
|
||
}
|
||
$BillModel->updateOrder($rMap, array($BillModel::REFUND_STATUS => 1, $BillModel::PAY_STATE => 1));
|
||
$result['status'] = 0;
|
||
$result['msg'] = '数据操作有误2';
|
||
}
|
||
} else {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '取消失败,请稍后重试';
|
||
}
|
||
$this->ajaxReturn($result);
|
||
}
|
||
|
||
/**
|
||
* 用户评价
|
||
*/
|
||
public function addEvaluate_v1()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
$content = I('post.content');
|
||
if (empty($order_no) || empty($content)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '缺少参数';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$BillModel = D('RetailBillOrder');
|
||
$bMap = array(
|
||
'order_no' => strval($order_no),
|
||
'uid' => self::$uid
|
||
);
|
||
$billOrder = $BillModel->getFind($bMap);
|
||
if (empty($billOrder)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '请求有误';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$store_id = $billOrder['store_id'];
|
||
$OnlineModel = D('RetailBillOnline');
|
||
$oMap = array(
|
||
$OnlineModel::BILL_ID => $billOrder[$BillModel::ID]
|
||
);
|
||
$onlineOrder = $OnlineModel->getFind($oMap);
|
||
if ($onlineOrder[$OnlineModel::EVAL_STATUS] == 1) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '您已经评论过了';
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$EvaluateModel = D('RetailEvaluate');
|
||
$item = array(
|
||
$EvaluateModel::ORDER_ID => $billOrder[$BillModel::ID],
|
||
$EvaluateModel::CONTENT => $content,
|
||
$EvaluateModel::ADD_TIME => time(),
|
||
$EvaluateModel::STORE_ID => $store_id,
|
||
$EvaluateModel::MERCHANT_ID => self::$merchant_id,
|
||
$EvaluateModel::UID => self::$uid,
|
||
);
|
||
$add_evaluate = $EvaluateModel->addOrder($item);
|
||
if ($add_evaluate) {
|
||
$up = $OnlineModel->updateOrder($oMap, array($OnlineModel::EVAL_STATUS => 1));
|
||
if (!empty($up)) {
|
||
$result['status'] = 1;
|
||
$result['msg'] = '评论成功';
|
||
} else {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '评论失败';
|
||
}
|
||
} else {
|
||
$result['status'] = 0;
|
||
$result['msg'] = '评论失败';
|
||
}
|
||
$this->ajaxReturn($result);
|
||
}
|
||
|
||
/**
|
||
* 用户提醒发货
|
||
* @param int $bill_id bill订单id
|
||
* @param int $type 类型 1.普通订单 2.拼团订单 3.秒杀订单
|
||
* @return array $res
|
||
*/
|
||
public function userRemind()
|
||
{
|
||
// 接收数据
|
||
$bill_id = I('post.bill_id');
|
||
// $type = I('post.type');
|
||
if (!$bill_id) {
|
||
$res = array('status' => 0, 'msg' => '参数缺失');
|
||
$this->ajaxReturn($res);
|
||
}
|
||
// 查询订单
|
||
$RBOModel = D('RetailBillOrder');
|
||
$map = array(
|
||
'b.' . $RBOModel::ID => $bill_id,
|
||
'b.' . $RBOModel::MERCHANT_ID => self::$merchant_id,
|
||
'b.' . $RBOModel::ORDER_TYPE => 1,
|
||
'b.' . $RBOModel::PAY_STATE => 1,
|
||
'b.' . $RBOModel::TYPE => 1,
|
||
'o.status' => 1,
|
||
'o.remind_state' => 0,
|
||
// 'o.order_genre' => $type,
|
||
);
|
||
$field = array('b.' . $RBOModel::ID, 'o.remind_state');
|
||
$order = $RBOModel->getBillFind($map, $field);
|
||
if (!$order) {
|
||
$res = array('status' => 0, 'msg' => '订单出现异常,请联系商家');
|
||
$this->ajaxReturn($res);
|
||
}
|
||
// 修改订单
|
||
$RBOnlineModel = D('RetailBillOnline');
|
||
$up = array(
|
||
$RBOnlineModel::REMIND_STATE => 1,
|
||
$RBOnlineModel::REMIND_TIME => time()
|
||
);
|
||
$save_result = $RBOnlineModel->updateOrder(array($RBOnlineModel::BILL_ID => $bill_id), $up);
|
||
if ($save_result) {
|
||
$res = array('status' => 1, 'msg' => '提醒成功');
|
||
} else {
|
||
$res = array('status' => 0, 'msg' => '提醒失败');
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 用户确认收货
|
||
* @param int $bill_id bill订单id
|
||
* @param int $type 类型 1.普通订单 2.拼团订单 3.秒杀订单
|
||
* @return array $res
|
||
*/
|
||
public function userReceive()
|
||
{
|
||
// 接收数据
|
||
$bill_id = I('post.bill_id');
|
||
$type = I('post.type');
|
||
if (!$bill_id || !$type) {
|
||
$res = array('status' => 0, 'msg' => '参数缺失');
|
||
$this->ajaxReturn($res);
|
||
}
|
||
// 查询订单
|
||
$BillModel = new RetailBillOrderModel();
|
||
$map = array(
|
||
'b.id' => $bill_id,
|
||
'b.merchant_id' => self::$merchant_id,
|
||
'b.order_type' => 1,
|
||
'b.pay_state' => 1,
|
||
'b.type' => 1,
|
||
'o.order_genre' => $type
|
||
);
|
||
$field = array('b.id', 'o.order_genre');
|
||
$order = $BillModel->getBillFind($map, $field);
|
||
if (!$order) {
|
||
$res = array('status' => 0, 'msg' => '订单出现异常,请联系商家');
|
||
$this->ajaxReturn($res);
|
||
}
|
||
// 修改订单
|
||
$OnlineModel = new RetailBillOnlineModel();
|
||
$up = array(
|
||
'status' => 3,
|
||
'receiving_goods_time' => time(),
|
||
);
|
||
$save_result = $OnlineModel->updateOrder(array($OnlineModel::BILL_ID => $bill_id), $up);
|
||
if ($save_result) {
|
||
$BillModel->updateOrder(array('id' => $order['id']), array('finish_time' => time()));
|
||
$res = array('status' => 1, 'msg' => '交易成功');
|
||
} else {
|
||
$res = array('status' => 0, 'msg' => '收货出现异常,请联系商家');
|
||
}
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 获取骑手信息
|
||
*/
|
||
public function rider()
|
||
{
|
||
$order_no = I('post.order_no');//订单编号
|
||
if (empty($order_no)) {
|
||
$result['status'] = 0;
|
||
$result['msg'] = "缺少参数";
|
||
$this->ajaxReturn($result);
|
||
}
|
||
$result = A('PayApi/Order')->getRider($order_no);
|
||
$this->ajaxReturn($result);
|
||
}
|
||
|
||
/**
|
||
* 获取待支付列表
|
||
*/
|
||
public function getWaitPayOrder()
|
||
{
|
||
$uid = self::$uid;
|
||
$store_id = self::$store_id;
|
||
$redis_key = 'retail_*_*_*_' . $uid . '_*';
|
||
$ApiRedis = new \Addons\Api\RedisController();
|
||
$wait_pay_list = $ApiRedis::$redis->mget($ApiRedis::$redis->keys($redis_key));
|
||
$billId = array();
|
||
$timeArr = array();
|
||
if (!empty($wait_pay_list)) {
|
||
foreach ($wait_pay_list as $value) {
|
||
$data = json_decode($value, true);
|
||
if (!in_array($data['bill_id'], $billId)) {
|
||
$billId[] = $data['bill_id'];
|
||
$timeArr[] = $data['expiration_time'];
|
||
}
|
||
}
|
||
}
|
||
$billOrder = array();
|
||
if (!empty($billId)) {
|
||
$BillModel = D('RetailBillOrder');
|
||
$OnlineModel = D('RetailBillOnline');
|
||
$SellModel = D('RetailSell');
|
||
foreach ($billId as $key => $val) {
|
||
$bMap = array(
|
||
$BillModel::STORE_ID => $store_id,
|
||
$BillModel::ID => $val,
|
||
$BillModel::PAY_STATE => 0,
|
||
);
|
||
$data = $BillModel->getFind($bMap);
|
||
if (!empty($data)) {
|
||
$sMap = array(
|
||
$SellModel::BILL_ID => $val
|
||
);
|
||
$oMap = array(
|
||
$OnlineModel::BILL_ID => $val
|
||
);
|
||
$data['order_genre'] = $OnlineModel->getFindField($oMap, $OnlineModel::ORDER_GENRE);
|
||
$data['add_time'] = date('Y-m-d H:i:s', $data['add_time']);
|
||
$data['expiration_time'] = date('Y-m-d H:i:s', strval(intval($timeArr[$key] - 2)));;
|
||
$data['time_desc'] = '';
|
||
$data['goods_info'] = $SellModel->getFind($sMap);
|
||
$data['goods_info']['goods_img'] = $this->getGoodsImage($data['goods_info']['goods_img_id']);
|
||
$billOrder[] = $data;
|
||
}
|
||
}
|
||
if (!empty($billOrder)) {
|
||
$res['status'] = 1;
|
||
$res['msg'] = '查询成功';
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '暂无记录';
|
||
}
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '暂无记录';
|
||
}
|
||
$res['data'] = $billOrder;
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 获取待支付列表
|
||
*/
|
||
public function getWaitPayOrder_v1()
|
||
{
|
||
$uid = self::$uid;
|
||
$redis_key = 'retail_*_*_*_' . $uid . '_*';
|
||
$ApiRedis = new \Addons\Api\RedisController();
|
||
$wait_pay_list = $ApiRedis::$redis->mget($ApiRedis::$redis->keys($redis_key));
|
||
$billId = array();
|
||
$timeArr = array();
|
||
if (!empty($wait_pay_list)) {
|
||
foreach ($wait_pay_list as $value) {
|
||
$data = json_decode($value, true);
|
||
if (!in_array($data['bill_id'], $billId)) {
|
||
$billId[] = $data['bill_id'];
|
||
$timeArr[] = $data['expiration_time'];
|
||
}
|
||
}
|
||
}
|
||
$billOrder = array();
|
||
if (!empty($billId)) {
|
||
$BillModel = D('RetailBillOrder');
|
||
$OnlineModel = D('RetailBillOnline');
|
||
$SellModel = D('RetailSell');
|
||
foreach ($billId as $key => $val) {
|
||
$bMap = array(
|
||
$BillModel::ID => $val,
|
||
$BillModel::PAY_STATE => 0,
|
||
);
|
||
$data = $BillModel->getFind($bMap);
|
||
if (!empty($data)) {
|
||
$sMap = array(
|
||
$SellModel::BILL_ID => $val
|
||
);
|
||
$oMap = array(
|
||
$OnlineModel::BILL_ID => $val
|
||
);
|
||
$data['order_genre'] = $OnlineModel->getFindField($oMap, $OnlineModel::ORDER_GENRE);
|
||
$data['add_time'] = date('Y-m-d H:i:s', $data['add_time']);
|
||
$data['expiration_time'] = date('Y-m-d H:i:s', strval(intval($timeArr[$key] - 2)));;
|
||
$data['time_desc'] = '';
|
||
$data['goods_info'] = $SellModel->getFind($sMap);
|
||
$data['goods_info']['goods_img'] = getGoodsImage($data['goods_info']['goods_img_id'], $data['store_id']);
|
||
$billOrder[] = $data;
|
||
}
|
||
}
|
||
if (!empty($billOrder)) {
|
||
$res['status'] = 1;
|
||
$res['msg'] = '查询成功';
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '暂无记录';
|
||
}
|
||
} else {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '暂无记录';
|
||
}
|
||
$res['data'] = $billOrder;
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
|
||
/**
|
||
* 取消订单 2020-4-13
|
||
*/
|
||
public function cancelPay()
|
||
{
|
||
$uid = self::$uid;
|
||
$order_no = I('post.order_no');
|
||
if (empty($order_no)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少参数';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$BillModel = D('RetailBillOrder');
|
||
$map = array(
|
||
'b.' . $BillModel::ORDER_NO => $order_no,
|
||
'b.' . $BillModel::UID => $uid,
|
||
);
|
||
$fields = [
|
||
'b.id',
|
||
'b.store_id',
|
||
'o.order_genre',
|
||
'd.coupon_id',
|
||
'd.coupon_type',
|
||
];
|
||
if (self::$merchant['platform_type'] == 2) {
|
||
$fields[] = 'b.third_order';
|
||
}
|
||
$bill_info = $BillModel->getBillFind($map, $fields);
|
||
if (empty($bill_info)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '请求有误';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
if (self::$merchant['platform_type'] == 2) {
|
||
//第三方平台
|
||
$ThirdClass = new Order();
|
||
$thirdResult = $ThirdClass->orderCancel([
|
||
'merchant_id' => self::$merchant_id,
|
||
'third_order' => $bill_info['third_order']
|
||
]);
|
||
if ($thirdResult['status'] == 0) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = 'Q3 ERP平台订单取消失败' . $thirdResult['message'];
|
||
$this->ajaxReturn($res);
|
||
}
|
||
}
|
||
$store_id = $bill_info['store_id'];
|
||
$redis_key = 'retail_*_' . $uid . '_' . $bill_info['id'];
|
||
$ApiRedis = new \Addons\Api\RedisController();
|
||
$ApiRedis::$redis->delete($ApiRedis::$redis->keys($redis_key));
|
||
if (!empty($bill_info['coupon_id'])) {
|
||
$coupon_redis_key = 'retail_coupon_store_id_' . $store_id . '_uid_' . $uid . '_coupon_type_' . $bill_info['coupon_type'] . '_coupon_id_' . $bill_info['coupon_id'];
|
||
$ApiRedis::$redis->delete($coupon_redis_key);
|
||
}
|
||
$BillModel->updateOrder(['id' => $bill_info['id']], [
|
||
'pay_state' => 3
|
||
]);
|
||
$res['status'] = 1;
|
||
$res['msg'] = '取消成功';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
/**
|
||
* 获取物流信息
|
||
*/
|
||
public function getOrderExpress()
|
||
{
|
||
$order_no = I('post.order_no');
|
||
$type = I('post.type');//判断是否是中奖订单 值为9999
|
||
if (empty($order_no)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '缺少订单编号';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
if ($type == 9999) {
|
||
//查询中奖记录表
|
||
$win_record = D('TurntableUse')->getOrderFind(['order_num' => $order_no]);
|
||
if (!$win_record) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '未查询到该订单或订单已取消发货';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$res = A('Api/Express')->getExpressInfo($win_record['id'], 2);
|
||
if ($res['status'] != 1) {
|
||
$res['status'] = 1;
|
||
$res['data']['data'] = array();
|
||
}
|
||
$res['data']['receiving_name'] = $win_record['username'];
|
||
$res['data']['receiving_phone'] = $win_record['phone'];
|
||
$res['data']['receiving_address'] = $win_record['address'];
|
||
$this->ajaxReturn($res);
|
||
}
|
||
|
||
$BillModel = D('RetailBillOrder');
|
||
$OnlineModel = D('RetailBillOnline');
|
||
|
||
$map = array(
|
||
'b.' . $BillModel::ORDER_NO => strval($order_no),
|
||
'b.' . $BillModel::TYPE => 1,
|
||
'b.' . $BillModel::UID => self::$uid,
|
||
'b.' . $BillModel::ORDER_TYPE => array('in', '1,3'),
|
||
'b.' . $BillModel::REFUND_STATUS => array('in', '0,2,5'),
|
||
'o.' . $OnlineModel::PICKUP_TYPE => array('in', '2,3'),
|
||
'o.' . $OnlineModel::DELIVERY_TYPE => 4,
|
||
'o.' . $OnlineModel::STATUS => array('neq', 1),
|
||
);
|
||
$bill_order = $BillModel->getOrderLinkFind($map);
|
||
if (empty($bill_order)) {
|
||
$res['status'] = 0;
|
||
$res['msg'] = '未查询到该订单或订单已取消发货';
|
||
$this->ajaxReturn($res);
|
||
}
|
||
$res = A('Api/Express')->getExpressInfo($bill_order[$BillModel::ID]);
|
||
if ($res['status'] != 1) {
|
||
$res['status'] = 1;
|
||
$res['data']['data'] = array();
|
||
}
|
||
$res['data']['receiving_name'] = $bill_order[$OnlineModel::USER_NAME];
|
||
$res['data']['receiving_phone'] = $bill_order[$OnlineModel::USER_PHONE];
|
||
$res['data']['receiving_address'] = $bill_order[$OnlineModel::USER_ADDRESS];
|
||
$this->ajaxReturn($res);
|
||
}
|
||
} |