| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- <?php
- namespace addons\Area\common\models;
- use common\enums\StatusEnum;
- use common\models\goods\Goods;
- use common\models\order\Order;
- use common\models\user\User;
- use Yii;
- /**
- * This is the model class for table "qimall_addons_area_commission_log".
- *
- * @property int $id ID
- * @property int $mall_id 商城id
- * @property int $user_id 会员id
- * @property int $status 状态[-1:删除;0:禁用;1启用]
- * @property int $created_at 创建时间
- * @property int $updated_at 修改时间
- * @property int $goods_id 商品ID
- * @property int $order_id 订单ID
- * @property string $order_no 订单编号
- * @property float $commission_rate 佣金比例
- * @property int $commission 佣金
- * @property int $commission_status 佣金状态0未发放,1已发放
- * @property int $area_level 代理等级
- * @property string $type 代理等级
- * @property int $direction 代理等级
- * @property int $order_detail_id 代理等级
- * @property int $is_fixed 代理等级
- */
- class AreaCommissionLog extends \common\models\base\BaseActiveRecord
- {
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return 'qimall_addons_area_commission_log';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'user_id', 'status', 'created_at', 'updated_at', 'goods_id', 'order_id',
- 'commission', 'commission_status', 'area_level', 'direction', 'order_detail_id', 'is_fixed'], 'integer'],
- [['commission_rate'], 'number'],
- [['order_no'], 'string', 'max' => 26],
- [['type'], 'string', 'max' => 20],
- ];
- }
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'mall_id' => 'Mall ID',
- 'user_id' => 'User ID',
- 'status' => 'Status',
- 'created_at' => 'Created At',
- 'updated_at' => 'Updated At',
- 'goods_id' => 'Goods ID',
- 'order_id' => 'Order ID',
- 'order_no' => 'Order No',
- 'commission_rate' => 'Commission Rate',
- 'commission' => 'Commission',
- 'commission_status' => 'Commission Status',
- 'area_level' => 'Area Level',
- ];
- }
- public function getUser()
- {
- return $this->hasOne(User::class, ['id' => 'user_id'])->select('id, username, mobile, nickname, avatar_url');
- }
- public function getOrder()
- {
- return $this->hasOne(Order::class, ['id' => 'order_id']);
- }
- public function getGoods()
- {
- return $this->hasOne(Goods::class, ['id' => 'goods_id']);
- }
- /**
- * @param array $wallet
- * @param array $order_detail
- * @param int $is_fixed
- * @param $rate
- * @param int $level
- * @return mixed|string|true|null
- */
- public static function setData(array $wallet, array $order_detail, int $is_fixed, $rate, int $level)
- {
- $model = new AreaCommissionLog();
- $model->mall_id = $wallet['mall_id'];
- $model->user_id = $wallet['user_id'];
- $model->goods_id = $order_detail['goods_id'];
- $model->order_id = $order_detail['order_id'];
- $model->order_no = $order_detail['order_no'];
- $model->commission = bcmul($wallet['money'], 100);
- $model->commission_status = $wallet['is_frozen'] == StatusEnum::ENABLED ? StatusEnum::DISABLED : StatusEnum::ENABLED;
- $model->commission_rate = $rate; // 通过商品与等级获取
- $model->is_fixed = $is_fixed; // 通过商品与等级获取
- $model->area_level = $level;
- $model->type = $wallet['wallet_type'];
- $model->order_detail_id = $wallet['source_table_id'];
- $model->direction = StatusEnum::ENABLED;
- $model->loadDefaultValues();
- if (!$model->save()) return $model->getErrorMessage();
- return true;
- }
- /**
- * 解冻
- * @param array $ids
- * @return void
- */
- public static function unfrozon(array $ids)
- {
- AreaCommissionLog::updateAll(['commission_status' => StatusEnum::ENABLED],
- ['and', ['order_detail_id' => $ids],
- ['commission_status' => StatusEnum::DISABLED],
- ['status' => StatusEnum::ENABLED]]);
- }
- /**
- * @param int $order_detail_id
- * @return void
- */
- public static function close(int $order_detail_id)
- {
- AreaCommissionLog::updateAll(['status' => StatusEnum::DELETE, 'direction' => StatusEnum::DISABLED],
- ['and', ['order_detail_id' => $order_detail_id],
- ['direction' => StatusEnum::DISABLED],
- ['status' => StatusEnum::ENABLED]]);
- }
- /**
- * @param array $order_detail_id
- * @return void
- */
- public static function closeAll(array $order_detail_id)
- {
- AreaCommissionLog::updateAll(['status' => StatusEnum::DELETE, 'direction' => StatusEnum::DISABLED],
- ['and', ['order_detail_id' => $order_detail_id],
- ['direction' => StatusEnum::DISABLED],
- ['status' => StatusEnum::ENABLED]]);
- }
- }
|