OilLevel.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace app\common\model\user;
  3. use app\common\model\BaseModel;
  4. class OilLevel extends BaseModel
  5. {
  6. public static function tablePk(): ?string
  7. {
  8. return 'id';
  9. }
  10. public static function tableName(): string
  11. {
  12. return 'award_integral_price';
  13. }
  14. //买节能油商品的时候触发
  15. public function checkLevel($uid, $pass = [])
  16. {
  17. if (in_array($uid, $pass)) return true;
  18. $user = User::find($uid);
  19. $group_users = get_group_user($user);
  20. //Todo 获取在$group_users内所有用户的消费情况
  21. $achievement = 0;
  22. //获取该用户购买过的节能油商品的全部订单
  23. $old_level = self::where('id', $user['level'])->find();
  24. if (!$old_level) $old_level = [
  25. 'grade' => 0,
  26. 'name' => '普通会员'
  27. ];
  28. $level = self::where('grade', '>', $old_level['grade'])->where('achievement', '<=', $achievement)
  29. ->order('grade', 'desc')->find();
  30. if ($level) {
  31. $user->level = $level['id'];
  32. $user->save();
  33. }
  34. $pass[] = $uid;
  35. $spread = User::where('uid', $user['spread_uid'])->find();
  36. if ($spread) return $this->checkLevel($spread['id'], $pass);
  37. return true;
  38. }
  39. }