UserShareCoin.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. /**
  3. * 厦门云联储网络科技有限公司
  4. * https://www.baokuaiyun.com
  5. * Copyright (c) 2023 爆块云 All rights reserved.
  6. */
  7. namespace app\models;
  8. use Yii;
  9. use app\constants\OptionSetting;
  10. /**
  11. * This is the model class for table "{{%user_share_coin}}".
  12. *
  13. * @property integer $id
  14. * @property integer $store_id
  15. * @property integer $order_id
  16. * @property integer $user_id
  17. * @property integer $type
  18. * @property integer $source
  19. * @property string $money
  20. * @property integer $is_delete
  21. * @property integer $created_at
  22. * @property integer $order_type
  23. * @property string $version
  24. * @property string $desc
  25. */
  26. class UserShareCoin extends \yii\db\ActiveRecord
  27. {
  28. const SOURCE_NAME = [
  29. 0=>'--',
  30. 1=>'一级分销',
  31. 2=>'二级分销',
  32. 3=>'三级分销',
  33. 4=>'自购返利',
  34. 5=>'订单佣金',
  35. 6=>'临时关系',
  36. 7=>'推广佣金',
  37. 8=>'一级返现奖励',
  38. 9=>'二级返现奖励',
  39. 10=>'后台修改',
  40. ];
  41. /**
  42. * @inheritdoc
  43. */
  44. public static function tableName()
  45. {
  46. return '{{%user_share_coin}}';
  47. }
  48. const LEVEL_ORDER_TYPE = 4;
  49. /**
  50. * @inheritdoc
  51. */
  52. public function rules()
  53. {
  54. return [
  55. [['store_id', 'order_id', 'user_id', 'type', 'source', 'is_delete', 'created_at', 'order_type'], 'integer'],
  56. [['money'], 'number'],
  57. [['version', 'desc'], 'string', 'max' => 255],
  58. ];
  59. }
  60. /**
  61. * @inheritdoc
  62. */
  63. public function attributeLabels()
  64. {
  65. return [
  66. 'id' => 'ID',
  67. 'store_id' => 'Store ID',
  68. 'order_id' => '订单ID',
  69. 'user_id' => '用户ID',
  70. 'type' => '类型 0--佣金 1--提现 2--股东',
  71. 'source' => '佣金来源 1--一级分销 2--二级分销 3--三级分销 4--自购返利 5--订单佣金 6--临时佣金',
  72. 'money' => '金额',
  73. 'is_delete' => 'Is Delete',
  74. 'created_at' => 'Addtime',
  75. 'order_type' => '订单类型 0--商城订单 1--秒杀订单 2--拼团订单 3--预约订单 4--会员订单',
  76. 'version' => '版本',
  77. ];
  78. }
  79. public function afterSave($insert, $changedAttributes)
  80. {
  81. parent::afterSave($insert, $changedAttributes);
  82. if (!cache_lock(['ShareLevelJob', $this->store_id, $this->user_id], 30)) {
  83. \queue_push(new \app\jobs\ShareLevelJob(['store_id' => $this->store_id, 'user_id' => $this->user_id]), 30, 1);
  84. }
  85. }
  86. public static function set($money, $user_id, $order_id, $type, $source = 1, $store_id = 0, $order_type = 0, $desc = '')
  87. {
  88. $model = new UserShareCoin();
  89. $model->store_id = $store_id;
  90. $model->order_id = $order_id;
  91. $model->user_id = $user_id;
  92. $model->type = $type;
  93. $model->source = $source;
  94. $model->money = $money;
  95. $model->is_delete = 0;
  96. $model->created_at = time();
  97. $model->order_type = $order_type;
  98. $model->version = cyy_version();
  99. $model->desc = $desc;
  100. if (!$model->save()) {
  101. //debug_log($model->errors, 'user_share_coin.log');
  102. }
  103. }
  104. public function getStore(){
  105. return $this->hasOne(Store::className(), ['id'=>'store_id']);
  106. }
  107. public function getOrder(){
  108. return $this->hasOne(Order::className(), ['id'=>'order_id']);
  109. }
  110. public static function getSourceName($source, $store_id)
  111. {
  112. $name = self::SOURCE_NAME[$source] ?? '--';
  113. if (in_array($source, [1, 2, 3])) {
  114. $option = Option::get('share_money_setting', $store_id, OptionSetting::SHARE_GROUP_NAME);
  115. if ($option) {
  116. $data = json_decode($option['value'], true);
  117. if ($source == 1) {
  118. $name = $data['level_one']['text'] ?? $name;
  119. }
  120. if ($source == 2) {
  121. $name = $data['level_two']['text'] ?? $name;
  122. }
  123. if ($source == 3) {
  124. $name = $data['level_three']['text'] ?? $name;
  125. }
  126. }
  127. }
  128. return $name;
  129. }
  130. }