Files
amb_wechatapp/application/common/model/order/Status.php
T

130 lines
4.2 KiB
PHP

<?php
namespace app\common\model\order;
use think\Model;
use app\common\model\order\Order;
use app\common\constant\order\Status as OrderStatusConstant;
/**
* 订单状态
*/
class Status extends Model
{
public function getControllTypes(){
return [
// 'delete'=>false,
'evaluate'=>false,
'cancel'=>false,
'pay'=>false,
'service'=>false,
'surereceive'=>false,
'express'=>false,
];
}
protected $controllTypes = [
// 'delete',
'evaluate','cancel','pay','service','surereceive','express',
];
/**
* 根据状态获取查询条件
* @param $status
* @return void
*/
public static function statusGetFilter($status){
$filter = [];
if($status == 'unevaluate'){
$filter['status'] = OrderStatusConstant::STATUS_SUCCESS;
$filter['evaluate'] = 0;
}elseif($status == 'service'){
// $filter['service'] = ['<>',0];
$filter['status'] = OrderStatusConstant::STATUS_REFUND;
}else{
if(!empty($status)){
$filter['status'] = $status;
}
}
return $filter;
}
/**
* 获取订单是否可以评价
* @param $orderInfo
* @return bool
*/
public function getOrderIsEvaluate($orderInfo){
if(!empty($orderInfo['item'])){
foreach ($orderInfo['item'] as $item){
if($item['evaluate']==0){
return true;
}
}
}
return false;
}
/**
* 获取订单可进行的操作
* @param $orderInfo
* @return false[]
*/
public function getOrderControllStatus($orderInfo){
$controllTypes = $this->getControllTypes();
foreach ($controllTypes as $key => $value){
switch ($key) {
case 'evaluate': //评价
if ($orderInfo['status'] == \app\common\constant\order\Status::STATUS_SUCCESS && $orderInfo['evaluate'] == 0) {
$controllTypes[$key] = true;
}
break;
case 'cancel': //取消订单
if ($orderInfo['status'] == 'unpaid') {
$controllTypes[$key] = $key;
}
break;
case 'express': //物流
if ($orderInfo['order_type'] == "physical") {
$controllTypes[$key] = true;
}
break;
case 'surereceive': //确认收货
if ($orderInfo['order_type'] == "physical" && $orderInfo['status'] == \app\common\constant\order\Status::STATUS_UNRECEIVE) {
$controllTypes[$key] = true;
}
break;
case 'pay': //支付订单
//禁止iOS微信支付
if (\app\common\library\Platform::getPlatform() == 'wxMiniProgram' && \app\common\library\Platform::getDeviceEnd() == 'ios'){
$wxMiniProgramConfig = \app\common\model\config\System::getConfig('wxMiniProgram');
if ($wxMiniProgramConfig['ban_pay'] == 'open') {
break;
}
}
if($orderInfo['status'] == \app\common\constant\order\Status::STATUS_UNPAID){
$controllTypes[$key] = true;
}
break;
// case 'delete': //删除订单
// if($orderInfo['status'] != \app\common\constant\order\Status::STATUS_SERVICE){
// $controllTypes[$key] = true;
// }
// break;
case 'service': //售后服务
// if(!in_array($orderInfo['status'],[\app\common\constant\order\Status::STATUS_UNPAID,\app\common\constant\order\Status::STATUS_CANCEL])){
// $controllTypes[$key] = true;
// }
break;
}
}
return $controllTypes;
}
}