ConsumptionGrowthValueJob.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. /**
  3. * ConsumptionGrowthValueJob.php
  4. * todo 文件描述
  5. * Created on 2025/4/19 10:19
  6. * @author: hankaige
  7. */
  8. namespace app\jobs;
  9. use app\models\Level;
  10. use app\models\Store;
  11. use app\models\User;
  12. use app\models\UserGrowthValueLog;
  13. use yii\base\BaseObject;
  14. use yii\queue\JobInterface;
  15. class ConsumptionGrowthValueJob extends BaseObject implements JobInterface
  16. {
  17. public function execute($queue)
  18. {
  19. $store_list = Store::find()->where(['is_delete' => 0])->select('id, name')->all();
  20. foreach($store_list as $store) {
  21. try {
  22. // 获取当前商城的会员等级 且升级条件是成长值的
  23. $levels = Level::find()->where(['store_id' => $store->id,'status' => Level::STATUS_TRUE,'is_delete'=>Level::NOT_DELETE,'upgrade_conditions' => Level::UPGRADE_CONDITIONS_GROWTH])->andWhere(['>','growth_refund_value',0])->all();
  24. // 查询当前会员等级的所有用户
  25. foreach($levels as $level){
  26. $userList = User::find()->where(['store_id' => $store->id, 'level' => $level->level, 'is_delete' => User::USER_NOT_DELETE])->all();
  27. // 扣除对应会员等级用户的成长值
  28. foreach($userList as $user){
  29. if($user->growth_value > 0){
  30. UserGrowthValueLog::setLog($store->id, $user->id, UserGrowthValueLog::LOG_TYPE_SUB, $level->growth_refund_value,UserGrowthValueLog::TYPE_CON,"每日消耗{$level->growth_refund_value}成长值");
  31. }
  32. }
  33. }
  34. }catch (\Exception $e){
  35. }
  36. }
  37. }
  38. }