package com.ibeetl.jlw.entity; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import com.auth0.jwt.interfaces.Claim; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.databind.ObjectMapper; import com.ibeetl.admin.core.entity.CoreUser; import lombok.*; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.HashMap; import java.util.Map; /** * 功能描述:
* 第三方登录封装实体 * * @Author: lx * @Date: 2022/12/11 14:56 */ @Data @Builder @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) @ToString public class LoginTodo implements Serializable { private static final long serialVersionUID = 1257693451422916110L; /** * 账号(一般是#{@link CoreUser#getCode}) */ private String username; /** * 密码 */ private String password; /** * 角色ID 3老师 4学生 */ private String roleid; /** * 教师ID */ private String teacherId; /** * 学生ID */ private String studentId; /** * 账号(一般是#{@link CoreUser#getName}) */ private String name; /** * 性别 */ private String sex; /** * 学校(院校) */ private String school; /** * 学校(院校ID) */ private String schoolId; /** * 应用ID */ private String applicationId; /** * 院系 */ private String college; /** * 专业 */ private String major; /** * 班级 */ @JsonProperty("class") private String schoolClass; /** * 学生学号 */ private String studentNo; /** * 第三方系统中定义的权限ID * 3老师 4学生 */ @Getter @RequiredArgsConstructor public enum ThirdRole { TEACHER_ROLE("3"), STUDENT_ROLE("4"); @JsonValue final private String code; } /** * 转换成JSON格式 * @return */ @SneakyThrows public String toJSONString() { ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); return mapper.writeValueAsString(this); } public Map toMap() { return JSONUtil.toBean(toJSONString(), HashMap.class); } /** * 功能描述:
* JSON转换成该实体类 * * @return {@link LoginTodo} * @Author: lx * @Date: 2022/12/11 17:33 */ @SneakyThrows public static LoginTodo jsonToEntity(String json) { if (ObjectUtil.isNotEmpty(json)) { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(json, LoginTodo.class); } return null; } /** * 功能描述:
* JSON转换成该实体类 * * @return {@link LoginTodo} * @Author: lx * @Date: 2022/12/11 17:33 */ @SneakyThrows public static LoginTodo jsonToEntity(Map claims) { if (ObjectUtil.isNotEmpty(claims)) { Map tempMap = new HashMap(20); claims.forEach((key, val) -> { tempMap.put(key, val.asString()); }); ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(JSONUtil.toJsonStr(tempMap), LoginTodo.class); } return null; } }