| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?php
- namespace addons\HuijuBill\common\models;
- use addons\HuijuBill\common\enums\StatusEnum;
- use common\models\order\OrderRefund;
- use Yii;
- use yii\db\ActiveRecord;
- /**
- * This is the model class for table "{{%addons_huiju_bill_order_refund}}".
- *
- * @property int $id
- * @property int $mall_id
- * @property int $refund_id 退款订单ID
- * @property string $sys_order_no 中台退款订单号
- * @property string $trx_no 汇聚退款订单号
- * @property string $out_trade_no 支付流水订单号
- * @property int $status 100:成功,101:失败,102:已创建
- * @property string $refund_order_no 售后订单号
- * @property float $refund_amount 退款金额
- * @property int $refund_at 退款成功时间
- * @property int $updated_at
- * @property int $created_at
- */
- class OrderRefundModel extends ActiveRecord
- {
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_huiju_bill_order_refund}}';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'refund_id', 'sys_order_no', 'trx_no', 'out_trade_no', 'refund_order_no'], 'required'],
- [['mall_id', 'refund_id', 'status', 'refund_at', 'updated_at', 'created_at'], 'integer'],
- [['refund_amount'], 'number'],
- [['sys_order_no', 'trx_no', 'out_trade_no', 'refund_order_no'], 'string', 'max' => 32],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => 'Mall ID',
- 'refund_id' => 'Refund ID',
- 'sys_order_no' => 'Sys Order No',
- 'trx_no' => 'Trx No',
- 'out_trade_no' => 'Out Trade No',
- 'status' => 'Status',
- 'refund_order_no' => 'Refund Order No',
- 'refund_amount' => 'Refund Amount',
- 'refund_at' => 'Refund At',
- 'updated_at' => 'Updated At',
- 'created_at' => 'Created At',
- ];
- }
- /**
- * 新增退款记录
- *
- * @param array $data
- * [
- * 'mall_id' => 'Mall ID',
- * 'refund_id' => 'Refund ID',
- * 'sys_order_no' => 'Sys Order No',
- * 'trx_no' => 'Trx No',
- * 'refund_order_no' => 'Refund Order No',
- * 'out_trade_no' => 'Out Trade No',
- * 'refund_amount' => 'Refund Amount',
- * ]
- *
- * @return boolean
- */
- public static function addLog($data = [])
- {
- $data['created_at'] = $data['updated_at'] = time();
- empty($data['status']) && $data['status'] = StatusEnum::STATUS_102;
- if (
- isset($data['refund_id']) &&
- self::find()->where(['refund_id' => $data['refund_id']])->select('id')->one()
- ) {
- return true;
- }
-
- $model = new self();
- $model->load($data, '');
- return $model->save();
- }
- /**
- * 商城售后订单
- *
- * @return ActiveQuery
- */
- public function getMallOrderRefund()
- {
- return $this->hasOne(OrderRefund::class, ['id' => 'refund_id']);
- }
- /**
- * 设置为退款成功
- *
- * @return boolean
- */
- public function success()
- {
- $this->updated_at = $this->refund_at = time();
- $this->status = StatusEnum::STATUS_100;
- return $this->save();
- }
- /**
- * 设置为退款失败
- *
- * @return boolean
- */
- public function fail()
- {
- $this->updated_at = time();
- $this->status = StatusEnum::STATUS_101;
- return $this->save();
- }
- }
|