推送项目重构代码

This commit is contained in:
2026-05-29 19:52:32 +08:00
parent 95141d0e1f
commit 3dafaceef2
65 changed files with 3762 additions and 583 deletions

View File

@@ -0,0 +1,24 @@
package com.ruoyi.system.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户工作台布局 sys_user_dashboard
*
* @author wangyu
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_user_dashboard")
public class SysUserDashboard extends BaseEntity {
@TableId(value = "user_id")
private Long userId;
/** 布局 JSON: [{i,x,y,w,h,widgetKey,config}] */
private String layoutJson;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.system.mapper;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.system.domain.SysUserDashboard;
/**
* 用户工作台布局 数据层
*
* @author wangyu
*/
public interface SysUserDashboardMapper extends BaseMapperPlus<SysUserDashboardMapper, SysUserDashboard, SysUserDashboard> {
}

View File

@@ -0,0 +1,24 @@
package com.ruoyi.system.service;
/**
* 用户工作台布局 服务层
*
* @author wangyu
*/
public interface ISysUserDashboardService {
/** 读取指定用户布局;为空则返回默认布局 */
String getLayout(Long userId);
/** 保存指定用户布局 */
void saveLayout(Long userId, String layoutJson);
/** 重置为默认布局(删除用户自定义记录) */
void resetLayout(Long userId);
/** 读取系统默认布局 */
String getDefaultLayout();
/** 保存系统默认布局(管理员) */
void saveDefaultLayout(String layoutJson);
}

View File

@@ -0,0 +1,67 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.domain.SysUserDashboard;
import com.ruoyi.system.mapper.SysUserDashboardMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserDashboardService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* 用户工作台布局 服务实现
*
* @author wangyu
*/
@Service
@RequiredArgsConstructor
public class SysUserDashboardServiceImpl implements ISysUserDashboardService {
private static final String DEFAULT_LAYOUT_KEY = "sys.dashboard.defaultLayout";
private static final String FALLBACK_LAYOUT = "[]";
private final SysUserDashboardMapper dashboardMapper;
private final ISysConfigService configService;
@Override
public String getLayout(Long userId) {
SysUserDashboard entity = dashboardMapper.selectById(userId);
if (entity != null && entity.getLayoutJson() != null && !entity.getLayoutJson().isEmpty()) {
return entity.getLayoutJson();
}
return getDefaultLayout();
}
@Override
public void saveLayout(Long userId, String layoutJson) {
SysUserDashboard exist = dashboardMapper.selectById(userId);
if (exist == null) {
SysUserDashboard entity = new SysUserDashboard();
entity.setUserId(userId);
entity.setLayoutJson(layoutJson);
dashboardMapper.insert(entity);
} else {
exist.setLayoutJson(layoutJson);
dashboardMapper.updateById(exist);
}
}
@Override
public void resetLayout(Long userId) {
dashboardMapper.deleteById(userId);
}
@Override
public String getDefaultLayout() {
String value = configService.selectConfigByKey(DEFAULT_LAYOUT_KEY);
return (value == null || value.isEmpty()) ? FALLBACK_LAYOUT : value;
}
@Override
public void saveDefaultLayout(String layoutJson) {
SysConfig config = new SysConfig();
config.setConfigKey(DEFAULT_LAYOUT_KEY);
config.setConfigValue(layoutJson);
configService.updateConfig(config);
}
}