You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
335 lines
10 KiB
335 lines
10 KiB
<?php |
|
|
|
namespace app\models; |
|
|
|
use app\models\common\admin\log\CommonActionLog; |
|
use app\models\MyActiveQuery; |
|
use Yii; |
|
use Codeception\PHPUnit\ResultPrinter\HTML; |
|
use yii\db\ActiveQuery; |
|
|
|
/** |
|
* This is the model class for table "{{%order}}". |
|
* |
|
* @property integer $id |
|
* @property integer $store_id |
|
* @property integer $user_id |
|
* @property string $order_no |
|
* @property string $total_price |
|
* @property string $pay_price |
|
* @property string $express_price |
|
* @property string $name |
|
* @property string $mobile |
|
* @property string $address |
|
* @property string $remark |
|
* @property integer $is_pay |
|
* @property integer $pay_type |
|
* @property integer $pay_time |
|
* @property integer $is_send |
|
* @property integer $send_time |
|
* @property string $express |
|
* @property string $express_no |
|
* @property integer $is_confirm |
|
* @property integer $confirm_time |
|
* @property integer $is_comment |
|
* @property integer $apply_delete |
|
* @property integer $addtime |
|
* @property integer $is_delete |
|
* @property integer $is_price |
|
* @property integer $parent_id |
|
* @property string $first_price |
|
* @property string $second_price |
|
* @property string $third_price |
|
* @property string $coupon_sub_price |
|
* @property string $content |
|
* @property integer $is_offline |
|
* @property integer $clerk_id |
|
* @property string $address_data |
|
* @property integer $is_cancel |
|
* @property string $offline_qrcode |
|
* @property string $before_update_price |
|
* @property integer $shop_id |
|
* @property string $discount |
|
* @property integer $user_coupon_id |
|
* @property string $integral |
|
* @property integer $give_integral |
|
* @property integer $parent_id_1 |
|
* @property integer $parent_id_2 |
|
* @property integer $is_sale |
|
* @property string $words |
|
* @property string $version |
|
* @property string $express_price_1 |
|
* @property integer $mch_id |
|
* @property integer $is_recycle |
|
* @property string $seller_comments |
|
* @property integer $order_union_id |
|
* @property string $rebate |
|
* @property string $before_update_express |
|
* @property integer $is_transfer |
|
* @property integer $type |
|
* @property string $share_price |
|
* @property integer $is_show |
|
*/ |
|
class Order extends \yii\db\ActiveRecord |
|
{ |
|
/** |
|
* 是否取消(手动):已取消 |
|
*/ |
|
const IS_DELETE_TRUE = 1; |
|
|
|
/** |
|
* 是否取消(手动):未取消 |
|
*/ |
|
const IS_DELETE_FALSE = 0; |
|
|
|
/** |
|
* 是否取消(自动):已取消 |
|
*/ |
|
const IS_CANCEL_TRUE = 1; |
|
|
|
/** |
|
* 是否取消(自动):未取消 |
|
*/ |
|
const IS_CANCEL_FALSE = 0; |
|
|
|
/** |
|
* 是否支付:已支付 |
|
*/ |
|
const IS_PAY_TRUE = 1; |
|
|
|
/** |
|
* 是否支付:未支付 |
|
*/ |
|
const IS_PAY_FALSE = 0; |
|
|
|
/** |
|
* 支付方式:未支付 |
|
*/ |
|
const PAY_TYPE_UNPAID = 0; |
|
|
|
/** |
|
* 支付方式:微信支付 |
|
*/ |
|
const PAY_TYPE_WECHAT = 1; |
|
|
|
/** |
|
* 支付方式:货到付款 |
|
*/ |
|
const PAY_TYPE_COD = 2; |
|
|
|
/** |
|
* 支付方式:余额支付 |
|
*/ |
|
const PAY_TYPE_BALANCE_PAID = 3; |
|
|
|
/** |
|
* 发货状态:已发货 |
|
*/ |
|
const IS_SEND_TRUE = 1; |
|
|
|
/** |
|
* 发货状态:未发货 |
|
*/ |
|
const IS_SEND_FALSE = 0; |
|
|
|
/** |
|
* 订单类型:商城订单 |
|
*/ |
|
const ORDER_TYPE_STORE = 0; |
|
|
|
/** |
|
* 订单类型:大转盘订单 |
|
*/ |
|
const ORDER_TYPE_POND = 1; |
|
|
|
/** |
|
* 订单是否显示:显示 |
|
*/ |
|
const IS_SHOW_TRUE = 1; |
|
|
|
/** |
|
* 订单是否显示:不显示 |
|
*/ |
|
const IS_SHOW_FALSE = 0; |
|
|
|
/** |
|
* 是否过售后时间:是 |
|
*/ |
|
const IS_SALE_TRUE = 1; |
|
|
|
/** |
|
* 是否过售后时间:否 |
|
*/ |
|
const IS_SALE_FALSE = 0; |
|
|
|
|
|
/** |
|
* @inheritdoc |
|
*/ |
|
public static function tableName() |
|
{ |
|
return '{{%order}}'; |
|
} |
|
|
|
/** |
|
* @inheritdoc |
|
*/ |
|
public function rules() |
|
{ |
|
return [ |
|
[['store_id', 'user_id', 'order_no', 'first_price', 'second_price', 'third_price'], 'required'], |
|
[['store_id', 'user_id', 'is_pay', 'pay_type', 'pay_time', 'is_send', 'send_time', 'is_confirm', 'confirm_time', 'is_comment', 'apply_delete', 'addtime', 'is_delete', 'is_price', 'parent_id', 'is_offline', 'clerk_id', 'is_cancel', 'shop_id', 'user_coupon_id', 'give_integral', 'parent_id_1', 'parent_id_2', 'is_sale', 'mch_id', 'is_recycle', 'order_union_id', 'is_transfer', 'type', 'is_show'], 'integer'], |
|
[['total_price', 'pay_price', 'express_price', 'first_price', 'second_price', 'third_price', 'coupon_sub_price', 'before_update_price', 'discount', 'express_price_1', 'rebate', 'before_update_express', 'share_price'], 'number'], |
|
[['address_data', 'content', 'offline_qrcode', 'integral', 'words', 'seller_comments'], 'string'], |
|
[['order_no', 'name', 'mobile', 'express', 'express_no', 'version'], 'string', 'max' => 255], |
|
[['address', 'remark'], 'string', 'max' => 1000], |
|
]; |
|
} |
|
|
|
/** |
|
* @inheritdoc |
|
*/ |
|
public function attributeLabels() |
|
{ |
|
return [ |
|
'id' => 'ID', |
|
'store_id' => 'Store ID', |
|
'user_id' => '用户id', |
|
'order_no' => '订单号', |
|
'total_price' => '订单总费用(包含运费)', |
|
'pay_price' => '实际支付总费用(含运费)', |
|
'express_price' => '运费', |
|
'name' => '收货人姓名', |
|
'mobile' => '收货人手机', |
|
'address' => '收货地址', |
|
'remark' => '订单备注', |
|
'is_pay' => '支付状态:0=未支付,1=已支付', |
|
'pay_type' => '支付方式:1=微信支付', |
|
'pay_time' => '支付时间', |
|
'is_send' => '发货状态:0=未发货,1=已发货', |
|
'send_time' => '发货时间', |
|
'express' => '物流公司', |
|
'express_no' => 'Express No', |
|
'is_confirm' => '确认收货状态:0=未确认,1=已确认收货', |
|
'confirm_time' => '确认收货时间', |
|
'is_comment' => '是否已评价:0=未评价,1=已评价', |
|
'apply_delete' => '是否申请取消订单:0=否,1=申请取消订单', |
|
'addtime' => 'Addtime', |
|
'is_delete' => 'Is Delete', |
|
'is_price' => '是否发放佣金', |
|
'parent_id' => '用户上级ID', |
|
'first_price' => '一级佣金', |
|
'second_price' => '二级佣金', |
|
'third_price' => '三级佣金', |
|
'coupon_sub_price' => '优惠券抵消金额', |
|
'content' => 'Content', |
|
'is_offline' => '是否到店自提 0--否 1--是', |
|
'clerk_id' => '核销员user_id', |
|
'address_data' => '收货地址信息,json格式', |
|
'is_cancel' => '是否取消', |
|
'offline_qrcode' => '核销码', |
|
'before_update_price' => '修改前的价格', |
|
'shop_id' => '自提门店ID', |
|
'discount' => '会员折扣', |
|
'user_coupon_id' => '使用的优惠券ID', |
|
'integral' => '积分使用', |
|
'give_integral' => '是否发放积分【1=> 已发放 , 0=> 未发放】', |
|
'parent_id_1' => '用户上二级ID', |
|
'parent_id_2' => '用户上三级ID', |
|
'is_sale' => '是否超过售后时间', |
|
'words' => '商家留言', |
|
'version' => '版本', |
|
'express_price_1' => '减免的运费', |
|
'mch_id' => '入驻商户id', |
|
'is_recycle' => 'Is Recycle', |
|
'seller_comments' => '商家备注', |
|
'order_union_id' => '合并订单的id', |
|
'rebate' => '自购返利', |
|
'before_update_express' => '价格修改前的运费', |
|
'is_transfer' => '是否已转入商户账户:0=否,1=是', |
|
'type' => '0普通订单1大转盘订单', |
|
'share_price' => '发放佣金的金额', |
|
'is_show' => '是否显示 0--不显示 1--显示(软删除用)', |
|
]; |
|
} |
|
|
|
public function getOrderDetail() |
|
{ |
|
return $this->hasMany(OrderDetail::className(), ['order_id' => 'id'])->alias('od') |
|
->leftJoin(['g' => Goods::tableName()], 'g.id=od.goods_id')->select(['od.*', 'g.name', 'g.attr goods_attr']); |
|
} |
|
|
|
public function getDetail() |
|
{ |
|
return $this->hasMany(OrderDetail::className(), ['order_id' => 'id']); |
|
} |
|
|
|
public function getGoods() |
|
{ |
|
return $this->hasMany(Goods::className(), ['id' => 'goods_id'])->alias('g') |
|
->viaTable(OrderDetail::tableName() . ' od', ['order_id' => 'id']); |
|
} |
|
|
|
public function getShop() |
|
{ |
|
return $this->hasOne(Shop::className(), ['id' => 'shop_id']); |
|
} |
|
|
|
public function getClerk() |
|
{ |
|
return $this->hasOne(User::className(), ['id' => 'clerk_id']); |
|
} |
|
|
|
public function getOrderForm() |
|
{ |
|
return $this->hasMany(OrderForm::className(), ['order_id' => 'id'])->where(['is_delete' => Model::IS_DELETE_FALSE]); |
|
} |
|
|
|
public function getUser() |
|
{ |
|
return $this->hasOne(User::className(), ['id' => 'user_id']); |
|
} |
|
|
|
public function getRefund() |
|
{ |
|
return $this->hasMany(OrderRefund::className(), ['order_id' => 'id']); |
|
} |
|
|
|
public function beforeSave($insert) |
|
{ |
|
$this->content = \yii\helpers\Html::encode($this->content); |
|
return parent::beforeSave($insert); |
|
} |
|
|
|
public function afterSave($insert, $changedAttributes) |
|
{ |
|
$data = $insert ? json_encode($this->attributes) : json_encode($changedAttributes); |
|
CommonActionLog::storeActionLog('', $insert, $this->is_delete, $data, $this->id); |
|
} |
|
|
|
public function getPondDetail() |
|
{ |
|
return $this->hasOne(OrderDetail::className(), ['order_id' => 'id']); |
|
} |
|
|
|
public function getPondGoods() |
|
{ |
|
return $this->hasOne(Goods::className(), ['id' => 'goods_id'])->alias('g') |
|
->viaTable(OrderDetail::tableName() . ' od', ['order_id' => 'id']); |
|
} |
|
|
|
/** |
|
* @inheritdoc |
|
* @return ActiveQuery the newly created [[ActiveQuery]] instance. |
|
*/ |
|
public static function find() |
|
{ |
|
return Yii::createObject(MyActiveQuery::className(), [ |
|
get_called_class(), [ |
|
'myCondition' => [ |
|
'is_show' => Order::IS_SHOW_TRUE |
|
] |
|
] |
|
]); |
|
} |
|
}
|
|
|