修改:

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, "请求数据不存在"),
FORBIDDEN_ERROR(40300, "禁止访问"),
TENANT_NAME_NOT_EXISTS(40600, "租户不存在"),
LOGIN_NOW_ALLOWED(40700, "当前账号不允许登录"),
SYSTEM_ERROR(50000, "系统内部异常"),
OPERATION_ERROR(50001, "操作失败"),
QUEUE_ERROR(60001, "队列消息添加失败"),

View File

@@ -34,7 +34,8 @@ public class SaTokenConfigure implements WebMvcConfigurer {
"/swagger-ui/**",
"/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())){
throw new BusinessException(ErrorCode.PACKAGE_EXPIRED);
}
if (usersService.checkCrawlRole(user.getId())){
throw new BusinessException(ErrorCode.NOT_FOUND_ERROR);
}
Long second = usersService.getTenantExpiredTime(usersDTO.getTenantId());
SystemUsersVO systemUsersVO = new SystemUsersVO();
BeanUtil.copyProperties(user, systemUsersVO);

View File

@@ -1,20 +1,12 @@
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.metadata.IPage;
import com.yupi.springbootinit.model.entity.SystemUsers;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/*
* @author: ziin
* @date: 2025/6/20 19:19
*/
public interface SystemUsersMapper extends BaseMapper<SystemUsers> {
}

View File

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

View File

@@ -63,4 +63,10 @@ public class SystemUsersServiceImpl extends ServiceImpl<SystemUsersMapper,System
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="deleted" jdbcType="BIT" property="deleted" />
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
<result column="crawl" jdbcType="TINYINT" property="crawl" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, username, `password`, nickname, remark, dept_id, post_ids, email, mobile, sex,
avatar, `status`, login_ip, login_date, creator, create_time, updater, update_time,
deleted, tenant_id
deleted, tenant_id, crawl
</sql>
<select id="selectUsername" resultType="int">