diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index 8daeb25e..1ff70fd4 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -84,6 +84,16 @@ public interface Constant { */ String SERVER_SECRET = "server.secret"; + /** + * 是否允许用户注册 + */ + String SERVER_ALLOW_USER_REGISTER = "server.allow_user_register"; + + /** + * 下发六位验证码时显示的控制面板地址 + */ + String SERVER_FRONTED_URL = "server.fronted_url"; + /** * 路径分割符 */ diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentTemplateServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentTemplateServiceImpl.java index 08702d10..9ac3de25 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentTemplateServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/service/impl/AgentTemplateServiceImpl.java @@ -3,6 +3,7 @@ package xiaozhi.modules.agent.service.impl; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import xiaozhi.modules.agent.dao.AgentTemplateDao; @@ -39,29 +40,30 @@ public class AgentTemplateServiceImpl extends ServiceImpl wrapper = new UpdateWrapper<>(); + switch (modelType) { + case "ASR": + wrapper.set("asr_model_id", modelId); + break; + case "VAD": + wrapper.set("vad_model_id", modelId); + break; + case "LLM": + wrapper.set("llm_model_id", modelId); + break; + case "TTS": + wrapper.set("tts_model_id", modelId); + wrapper.set("tts_voice_id", null); + break; + case "MEMORY": + wrapper.set("mem_model_id", modelId); + break; + case "INTENT": + wrapper.set("intent_model_id", modelId); + break; } + wrapper.ge("sort", 0); + update(wrapper); } } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java index f2351800..840f5ad6 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java @@ -9,7 +9,6 @@ import java.util.TimeZone; import java.util.concurrent.TimeUnit; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -34,6 +33,7 @@ import xiaozhi.modules.device.entity.DeviceEntity; import xiaozhi.modules.device.service.DeviceService; import xiaozhi.modules.device.vo.UserShowDeviceListVO; import xiaozhi.modules.security.user.SecurityUser; +import xiaozhi.modules.sys.service.SysParamsService; import xiaozhi.modules.sys.service.SysUserUtilService; @Service @@ -49,11 +49,11 @@ public class DeviceServiceImpl extends BaseServiceImpl // 添加构造函数来初始化 deviceMapper public DeviceServiceImpl(DeviceDao deviceDao, SysUserUtilService sysUserUtilService, - @Value("${app.fronted-url:http://localhost:8001}") String frontedUrl, + SysParamsService sysParamsService, RedisTemplate redisTemplate) { this.deviceDao = deviceDao; this.sysUserUtilService = sysUserUtilService; - this.frontedUrl = frontedUrl; + this.frontedUrl = sysParamsService.getValue(Constant.SERVER_FRONTED_URL, true); this.redisTemplate = redisTemplate; } 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 c2ec0122..8baff29d 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 @@ -135,6 +135,7 @@ public class ModelController { } // 将其他模型设置为非默认 modelConfigService.setDefaultModel(entity.getModelType(), 0); + entity.setIsEnabled(1); entity.setIsDefault(1); modelConfigService.updateById(entity); 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 b33b13b4..00d48486 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 @@ -42,6 +42,7 @@ public class ModelConfigServiceImpl extends BaseServiceImpl entities = modelConfigDao.selectList( new QueryWrapper() .eq("model_type", modelType) + .eq("is_enabled", 1) .like(StringUtils.isNotBlank(modelName), "model_name", "%" + modelName + "%") .select("id", "model_name")); return ConvertUtils.sourceToTarget(entities, ModelBasicInfoDTO.class); diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java index 0ee6a1ce..f83e49db 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java @@ -77,6 +77,9 @@ public class LoginController { @PostMapping("/register") @Operation(summary = "注册") public Result register(@RequestBody LoginDTO login) { + if (!sysUserService.getAllowUserRegister()) { + throw new RenException("当前不允许普通用户注册"); + } // 验证是否正确输入验证码 boolean validate = captchaService.validate(login.getCaptchaId(), login.getCaptcha()); if (!validate) { @@ -119,6 +122,7 @@ public class LoginController { public Result> pubConfig() { Map config = new HashMap<>(); config.put("version", "0.3.3"); + config.put("allowUserRegister", sysUserService.getAllowUserRegister()); return new Result>().ok(config); } } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/SysParamsController.java b/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/SysParamsController.java index c8f95528..1951333f 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/SysParamsController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/sys/controller/SysParamsController.java @@ -27,6 +27,7 @@ import xiaozhi.common.validator.ValidatorUtils; import xiaozhi.common.validator.group.AddGroup; import xiaozhi.common.validator.group.DefaultGroup; import xiaozhi.common.validator.group.UpdateGroup; +import xiaozhi.modules.config.service.ConfigService; import xiaozhi.modules.sys.dto.SysParamsDTO; import xiaozhi.modules.sys.service.SysParamsService; @@ -42,6 +43,7 @@ import xiaozhi.modules.sys.service.SysParamsService; @AllArgsConstructor public class SysParamsController { private final SysParamsService sysParamsService; + private final ConfigService configService; @GetMapping("page") @Operation(summary = "分页") @@ -77,7 +79,7 @@ public class SysParamsController { ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); sysParamsService.save(dto); - + configService.getConfig(false); return new Result(); } @@ -90,7 +92,7 @@ public class SysParamsController { ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); sysParamsService.update(dto); - + configService.getConfig(false); return new Result(); } @@ -103,7 +105,7 @@ public class SysParamsController { AssertUtils.isArrayEmpty(ids, "id"); sysParamsService.delete(ids); - + configService.getConfig(false); return new Result(); } } 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 d5d103af..7a35da32 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 @@ -65,4 +65,11 @@ public interface SysUserService extends BaseService { * @param userIds 用户ID数组 */ void changeStatus(Integer status, String[] userIds); + + /** + * 获取是否允许用户注册 + * + * @return 是否允许用户注册 + */ + boolean getAllowUserRegister(); } 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 e5b57159..30976229 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 @@ -30,6 +30,7 @@ import xiaozhi.modules.sys.dto.PasswordDTO; import xiaozhi.modules.sys.dto.SysUserDTO; import xiaozhi.modules.sys.entity.SysUserEntity; import xiaozhi.modules.sys.enums.SuperAdminEnum; +import xiaozhi.modules.sys.service.SysParamsService; import xiaozhi.modules.sys.service.SysUserService; import xiaozhi.modules.sys.vo.AdminPageUserVO; @@ -45,6 +46,8 @@ public class SysUserServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); @@ -205,4 +208,17 @@ public class SysUserServiceImpl extends BaseServiceImpl()); + if (userCount == 0) { + return true; + } + return false; + } } diff --git a/main/manager-api/src/main/resources/application.yml b/main/manager-api/src/main/resources/application.yml index abccb0b5..3daf48a1 100644 --- a/main/manager-api/src/main/resources/application.yml +++ b/main/manager-api/src/main/resources/application.yml @@ -63,7 +63,4 @@ mybatis-plus: configuration-properties: prefix: blobType: BLOB - boolValue: TRUE - -app: - fronted-url: http://localhost:8001 \ No newline at end of file + boolValue: TRUE \ No newline at end of file diff --git a/main/manager-api/src/main/resources/db/changelog/202504131543.sql b/main/manager-api/src/main/resources/db/changelog/202504151205.sql similarity index 78% rename from main/manager-api/src/main/resources/db/changelog/202504131543.sql rename to main/manager-api/src/main/resources/db/changelog/202504151205.sql index 55c69912..0b72121e 100644 --- a/main/manager-api/src/main/resources/db/changelog/202504131543.sql +++ b/main/manager-api/src/main/resources/db/changelog/202504151205.sql @@ -15,4 +15,9 @@ INSERT INTO `ai_tts_voice` VALUES ('TTS_EdgeTTS0008', 'TTS_EdgeTTS', 'EdgeTTS女声-陕西小妮', 'zh-CN-shaanxi-XiaoniNeural', '陕西', NULL, NULL, 1, NULL, NULL, NULL, NULL), ('TTS_EdgeTTS0009', 'TTS_EdgeTTS', 'EdgeTTS女声-香港海佳', 'zh-HK-HiuGaaiNeural', '粤语', 'General', 'Friendly, Positive', 1, NULL, NULL, NULL, NULL), ('TTS_EdgeTTS0010', 'TTS_EdgeTTS', 'EdgeTTS女声-香港海曼', 'zh-HK-HiuMaanNeural', '粤语', 'General', 'Friendly, Positive', 1, NULL, NULL, NULL, NULL), -('TTS_EdgeTTS0011', 'TTS_EdgeTTS', 'EdgeTTS男声-香港万龙', 'zh-HK-WanLungNeural', '粤语', 'General', 'Friendly, Positive', 1, NULL, NULL, NULL, NULL); \ No newline at end of file +('TTS_EdgeTTS0011', 'TTS_EdgeTTS', 'EdgeTTS男声-香港万龙', 'zh-HK-WanLungNeural', '粤语', 'General', 'Friendly, Positive', 1, NULL, NULL, NULL, NULL); + +-- 增加是否允许用户注册参数 +delete from `sys_params` where id in (103,104); +INSERT INTO `sys_params` (id, param_code, param_value, value_type, param_type, remark) VALUES (103, 'server.allow_user_register', 'false', 'boolean', 1, '是否运行管理员以外的人注册'); +INSERT INTO `sys_params` (id, param_code, param_value, value_type, param_type, remark) VALUES (104, 'server.fronted_url', 'http://xiaozhi.server.com', 'string', 1, '下发六位验证码时显示的控制面板地址'); diff --git a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml index 37797d3f..7060e32c 100755 --- a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml @@ -52,9 +52,9 @@ databaseChangeLog: encoding: utf8 path: classpath:db/changelog/202504112058.sql - changeSet: - id: 202504131543 + id: 202504151205 author: John changes: - sqlFile: encoding: utf8 - path: classpath:db/changelog/202504131543.sql + path: classpath:db/changelog/202504151205.sql diff --git a/main/manager-web/src/components/AddModelDialog.vue b/main/manager-web/src/components/AddModelDialog.vue index b6854a3e..9de15ac8 100644 --- a/main/manager-web/src/components/AddModelDialog.vue +++ b/main/manager-web/src/components/AddModelDialog.vue @@ -1,6 +1,6 @@