update:优化已存在的Group注解

This commit is contained in:
hrz
2025-05-17 23:54:25 +08:00
parent 29216768e1
commit 624b1cce74
9 changed files with 52 additions and 118 deletions
@@ -1,13 +0,0 @@
package xiaozhi.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface CreateGroup {
// 可以定义一些元数据或者参数
}
@@ -1,13 +0,0 @@
package xiaozhi.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface UpdateGroup {
// 可以定义一些元数据或者参数
}
@@ -199,7 +199,7 @@ public interface Constant {
/**
* 版本号
*/
public static final String VERSION = "0.4.3";
public static final String VERSION = "0.4.4";
/**
* 无效固件URL
@@ -47,6 +47,12 @@ public abstract class BaseServiceImpl<M extends BaseMapper<T>, T> implements Bas
* @param params 分页查询参数
* @param defaultOrderField 默认排序字段
* @param isAsc 排序方式
* @see xiaozhi.common.constant.Constant
* params.put(Constant.PAGE, "1");
* params.put(Constant.LIMIT, "10");
* params.put(Constant.ORDER_FIELD, "field"); // 单个字段
* params.put(Constant.ORDER_FIELD, List.of("field1", "field2")); // 多个字段
* params.put(Constant.ORDER, "asc");
*/
protected IPage<T> getPage(Map<String, Object> params, String defaultOrderField, boolean isAsc) {
// 分页参数
@@ -66,81 +72,34 @@ public abstract class BaseServiceImpl<M extends BaseMapper<T>, T> implements Bas
// 分页参数
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));
} else {
return page.addOrder(OrderItem.desc(orderField));
}
}
// 没有排序字段,则不排序
if (StringUtils.isBlank(defaultOrderField)) {
return page;
}
// 默认排序
if (isAsc) {
page.addOrder(OrderItem.asc(defaultOrderField));
} else {
page.addOrder(OrderItem.desc(defaultOrderField));
}
return page;
}
/**
* 获取分页对象
* @see xiaozhi.common.constant.Constant
* params.put(Constant.PAGE, "1");
* params.put(Constant.LIMIT, "10");
* params.put(Constant.ORDER_FIELD, List.of("model_type", "sort"));
* params.put(Constant.ORDER, "asc");
*
* @param params 分页查询参数
*/
protected IPage<T> getPage(Map<String, Object> params) {
// 分页参数
long curPage = 1;
long limit = 10;
if (params.get(Constant.PAGE) != null) {
curPage = Long.parseLong((String) params.get(Constant.PAGE));
}
if (params.get(Constant.LIMIT) != null) {
limit = Long.parseLong((String) params.get(Constant.LIMIT));
}
// 分页对象
Page<T> page = new Page<>(curPage, limit);
// 分页参数
params.put(Constant.PAGE, page);
// 排序字段
Object orderField = params.get(Constant.ORDER_FIELD);
String order = (String) params.get(Constant.ORDER);
List<String> orderFields = new ArrayList<>();
// 处理排序字段
if (orderField instanceof String) {
orderFields.add((String) orderField);
} else if (orderField instanceof List) {
orderFields.addAll( (List<String>) orderField);
orderFields.addAll((List<String>) orderField);
}
String order = (String) params.get(Constant.ORDER);
// 有排序字段则排序,默认降序
// 有排序字段则排序
if (CollectionUtils.isNotEmpty(orderFields)) {
if (StringUtils.isNotBlank(order) && Constant.ASC.equalsIgnoreCase(order)) {
return page.addOrder(OrderItem.ascs(orderFields.toArray(new String[orderFields.size()])));
return page.addOrder(OrderItem.ascs(orderFields.toArray(new String[0])));
} else {
return page.addOrder(OrderItem.descs(orderFields.toArray(new String[orderFields.size()])));
return page.addOrder(OrderItem.descs(orderFields.toArray(new String[0])));
}
}
// 没有排序字段,使用默认排序
if (StringUtils.isNotBlank(defaultOrderField)) {
if (isAsc) {
page.addOrder(OrderItem.asc(defaultOrderField));
} else {
page.addOrder(OrderItem.desc(defaultOrderField));
}
}
@@ -16,9 +16,9 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import xiaozhi.common.annotation.UpdateGroup;
import xiaozhi.common.page.PageData;
import xiaozhi.common.utils.Result;
import xiaozhi.common.validator.group.UpdateGroup;
import xiaozhi.modules.model.dto.ModelProviderDTO;
import xiaozhi.modules.model.service.ModelProviderService;
@@ -34,8 +34,8 @@ public class ModelProviderController {
@Operation(summary = "获取模型供应器列表")
@RequiresPermissions("sys:role:superAdmin")
public Result<PageData<ModelProviderDTO>> getListPage(ModelProviderDTO modelProviderDTO,
@RequestParam(required = true, defaultValue = "0") String page,
@RequestParam(required = true, defaultValue = "10") String limit) {
@RequestParam(required = true, defaultValue = "0") String page,
@RequestParam(required = true, defaultValue = "10") String limit) {
return new Result<PageData<ModelProviderDTO>>()
.ok(modelProviderService.getListPage(modelProviderDTO, page, limit));
}
@@ -11,7 +11,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import xiaozhi.common.annotation.UpdateGroup;
import xiaozhi.common.validator.group.UpdateGroup;
@Data
@Schema(description = "模型供应器/商")
@@ -50,7 +50,7 @@ public class ModelProviderServiceImpl extends BaseServiceImpl<ModelProviderDao,
params.put(Constant.ORDER_FIELD, List.of("model_type", "sort"));
params.put(Constant.ORDER, "asc");
IPage<ModelProviderEntity> pageParam = getPage(params);
IPage<ModelProviderEntity> pageParam = getPage(params, null, true);
QueryWrapper<ModelProviderEntity> wrapper = new QueryWrapper<ModelProviderEntity>();