diff --git a/das/src/main/java/com/das/common/config/SysAuthorityIds.java b/das/src/main/java/com/das/common/config/SysAuthorityIds.java new file mode 100644 index 00000000..e4c87dba --- /dev/null +++ b/das/src/main/java/com/das/common/config/SysAuthorityIds.java @@ -0,0 +1,19 @@ +package com.das.common.config; + +/** + * 系统权限ID定义列表 + */ +public class SysAuthorityIds { + /** + * 系统管理权限 + */ + public static final Long SYS_AUTHORITY_ID_ADMIN = 1000L; + /** + * 设备台账维护权限 + */ + public static final Long SYS_AUTHORITY_ID_DEVICE_MGR = 1001L; + /** + * 设备台账浏览权限 + */ + public static final Long SYS_AUTHORITY_ID_DEVICE_VIEW = 1002L; +} diff --git a/das/src/main/java/com/das/modules/auth/mapper/SysAuthorityMapper.java b/das/src/main/java/com/das/modules/auth/mapper/SysAuthorityMapper.java index c9a079a7..86706f78 100644 --- a/das/src/main/java/com/das/modules/auth/mapper/SysAuthorityMapper.java +++ b/das/src/main/java/com/das/modules/auth/mapper/SysAuthorityMapper.java @@ -3,6 +3,8 @@ package com.das.modules.auth.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.das.modules.auth.entity.SysAuthority; +import java.util.List; + /** *

@@ -13,4 +15,7 @@ import com.das.modules.auth.entity.SysAuthority; */ public interface SysAuthorityMapper extends BaseMapper { + List selectByAuthorities(List list); + + void batchInsert(List list); } diff --git a/das/src/main/java/com/das/modules/auth/service/SysAuthorityService.java b/das/src/main/java/com/das/modules/auth/service/SysAuthorityService.java index 7cb86247..56789d69 100644 --- a/das/src/main/java/com/das/modules/auth/service/SysAuthorityService.java +++ b/das/src/main/java/com/das/modules/auth/service/SysAuthorityService.java @@ -3,9 +3,9 @@ package com.das.modules.auth.service; import com.das.modules.auth.domain.dto.SysAuthorityDto; import com.das.modules.auth.entity.SysAuthority; +import java.util.List; public interface SysAuthorityService { - SysAuthority createAuthority(SysAuthorityDto sysAuthorityDto); - + List queryAll(); } diff --git a/das/src/main/java/com/das/modules/auth/service/impl/SysAuthorityServiceImpl.java b/das/src/main/java/com/das/modules/auth/service/impl/SysAuthorityServiceImpl.java index f6b2b3df..b3a582ac 100644 --- a/das/src/main/java/com/das/modules/auth/service/impl/SysAuthorityServiceImpl.java +++ b/das/src/main/java/com/das/modules/auth/service/impl/SysAuthorityServiceImpl.java @@ -1,31 +1,78 @@ package com.das.modules.auth.service.impl; +import com.das.common.config.SysAuthorityIds; import com.das.common.utils.BeanCopyUtils; import com.das.common.utils.SequenceUtils; import com.das.modules.auth.domain.dto.SysAuthorityDto; import com.das.modules.auth.entity.SysAuthority; import com.das.modules.auth.mapper.SysAuthorityMapper; import com.das.modules.auth.service.SysAuthorityService; +import jakarta.annotation.PostConstruct; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Collections; import java.util.Date; +import java.util.List; +@Slf4j @Service public class SysAuthorityServiceImpl implements SysAuthorityService { @Autowired SysAuthorityMapper sysAuthorityMapper; + // 在类中声明一个日志对象 + + /** + * 初始化系统权限 + */ + @PostConstruct + public void init() { + List list = new ArrayList<>(); + list.add(new SysAuthority(SysAuthorityIds.SYS_AUTHORITY_ID_ADMIN,"SYS_AUTHORITY_ID_ADMIN","系统管理权限",1)); + list.add(new SysAuthority(SysAuthorityIds.SYS_AUTHORITY_ID_ADMIN,"SYS_AUTHORITY_ID_DEVICE_MGR","设备台账维护权限",1)); + list.add(new SysAuthority(SysAuthorityIds.SYS_AUTHORITY_ID_ADMIN,"SYS_AUTHORITY_ID_DEVICE_VIEW","设备台账浏览权限",1)); + + try { + // 性能优化:先查询所有需要的权限是否存在,减少数据库访问次数 + List existingAuthorities = sysAuthorityMapper.selectByAuthorities(list); + + // 过滤出需要插入的权限 + list.removeAll(existingAuthorities); + + // 批量插入不存在的权限 + if (!list.isEmpty()) { + sysAuthorityMapper.batchInsert(list); + } + } catch (Exception e) { + // 异常处理:记录日志或执行其他恢复策略 + log.error(e.getMessage(), e); // 实际应用中应使用日志框架如Log4j记录错误信息 + } + } + + /** + * 返回全部权限列表 + * 注意:此方法封装了对空结果的处理和基础的异常处理逻辑。 + * @return 权限列表,如果没有找到任何权限,则返回一个空列表 + */ @Override - public SysAuthority createAuthority(SysAuthorityDto sysAuthorityDto) { - SysAuthority sysAuthority = new SysAuthority(); - BeanCopyUtils.copy(sysAuthorityDto,sysAuthority); - sysAuthority.setId(SequenceUtils.generateId()); - sysAuthority.setRevision(1); - sysAuthority.setCreatedTime(new Date()); - sysAuthority.setUpdatedTime(new Date()); - sysAuthorityMapper.insert(sysAuthority); - return sysAuthority; + public List queryAll() { + try { + List authorities = sysAuthorityMapper.selectList(null); + // 检查返回的结果是否为空,如果为空则返回一个空的列表 + if (authorities == null || authorities.isEmpty()) { + return Collections.emptyList(); + } + return authorities; + } catch (Exception e) { + // 处理可能的异常,例如数据库查询异常等 + // 根据你的项目实践,这里可以记录日志、抛出自定义异常或者进行其他处理 + // 以下是一个简单的示例,打印异常信息并返回空列表 + log.error("查询权限列表时发生异常:" + e.getMessage()); + return Collections.emptyList(); + } } }