package com.sinata.appointment.config; import cn.dev33.satoken.stp.StpInterface; import com.sinata.appointment.mapper.SysUserMapper; import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; @Component @RequiredArgsConstructor public class StpInterfaceImpl implements StpInterface { private final SysUserMapper sysUserMapper; @Override public List getPermissionList(Object loginId, String loginType) { if ("mini".equals(loginType)) { return List.of(); } Long userId = parseLoginId(loginId); return userId == null ? List.of() : sysUserMapper.listPermissionCodesByUserId(userId); } @Override public List getRoleList(Object loginId, String loginType) { if ("mini".equals(loginType)) { return List.of(); } Long userId = parseLoginId(loginId); return userId == null ? List.of() : sysUserMapper.listRoleCodesByUserId(userId); } private Long parseLoginId(Object loginId) { if (loginId == null) { return null; } if (loginId instanceof Long value) { return value; } try { return Long.valueOf(String.valueOf(loginId)); } catch (Exception ignore) { return null; } } }