|
@@ -69,12 +69,13 @@ class Order extends Model
|
|
|
// 订单类型
|
|
|
const TYPE_ALL = 0; // 全部
|
|
|
const TYPE_PAY = 1; // 待付款
|
|
|
- const TYPE_DELIVES = 2; // 待发货
|
|
|
- const TYPE_RECEIVE = 3; // 待发货
|
|
|
- const TYPE_COMMENT = 4; // 待评价
|
|
|
- const TYPE_REFUND = 5; // 售后
|
|
|
- const TYPE_REFUSE = 6; // 拒绝退款
|
|
|
- const TYPE_OFF = 9; // 订单关闭
|
|
|
+// const TYPE_DELIVES = 2; // 待发货
|
|
|
+ const TYPE_RECEIVE = 3; // 待核销
|
|
|
+ const TYPE_COMMENT = 4; // 已完成
|
|
|
+// const TYPE_REFUND = 5; // 售后
|
|
|
+// const TYPE_REFUSE = 6; // 拒绝退款
|
|
|
+// const TYPE_OFF = 9; // 订单关闭
|
|
|
+ const TYPE_CANCEL = 20; //订单取消(已支付+未支付)
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -157,6 +158,7 @@ class Order extends Model
|
|
|
|
|
|
/**
|
|
|
* 0=全部,1=待付款,2=待发货,3=待收货,4=待评价,5=售后
|
|
|
+ * * 0=全部,1=待付款,3=待核销,4=已完成
|
|
|
* 获取当前的订单状态
|
|
|
*/
|
|
|
public function getStateAttr($value, $data)
|
|
@@ -165,25 +167,25 @@ class Order extends Model
|
|
|
case $data['have_paid'] == self::PAID_NO && $data['status'] == self::STATUS_NORMAL:
|
|
|
$state = self::TYPE_PAY;
|
|
|
break;
|
|
|
- case $data['have_delivered'] == self::DELIVERED_NO && $data['status'] == self::STATUS_NORMAL:
|
|
|
+ /*case $data['have_delivered'] == self::DELIVERED_NO && $data['status'] == self::STATUS_NORMAL:
|
|
|
$state = self::TYPE_DELIVES;
|
|
|
- break;
|
|
|
- case $data['have_received'] == self::RECEIVED_NO && $data['status'] == self::STATUS_NORMAL:
|
|
|
+ break;*/
|
|
|
+ case $data['have_paid'] != self::PAID_NO && $data['have_received'] == self::RECEIVED_NO && $data['status'] == self::STATUS_NORMAL:
|
|
|
$state = self::TYPE_RECEIVE;
|
|
|
break;
|
|
|
- case $data['have_commented'] == self::COMMENTED_NO && $data['status'] == self::STATUS_NORMAL:
|
|
|
+ case $data['have_paid'] != self::PAID_NO && $data['have_received'] != self::RECEIVED_NO && $data['status'] == self::STATUS_NORMAL:
|
|
|
$state = self::TYPE_COMMENT;
|
|
|
break;
|
|
|
- case $data['status'] == self::STATUS_REFUND && $data['refund_status'] == self::REFUND_STATUS_AGREE: // TODO 申请退款并且已通过同意,则订单为关闭状态
|
|
|
case $data['status'] == self::STATUS_CANCEL:
|
|
|
- $state = self::TYPE_OFF;
|
|
|
+ $state = self::TYPE_CANCEL;
|
|
|
break;
|
|
|
- case $data['status'] == self::STATUS_REFUND && $data['refund_status'] == self::REFUND_STATUS_REFUSE:
|
|
|
+ //case $data['status'] == self::STATUS_REFUND && $data['refund_status'] == self::REFUND_STATUS_AGREE: // TODO 申请退款并且已通过同意,则订单为关闭状态
|
|
|
+ /* case $data['status'] == self::STATUS_REFUND && $data['refund_status'] == self::REFUND_STATUS_REFUSE:
|
|
|
$state = self::TYPE_REFUSE;
|
|
|
break;
|
|
|
case $data['status'] == self::STATUS_REFUND:
|
|
|
$state = self::TYPE_REFUND;
|
|
|
- break;
|
|
|
+ break;*/
|
|
|
default:
|
|
|
$state = self::TYPE_ALL;
|
|
|
break;
|
|
@@ -191,6 +193,21 @@ class Order extends Model
|
|
|
return $state;
|
|
|
}
|
|
|
|
|
|
+ //获取当前的订单状态,中文
|
|
|
+ public function getStatetextAttr($state,$refund_status){
|
|
|
+ $data = [
|
|
|
+ 1 => '待付款',
|
|
|
+ 3 => '待核销',
|
|
|
+ 4 => '已完成',
|
|
|
+ 20 => '已取消',
|
|
|
+ ];
|
|
|
+ if($state == 20 && $refund_status == 3){
|
|
|
+ return '已退款';
|
|
|
+ }
|
|
|
+ return isset($data[$state]) ? $data[$state] : $state;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 退款状态
|
|
|
*/
|
|
@@ -317,44 +334,44 @@ class Order extends Model
|
|
|
/**
|
|
|
* 获取我的订单
|
|
|
* @param int $userId 用户id
|
|
|
- * @param int $state 0=全部,1=待付款,2=待发货,3=待收货,4=待评价,5=售后
|
|
|
+ * @param int $state 0=全部,1=待付款,3=待核销,4=已完成
|
|
|
*/
|
|
|
public function getOrdersByType($userId, $state = 0, $page = 1, $pageSize = 10)
|
|
|
{
|
|
|
$condition['user_id'] = ['=', $userId];
|
|
|
switch ($state) {
|
|
|
- case self::TYPE_PAY:
|
|
|
+ case self::TYPE_PAY: //1=待付款
|
|
|
$condition['have_paid'] = ['=', self::PAID_NO];
|
|
|
$condition['status'] = ['=', self::STATUS_NORMAL];
|
|
|
$orderBy = 'createtime';
|
|
|
break;
|
|
|
- case self::TYPE_DELIVES:
|
|
|
+ /*case self::TYPE_DELIVES:
|
|
|
$condition['have_paid'] = ['>', self::PAID_NO];
|
|
|
$condition['have_delivered'] = ['=', self::DELIVERED_NO];
|
|
|
$condition['status'] = ['=', self::STATUS_NORMAL];
|
|
|
$orderBy = 'have_paid';
|
|
|
- break;
|
|
|
- case self::TYPE_RECEIVE:
|
|
|
+ break;*/
|
|
|
+ case self::TYPE_RECEIVE: //3=待核销
|
|
|
$condition['have_paid'] = ['>', self::PAID_NO];
|
|
|
$condition['have_delivered'] = ['>', self::DELIVERED_NO];
|
|
|
$condition['have_received'] = ['=', self::RECEIVED_NO];
|
|
|
$condition['status'] = ['=', self::STATUS_NORMAL];
|
|
|
$orderBy = 'have_delivered';
|
|
|
break;
|
|
|
- case self::TYPE_COMMENT:
|
|
|
+ case self::TYPE_COMMENT: //4=已完成
|
|
|
$condition['have_paid'] = ['>', self::PAID_NO];
|
|
|
$condition['have_delivered'] = ['>', self::DELIVERED_NO];
|
|
|
$condition['have_received'] = ['>', self::RECEIVED_NO];
|
|
|
- $condition['have_commented'] = ['=', self::COMMENTED_NO];
|
|
|
+// $condition['have_commented'] = ['=', self::COMMENTED_NO];
|
|
|
$condition['status'] = ['=', self::STATUS_NORMAL];
|
|
|
$orderBy = 'have_received';
|
|
|
break;
|
|
|
- case self::TYPE_REFUND:
|
|
|
+ /*case self::TYPE_REFUND:
|
|
|
$condition['have_paid'] = ['>', self::PAID_NO];
|
|
|
$condition['status'] = ['=', self::STATUS_REFUND];
|
|
|
$condition['refund_status'] = ['<>', self::REFUND_STATUS_AGREE];
|
|
|
$orderBy = 'createtime';
|
|
|
- break;
|
|
|
+ break;*/
|
|
|
default: //全部
|
|
|
$orderBy = 'createtime';
|
|
|
break;
|
|
@@ -365,15 +382,15 @@ class Order extends Model
|
|
|
'products' => function($query) {
|
|
|
$query->field('id,title,image,number,price,spec,order_id,product_id');
|
|
|
},
|
|
|
- 'extend' => function($query) {
|
|
|
+ /*'extend' => function($query) {
|
|
|
$query->field('order_id,express_number,express_company');
|
|
|
- },
|
|
|
+ },*/
|
|
|
'evaluate' => function($query) {
|
|
|
$query->field('id,order_id,product_id');
|
|
|
},
|
|
|
- 'refundProducts' => function($query) {
|
|
|
+ /*'refundProducts' => function($query) {
|
|
|
$query->field('id,order_id,order_product_id');
|
|
|
- }
|
|
|
+ }*/
|
|
|
])
|
|
|
->where($condition)
|
|
|
->order([$orderBy => 'desc'])
|
|
@@ -381,13 +398,14 @@ class Order extends Model
|
|
|
->select();
|
|
|
|
|
|
foreach ($result as &$item) {
|
|
|
- $item->append(['order_id','state', 'refund_status_text']);
|
|
|
+ $item->append(['order_id','state']);
|
|
|
+ $item['state_text'] = $this->getStatetextAttr($item['state'],$item['refund_status']);//状态中文
|
|
|
$item = $item->toArray();
|
|
|
|
|
|
$evaluate = array_column($item['evaluate'], 'product_id');
|
|
|
- $refundProducts = array_column($item['refund_products'], 'order_product_id');
|
|
|
+// $refundProducts = array_column($item['refund_products'], 'order_product_id');
|
|
|
unset($item['evaluate']);
|
|
|
- unset($item['refund_products']);
|
|
|
+// unset($item['refund_products']);
|
|
|
|
|
|
foreach ($item['products'] as &$product) {
|
|
|
$product['image'] = Config::getImagesFullUrl($product['image']);
|
|
@@ -399,11 +417,11 @@ class Order extends Model
|
|
|
}
|
|
|
|
|
|
// 是否退货
|
|
|
- if ($item['refund_status'] == self::REFUND_STATUS_AGREE && in_array($product['order_product_id'], $refundProducts)) {
|
|
|
+ /*if ($item['refund_status'] == self::REFUND_STATUS_AGREE && in_array($product['order_product_id'], $refundProducts)) {
|
|
|
$product['refund'] = true;
|
|
|
} else {
|
|
|
$product['refund'] = false;
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
}
|