StoreBoss.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. namespace addons\Store\common\models;
  3. use common\models\base\BaseActiveRecord;
  4. use common\models\user\User;
  5. use Yii;
  6. /**
  7. * This is the model class for table "{{%addons_store_boss}}".
  8. *
  9. * @property int $id
  10. * @property int $mall_id
  11. * @property int $user_id
  12. * @property int $store_id
  13. * @property string|null $remarks 备注
  14. * @property int $status
  15. * @property int $created_at 创建时间
  16. * @property int $deleted_at 删除时间
  17. * @property int $updated_at 修改时间
  18. * @property int $upgrade_level_at 分销商等级升级时间
  19. * @property float $total_price 累计佣金
  20. * @property float $frozen_price 冻结佣金
  21. * @property string|null $delete_reason 删除原因
  22. * @property int $upgrade_status 1条件升级 2 购买指定商品升级 3手动升级
  23. * @property int $level 经销商等级
  24. * @property float $extra_price 额外分红金额
  25. * @property User $user;
  26. */
  27. class StoreBoss extends BaseActiveRecord
  28. {
  29. const UPGRADE_STATUS_CONDITION = 1;
  30. const UPGRADE_STATUS_GOODS = 2;
  31. const UPGRADE_STATUS_MANUAL = 3;
  32. /**
  33. * {@inheritdoc}
  34. */
  35. public static function tableName()
  36. {
  37. return '{{%addons_store_boss}}';
  38. }
  39. /**
  40. * {@inheritdoc}
  41. */
  42. public function rules()
  43. {
  44. return [
  45. [['mall_id', 'user_id'], 'required'],
  46. [['mall_id', 'user_id', 'status', 'created_at', 'deleted_at', 'updated_at', 'upgrade_level_at', 'upgrade_status', 'level', 'store_id'], 'integer'],
  47. [['remarks', 'delete_reason'], 'string'],
  48. [['total_price', 'frozen_price', 'extra_price'], 'number'],
  49. ];
  50. }
  51. /**
  52. * {@inheritdoc}
  53. */
  54. public function attributeLabels()
  55. {
  56. return [
  57. 'id' => 'ID',
  58. 'mall_id' => 'Mall ID',
  59. 'user_id' => 'User ID',
  60. 'store_id' => 'store id',
  61. 'remarks' => '备注',
  62. 'status' => 'Status',
  63. 'created_at' => '创建时间',
  64. 'deleted_at' => '删除时间',
  65. 'updated_at' => '修改时间',
  66. 'upgrade_level_at' => '分销商等级升级时间',
  67. 'total_price' => '累计佣金',
  68. 'frozen_price' => '冻结佣金',
  69. 'delete_reason' => '删除原因',
  70. 'upgrade_status' => '1条件升级 2 购买指定商品升级 3手动升级',
  71. 'level' => '经销商等级',
  72. 'extra_price' => '额外分红金额',
  73. ];
  74. }
  75. public function getUser()
  76. {
  77. return $this->hasOne(User::class, ['id' => 'user_id']);
  78. }
  79. public function delete()
  80. {
  81. if (!$this->validate()) {
  82. return $this->responseErrorInfo();
  83. }
  84. $store = \Yii::$app->session->get('o2o');
  85. /* @var Boss $boss */
  86. $boss = StoreBoss::find()->with(['userInfo'])
  87. ->where(['id' => $this->id, 'is_delete' => 0, 'mall_id' => $store['mall_id']])->one();
  88. if (!$boss) {
  89. return [
  90. 'code' => 1,
  91. 'msg' => '分销商不存在'
  92. ];
  93. }
  94. $t = \Yii::$app->db->beginTransaction();
  95. $boss->is_delete = 1;
  96. $boss->delete_reason = $this->reason;
  97. $boss->deleted_at = time();
  98. if ($boss->save()) {
  99. $user = User::findOne(['id' => $boss->user_id]);
  100. $user->is_inviter = 0;
  101. $parentId = $boss->user->parent_id;
  102. if ($user->save()) {
  103. User::updateAll(
  104. ['parent_id' => 0],
  105. ['or',
  106. ['parent_id' => $boss->user_id],
  107. ['user_id' => $boss->user_id]
  108. ]
  109. );
  110. $t->commit();
  111. /* \Yii::$app->trigger(HandlerRegister::CHANGE_DISTRIBUTION_MEMBER, new BossMemberEvent([
  112. 'mall' => \Yii::$app->mall,
  113. 'beforeParentId' => $parentId,
  114. 'parentId' => 0,
  115. 'userId' => $boss->user_id
  116. ]));*/
  117. return [
  118. 'code' => 0,
  119. 'msg' => '删除成功'
  120. ];
  121. } else {
  122. $t->rollBack();
  123. return $this->responseErrorInfo($user);
  124. }
  125. } else {
  126. $t->rollBack();
  127. return $this->responseErrorInfo($boss);
  128. }
  129. }
  130. }