修改:

1.判断登录用户是否允许登录爬虫客户端
This commit is contained in:
2025-06-20 19:22:25 +08:00
parent 440776cfac
commit 10ffc506ae
8 changed files with 118 additions and 65 deletions

View File

@@ -19,6 +19,7 @@ public enum ErrorCode {
NOT_FOUND_ERROR(40400, "请求数据不存在"), NOT_FOUND_ERROR(40400, "请求数据不存在"),
FORBIDDEN_ERROR(40300, "禁止访问"), FORBIDDEN_ERROR(40300, "禁止访问"),
TENANT_NAME_NOT_EXISTS(40600, "租户不存在"), TENANT_NAME_NOT_EXISTS(40600, "租户不存在"),
LOGIN_NOW_ALLOWED(40700, "当前账号不允许登录"),
SYSTEM_ERROR(50000, "系统内部异常"), SYSTEM_ERROR(50000, "系统内部异常"),
OPERATION_ERROR(50001, "操作失败"), OPERATION_ERROR(50001, "操作失败"),
QUEUE_ERROR(60001, "队列消息添加失败"), QUEUE_ERROR(60001, "队列消息添加失败"),

View File

@@ -34,7 +34,8 @@ public class SaTokenConfigure implements WebMvcConfigurer {
"/swagger-ui/**", "/swagger-ui/**",
"/favicon.ico", "/favicon.ico",
// 你的其他放行路径,例如登录接口 // 你的其他放行路径,例如登录接口
"/user/doLogin" "/user/doLogin",
"/tenant/get-id-by-name"
}; };
} }
} }

View File

@@ -49,6 +49,9 @@ public class UserController {
if (usersService.isExpired(usersDTO.getTenantId())){ if (usersService.isExpired(usersDTO.getTenantId())){
throw new BusinessException(ErrorCode.PACKAGE_EXPIRED); throw new BusinessException(ErrorCode.PACKAGE_EXPIRED);
} }
if (usersService.checkCrawlRole(user.getId())){
throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);
}
Long second = usersService.getTenantExpiredTime(usersDTO.getTenantId()); Long second = usersService.getTenantExpiredTime(usersDTO.getTenantId());
SystemUsersVO systemUsersVO = new SystemUsersVO(); SystemUsersVO systemUsersVO = new SystemUsersVO();
BeanUtil.copyProperties(user, systemUsersVO); BeanUtil.copyProperties(user, systemUsersVO);

View File

@@ -1,20 +1,12 @@
package com.yupi.springbootinit.mapper; package com.yupi.springbootinit.mapper;
/*
* @author: ziin
* @date: 2025/6/11 20:13
*/
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yupi.springbootinit.model.entity.SystemUsers; import com.yupi.springbootinit.model.entity.SystemUsers;
import java.io.Serializable; /*
import java.util.Collection; * @author: ziin
import java.util.List; * @date: 2025/6/20 19:19
import java.util.Map; */
public interface SystemUsersMapper extends BaseMapper<SystemUsers> { public interface SystemUsersMapper extends BaseMapper<SystemUsers> {
} }

View File

@@ -1,124 +1,170 @@
package com.yupi.springbootinit.model.entity; package com.yupi.springbootinit.model.entity;
import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.Data; import lombok.Data;
/* /*
* @author: ziin * @author: ziin
* @date: 2025/6/11 20:13 * @date: 2025/6/20 19:19
*/ */
/** /**
* 用户信息表 * 用户信息表
*/ */
@ApiModel(description = "用户信息表")
@Data @Data
@TableName(value = "system_users")
public class SystemUsers { public class SystemUsers {
/** /**
* 用户ID * 用户ID
*/ */
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value = "用户ID")
private Long id; private Long id;
/** /**
* 用户账号 * 用户账号
*/ */
@TableField(value = "username")
@ApiModelProperty(value = "用户账号")
private String username; private String username;
/** /**
* 密码 * 密码
*/ */
@TableField(value = "`password`")
@ApiModelProperty(value = "密码")
private String password; private String password;
/** /**
* 用户昵称 * 用户昵称
*/ */
@TableField(value = "nickname")
@ApiModelProperty(value = "用户昵称")
private String nickname; private String nickname;
/** /**
* 备注 * 备注
*/ */
@TableField(value = "remark")
@ApiModelProperty(value = "备注")
private String remark; private String remark;
/** /**
* 部门ID * 部门ID
*/ */
@TableField("dept_id") @TableField(value = "dept_id")
@ApiModelProperty(value = "部门ID")
private Long deptId; private Long deptId;
/** /**
* 岗位编号数组 * 岗位编号数组
*/ */
@TableField("post_ids") @TableField(value = "post_ids")
@ApiModelProperty(value = "岗位编号数组")
private String postIds; private String postIds;
/** /**
* 用户邮箱 * 用户邮箱
*/ */
@TableField(value = "email")
@ApiModelProperty(value = "用户邮箱")
private String email; private String email;
/** /**
* 手机号码 * 手机号码
*/ */
@TableField(value = "mobile")
@ApiModelProperty(value = "手机号码")
private String mobile; private String mobile;
/** /**
* 用户性别 * 用户性别
*/ */
@TableField(value = "sex")
@ApiModelProperty(value = "用户性别")
private Byte sex; private Byte sex;
/** /**
* 头像地址 * 头像地址
*/ */
@TableField(value = "avatar")
@ApiModelProperty(value = "头像地址")
private String avatar; private String avatar;
/** /**
* 帐号状态0正常 1停用 * 帐号状态0正常 1停用
*/ */
@TableField(value = "`status`")
@ApiModelProperty(value = "帐号状态0正常 1停用")
private Byte status; private Byte status;
/** /**
* 最后登录IP * 最后登录IP
*/ */
@TableField("login_ip") @TableField(value = "login_ip")
@ApiModelProperty(value = "最后登录IP")
private String loginIp; private String loginIp;
/** /**
* 最后登录时间 * 最后登录时间
*/ */
@TableField("login_date") @TableField(value = "login_date")
@ApiModelProperty(value = "最后登录时间")
private Date loginDate; private Date loginDate;
/** /**
* 创建者 * 创建者
*/ */
@TableField(value = "creator")
@ApiModelProperty(value = "创建者")
private String creator; private String creator;
/** /**
* 创建时间 * 创建时间
*/ */
@TableField("create_time") @TableField(value = "create_time")
@ApiModelProperty(value = "创建时间")
private Date createTime; private Date createTime;
/** /**
* 更新者 * 更新者
*/ */
@TableField(value = "updater")
@ApiModelProperty(value = "更新者")
private String updater; private String updater;
/** /**
* 更新时间 * 更新时间
*/ */
@TableField("update_time") @TableField(value = "update_time")
@ApiModelProperty(value = "更新时间")
private Date updateTime; private Date updateTime;
/** /**
* 是否删除 * 是否删除
*/ */
@TableField(value = "deleted")
@ApiModelProperty(value = "是否删除")
private Boolean deleted; private Boolean deleted;
/** /**
* 租户编号 * 租户编号
*/ */
@TableField("tenant_id") @TableField(value = "tenant_id")
@ApiModelProperty(value = "租户编号")
private Long tenantId; private Long tenantId;
/**
* 能否登录爬虫客户端
*/
@TableField(value = "crawl")
@ApiModelProperty(value = "能否登录爬虫客户端")
private Byte crawl;
} }

View File

@@ -17,4 +17,7 @@ public interface SystemUsersService extends IService<SystemUsers> {
boolean isExpired(Long tendId); boolean isExpired(Long tendId);
Long getTenantExpiredTime(Long tenantId); Long getTenantExpiredTime(Long tenantId);
boolean checkCrawlRole(Long userId);
} }

View File

@@ -63,4 +63,10 @@ public class SystemUsersServiceImpl extends ServiceImpl<SystemUsersMapper,System
return 0L; return 0L;
} }
@Override
public boolean checkCrawlRole(Long userId) {
SystemUsers systemUsers = baseMapper.selectById(userId);
return systemUsers.getCrawl() == 1;
}
} }

View File

@@ -24,12 +24,13 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="deleted" jdbcType="BIT" property="deleted" /> <result column="deleted" jdbcType="BIT" property="deleted" />
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" /> <result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
<result column="crawl" jdbcType="TINYINT" property="crawl" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, username, `password`, nickname, remark, dept_id, post_ids, email, mobile, sex, id, username, `password`, nickname, remark, dept_id, post_ids, email, mobile, sex,
avatar, `status`, login_ip, login_date, creator, create_time, updater, update_time, avatar, `status`, login_ip, login_date, creator, create_time, updater, update_time,
deleted, tenant_id deleted, tenant_id, crawl
</sql> </sql>
<select id="selectUsername" resultType="int"> <select id="selectUsername" resultType="int">