This commit is contained in:
Your Name
2026-08-25 15:05:49 +08:00
parent 381fe65367
commit b5b14516a1
3 changed files with 12 additions and 1 deletions
@@ -550,12 +550,15 @@ async function loadOverview() {
}
function openPoolDialog(pool?: any) {
const selectableMemberIds = new Set(overview.member_options.map((member) => Number(member.id)))
Object.assign(poolForm, pool ? {
id: Number(pool.id),
name: pool.name,
fallback_url: pool.fallback_url || '',
status: Number(pool.status),
member_admin_ids: Array.isArray(pool.member_admin_ids) ? pool.member_admin_ids.map(Number) : [],
member_admin_ids: Array.isArray(pool.member_admin_ids)
? pool.member_admin_ids.map(Number).filter((memberId: number) => selectableMemberIds.has(memberId))
: [],
skip_verify: Number(pool.skip_verify) === 1 ? 1 : 0,
main_url: pool.main_url || ''
} : {
@@ -758,6 +758,7 @@ class WecomPromotionLogic
}
$query = Db::name('admin')->alias('a')
->whereNull('a.delete_time')
->where('a.disable', 0)
->where('a.work_wechat_userid', '<>', '');
if ($visibleIds !== null) {
$query->whereIn('a.id', $visibleIds);
@@ -32,6 +32,13 @@ foreach ($overview['member_options'] as $member) {
throw new RuntimeException('member_options 缺少树形下拉展示部门');
}
}
$memberIds = array_values(array_unique(array_map('intval', array_column($overview['member_options'], 'id'))));
if ($memberIds !== []) {
$disabledMemberCount = (int) Db::name('admin')->whereIn('id', $memberIds)->where('disable', '<>', 0)->count();
if ($disabledMemberCount > 0) {
throw new RuntimeException('member_options 返回了已禁用的成员');
}
}
if (!is_array($overview['department_options'])) {
throw new RuntimeException('department_options 必须是部门树数组');
}