diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java b/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java index af1e772f..7b3381ce 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/controller/ModelController.java @@ -17,11 +17,12 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import xiaozhi.common.page.PageData; +import xiaozhi.common.utils.ConvertUtils; import xiaozhi.common.utils.Result; import xiaozhi.modules.model.dto.ModelConfigBodyDTO; import xiaozhi.modules.model.dto.ModelConfigDTO; import xiaozhi.modules.model.dto.ModelProviderDTO; -import xiaozhi.modules.model.dto.ModelProviderFieldDTO; +import xiaozhi.modules.model.entity.ModelConfigEntity; import xiaozhi.modules.model.service.ModelConfigService; import xiaozhi.modules.model.service.ModelProviderService; @@ -52,15 +53,6 @@ public class ModelController { return new Result>().ok(modelProviderDTOS); } - @GetMapping("/{modelType}/{provideCode}/fields") - @Operation(summary = "获取模型供应器字段") - @RequiresPermissions("sys:role:superAdmin") - public Result> getModelProviderFields(@PathVariable String modelType, - @PathVariable String provideCode) { - List fieldList = modelProviderService.getFieldList(modelType, provideCode); - return new Result>().ok(fieldList); - } - @GetMapping("/models/list") @Operation(summary = "获取模型配置列表") @RequiresPermissions("sys:role:superAdmin") @@ -94,15 +86,23 @@ public class ModelController { return new Result().ok(modelConfigDTO); } - @DeleteMapping("/models/{modelType}/{provideCode}/{id}") + @DeleteMapping("/models/{id}") @Operation(summary = "删除模型配置") @RequiresPermissions("sys:role:superAdmin") - public Result deleteModelConfig(@PathVariable String modelType, @PathVariable String provideCode, - @PathVariable String id) { - modelConfigService.delete(modelType, provideCode, id); + public Result deleteModelConfig(@PathVariable String id) { + modelConfigService.delete(id); return new Result<>(); } + @GetMapping("/models/{id}") + @Operation(summary = "获取模型配置") + @RequiresPermissions("sys:role:superAdmin") + public Result getModelConfig(@PathVariable String id) { + ModelConfigEntity item = modelConfigService.selectById(id); + ModelConfigDTO modelConfigDTO = ConvertUtils.sourceToTarget(item, ModelConfigDTO.class); + return new Result().ok(modelConfigDTO); + } + @GetMapping("/models/{modelId}/voices") @Operation(summary = "获取模型音色") @RequiresPermissions("sys:role:normal") diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigBodyDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigBodyDTO.java index 3e335bf0..07758def 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigBodyDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigBodyDTO.java @@ -2,6 +2,7 @@ package xiaozhi.modules.model.dto; import java.io.Serial; +import cn.hutool.json.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -28,7 +29,7 @@ public class ModelConfigBodyDTO { private Integer isEnabled; @Schema(description = "模型配置(JSON格式)") - private String configJson; + private JSONObject configJson; @Schema(description = "官方文档链接") private String docLink; diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigDTO.java index a7b1b436..ed73e1ff 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelConfigDTO.java @@ -3,6 +3,7 @@ package xiaozhi.modules.model.dto; import java.io.Serial; import java.io.Serializable; +import cn.hutool.json.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -32,7 +33,7 @@ public class ModelConfigDTO implements Serializable { private Integer isEnabled; @Schema(description = "模型配置(JSON格式)") - private String configJson; + private JSONObject configJson; @Schema(description = "官方文档链接") private String docLink; diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelProviderFieldDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelProviderFieldDTO.java deleted file mode 100644 index 8186b363..00000000 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/ModelProviderFieldDTO.java +++ /dev/null @@ -1,19 +0,0 @@ -package xiaozhi.modules.model.dto; - -import java.io.Serializable; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -@Data -@Schema(description = "模型供应器字段") -public class ModelProviderFieldDTO implements Serializable { - @Schema(description = "字段名") - private String key; - - @Schema(description = "字段标签") - private String label; - - @Schema(description = "字段类型") - private String type; -} diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/entity/ModelConfigEntity.java b/main/manager-api/src/main/java/xiaozhi/modules/model/entity/ModelConfigEntity.java index 0111ea96..32ff911f 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/entity/ModelConfigEntity.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/entity/ModelConfigEntity.java @@ -9,11 +9,12 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import cn.hutool.json.JSONObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data -@TableName("ai_model_config") +@TableName(value = "ai_model_config", autoResultMap = true) @Schema(description = "模型配置表") public class ModelConfigEntity { @@ -38,7 +39,7 @@ public class ModelConfigEntity { @TableField(typeHandler = JacksonTypeHandler.class) @Schema(description = "模型配置(JSON格式)") - private String configJson; + private JSONObject configJson; @Schema(description = "官方文档链接") private String docLink; diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelConfigService.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelConfigService.java index 78e9d0ce..59312589 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelConfigService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelConfigService.java @@ -3,10 +3,12 @@ package xiaozhi.modules.model.service; import java.util.List; import xiaozhi.common.page.PageData; +import xiaozhi.common.service.BaseService; import xiaozhi.modules.model.dto.ModelConfigBodyDTO; import xiaozhi.modules.model.dto.ModelConfigDTO; +import xiaozhi.modules.model.entity.ModelConfigEntity; -public interface ModelConfigService { +public interface ModelConfigService extends BaseService { List getModelCodeList(String modelType, String modelName); @@ -16,7 +18,7 @@ public interface ModelConfigService { ModelConfigDTO edit(String modelType, String provideCode, String id, ModelConfigBodyDTO modelConfigBodyDTO); - void delete(String modelType, String provideCode, String id); + void delete(String id); List getVoiceList(String modelName, String voiceName); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelProviderService.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelProviderService.java index cb92c953..2ace101e 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelProviderService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/ModelProviderService.java @@ -3,7 +3,6 @@ package xiaozhi.modules.model.service; import java.util.List; import xiaozhi.modules.model.dto.ModelProviderDTO; -import xiaozhi.modules.model.dto.ModelProviderFieldDTO; import xiaozhi.modules.model.entity.ModelProviderEntity; public interface ModelProviderService { @@ -19,6 +18,4 @@ public interface ModelProviderService { void delete(); List getList(String modelType, String provideCode); - - List getFieldList(String modelType, String provideCode); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java index b98f70c6..998bf137 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelConfigServiceImpl.java @@ -91,16 +91,7 @@ public class ModelConfigServiceImpl extends BaseServiceImpl providerList = modelProviderService.getList(modelType, provideCode); - if (CollectionUtil.isEmpty(providerList)) { - throw new RenException("供应器不存在"); - } - + public void delete(String id) { modelConfigDao.deleteById(id); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java index 7580d479..fb06e4d5 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/service/impl/ModelProviderServiceImpl.java @@ -10,10 +10,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.AllArgsConstructor; import xiaozhi.common.service.impl.BaseServiceImpl; import xiaozhi.common.utils.ConvertUtils; -import xiaozhi.common.utils.JsonUtils; import xiaozhi.modules.model.dao.ModelProviderDao; import xiaozhi.modules.model.dto.ModelProviderDTO; -import xiaozhi.modules.model.dto.ModelProviderFieldDTO; import xiaozhi.modules.model.entity.ModelProviderEntity; import xiaozhi.modules.model.service.ModelProviderService; @@ -56,15 +54,4 @@ public class ModelProviderServiceImpl extends BaseServiceImpl providerEntities = modelProviderDao.selectList(queryWrapper); return ConvertUtils.sourceToTarget(providerEntities, ModelProviderDTO.class); } - - @Override - public List getFieldList(String modelType, String providerCode) { - List modelProviderEntities = modelProviderDao.getFieldList(modelType, providerCode); - if (modelProviderEntities == null || modelProviderEntities.isEmpty()) { - return null; - } - String fields = modelProviderEntities.getFirst(); - List fieldList = JsonUtils.parseArray(fields, ModelProviderFieldDTO.class); - return fieldList; - } } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java index 9b43cab0..bae50cee 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/AdminController.java @@ -7,6 +7,7 @@ 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.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -79,6 +80,15 @@ public class AdminController { return new Result<>(); } + @PutMapping("/users/changeStatus/{status}") + @Operation(summary = "批量修改用户状态") + @RequiresPermissions("sys:role:superAdmin") + @Parameter(name = "status", description = "用户状态", required = true) + public Result changeStatus(@PathVariable Integer status, @RequestBody Long[] userIds) { + sysUserService.changeStatus(status, userIds); + return new Result(); + } + @GetMapping("/device/all") @Operation(summary = "分页查找设备") @RequiresPermissions("sys:role:superAdmin") diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java index 303cca76..8b7ff1c2 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/SysUserService.java @@ -57,4 +57,12 @@ public interface SysUserService extends BaseService { * @return 用户列表分页数据 */ PageData page(AdminPageUserDTO dto); + + /** + * 批量修改用户状态 + * + * @param status 用户状态 + * @param userIds 用户ID数组 + */ + void changeStatus(Integer status, Long[] userIds); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java index 911011b5..d83dd3e0 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/service/impl/SysUserServiceImpl.java @@ -189,10 +189,20 @@ public class SysUserServiceImpl extends BaseServiceImpl + + + + + + + + + + + + + + + +