推送项目重构代码
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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> {
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user