From 630cb13066b3bdaf79ab881effff71762ed0f0c9 Mon Sep 17 00:00:00 2001
From: hrz <1710360675@qq.com>
Date: Sat, 29 Mar 2025 17:49:39 +0800
Subject: [PATCH] =?UTF-8?q?update:=E4=BC=98=E5=8C=96=E6=B3=9B=E5=9E=8B?=
=?UTF-8?q?=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
main/manager-api/pom.xml | 6 ---
.../xiaozhi/common/convert/DateConverter.java | 2 +-
.../common/exception/RenExceptionHandler.java | 23 ++++----
.../handler/FieldMetaObjectHandler.java | 29 ++++++-----
.../interceptor/DataFilterInterceptor.java | 24 +++++----
.../common/service/impl/BaseServiceImpl.java | 50 ++++++++++--------
.../common/service/impl/CrudServiceImpl.java | 29 ++++++-----
.../xiaozhi/common/utils/ConvertUtils.java | 13 ++---
.../java/xiaozhi/common/utils/TreeUtils.java | 14 ++---
.../xiaozhi/common/validator/AssertUtils.java | 13 ++---
.../admin/contrloler/AdminController.java | 20 ++++---
.../modules/agent/vo/AgentTemplateVO.java | 2 +
.../device/controller/DeviceController.java | 24 +++++----
.../modules/device/service/DeviceService.java | 32 +++++++++---
.../modules/security/config/ShiroConfig.java | 30 ++++++-----
.../modules/security/oauth2/Oauth2Filter.java | 28 +++++-----
.../service/impl/CaptchaServiceImpl.java | 41 +++++++--------
.../service/impl/ShiroServiceImpl.java | 11 ++--
.../service/impl/SysUserTokenServiceImpl.java | 30 ++++++-----
.../modules/sys/dto/AdminPageUserDTO.java | 3 +-
.../service/impl/SysParamsServiceImpl.java | 27 +++++-----
.../sys/service/impl/SysUserServiceImpl.java | 52 +++++++++++--------
.../sys/service/impl/TokenServiceImpl.java | 18 ++-----
.../src/main/resources/application.yml | 2 +-
.../{202503241020.sql => 202503241021.sql} | 11 ++--
.../db/changelog/db.changelog-master.yaml | 4 +-
26 files changed, 284 insertions(+), 254 deletions(-)
rename main/manager-api/src/main/resources/db/changelog/{202503241020.sql => 202503241021.sql} (95%)
diff --git a/main/manager-api/pom.xml b/main/manager-api/pom.xml
index 441c09e6..7e0bf307 100644
--- a/main/manager-api/pom.xml
+++ b/main/manager-api/pom.xml
@@ -167,12 +167,6 @@
lombok
true
-
-
- org.apache.logging.log4j
- log4j-slf4j-impl
- 2.20.0
-
diff --git a/main/manager-api/src/main/java/xiaozhi/common/convert/DateConverter.java b/main/manager-api/src/main/java/xiaozhi/common/convert/DateConverter.java
index 20c61be8..fd0f74c2 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/convert/DateConverter.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/convert/DateConverter.java
@@ -6,11 +6,11 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
-import org.springframework.util.StringUtils;
/**
* 日期转换
diff --git a/main/manager-api/src/main/java/xiaozhi/common/exception/RenExceptionHandler.java b/main/manager-api/src/main/java/xiaozhi/common/exception/RenExceptionHandler.java
index 06665ee2..0f83772e 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/exception/RenExceptionHandler.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/exception/RenExceptionHandler.java
@@ -1,13 +1,13 @@
package xiaozhi.common.exception;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.UnauthorizedException;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
-import xiaozhi.common.utils.Result;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import xiaozhi.common.utils.Result;
/**
* 异常处理器
@@ -23,35 +23,34 @@ public class RenExceptionHandler {
* 处理自定义异常
*/
@ExceptionHandler(RenException.class)
- public Result handleRenException(RenException ex) {
- Result result = new Result();
+ public Result handleRenException(RenException ex) {
+ Result result = new Result<>();
result.error(ex.getCode(), ex.getMsg());
return result;
}
@ExceptionHandler(DuplicateKeyException.class)
- public Result handleDuplicateKeyException(DuplicateKeyException ex) {
- Result result = new Result();
+ public Result handleDuplicateKeyException(DuplicateKeyException ex) {
+ Result result = new Result<>();
result.error(ErrorCode.DB_RECORD_EXISTS);
return result;
}
@ExceptionHandler(UnauthorizedException.class)
- public Result handleUnauthorizedException(UnauthorizedException ex) {
- Result result = new Result();
+ public Result handleUnauthorizedException(UnauthorizedException ex) {
+ Result result = new Result<>();
result.error(ErrorCode.FORBIDDEN);
return result;
}
-
@ExceptionHandler(Exception.class)
- public Result handleException(Exception ex) {
+ public Result handleException(Exception ex) {
log.error(ex.getMessage(), ex);
- return new Result().error();
+ return new Result().error();
}
}
\ No newline at end of file
diff --git a/main/manager-api/src/main/java/xiaozhi/common/handler/FieldMetaObjectHandler.java b/main/manager-api/src/main/java/xiaozhi/common/handler/FieldMetaObjectHandler.java
index 20371fd6..a6b33b62 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/handler/FieldMetaObjectHandler.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/handler/FieldMetaObjectHandler.java
@@ -1,13 +1,15 @@
package xiaozhi.common.handler;
-import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
-import xiaozhi.common.constant.Constant;
-import xiaozhi.common.user.UserDetail;
-import xiaozhi.modules.security.user.SecurityUser;
+import java.util.Date;
+
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
-import java.util.Date;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+
+import xiaozhi.common.constant.Constant;
+import xiaozhi.common.user.UserDetail;
+import xiaozhi.modules.security.user.SecurityUser;
/**
* 公共字段,自动填充值
@@ -22,35 +24,34 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
private final static String UPDATER = "updater";
private final static String DATA_OPERATION = "dataOperation";
- private final static String DEPT_ID = "deptId";
@Override
public void insertFill(MetaObject metaObject) {
UserDetail user = SecurityUser.getUser();
Date date = new Date();
- //创建者
+ // 创建者
strictInsertFill(metaObject, CREATOR, Long.class, user.getId());
- //创建时间
+ // 创建时间
strictInsertFill(metaObject, CREATE_DATE, Date.class, date);
- //更新者
+ // 更新者
strictInsertFill(metaObject, UPDATER, Long.class, user.getId());
- //更新时间
+ // 更新时间
strictInsertFill(metaObject, UPDATE_DATE, Date.class, date);
- //数据标识
+ // 数据标识
strictInsertFill(metaObject, DATA_OPERATION, String.class, Constant.DataOperation.INSERT.getValue());
}
@Override
public void updateFill(MetaObject metaObject) {
- //更新者
+ // 更新者
strictUpdateFill(metaObject, UPDATER, Long.class, SecurityUser.getUserId());
- //更新时间
+ // 更新时间
strictUpdateFill(metaObject, UPDATE_DATE, Date.class, new Date());
- //数据标识
+ // 数据标识
strictInsertFill(metaObject, DATA_OPERATION, String.class, Constant.DataOperation.UPDATE.getValue());
}
}
\ No newline at end of file
diff --git a/main/manager-api/src/main/java/xiaozhi/common/interceptor/DataFilterInterceptor.java b/main/manager-api/src/main/java/xiaozhi/common/interceptor/DataFilterInterceptor.java
index 160e7ff3..0457686b 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/interceptor/DataFilterInterceptor.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/interceptor/DataFilterInterceptor.java
@@ -1,8 +1,17 @@
package xiaozhi.common.interceptor;
-import cn.hutool.core.util.StrUtil;
+import java.util.Map;
+
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+
import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
+
+import cn.hutool.core.util.StrUtil;
import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.StringValue;
@@ -10,13 +19,6 @@ import net.sf.jsqlparser.expression.operators.conditional.AndExpression;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.statement.select.PlainSelect;
import net.sf.jsqlparser.statement.select.Select;
-import org.apache.ibatis.executor.Executor;
-import org.apache.ibatis.mapping.BoundSql;
-import org.apache.ibatis.mapping.MappedStatement;
-import org.apache.ibatis.session.ResultHandler;
-import org.apache.ibatis.session.RowBounds;
-
-import java.util.Map;
/**
* 数据过滤
@@ -25,8 +27,10 @@ import java.util.Map;
*/
public class DataFilterInterceptor implements InnerInterceptor {
+ @SuppressWarnings("rawtypes")
@Override
- public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
+ public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds,
+ ResultHandler resultHandler, BoundSql boundSql) {
DataScope scope = getDataScope(parameter);
// 不进行数据过滤
if (scope == null || StrUtil.isBlank(scope.getSqlFilter())) {
@@ -48,7 +52,7 @@ public class DataFilterInterceptor implements InnerInterceptor {
// 判断参数里是否有DataScope对象
if (parameter instanceof Map) {
Map, ?> parameterMap = (Map, ?>) parameter;
- for (Map.Entry entry : parameterMap.entrySet()) {
+ for (Map.Entry, ?> entry : parameterMap.entrySet()) {
if (entry.getValue() != null && entry.getValue() instanceof DataScope) {
return (DataScope) entry.getValue();
}
diff --git a/main/manager-api/src/main/java/xiaozhi/common/service/impl/BaseServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/common/service/impl/BaseServiceImpl.java
index 16fd6feb..8ebb4cd1 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/service/impl/BaseServiceImpl.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/service/impl/BaseServiceImpl.java
@@ -1,5 +1,18 @@
package xiaozhi.common.service.impl;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.function.BiConsumer;
+
+import org.apache.ibatis.binding.MapperMethod;
+import org.apache.ibatis.logging.Log;
+import org.apache.ibatis.logging.LogFactory;
+import org.apache.ibatis.session.SqlSession;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -10,22 +23,11 @@ import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
+
import xiaozhi.common.constant.Constant;
import xiaozhi.common.page.PageData;
import xiaozhi.common.service.BaseService;
import xiaozhi.common.utils.ConvertUtils;
-import org.apache.ibatis.binding.MapperMethod;
-import org.apache.ibatis.logging.Log;
-import org.apache.ibatis.logging.LogFactory;
-import org.apache.ibatis.session.SqlSession;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.function.BiConsumer;
/**
* 基础服务类,所有Service都要继承
@@ -45,7 +47,7 @@ public abstract class BaseServiceImpl, T> implements Bas
* @param isAsc 排序方式
*/
protected IPage getPage(Map params, String defaultOrderField, boolean isAsc) {
- //分页参数
+ // 分页参数
long curPage = 1;
long limit = 10;
@@ -56,17 +58,17 @@ public abstract class BaseServiceImpl, T> implements Bas
limit = Long.parseLong((String) params.get(Constant.LIMIT));
}
- //分页对象
+ // 分页对象
Page page = new Page<>(curPage, limit);
- //分页参数
+ // 分页参数
params.put(Constant.PAGE, page);
- //排序字段
+ // 排序字段
String orderField = (String) params.get(Constant.ORDER_FIELD);
String order = (String) params.get(Constant.ORDER);
- //前端字段排序
+ // 前端字段排序
if (StringUtils.isNotBlank(orderField) && StringUtils.isNotBlank(order)) {
if (Constant.ASC.equalsIgnoreCase(order)) {
return page.addOrder(OrderItem.asc(orderField));
@@ -75,12 +77,12 @@ public abstract class BaseServiceImpl, T> implements Bas
}
}
- //没有排序字段,则不排序
+ // 没有排序字段,则不排序
if (StringUtils.isBlank(defaultOrderField)) {
return page;
}
- //默认排序
+ // 默认排序
if (isAsc) {
page.addOrder(OrderItem.asc(defaultOrderField));
} else {
@@ -90,13 +92,13 @@ public abstract class BaseServiceImpl, T> implements Bas
return page;
}
- protected PageData getPageData(List> list, long total, Class target) {
- List targetList = ConvertUtils.sourceToTarget(list, target);
+ protected PageData getPageData(List> list, long total, Class target) {
+ List targetList = ConvertUtils.sourceToTarget(list, target);
return new PageData<>(targetList, total);
}
- protected PageData getPageData(IPage page, Class target) {
+ protected PageData getPageData(IPage> page, Class target) {
return getPageData(page.getRecords(), page.getTotal(), target);
}
@@ -126,10 +128,12 @@ public abstract class BaseServiceImpl, T> implements Bas
return SqlHelper.retBool(result);
}
+ @SuppressWarnings("unchecked")
protected Class currentMapperClass() {
return (Class) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseServiceImpl.class, 0);
}
+ @SuppressWarnings("unchecked")
@Override
public Class currentModelClass() {
return (Class) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseServiceImpl.class, 1);
@@ -164,11 +168,11 @@ public abstract class BaseServiceImpl, T> implements Bas
/**
* 执行批量操作
*/
+ @SuppressWarnings("deprecation")
protected boolean executeBatch(Collection list, int batchSize, BiConsumer consumer) {
return SqlHelper.executeBatch(this.currentModelClass(), this.log, list, batchSize, consumer);
}
-
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateById(T entity) {
diff --git a/main/manager-api/src/main/java/xiaozhi/common/service/impl/CrudServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/common/service/impl/CrudServiceImpl.java
index 6608e7c3..524a8cb2 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/service/impl/CrudServiceImpl.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/service/impl/CrudServiceImpl.java
@@ -1,26 +1,30 @@
package xiaozhi.common.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
-import xiaozhi.common.page.PageData;
-import xiaozhi.common.service.CrudService;
-import xiaozhi.common.utils.ConvertUtils;
-import org.springframework.beans.BeanUtils;
-
import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import org.springframework.beans.BeanUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ReflectionKit;
+
+import xiaozhi.common.page.PageData;
+import xiaozhi.common.service.CrudService;
+import xiaozhi.common.utils.ConvertUtils;
+
/**
* CRUD基础服务类
* Copyright (c) 人人开源 All rights reserved.
* Website: https://www.renren.io
*/
-public abstract class CrudServiceImpl, T, D> extends BaseServiceImpl implements CrudService {
+public abstract class CrudServiceImpl, T, D> extends BaseServiceImpl
+ implements CrudService {
+ @SuppressWarnings("unchecked")
protected Class currentDtoClass() {
return (Class) ReflectionKit.getSuperClassGenericType(getClass(), CrudServiceImpl.class, 2);
}
@@ -29,8 +33,7 @@ public abstract class CrudServiceImpl, T, D> extends Bas
public PageData page(Map params) {
IPage page = baseDao.selectPage(
getPage(params, null, false),
- getWrapper(params)
- );
+ getWrapper(params));
return getPageData(page, currentDtoClass());
}
@@ -56,7 +59,7 @@ public abstract class CrudServiceImpl, T, D> extends Bas
T entity = ConvertUtils.sourceToTarget(dto, currentModelClass());
insert(entity);
- //copy主键值到dto
+ // copy主键值到dto
BeanUtils.copyProperties(entity, dto);
}
diff --git a/main/manager-api/src/main/java/xiaozhi/common/utils/ConvertUtils.java b/main/manager-api/src/main/java/xiaozhi/common/utils/ConvertUtils.java
index 7a5bc0ed..07ade50f 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/utils/ConvertUtils.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/utils/ConvertUtils.java
@@ -1,12 +1,13 @@
package xiaozhi.common.utils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.springframework.beans.BeanUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
/**
* 转换工具类
* Copyright (c) 人人开源 All rights reserved.
@@ -20,7 +21,7 @@ public class ConvertUtils {
}
T targetObject = null;
try {
- targetObject = target.newInstance();
+ targetObject = target.getDeclaredConstructor().newInstance();
BeanUtils.copyProperties(source, targetObject);
} catch (Exception e) {
log.error("convert error ", e);
@@ -34,10 +35,10 @@ public class ConvertUtils {
return null;
}
- List targetList = new ArrayList<>(sourceList.size());
+ List targetList = new ArrayList<>(sourceList.size());
try {
for (Object source : sourceList) {
- T targetObject = target.newInstance();
+ T targetObject = target.getDeclaredConstructor().newInstance();
BeanUtils.copyProperties(source, targetObject);
targetList.add(targetObject);
}
diff --git a/main/manager-api/src/main/java/xiaozhi/common/utils/TreeUtils.java b/main/manager-api/src/main/java/xiaozhi/common/utils/TreeUtils.java
index 766cb029..e76190eb 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/utils/TreeUtils.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/utils/TreeUtils.java
@@ -1,12 +1,12 @@
package xiaozhi.common.utils;
-import xiaozhi.common.validator.AssertUtils;
-
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import xiaozhi.common.validator.AssertUtils;
+
/**
* 树形结构工具类,如:菜单、部门等
* Copyright (c) 人人开源 All rights reserved.
@@ -17,8 +17,8 @@ public class TreeUtils {
/**
* 根据pid,构建树节点
*/
- public static List build(List treeNodes, Long pid) {
- //pid不能为空
+ public static > List build(List treeNodes, Long pid) {
+ // pid不能为空
AssertUtils.isNull(pid, "pid");
List treeList = new ArrayList<>();
@@ -34,7 +34,7 @@ public class TreeUtils {
/**
* 查找子节点
*/
- private static T findChildren(List treeNodes, T rootNode) {
+ private static > T findChildren(List treeNodes, T rootNode) {
for (T treeNode : treeNodes) {
if (rootNode.getId().equals(treeNode.getPid())) {
rootNode.getChildren().add(findChildren(treeNodes, treeNode));
@@ -46,10 +46,10 @@ public class TreeUtils {
/**
* 构建树节点
*/
- public static List build(List treeNodes) {
+ public static > List build(List treeNodes) {
List result = new ArrayList<>();
- //list转map
+ // list转map
Map nodeMap = new LinkedHashMap<>(treeNodes.size());
for (T treeNode : treeNodes) {
nodeMap.put(treeNode.getId(), treeNode);
diff --git a/main/manager-api/src/main/java/xiaozhi/common/validator/AssertUtils.java b/main/manager-api/src/main/java/xiaozhi/common/validator/AssertUtils.java
index 6a6b43e1..c86aa517 100644
--- a/main/manager-api/src/main/java/xiaozhi/common/validator/AssertUtils.java
+++ b/main/manager-api/src/main/java/xiaozhi/common/validator/AssertUtils.java
@@ -1,14 +1,15 @@
package xiaozhi.common.validator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import xiaozhi.common.exception.ErrorCode;
import xiaozhi.common.exception.RenException;
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.List;
-import java.util.Map;
/**
* 校验工具类
@@ -73,11 +74,11 @@ public class AssertUtils {
}
}
- public static void isMapEmpty(Map map, String... params) {
+ public static void isMapEmpty(Map, ?> map, String... params) {
isMapEmpty(map, ErrorCode.NOT_NULL, params);
}
- public static void isMapEmpty(Map map, Integer code, String... params) {
+ public static void isMapEmpty(Map, ?> map, Integer code, String... params) {
if (code == null) {
throw new RenException(ErrorCode.NOT_NULL, "code");
}
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/admin/contrloler/AdminController.java b/main/manager-api/src/main/java/xiaozhi/modules/admin/contrloler/AdminController.java
index ee46f2eb..b447661f 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/admin/contrloler/AdminController.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/admin/contrloler/AdminController.java
@@ -1,13 +1,21 @@
package xiaozhi.modules.admin.contrloler;
+import java.util.Map;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
import xiaozhi.common.constant.Constant;
import xiaozhi.common.page.PageData;
import xiaozhi.common.utils.Result;
@@ -16,8 +24,6 @@ import xiaozhi.modules.sys.dto.AdminPageUserDTO;
import xiaozhi.modules.sys.service.SysUserService;
import xiaozhi.modules.sys.vo.AdminPageUserVO;
-import java.util.Map;
-
/**
* 管理员控制层
*
@@ -64,7 +70,7 @@ public class AdminController {
@Operation(summary = "用户删除")
@RequiresPermissions("sys:role:superAdmin")
public Result delete(@PathVariable Long id) {
- sysUserService.delete(new Long[]{id});
+ sysUserService.delete(new Long[] { id });
return new Result<>();
}
@@ -78,7 +84,7 @@ public class AdminController {
})
public Result pageDevice(
@Parameter(hidden = true) @RequestParam Map params) {
- //TODO 等设备功能模块写好
- return new Result().error(600,"等设备功能模块写好");
+ // TODO 等设备功能模块写好
+ return new Result().error(600, "等设备功能模块写好");
}
}
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/vo/AgentTemplateVO.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/vo/AgentTemplateVO.java
index 20c0e144..a5302e5b 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/agent/vo/AgentTemplateVO.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/vo/AgentTemplateVO.java
@@ -1,9 +1,11 @@
package xiaozhi.modules.agent.vo;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import xiaozhi.modules.agent.entity.AgentTemplateEntity;
@Data
+@EqualsAndHashCode(callSuper = true)
public class AgentTemplateVO extends AgentTemplateEntity {
// 角色音色
private String ttsModelName;
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java
index d458e9f9..1312c4fb 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/DeviceController.java
@@ -1,13 +1,23 @@
package xiaozhi.modules.device.controller;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.web.bind.annotation.*;
import xiaozhi.common.constant.Constant;
import xiaozhi.common.exception.ErrorCode;
import xiaozhi.common.page.PageData;
@@ -22,9 +32,6 @@ import xiaozhi.modules.device.entity.DeviceEntity;
import xiaozhi.modules.device.service.DeviceService;
import xiaozhi.modules.security.user.SecurityUser;
-import java.util.List;
-import java.util.Map;
-
@Tag(name = "设备管理")
@AllArgsConstructor
@RestController
@@ -33,7 +40,6 @@ public class DeviceController {
private final DeviceService deviceService;
private final RedisUtils redisUtils;
-
@PostMapping("/bind/{deviceCode}")
@Operation(summary = "绑定设备")
@RequiresPermissions("sys:role:normal")
@@ -61,10 +67,10 @@ public class DeviceController {
@PostMapping("/unbind")
@Operation(summary = "解绑设备")
@RequiresPermissions("sys:role:normal")
- public Result unbindDevice(@RequestBody DeviceUnBindDTO unDeviveBind) {
+ public Result unbindDevice(@RequestBody DeviceUnBindDTO unDeviveBind) {
UserDetail user = SecurityUser.getUser();
deviceService.unbindDevice(user.getId(), unDeviveBind.getDeviceId());
- return new Result();
+ return new Result();
}
@GetMapping("/all")
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java
index 4feb1024..a02c6ee9 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/DeviceService.java
@@ -1,31 +1,49 @@
package xiaozhi.modules.device.service;
+import java.util.List;
+import java.util.Map;
+
import xiaozhi.common.page.PageData;
-import xiaozhi.common.service.BaseService;
import xiaozhi.modules.device.dto.DeviceHeaderDTO;
import xiaozhi.modules.device.dto.DeviceReportReqDTO;
import xiaozhi.modules.device.dto.DeviceReportRespDTO;
import xiaozhi.modules.device.entity.DeviceEntity;
-import java.util.List;
-import java.util.Map;
-
public interface DeviceService {
/**
- * 根据Mac地址获取设备信息
- */
+ * 根据Mac地址获取设备信息
+ */
DeviceEntity getDeviceById(String macAddress);
- DeviceReportRespDTO checkDeviceActive(String macAddress, String deviceId, String clientId, DeviceReportReqDTO deviceReport);
+ /**
+ * 检查设备是否激活
+ */
+ DeviceReportRespDTO checkDeviceActive(String macAddress, String deviceId, String clientId,
+ DeviceReportReqDTO deviceReport);
+ /**
+ * 绑定设备
+ */
DeviceEntity bindDevice(Long userId, DeviceHeaderDTO deviceHeader);
+ /**
+ * 获取用户设备列表
+ */
List getUserDevices(Long userId);
+ /**
+ * 解绑设备
+ */
void unbindDevice(Long userId, Long deviceId);
+ /**
+ * 管理员设备列表
+ */
PageData adminDeviceList(Map params);
+ /**
+ * 设备激活
+ */
Boolean deviceActivation(String activationCode);
}
\ No newline at end of file
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/config/ShiroConfig.java b/main/manager-api/src/main/java/xiaozhi/modules/security/config/ShiroConfig.java
index f5c00fe9..fc5db705 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/security/config/ShiroConfig.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/security/config/ShiroConfig.java
@@ -1,8 +1,9 @@
package xiaozhi.modules.security.config;
-import xiaozhi.modules.security.oauth2.Oauth2Filter;
-import xiaozhi.modules.security.oauth2.Oauth2Realm;
-import jakarta.servlet.Filter;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.session.mgt.SessionManager;
import org.apache.shiro.spring.LifecycleBeanPostProcessor;
@@ -14,9 +15,9 @@ import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import jakarta.servlet.Filter;
+import xiaozhi.modules.security.oauth2.Oauth2Filter;
+import xiaozhi.modules.security.oauth2.Oauth2Realm;
/**
* Shiro的配置文件
@@ -53,17 +54,19 @@ public class ShiroConfig {
shiroFilter.setSecurityManager(securityManager);
shiroFilter.setShiroFilterConfiguration(config);
- //oauth过滤
+ // oauth过滤
Map filters = new HashMap<>();
filters.put("oauth2", new Oauth2Filter());
shiroFilter.setFilters(filters);
- //添加Shiro的内置过滤器
- /*anon:无需认证就可以访问
- authc:必须认证了才能让问
- user:必须拥有,记住我功能,才能访问
- perms:拥有对某个资源的权限才能访问
- role:拥有某个角色权限才能访问*/
+ // 添加Shiro的内置过滤器
+ /*
+ * anon:无需认证就可以访问
+ * authc:必须认证了才能让问
+ * user:必须拥有,记住我功能,才能访问
+ * perms:拥有对某个资源的权限才能访问
+ * role:拥有某个角色权限才能访问
+ */
Map filterMap = new LinkedHashMap<>();
filterMap.put("/ota/**", "anon");
filterMap.put("/webjars/**", "anon");
@@ -74,7 +77,6 @@ public class ShiroConfig {
filterMap.put("/user/captcha", "anon");
filterMap.put("/user/login", "anon");
filterMap.put("/user/register", "anon");
- filterMap.put("/ota/**", "anon");
filterMap.put("/**", "oauth2");
shiroFilter.setFilterChainDefinitionMap(filterMap);
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/oauth2/Oauth2Filter.java b/main/manager-api/src/main/java/xiaozhi/modules/security/oauth2/Oauth2Filter.java
index 1ca288fd..e155b77c 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/security/oauth2/Oauth2Filter.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/security/oauth2/Oauth2Filter.java
@@ -1,9 +1,7 @@
package xiaozhi.modules.security.oauth2;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationToken;
@@ -11,14 +9,17 @@ import org.apache.shiro.web.filter.authc.AuthenticatingFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMethod;
+
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import xiaozhi.common.constant.Constant;
import xiaozhi.common.exception.ErrorCode;
import xiaozhi.common.utils.HttpContextUtils;
import xiaozhi.common.utils.JsonUtils;
import xiaozhi.common.utils.Result;
-import java.io.IOException;
-
/**
* oauth2过滤器
* Copyright (c) 人人开源 All rights reserved.
@@ -30,7 +31,7 @@ public class Oauth2Filter extends AuthenticatingFilter {
@Override
protected AuthenticationToken createToken(ServletRequest request, ServletResponse response) throws Exception {
- //获取请求token
+ // 获取请求token
String token = getRequestToken((HttpServletRequest) request);
if (StringUtils.isBlank(token)) {
@@ -52,7 +53,7 @@ public class Oauth2Filter extends AuthenticatingFilter {
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
- //获取请求token,如果token不存在,直接返回401
+ // 获取请求token,如果token不存在,直接返回401
String token = getRequestToken((HttpServletRequest) request);
if (StringUtils.isBlank(token)) {
@@ -63,7 +64,7 @@ public class Oauth2Filter extends AuthenticatingFilter {
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtils.getOrigin());
- String json = JsonUtils.toJsonString(new Result().error(ErrorCode.UNAUTHORIZED));
+ String json = JsonUtils.toJsonString(new Result().error(ErrorCode.UNAUTHORIZED));
httpResponse.getWriter().print(json);
@@ -74,16 +75,17 @@ public class Oauth2Filter extends AuthenticatingFilter {
}
@Override
- protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request, ServletResponse response) {
+ protected boolean onLoginFailure(AuthenticationToken token, AuthenticationException e, ServletRequest request,
+ ServletResponse response) {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setContentType("application/json;charset=utf-8");
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
httpResponse.setHeader("Access-Control-Allow-Origin", HttpContextUtils.getOrigin());
try {
- //处理登录失败的异常
+ // 处理登录失败的异常
logger.error("onLoginFailure:登录失败!", e);
Throwable throwable = e.getCause() == null ? e : e.getCause();
- Result r = new Result().error(ErrorCode.UNAUTHORIZED, throwable.getMessage());
+ Result r = new Result().error(ErrorCode.UNAUTHORIZED, throwable.getMessage());
String json = JsonUtils.toJsonString(r);
httpResponse.getWriter().print(json);
@@ -99,7 +101,7 @@ public class Oauth2Filter extends AuthenticatingFilter {
*/
private String getRequestToken(HttpServletRequest httpRequest) {
String token = null;
- //从header中获取token
+ // 从header中获取token
String authorization = httpRequest.getHeader(Constant.AUTHORIZATION);
if (StringUtils.isNotBlank(authorization) && authorization.startsWith("Bearer ")) {
token = authorization.replace("Bearer ", "");
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java
index 761ad139..012b4d3e 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/CaptchaServiceImpl.java
@@ -1,23 +1,22 @@
package xiaozhi.modules.security.service.impl;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.wf.captcha.SpecCaptcha;
import com.wf.captcha.base.Captcha;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import xiaozhi.common.redis.RedisKeys;
-import xiaozhi.common.redis.RedisUtils;
-import xiaozhi.modules.security.oauth2.Oauth2Realm;
-import xiaozhi.modules.security.service.CaptchaService;
+
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
+import xiaozhi.common.redis.RedisKeys;
+import xiaozhi.common.redis.RedisUtils;
+import xiaozhi.modules.security.service.CaptchaService;
/**
* 验证码
@@ -29,10 +28,10 @@ public class CaptchaServiceImpl implements CaptchaService {
@Value("${renren.redis.open}")
private boolean open;
/**
- * Local Cache 5分钟过期
+ * Local Cache 5分钟过期
*/
- Cache localCache = CacheBuilder.newBuilder().maximumSize(1000).expireAfterAccess(5, TimeUnit.MINUTES).build();
- private static final Logger logger = LoggerFactory.getLogger(Oauth2Realm.class);
+ Cache localCache = CacheBuilder.newBuilder().maximumSize(1000)
+ .expireAfterAccess(5, TimeUnit.MINUTES).build();
@Override
public void create(HttpServletResponse response, String uuid) throws IOException {
@@ -41,13 +40,13 @@ public class CaptchaServiceImpl implements CaptchaService {
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
- //生成验证码
+ // 生成验证码
SpecCaptcha captcha = new SpecCaptcha(150, 40);
captcha.setLen(5);
captcha.setCharType(Captcha.TYPE_DEFAULT);
captcha.out(response.getOutputStream());
- //保存到缓存
+ // 保存到缓存
setCache(uuid, captcha.text());
}
@@ -56,10 +55,10 @@ public class CaptchaServiceImpl implements CaptchaService {
if (StringUtils.isBlank(code)) {
return false;
}
- //获取验证码
+ // 获取验证码
String captcha = getCache(uuid);
- //效验成功
+ // 效验成功
if (code.equalsIgnoreCase(captcha)) {
return true;
}
@@ -80,7 +79,7 @@ public class CaptchaServiceImpl implements CaptchaService {
if (open) {
key = RedisKeys.getCaptchaKey(key);
String captcha = (String) redisUtils.get(key);
- //删除验证码
+ // 删除验证码
if (captcha != null) {
redisUtils.delete(key);
}
@@ -89,7 +88,7 @@ public class CaptchaServiceImpl implements CaptchaService {
}
String captcha = localCache.getIfPresent(key);
- //删除验证码
+ // 删除验证码
if (captcha != null) {
localCache.invalidate(key);
}
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/ShiroServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/ShiroServiceImpl.java
index 97d16eaa..27c20970 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/ShiroServiceImpl.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/ShiroServiceImpl.java
@@ -1,17 +1,13 @@
package xiaozhi.modules.security.service.impl;
-import xiaozhi.common.user.UserDetail;
+import org.springframework.stereotype.Service;
+
+import lombok.AllArgsConstructor;
import xiaozhi.modules.security.dao.SysUserTokenDao;
import xiaozhi.modules.security.entity.SysUserTokenEntity;
import xiaozhi.modules.security.service.ShiroService;
import xiaozhi.modules.sys.dao.SysUserDao;
import xiaozhi.modules.sys.entity.SysUserEntity;
-import xiaozhi.modules.sys.enums.SuperAdminEnum;
-import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
-import java.util.*;
@AllArgsConstructor
@Service
@@ -19,7 +15,6 @@ public class ShiroServiceImpl implements ShiroService {
private final SysUserDao sysUserDao;
private final SysUserTokenDao sysUserTokenDao;
-
@Override
public SysUserTokenEntity getByToken(String token) {
return sysUserTokenDao.getByToken(token);
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/SysUserTokenServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/SysUserTokenServiceImpl.java
index 40ee7957..7f0d311a 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/SysUserTokenServiceImpl.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/security/service/impl/SysUserTokenServiceImpl.java
@@ -1,8 +1,11 @@
package xiaozhi.modules.security.service.impl;
+import java.util.Date;
+
+import org.springframework.stereotype.Service;
+
import cn.hutool.core.date.DateUtil;
import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
import xiaozhi.common.exception.ErrorCode;
import xiaozhi.common.exception.RenException;
import xiaozhi.common.page.TokenDTO;
@@ -17,11 +20,10 @@ import xiaozhi.modules.sys.dto.PasswordDTO;
import xiaozhi.modules.sys.dto.SysUserDTO;
import xiaozhi.modules.sys.service.SysUserService;
-import java.util.Date;
-
@AllArgsConstructor
@Service
-public class SysUserTokenServiceImpl extends BaseServiceImpl implements SysUserTokenService {
+public class SysUserTokenServiceImpl extends BaseServiceImpl
+ implements SysUserTokenService {
private final SysUserService sysUserService;
/**
@@ -31,18 +33,18 @@ public class SysUserTokenServiceImpl extends BaseServiceImpl createToken(Long userId) {
- //用户token
+ // 用户token
String token;
- //当前时间
+ // 当前时间
Date now = new Date();
- //过期时间
+ // 过期时间
Date expireTime = new Date(now.getTime() + EXPIRE * 1000);
- //判断是否生成过token
+ // 判断是否生成过token
SysUserTokenEntity tokenEntity = baseDao.getByUserId(userId);
if (tokenEntity == null) {
- //生成一个token
+ // 生成一个token
token = TokenGenerator.generateValue();
tokenEntity = new SysUserTokenEntity();
@@ -51,12 +53,12 @@ public class SysUserTokenServiceImpl extends BaseServiceImpl().ok(tokenDTO);
}
@Override
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/dto/AdminPageUserDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/dto/AdminPageUserDTO.java
index 8c0ab77c..7de3843a 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/sys/dto/AdminPageUserDTO.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/dto/AdminPageUserDTO.java
@@ -1,11 +1,11 @@
package xiaozhi.modules.sys.dto;
import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
* 管理员分页用户的参数DTO
+ *
* @author zjy
* @since 2025-3-21
*/
@@ -13,7 +13,6 @@ import lombok.Data;
@Schema(description = "音色分页参数")
public class AdminPageUserDTO {
-
@Schema(description = "手机号码")
private String mobile;
diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysParamsServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysParamsServiceImpl.java
index 558a27ec..b274f23c 100644
--- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysParamsServiceImpl.java
+++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysParamsServiceImpl.java
@@ -1,7 +1,17 @@
package xiaozhi.modules.sys.service.impl;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import lombok.AllArgsConstructor;
import xiaozhi.common.constant.Constant;
import xiaozhi.common.exception.ErrorCode;
import xiaozhi.common.exception.RenException;
@@ -14,14 +24,6 @@ import xiaozhi.modules.sys.dto.SysParamsDTO;
import xiaozhi.modules.sys.entity.SysParamsEntity;
import xiaozhi.modules.sys.redis.SysParamsRedis;
import xiaozhi.modules.sys.service.SysParamsService;
-import lombok.AllArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
/**
* 参数管理
@@ -35,8 +37,7 @@ public class SysParamsServiceImpl extends BaseServiceImpl page(Map params) {
IPage page = baseDao.selectPage(
getPage(params, Constant.CREATE_DATE, false),
- getWrapper(params)
- );
+ getWrapper(params));
return getPageData(page, SysParamsDTO.class);
}
@@ -86,12 +87,12 @@ public class SysParamsServiceImpl extends BaseServiceImpl paramCodeList = baseDao.getParamCodeList(ids);
String[] paramCodes = paramCodeList.toArray(new String[paramCodeList.size()]);
sysParamsRedis.delete(paramCodes);
- //删除
+ // 删除
deleteBatchIds(Arrays.asList(ids));
}
@@ -114,7 +115,7 @@ public class SysParamsServiceImpl extends BaseServiceImpl page(AdminPageUserDTO dto) {
Map params = new HashMap();
params.put(Constant.PAGE, dto.getPage());
- params.put(Constant.LIMIT,dto.getLimit());
+ params.put(Constant.LIMIT, dto.getLimit());
IPage page = baseDao.selectPage(
getPage(params, "id", true),
- //定义查询条件
+ // 定义查询条件
new QueryWrapper()
- //必须按照手机号码查找
- .eq(StringUtils.isNotBlank(dto.getMobile()),"username",dto.getMobile()));
+ // 必须按照手机号码查找
+ .eq(StringUtils.isNotBlank(dto.getMobile()), "username", dto.getMobile()));
List list = page.getRecords().stream().map(user -> {
AdminPageUserVO adminPageUserVO = new AdminPageUserVO();
adminPageUserVO.setUserid(user.getId().toString());
adminPageUserVO.setMobile(user.getUsername());
- //TODO 2. 等设备功能写好,获取对应数据
+ // TODO 2. 等设备功能写好,获取对应数据
adminPageUserVO.setDeviceCount("0");
return adminPageUserVO;
}).toList();
@@ -169,11 +173,13 @@ public class SysUserServiceImpl extends BaseServiceImpl