diff --git a/plugins/team-dividend/src/jobs/NewUpgrateJob.php b/plugins/team-dividend/src/jobs/NewUpgrateJob.php index 77632555..76e39856 100644 --- a/plugins/team-dividend/src/jobs/NewUpgrateJob.php +++ b/plugins/team-dividend/src/jobs/NewUpgrateJob.php @@ -16,6 +16,7 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Redis; use Illuminate\Support\Str; use Yunshop\CollectionRoom\models\CollectionRoomModel; @@ -24,6 +25,7 @@ use Yunshop\TeamDividend\models\TeamDividendAgencyModel; use Yunshop\TeamDividend\models\TeamDividendLevelModel; use Yunshop\TeamDividend\models\TeamDividendLevelUpgrade; use Yunshop\TeamDividend\models\TeamUpgradeReward; +use Yunshop\TeamDividend\models\Uplog; use Yunshop\TeamDividend\services\UpgradeService; use Yunshop\TeamDividend\services\upgrate\AgentsService; use Yunshop\TeamDividend\services\upgrate\UpgrateConditionService; @@ -117,7 +119,7 @@ class NewUpgrateJob implements ShouldQueue foreach ($upgradeLevels as $level) { // \Log::debug('经销商升级 - 当前等级信息:',$level->toArray()); // 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级) - $hasNum = (int)TeamDividendAgencyModel::uniacid()->where('level',$level->id)->count(); + $hasNum = (int)Uplog::uniacid()->where('after_level_id',$level->id)->count(DB::raw('DISTINCT(uid)')); // \Log::debug('经销商升级 - 数量限制比较:',[$hasNum,(int)$level->number_limit]); if((int)$level->number_limit <= $hasNum && (int)$level->number_limit > 0) continue; diff --git a/plugins/team-dividend/src/observers/DealerObserver.php b/plugins/team-dividend/src/observers/DealerObserver.php index acb24559..0303d4ab 100644 --- a/plugins/team-dividend/src/observers/DealerObserver.php +++ b/plugins/team-dividend/src/observers/DealerObserver.php @@ -6,10 +6,12 @@ namespace Yunshop\TeamDividend\observers; use app\common\observers\BaseObserver; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\DB; use Yunshop\CollectionRoom\models\CollectionRoomModel; use Yunshop\TeamDividend\events\LevelChangeEvent; use Yunshop\TeamDividend\models\TeamDividendAgencyModel; use Yunshop\TeamDividend\models\TeamDividendLevelModel; +use Yunshop\TeamDividend\models\Uplog; use Yunshop\WeightValue\models\WeightValue; class DealerObserver extends BaseObserver{ @@ -21,7 +23,8 @@ class DealerObserver extends BaseObserver{ */ event(new LevelChangeEvent($model)); // 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级) - $hasNum = (int)TeamDividendAgencyModel::uniacid()->where('uid','!=',$model->uid)->where('level',$model->level)->count(); + // $hasNum = (int)TeamDividendAgencyModel::uniacid()->where('uid','!=',$model->uid)->where('level',$model->level)->count(); + $hasNum = (int)Uplog::uniacid()->where('after_level_id',$model->level)->where('uid','!=',$model->uid)->count(DB::raw('DISTINCT(uid)')); $levelNumberLimit = (int)TeamDividendLevelModel::uniacid()->where('id',$model->level)->value('number_limit'); if((int)$levelNumberLimit <= $hasNum && (int)$levelNumberLimit > 0) return false; } @@ -33,7 +36,8 @@ class DealerObserver extends BaseObserver{ */ event(new LevelChangeEvent($model)); // 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级) - $hasNum = (int)TeamDividendAgencyModel::uniacid()->where('uid','!=',$model->uid)->where('level',$model->level)->count(); + // $hasNum = (int)TeamDividendAgencyModel::uniacid()->where('uid','!=',$model->uid)->where('level',$model->level)->count(); + $hasNum = (int)Uplog::uniacid()->where('after_level_id',$model->level)->where('uid','!=',$model->uid)->count(DB::raw('DISTINCT(uid)')); $levelNumberLimit = (int)TeamDividendLevelModel::uniacid()->where('id',$model->level)->value('number_limit'); if((int)$levelNumberLimit <= $hasNum && (int)$levelNumberLimit > 0) return false; diff --git a/plugins/weight-value/src/admin/IndexController.php b/plugins/weight-value/src/admin/IndexController.php index 789ae675..585fba52 100644 --- a/plugins/weight-value/src/admin/IndexController.php +++ b/plugins/weight-value/src/admin/IndexController.php @@ -4,7 +4,9 @@ namespace Yunshop\WeightValue\admin; use app\common\components\BaseController; use app\common\helpers\PaginationHelper; use app\common\models\Order; +use Illuminate\Support\Facades\DB; use Yunshop\TeamDividend\models\TeamDividendLevelModel; +use Yunshop\TeamDividend\models\Uplog; use Yunshop\WeightValue\models\WeightValue; use Yunshop\WeightValue\models\WeightValueLog; use app\common\facades\Setting; @@ -132,7 +134,13 @@ class IndexController extends BaseController{ // (new WeightValue())->upgradeGiveInit(1,1); // (new WeightValue())->giveInit(Order::find(134)); + // $hasNum = Uplog::uniacid() + // ->select(['uid']) + // ->where('after_level_id',6) + // ->where('uid','!=',4) + // ->count(DB::raw('DISTINCT(uid)')); + // debug($hasNum); debug("调试中..."); }