'ID', 'store_id' => '门店id', 'user_id' => '收益来源用户id', 'order_id' => '订单id', 'money' => '收益金额', 'status' => '状态0未发放1已发放', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'is_delete' => 'Is Delete', 'deleted_at' => 'Deleted At', 'card_id' => '银行卡', ]; } //状态0未分账1已发送分账2已发送完结3分账失败4分账完成5接口异常 public static function statusLabels() { return [ '0' => '待发放', '1' => '已发放', ]; } //计算门店收入并写入 public static function get_earnings($order) { $order_id = $order->id; if(empty($order)){ $msg = "订单不存在!"; \Yii::info("计算门店收入:{$order_id}->".$msg,'earnings'); return Model::asReturnError($msg); } if(empty($order->total_pay_price)){ \Yii::info("计算门店收入:{$order_id}->".'实际支付:'.$order->total_pay_price,'earnings'); return Model::asReturnSuccess('ok',['id' => 0,'card_id' => 0,'money' => 0]); } $total_pay_price = $order->total_pay_price; $store_id = $order->store_id; if(empty($store_id)){ $msg = "所属门店异常!"; \Yii::info("计算门店收入:{$order_id}->".$msg,'earnings'); return Model::asReturnError($msg); } $store = Store::findOne(['id' => $store_id,'is_delete'=>0]); if(empty($store)){ \Yii::info("计算门店收入:{$order_id}->{$store_id}门店不存在,无法计算门店收益",'earnings'); $msg = "所选门店不存在!"; return Model::asReturnError($msg); } if(empty($store->ratio)){ $msg = "{$store_id}-{$store->name}-门店收益比例未设置,无法计算门店收益"; \Yii::info("计算门店收入:{$order_id}->".$msg,'earnings'); return Model::asReturnSuccess('ok',['id' => 0,'card_id' => 0,'money' => 0]); } $card_id = 0; $ratio = $store->ratio / 100; $money = sprintf('%.2f', $total_pay_price * $ratio); if(empty($money) || $money <= 0){ $msg = "{$store_id}-{$store->name}-门店收益为{$money}"; \Yii::info("计算门店收入:{$order_id}->".$msg,'earnings'); return Model::asReturnSuccess('ok',['id' => 0,'card_id' => 0,'money' => 0]); } $earnings_all = StoreEarnings::find()->where(['store_id'=>$store_id,'user_id' => $order->user_id,'order_id' => $order->id,'is_delete' => 0])->exists(); if(!$earnings_all){ \Yii::$app->db->createCommand()->update(StoreEarnings::tableName(), ['is_delete' => 1], ['store_id'=>$store_id,'user_id' => $order->user_id,'order_id' => $order->id,'is_delete' => 0])->execute(); } $model = new StoreEarnings(); $model->store_id = $store_id; $model->user_id = $order->user_id; $model->order_id = $order->id; $model->money = $money; $model->status = 1; $model->created_at = time(); $model->updated_at = 0; $model->is_delete = 0; $model->deleted_at = 0; $model->card_id = $card_id; if(!$model->save()){ $model_r = Model::getModelErrorInfo($model); \Yii::info("计算门店收入:{$order_id}->".$model_r['msg'],'earnings'); return $model_r; } return Model::asReturnSuccess('ok',['id' => $model->id,'card_id' => $card_id,'money' => $money]); } }