feat(壁纸): 三级默认壁纸——sch_settings.wallpaper_url 两级配置 + getUserSettings 兜底链(个人未自选:本校默认→平台默认→池内最新)(LOGO文字与主题JSON化增补)
build / build-push (push) Successful in 1m13s
build / build-push (push) Successful in 1m13s
This commit is contained in:
@@ -16,6 +16,7 @@ import com.yunhai.userhome.enums.LightAppGroup;
|
||||
import com.yunhai.userhome.enums.LinkOpenType;
|
||||
import com.yunhai.userhome.model.AppIconEntryVo;
|
||||
import com.yunhai.userhome.service.AppIconKeyService;
|
||||
import com.yunhai.userhome.service.ISchSettingsService;
|
||||
import com.yunhai.userhome.service.IUserCurrentRoleService;
|
||||
import com.yunhai.userhome.service.IUserSettingsService;
|
||||
import com.yunhai.userhome.service.UsedAppService;
|
||||
@@ -52,6 +53,9 @@ public class UserSettingsController {
|
||||
@Autowired
|
||||
private IUserSettingsService userSettingsService;
|
||||
|
||||
@Autowired
|
||||
private ISchSettingsService schSettingsService;
|
||||
|
||||
@Autowired
|
||||
private IUserCurrentRoleService userCurrentRoleService;
|
||||
|
||||
@@ -305,13 +309,20 @@ public class UserSettingsController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 兜底壁纸(用户未设置时):本地学校壁纸第一张 → 超管全局壁纸第一张。
|
||||
* 兜底壁纸(用户未自选时,壁纸三级默认轮 2026-10-09):本校默认(sch_settings.wallpaper_url,管理员选定)
|
||||
* → 平台默认(schId=0 行)→ 本地学校壁纸池最新一张 → 平台池最新一张(历史兜底,两级皆未配置时保持原体验)。
|
||||
* <p>学校壁纸完全本地管理(wallpaper 表 type=1),不再依赖跨仓 schConfig。</p>
|
||||
*/
|
||||
private String resolveFallbackWallpaper(BoaUser authUserWithDept, Integer schId) {
|
||||
// 1/2. 管理员选定的默认壁纸(本校 → 平台 级联,读侧 LayerValue)
|
||||
ISchSettingsService.LayerValue wallHit = schSettingsService.readWallpaperWithFallback(schId);
|
||||
if (wallHit.getValue() != null) {
|
||||
return wallHit.getValue();
|
||||
}
|
||||
// 3/4. 历史兜底:壁纸池最新(校 type=1 → 平台 type=0)
|
||||
List<Wallpaper> wallList = userSettingsService.findWallList(authUserWithDept.getId());
|
||||
if (schId != null) {
|
||||
// 1. 本地学校壁纸第一张(type=1,取最新)
|
||||
// 3. 本地学校壁纸第一张(type=1,取最新)
|
||||
Optional<Wallpaper> schWall = wallList.stream()
|
||||
.filter(w -> w.getType() != null && w.getType() == 1
|
||||
&& w.getSchId() != null && w.getSchId().equals(schId))
|
||||
@@ -320,7 +331,7 @@ public class UserSettingsController {
|
||||
return FILE_WEB_PATH + schWall.get().getWallpaperUrl().replace("/upload", "");
|
||||
}
|
||||
}
|
||||
// 2. 超管全局壁纸第一张(type=0,取最新)
|
||||
// 4. 超管全局壁纸第一张(type=0,取最新)
|
||||
Optional<Wallpaper> sysWall = wallList.stream()
|
||||
.filter(w -> w.getType() != null && w.getType() == 0)
|
||||
.max(Comparator.comparing(Wallpaper::getId));
|
||||
|
||||
Reference in New Issue
Block a user