LuckyGroupActivityStatistics.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace addons\LuckyGroup\common\models;
  3. use common\enums\StatusEnum;
  4. use Yii;
  5. use yii\db\Exception;
  6. /**
  7. * This is the model class for table "{{%addons_lucky_group_activity_statistics}}".
  8. *
  9. * @property int $id
  10. * @property int $mall_id
  11. * @property int $activity_id 活动 id
  12. * @property float $group_amounts 累计成团金额
  13. * @property int $group_peoples 累计成团人数
  14. * @property int $group_periods 成团期数
  15. * @property int $group_failed_times 所有会员累计失败次数
  16. * @property float $deplete_balances 累计消耗余额
  17. * @property float $deplete_scores 累计消耗积分
  18. * @property float $win_reward_balances 累计拼中奖励余额
  19. * @property float $win_reward_scores 累计拼中奖励积分
  20. * @property float $distribute_bonus_pool_amounts 累计分配奖金池金额
  21. * @property int $status 状态[-1:删除;0:禁用;1启用]
  22. * @property int $created_at
  23. * @property int $updated_at
  24. */
  25. class LuckyGroupActivityStatistics extends \common\models\base\BaseActiveRecord
  26. {
  27. /**
  28. * {@inheritdoc}
  29. */
  30. public static function tableName()
  31. {
  32. return '{{%addons_lucky_group_activity_statistics}}';
  33. }
  34. /**
  35. * {@inheritdoc}
  36. */
  37. public function rules()
  38. {
  39. return [
  40. [['mall_id', 'activity_id'], 'required'],
  41. [['mall_id', 'activity_id', 'group_peoples', 'group_periods', 'group_failed_times', 'status', 'created_at', 'updated_at'], 'integer'],
  42. [['group_amounts', 'deplete_balances', 'deplete_scores', 'win_reward_balances', 'win_reward_scores', 'distribute_bonus_pool_amounts'], 'number'],
  43. ];
  44. }
  45. /**
  46. * {@inheritdoc}
  47. */
  48. public function attributeLabels()
  49. {
  50. return [
  51. 'id' => 'ID',
  52. 'mall_id' => 'Mall ID',
  53. 'activity_id' => '活动 id',
  54. 'group_amounts' => '累计成团金额',
  55. 'group_peoples' => '累计成团人数',
  56. 'group_periods' => '成团期数',
  57. 'group_failed_times' => '所有会员累计失败次数',
  58. 'deplete_balances' => '累计消耗余额',
  59. 'deplete_scores' => '累计消耗积分',
  60. 'win_reward_balances' => '累计拼中奖励余额',
  61. 'win_reward_scores' => '累计拼中奖励积分',
  62. 'distribute_bonus_pool_amounts' => '累计分配奖金池金额',
  63. 'status' => '状态[-1:删除;0:禁用;1启用]',
  64. 'created_at' => 'Created At',
  65. 'updated_at' => 'Updated At',
  66. ];
  67. }
  68. public static function setData(int $mall_id, array $data)
  69. {
  70. if (!empty($data['id'])) {
  71. $model = self::find()->where(['mall_id' => $mall_id, 'status' => StatusEnum::ENABLED, 'id' => $data['id']])->one();
  72. if (empty($model)) {
  73. self::$static_error = '数据异常';
  74. return false;
  75. }
  76. } else {
  77. $model = self::find()->where(['mall_id' => $mall_id, 'status' => StatusEnum::ENABLED, 'activity_id' => $data['activity_id']])->one();
  78. if (empty($model)) {
  79. $model = new self();
  80. $model->loadDefaultValues();
  81. $model->mall_id = $mall_id;
  82. $model->status = StatusEnum::ENABLED;
  83. unset($data['id']);
  84. }
  85. }
  86. foreach ($data as $key => $val) {
  87. $model->$key = $val;
  88. }
  89. // dd($model);
  90. if (!$model->save()) {
  91. self::$static_error = '保存数据失败:' . $model->getErrorMessage();
  92. return false;
  93. }
  94. return $model;
  95. }
  96. public static function updateStatistics($params)
  97. {
  98. try {
  99. if (empty($params['activity_id']) || empty($params['mall_id'])) return true;
  100. $model = self::findOne(['activity_id' => $params['activity_id']]);
  101. if (empty($model)) {
  102. $model = new self();
  103. $model->loadDefaultValues();
  104. $model->mall_id = $params['mall_id'];
  105. $model->activity_id = $params['activity_id'];
  106. $model->status = StatusEnum::ENABLED;
  107. }
  108. $model->group_amounts += $params['group_amounts'];
  109. $model->group_peoples += $params['group_peoples'];
  110. $model->group_periods += $params['group_periods'];
  111. $model->deplete_balances += $params['deplete_balances'];
  112. $model->deplete_scores += $params['deplete_scores'];
  113. $model->win_reward_balances += $params['win_reward_balances'];
  114. $model->win_reward_scores += $params['win_reward_scores'];
  115. $model->group_failed_times += $params['group_failed_times'];
  116. $model->distribute_bonus_pool_amounts += $params['distribute_bonus_pool_amounts'];
  117. $res = $model->save();
  118. if ($res == false) throw new Exception($model->getErrorMessage());
  119. return true;
  120. } catch (\Exception $e) {
  121. var_dump($e->getMessage());
  122. return false;
  123. }
  124. }
  125. }