Pre Merge pull request !228 from Charles7c/dev

This commit is contained in:
Charles7c 2022-09-12 07:05:57 +00:00 committed by Gitee
commit c7ae767644
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
5 changed files with 49 additions and 31 deletions

View File

@ -25,7 +25,7 @@
<poi.version>5.2.2</poi.version>
<easyexcel.version>3.1.1</easyexcel.version>
<velocity.version>2.3</velocity.version>
<satoken.version>1.30.0</satoken.version>
<satoken.version>1.31.0</satoken.version>
<mybatis-plus.version>3.5.2</mybatis-plus.version>
<p6spy.version>3.9.1</p6spy.version>
<hutool.version>5.8.5</hutool.version>

View File

@ -42,7 +42,7 @@ public class SysUserOnlineController extends BaseController {
@GetMapping("/list")
public TableDataInfo<SysUserOnline> list(String ipaddr, String userName) {
// 获取所有未过期的 token
List<String> keys = StpUtil.searchTokenValue("", -1, 0);
List<String> keys = StpUtil.searchTokenValue("", -1, 0, false);
List<UserOnlineDTO> userOnlineDTOList = new ArrayList<>();
for (String key : keys) {
String token = key.replace(CacheConstants.LOGIN_TOKEN_KEY, "");

View File

@ -17,27 +17,32 @@ import java.util.Date;
* MP注入处理器
*
* @author Lion Li
* @author Charles7c
* @date 2021/4/25
*/
@Slf4j
public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
/** 创建人 */
private static final String CREATE_BY = "createBy";
/** 创建时间 */
private static final String CREATE_TIME = "createTime";
/** 更新人 */
private static final String UPDATE_BY = "updateBy";
/** 更新时间 */
private static final String UPDATE_TIME = "updateTime";
@Override
public void insertFill(MetaObject metaObject) {
try {
if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) metaObject.getOriginalObject();
Date current = ObjectUtil.isNotNull(baseEntity.getCreateTime())
? baseEntity.getCreateTime() : new Date();
baseEntity.setCreateTime(current);
baseEntity.setUpdateTime(current);
String username = StringUtils.isNotBlank(baseEntity.getCreateBy())
? baseEntity.getCreateBy() : getLoginUsername();
// 当前已登录 创建人为空 则填充
baseEntity.setCreateBy(username);
// 当前已登录 更新人为空 则填充
baseEntity.setUpdateBy(username);
if (ObjectUtil.isNull(metaObject)) {
return;
}
this.fillFieldValue(metaObject, CREATE_BY, this.getLoginUsername(), false);
this.fillFieldValue(metaObject, CREATE_TIME, new Date(), false);
this.fillFieldValue(metaObject, UPDATE_BY, this.getLoginUsername(), false);
this.fillFieldValue(metaObject, UPDATE_TIME, new Date(), false);
} catch (Exception e) {
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
}
@ -46,22 +51,32 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
@Override
public void updateFill(MetaObject metaObject) {
try {
if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) metaObject.getOriginalObject();
Date current = new Date();
// 更新时间填充(不管为不为空)
baseEntity.setUpdateTime(current);
String username = getLoginUsername();
// 当前已登录 更新人填充(不管为不为空)
if (StringUtils.isNotBlank(username)) {
baseEntity.setUpdateBy(username);
}
if (ObjectUtil.isNull(metaObject)) {
return;
}
this.fillFieldValue(metaObject, UPDATE_BY, this.getLoginUsername(), true);
this.fillFieldValue(metaObject, UPDATE_TIME, new Date(), true);
} catch (Exception e) {
throw new ServiceException("自动注入异常 => " + e.getMessage(), HttpStatus.HTTP_UNAUTHORIZED);
}
}
/**
* 填充注入属性值
*
* @param metaObject 元数据对象
* @param fieldName 要填充的属性名
* @param fillFieldValue 要填充的属性值
* @param isOverride 如果属性值不为空是否覆盖true 覆盖false 不覆盖
*/
private void fillFieldValue(MetaObject metaObject, String fieldName, Object fillFieldValue, boolean isOverride) {
if (metaObject.hasSetter(fieldName)) {
Object fieldValue = metaObject.getValue(fieldName);
setFieldValByName(fieldName, ObjectUtil.isNotNull(fieldValue) && !isOverride ? fieldValue : fillFieldValue, metaObject);
}
}
/**
* 获取登录用户名
*/
@ -75,5 +90,4 @@ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
}
return loginUser.getUsername();
}
}

View File

@ -88,14 +88,14 @@ public class UserActionListener implements SaTokenListener {
* 每次被封禁时触发
*/
@Override
public void doDisable(String loginType, Object loginId, long disableTime) {
public void doDisable(String loginType, Object loginId, String service, int level, long disableTime) {
}
/**
* 每次被解封时触发
*/
@Override
public void doUntieDisable(String loginType, Object loginId) {
public void doUntieDisable(String loginType, Object loginId, String service) {
}
/**
@ -112,5 +112,10 @@ public class UserActionListener implements SaTokenListener {
public void doLogoutSession(String id) {
}
/**
* 每次Token续期时触发
*/
@Override
public void doRenewTimeout(String tokenValue, Object loginId, long timeout) {
}
}

View File

@ -170,10 +170,9 @@ public class PlusSaTokenDao implements SaTokenDao {
* 搜索数据
*/
@Override
public List<String> searchData(String prefix, String keyword, int start, int size) {
public List<String> searchData(String prefix, String keyword, int start, int size, boolean sortType) {
Collection<String> keys = RedisUtils.keys(prefix + "*" + keyword + "*");
List<String> list = new ArrayList<>(keys);
return SaFoxUtil.searchList(list, start, size);
return SaFoxUtil.searchList(list, start, size, sortType);
}
}