修改:经销商限制的人数由当前人数修改为包含以前成为过的人数

This commit is contained in:
wuhui_zzw 2023-10-24 11:30:45 +08:00
parent d4cab66f3b
commit ad141178db
3 changed files with 17 additions and 3 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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("调试中...");
}