diff --git a/pom.xml b/pom.xml index eacda03..f1e8960 100644 --- a/pom.xml +++ b/pom.xml @@ -59,7 +59,7 @@ 5.2.4 8.0.2 - + 1.0.1 1.3.0-beta9 @@ -167,7 +167,7 @@ springdoc-openapi-starter-webmvc-api ${springdoc.version} - + org.springdoc springdoc-openapi-starter-common @@ -457,14 +457,14 @@ dev.langchain4j langchain4j-dashscope - + com.squareup.okhttp3 okhttp ${okhttp.version} - + com.squareup.okhttp3 okhttp-sse @@ -488,6 +488,11 @@ ruoyi-chat ${revision} + + org.dromara + ruoyi-pet + ${revision} + org.dromara diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index e5aa929..dad9cbc 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -21,6 +21,7 @@ ruoyi-chat ruoyi-pay ruoyi-mall + ruoyi-pet ruoyi-modules diff --git a/ruoyi-modules/ruoyi-generator/pom.xml b/ruoyi-modules/ruoyi-generator/pom.xml index e0aea04..43be3b7 100644 --- a/ruoyi-modules/ruoyi-generator/pom.xml +++ b/ruoyi-modules/ruoyi-generator/pom.xml @@ -67,11 +67,11 @@ - - - - - + + org.anyline + anyline-data-jdbc-postgresql + ${anyline.version} + diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java index 77327b3..ffe72d3 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/util/VelocityUtils.java @@ -3,12 +3,14 @@ package org.dromara.generator.util; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.StrUtil; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.apache.velocity.VelocityContext; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.mybatis.enums.DataBaseType; import org.dromara.common.mybatis.helper.DataBaseHelper; import org.dromara.generator.constant.GenConstants; import org.dromara.generator.domain.GenTable; @@ -19,7 +21,7 @@ import java.util.*; /** * 模板处理工具类 * - * @author pengles + * @author ruoyi */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class VelocityUtils { @@ -57,9 +59,12 @@ public class VelocityUtils { velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "【请填写功能名称】"); velocityContext.put("ClassName", genTable.getClassName()); velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); - velocityContext.put("moduleName", genTable.getModuleName()); + velocityContext.put("moduleName", StrUtil.toSymbolCase(genTable.getModuleName(), '-')); velocityContext.put("BusinessName", StringUtils.capitalize(genTable.getBusinessName())); velocityContext.put("businessName", genTable.getBusinessName()); + velocityContext.put("business_name", StrUtil.toUnderlineCase(genTable.getBusinessName())); + velocityContext.put("business__name", StrUtil.toSymbolCase(genTable.getBusinessName(), '-')); + velocityContext.put("businessname", StrUtil.toSymbolCase(genTable.getBusinessName(), ' ')); velocityContext.put("basePackage", getPackagePrefix(packageName)); velocityContext.put("packageName", packageName); velocityContext.put("author", genTable.getFunctionAuthor()); @@ -67,9 +72,12 @@ public class VelocityUtils { velocityContext.put("pkColumn", genTable.getPkColumn()); velocityContext.put("importList", getImportList(genTable)); velocityContext.put("permissionPrefix", getPermissionPrefix(moduleName, businessName)); + velocityContext.put("dicts", getDicts(genTable)); + velocityContext.put("dictList", getDictList(genTable)); + velocityContext.put("pkColumn", genTable.getPkColumn()); velocityContext.put("columns", genTable.getColumns()); velocityContext.put("table", genTable); - velocityContext.put("dicts", getDicts(genTable)); + velocityContext.put("StrUtil", new StrUtil()); setMenuVelocityContext(velocityContext, genTable); if (GenConstants.TPL_TREE.equals(tplCategory)) { setTreeVelocityContext(velocityContext, genTable); @@ -118,6 +126,7 @@ public class VelocityUtils { templates.add("vm/java/serviceImpl.java.vm"); templates.add("vm/java/controller.java.vm"); templates.add("vm/xml/mapper.xml.vm"); + DataBaseType dataBaseType = DataBaseHelper.getDataBaseType(); if (DataBaseHelper.isOracle()) { templates.add("vm/sql/oracle/sql.vm"); } else if (DataBaseHelper.isPostgerSql()) { @@ -127,12 +136,14 @@ public class VelocityUtils { } else { templates.add("vm/sql/sql.vm"); } - templates.add("vm/ts/api.ts.vm"); - templates.add("vm/ts/types.ts.vm"); + templates.add("vm/soy/typings/api.d.ts.vm"); + templates.add("vm/soy/api/api.ts.vm"); + templates.add("vm/soy/modules/search.vue.vm"); + templates.add("vm/soy/modules/operate-drawer.vue.vm"); if (GenConstants.TPL_CRUD.equals(tplCategory)) { - templates.add("vm/vue/index.vue.vm"); + templates.add("vm/soy/index.vue.vm"); } else if (GenConstants.TPL_TREE.equals(tplCategory)) { - templates.add("vm/vue/index-tree.vue.vm"); + templates.add("vm/soy/index-tree.vue.vm"); } return templates; } @@ -154,8 +165,8 @@ public class VelocityUtils { String javaPath = PROJECT_PATH + "/" + StringUtils.replace(packageName, ".", "/"); String mybatisPath = MYBATIS_PATH + "/" + moduleName; - String vuePath = "vue"; - + String soybeanPath = "soy"; + String soybeanModuleName = StrUtil.toSymbolCase(moduleName, '-'); if (template.contains("domain.java.vm")) { fileName = StringUtils.format("{}/domain/{}.java", javaPath, className); } @@ -177,14 +188,18 @@ public class VelocityUtils { fileName = StringUtils.format("{}/{}Mapper.xml", mybatisPath, className); } else if (template.contains("sql.vm")) { fileName = businessName + "Menu.sql"; - } else if (template.contains("api.ts.vm")) { - fileName = StringUtils.format("{}/api/{}/{}/index.ts", vuePath, moduleName, businessName); - } else if (template.contains("types.ts.vm")) { - fileName = StringUtils.format("{}/api/{}/{}/types.ts", vuePath, moduleName, businessName); } else if (template.contains("index.vue.vm")) { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + fileName = StringUtils.format("{}/views/{}/{}/index.vue", soybeanPath, soybeanModuleName, StrUtil.toSymbolCase(businessName, '-')); } else if (template.contains("index-tree.vue.vm")) { - fileName = StringUtils.format("{}/views/{}/{}/index.vue", vuePath, moduleName, businessName); + fileName = StringUtils.format("{}/views/{}/{}/index.vue", soybeanPath, soybeanModuleName, StrUtil.toSymbolCase(businessName, '-')); + } else if (template.contains("api.d.ts.vm")) { + fileName = StringUtils.format("{}/typings/api/{}.{}.api.d.ts", soybeanPath, soybeanModuleName, StrUtil.toSymbolCase(businessName, '-')); + } else if (template.contains("api.ts.vm")) { + fileName = StringUtils.format("{}/service/api/{}/{}.ts", soybeanPath, soybeanModuleName, StrUtil.toSymbolCase(businessName, '-')); + } else if (template.contains("search.vue.vm")) { + fileName = StringUtils.format("{}/views/{}/{}/modules/{}-search.vue", soybeanPath, soybeanModuleName, StrUtil.toSymbolCase(businessName, '-'), StrUtil.toSymbolCase(businessName, '-')); + } else if (template.contains("operate-drawer.vue.vm")) { + fileName = StringUtils.format("{}/views/{}/{}/modules/{}-operate-drawer.vue", soybeanPath, soybeanModuleName, StrUtil.toSymbolCase(businessName, '-'), StrUtil.toSymbolCase(businessName, '-')); } return fileName; } @@ -245,13 +260,46 @@ public class VelocityUtils { public static void addDicts(Set dicts, List columns) { for (GenTableColumn column : columns) { if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( - column.getHtmlType(), - new String[]{GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX})) { + column.getHtmlType(), + GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX)) { dicts.add("'" + column.getDictType() + "'"); } } } + /** + * 根据列类型获取字典组 + * + * @param genTable 业务表对象 + * @return 返回字典组 + */ + public static Set> getDictList(GenTable genTable) { + List columns = genTable.getColumns(); + Set> dicts = new HashSet<>(); + addDictList(dicts, columns); + return dicts; + } + + /** + * 添加字典列表 + * + * @param dicts 字典列表 + * @param columns 列集合 + */ + public static void addDictList(Set> dicts, List columns) { + for (GenTableColumn column : columns) { + if (!column.isSuperColumn() && StringUtils.isNotEmpty(column.getDictType()) && StringUtils.equalsAny( + column.getHtmlType(), + GenConstants.HTML_SELECT, GenConstants.HTML_RADIO, GenConstants.HTML_CHECKBOX)) { + Map dict = new HashMap<>(); + dict.put("type", column.getDictType()); + dict.put("name", StringUtils.toCamelCase(column.getDictType())); + dict.put("immediate", column.isList()); + dicts.add(dict); + } + } + } + /** * 获取权限前缀 * @@ -271,7 +319,7 @@ public class VelocityUtils { */ public static String getParentMenuId(Dict paramsObj) { if (CollUtil.isNotEmpty(paramsObj) && paramsObj.containsKey(GenConstants.PARENT_MENU_ID) - && StringUtils.isNotEmpty(paramsObj.getStr(GenConstants.PARENT_MENU_ID))) { + && StringUtils.isNotEmpty(paramsObj.getStr(GenConstants.PARENT_MENU_ID))) { return paramsObj.getStr(GenConstants.PARENT_MENU_ID); } return DEFAULT_PARENT_MENU_ID; diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml b/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml index d779d97..81fe79a 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml @@ -1,10 +1,10 @@ # 代码生成 gen: # 作者 - author: Lion Li + author: shuo # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool - packageName: org.dromara.system + packageName: org.dromara.pet # 自动去除表前缀,默认是false autoRemovePre: false # 表前缀(生成类名不会包含表前缀,多个用逗号分隔) - tablePrefix: sys_ + tablePrefix: sys_,biz_ diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/api/api.ts.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/api/api.ts.vm new file mode 100644 index 0000000..f910941 --- /dev/null +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/api/api.ts.vm @@ -0,0 +1,41 @@ +import { request } from '@/service/request'; +#set($responseType = "") +#if($tplCategory == "tree") + #set($responseType = "Api.${ModuleName}.${BusinessName}[]") +#else + #set($responseType = "Api.${ModuleName}.${BusinessName}List") +#end + +/** 获取${functionName}列表 */ +export function fetchGet${BusinessName}List (params?: Api.${ModuleName}.${BusinessName}SearchParams) { + return request<$responseType>({ + url: '/${moduleName}/${businessName}/list', + method: 'get', + params + }); +} +/** 新增${functionName} */ +export function fetchCreate${BusinessName} (data: Api.${ModuleName}.${BusinessName}OperateParams) { + return request({ + url: '/${moduleName}/${businessName}', + method: 'post', + data + }); +} + +/** 修改${functionName} */ +export function fetchUpdate${BusinessName} (data: Api.${ModuleName}.${BusinessName}OperateParams) { + return request({ + url: '/${moduleName}/${businessName}', + method: 'put', + data + }); +} + +/** 批量删除${functionName} */ +export function fetchBatchDelete${BusinessName} (${pkColumn.javaField}s: CommonType.IdType[]) { + return request({ + url: `/${moduleName}/${businessName}/${${pkColumn.javaField}s.join(',')}`, + method: 'delete' + }); +} diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/index-tree.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/index-tree.vue.vm new file mode 100644 index 0000000..2a7cb25 --- /dev/null +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/index-tree.vue.vm @@ -0,0 +1,233 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/index.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/index.vue.vm new file mode 100644 index 0000000..f1cc6dc --- /dev/null +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/index.vue.vm @@ -0,0 +1,198 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/modules/operate-drawer.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/modules/operate-drawer.vue.vm new file mode 100644 index 0000000..58dfab4 --- /dev/null +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/modules/operate-drawer.vue.vm @@ -0,0 +1,257 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/modules/search.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/modules/search.vue.vm new file mode 100644 index 0000000..4a6b920 --- /dev/null +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/modules/search.vue.vm @@ -0,0 +1,130 @@ +#set($ModuleName=$moduleName.substring(0, 1).toUpperCase() + $moduleName.substring(1)) + + + + + diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/typings/api.d.ts.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/typings/api.d.ts.vm new file mode 100644 index 0000000..e65af2c --- /dev/null +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/soy/typings/api.d.ts.vm @@ -0,0 +1,51 @@ +#set($BaseEntity = ['createDept', 'createBy', 'createTime', 'updateBy', 'updateTime']) +#set($ModuleName = $moduleName.substring(0, 1).toUpperCase() + $moduleName.substring(1)) +/** + * Namespace Api + * + * All backend api type + */ +declare namespace Api { + /** + * namespace ${ModuleName} + * + * backend api module: "${ModuleName}" + */ + namespace ${ModuleName} { + /** ${businessname} */ + type ${BusinessName} = Common.CommonRecord<{ + #foreach($column in $columns)#if(!$BaseEntity.contains($column.javaField)) + /** $column.columnComment */ + $column.javaField:#if($column.javaField.indexOf("id") != -1 || $column.javaField.indexOf("Id") != -1) CommonType.IdType; #elseif($column.javaType == 'Long' || $column.javaType == 'Integer' || $column.javaType == 'Double' || $column.javaType == 'Float' || $column.javaType == 'BigDecimal') number; #elseif($column.javaType == 'Boolean') boolean; #else string; #end + #end#end + }>; + + /** ${businessname} search params */ + type ${BusinessName}SearchParams = CommonType.RecordNullable< + Pick< + Api.${ModuleName}.${BusinessName}, + #foreach($column in $columns) + #if($column.query && $column.queryType != 'BETWEEN') + | '${column.javaField}' + #end + #end + > & + Api.Common.CommonSearchParams + >; + + /** ${businessname} operate params */ + type ${BusinessName}OperateParams = CommonType.RecordNullable< + Pick< + Api.${ModuleName}.${BusinessName}, + #foreach($column in $columns) + #if($column.insert || $column.edit) + | '${column.javaField}' + #end + #end + > + >; + + /** ${businessname} list */ + type ${BusinessName}List = Api.Common.PaginatingQueryRecord<${BusinessName}>; + } +} diff --git a/ruoyi-modules/ruoyi-face/README.md b/ruoyi-modules/ruoyi-pet/README.md similarity index 100% rename from ruoyi-modules/ruoyi-face/README.md rename to ruoyi-modules/ruoyi-pet/README.md diff --git a/ruoyi-modules/ruoyi-face/pom.xml b/ruoyi-modules/ruoyi-pet/pom.xml similarity index 98% rename from ruoyi-modules/ruoyi-face/pom.xml rename to ruoyi-modules/ruoyi-pet/pom.xml index 2400c61..17d7166 100644 --- a/ruoyi-modules/ruoyi-face/pom.xml +++ b/ruoyi-modules/ruoyi-pet/pom.xml @@ -9,7 +9,7 @@ 4.0.0 - ruoyi-face + ruoyi-pet chat聊天模块 diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/client/ChatSdk.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/client/ChatSdk.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/client/ChatSdk.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/client/ChatSdk.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/config/StompWebSocketConfig.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/config/StompWebSocketConfig.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/config/StompWebSocketConfig.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/config/StompWebSocketConfig.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/AIKnowledgeChatController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/AIKnowledgeChatController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/AIKnowledgeChatController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/AIKnowledgeChatController.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/BizPetMedicalContextController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/BizPetMedicalContextController.java new file mode 100644 index 0000000..e539674 --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/BizPetMedicalContextController.java @@ -0,0 +1,105 @@ +package org.dromara.pet.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.pet.domain.vo.BizPetMedicalContextVo; +import org.dromara.pet.domain.bo.BizPetMedicalContextBo; +import org.dromara.pet.service.IBizPetMedicalContextService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 宠物医疗上下文 + * + * @author shuo + * @date 2026-02-25 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/pet/petMedicalContext") +public class BizPetMedicalContextController extends BaseController { + + private final IBizPetMedicalContextService bizPetMedicalContextService; + +/** + * 查询宠物医疗上下文列表 + */ +@SaCheckPermission("pet:petMedicalContext:list") +@GetMapping("/list") + public TableDataInfo list(BizPetMedicalContextBo bo, PageQuery pageQuery) { + return bizPetMedicalContextService.queryPageList(bo, pageQuery); + } + + /** + * 导出宠物医疗上下文列表 + */ + @SaCheckPermission("pet:petMedicalContext:export") + @Log(title = "宠物医疗上下文", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BizPetMedicalContextBo bo, HttpServletResponse response) { + List list = bizPetMedicalContextService.queryList(bo); + ExcelUtil.exportExcel(list, "宠物医疗上下文", BizPetMedicalContextVo.class, response); + } + + /** + * 获取宠物医疗上下文详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("pet:petMedicalContext:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(bizPetMedicalContextService.queryById(id)); + } + + /** + * 新增宠物医疗上下文 + */ + @SaCheckPermission("pet:petMedicalContext:add") + @Log(title = "宠物医疗上下文", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BizPetMedicalContextBo bo) { + return toAjax(bizPetMedicalContextService.insertByBo(bo)); + } + + /** + * 修改宠物医疗上下文 + */ + @SaCheckPermission("pet:petMedicalContext:edit") + @Log(title = "宠物医疗上下文", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BizPetMedicalContextBo bo) { + return toAjax(bizPetMedicalContextService.updateByBo(bo)); + } + + /** + * 删除宠物医疗上下文 + * + * @param ids 主键串 + */ + @SaCheckPermission("pet:petMedicalContext:remove") + @Log(title = "宠物医疗上下文", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(bizPetMedicalContextService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatConfigController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatConfigController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatConfigController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatConfigController.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatMessageController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatMessageController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatMessageController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatMessageController.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatModelController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatModelController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatModelController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatModelController.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatOpenApiController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatOpenApiController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatOpenApiController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatOpenApiController.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatSessionController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatSessionController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatSessionController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatSessionController.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatStompController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatStompController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatStompController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatStompController.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatUsageTokenController.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatUsageTokenController.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/controller/ChatUsageTokenController.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/controller/ChatUsageTokenController.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/BizPetMedicalContext.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/BizPetMedicalContext.java new file mode 100644 index 0000000..96a10e0 --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/BizPetMedicalContext.java @@ -0,0 +1,70 @@ +package org.dromara.pet.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + import java.util.Date; + import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 宠物医疗上下文对象 biz_pet_medical_context + * + * @author shuo + * @date 2026-02-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("biz_pet_medical_context") +public class BizPetMedicalContext extends + + BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 关联宠物ID + */ + private Long petId; + + /** + * 过敏史 + */ + private String allergies; + + /** + * 疫苗接种记录 + */ + private String vaccinations; + + /** + * 慢性病史 + */ + private String chronicConditions; + + /** + * 日常用药 + */ + private String regularMedications; + + /** + * 业务更新时间 + */ + private Date updatedAt; + + /** + * 租户编号 + */ + private String tenantId; + + + } diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatConfig.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatConfig.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatConfig.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatConfig.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatMessage.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatMessage.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatMessage.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatMessage.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatModel.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatModel.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatModel.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatModel.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatSession.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatSession.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatSession.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatSession.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatUsageToken.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatUsageToken.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/ChatUsageToken.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/ChatUsageToken.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/BizPetMedicalContextBo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/BizPetMedicalContextBo.java new file mode 100644 index 0000000..d3bcb7c --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/BizPetMedicalContextBo.java @@ -0,0 +1,73 @@ +package org.dromara.pet.domain.bo; + +import org.dromara.pet.domain.BizPetMedicalContext; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 宠物医疗上下文业务对象 biz_pet_medical_context + * + * @author shuo + * @date 2026-02-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BizPetMedicalContext.class,reverseConvertGenerate =false) + +public class BizPetMedicalContextBo extends BaseEntity { + + /** + * 主键ID + */ + private Long id; + + /** + * 关联宠物ID + */ + private Long petId; + + /** + * 过敏史 + */ + @NotBlank(message = "过敏史不能为空", groups = { AddGroup.class, EditGroup.class }) + private String allergies; + + /** + * 疫苗接种记录 + */ + @NotBlank(message = "疫苗接种记录不能为空", groups = { AddGroup.class, EditGroup.class }) + private String vaccinations; + + /** + * 慢性病史 + */ + @NotBlank(message = "慢性病史不能为空", groups = { AddGroup.class, EditGroup.class }) + private String chronicConditions; + + /** + * 日常用药 + */ + @NotBlank(message = "日常用药不能为空", groups = { AddGroup.class, EditGroup.class }) + private String regularMedications; + + /** + * 业务更新时间 + */ + @NotNull(message = "业务更新时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date updatedAt; + + /** + * 租户编号 + */ + @NotBlank(message = "租户编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String tenantId; + + +} diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatConfigBo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatConfigBo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatConfigBo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatConfigBo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatMessageBo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatMessageBo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatMessageBo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatMessageBo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatModelBo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatModelBo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatModelBo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatModelBo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatSessionBo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatSessionBo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatSessionBo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatSessionBo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatUsageTokenBo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatUsageTokenBo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/bo/ChatUsageTokenBo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/bo/ChatUsageTokenBo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/request/ChatRequest.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/request/ChatRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/request/ChatRequest.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/request/ChatRequest.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/request/MultiProviderChatRequest.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/request/MultiProviderChatRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/request/MultiProviderChatRequest.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/request/MultiProviderChatRequest.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/request/RateRequest.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/request/RateRequest.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/request/RateRequest.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/request/RateRequest.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/BizPetMedicalContextVo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/BizPetMedicalContextVo.java new file mode 100644 index 0000000..1758bb2 --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/BizPetMedicalContextVo.java @@ -0,0 +1,82 @@ +package org.dromara.pet.domain.vo; + + import java.util.Date; + import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.pet.domain.BizPetMedicalContext; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 宠物医疗上下文视图对象 biz_pet_medical_context + * + * @author shuo + * @date 2026-02-25 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BizPetMedicalContext.class) + +public class BizPetMedicalContextVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 关联宠物ID + */ + @ExcelProperty(value = "关联宠物ID") + private Long petId; + + /** + * 过敏史 + */ + @ExcelProperty(value = "过敏史") + private String allergies; + + /** + * 疫苗接种记录 + */ + @ExcelProperty(value = "疫苗接种记录") + private String vaccinations; + + /** + * 慢性病史 + */ + @ExcelProperty(value = "慢性病史") + private String chronicConditions; + + /** + * 日常用药 + */ + @ExcelProperty(value = "日常用药") + private String regularMedications; + + /** + * 业务更新时间 + */ + @ExcelProperty(value = "业务更新时间") + private Date updatedAt; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + +} diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatConfigVo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatConfigVo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatConfigVo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatConfigVo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatMessageVo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatMessageVo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatMessageVo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatMessageVo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatModelVo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatModelVo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatModelVo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatModelVo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatSessionVo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatSessionVo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatSessionVo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatSessionVo.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatUsageTokenVo.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatUsageTokenVo.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/domain/vo/ChatUsageTokenVo.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/domain/vo/ChatUsageTokenVo.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/BizPetMedicalContextMapper.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/BizPetMedicalContextMapper.java new file mode 100644 index 0000000..9c18f68 --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/BizPetMedicalContextMapper.java @@ -0,0 +1,15 @@ +package org.dromara.pet.mapper; + +import org.dromara.pet.domain.BizPetMedicalContext; +import org.dromara.pet.domain.vo.BizPetMedicalContextVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 宠物医疗上下文Mapper接口 + * + * @author shuo + * @date 2026-02-25 + */ +public interface BizPetMedicalContextMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatConfigMapper.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatConfigMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatConfigMapper.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatConfigMapper.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatMessageMapper.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatMessageMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatMessageMapper.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatMessageMapper.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatModelMapper.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatModelMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatModelMapper.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatModelMapper.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatSessionMapper.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatSessionMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatSessionMapper.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatSessionMapper.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatUsageTokenMapper.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatUsageTokenMapper.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/mapper/ChatUsageTokenMapper.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/mapper/ChatUsageTokenMapper.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/AiKnowledgeChatService.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/AiKnowledgeChatService.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/AiKnowledgeChatService.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/AiKnowledgeChatService.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatConfigService.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatConfigService.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatConfigService.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatConfigService.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatMessageService.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatMessageService.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatMessageService.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatMessageService.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatModelService.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatModelService.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatModelService.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatModelService.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatSessionService.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatSessionService.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatSessionService.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatSessionService.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatUsageTokenService.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatUsageTokenService.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/ChatUsageTokenService.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/ChatUsageTokenService.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/IBizPetMedicalContextService.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/IBizPetMedicalContextService.java new file mode 100644 index 0000000..80f18f5 --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/IBizPetMedicalContextService.java @@ -0,0 +1,68 @@ +package org.dromara.pet.service; + +import org.dromara.pet.domain.vo.BizPetMedicalContextVo; +import org.dromara.pet.domain.bo.BizPetMedicalContextBo; + import org.dromara.common.mybatis.core.page.TableDataInfo; + import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 宠物医疗上下文Service接口 + * + * @author shuo + * @date 2026-02-25 + */ +public interface IBizPetMedicalContextService { + + /** + * 查询宠物医疗上下文 + * + * @param id 主键 + * @return 宠物医疗上下文 + */ + BizPetMedicalContextVo queryById(Long id); + + /** + * 分页查询宠物医疗上下文列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宠物医疗上下文分页列表 + */ + TableDataInfo queryPageList(BizPetMedicalContextBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的宠物医疗上下文列表 + * + * @param bo 查询条件 + * @return 宠物医疗上下文列表 + */ + List queryList(BizPetMedicalContextBo bo); + + /** + * 新增宠物医疗上下文 + * + * @param bo 宠物医疗上下文 + * @return 是否新增成功 + */ + Boolean insertByBo(BizPetMedicalContextBo bo); + + /** + * 修改宠物医疗上下文 + * + * @param bo 宠物医疗上下文 + * @return 是否修改成功 + */ + Boolean updateByBo(BizPetMedicalContextBo bo); + + /** + * 校验并批量删除宠物医疗上下文信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/AiKnowledgeChatServiceImpl.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/AiKnowledgeChatServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/AiKnowledgeChatServiceImpl.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/AiKnowledgeChatServiceImpl.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/BizPetMedicalContextServiceImpl.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/BizPetMedicalContextServiceImpl.java new file mode 100644 index 0000000..e82ecf5 --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/BizPetMedicalContextServiceImpl.java @@ -0,0 +1,138 @@ +package org.dromara.pet.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; + import org.dromara.common.mybatis.core.page.TableDataInfo; + import org.dromara.common.mybatis.core.page.PageQuery; + import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.pet.domain.bo.BizPetMedicalContextBo; +import org.dromara.pet.domain.vo.BizPetMedicalContextVo; +import org.dromara.pet.domain.BizPetMedicalContext; +import org.dromara.pet.mapper.BizPetMedicalContextMapper; +import org.dromara.pet.service.IBizPetMedicalContextService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 宠物医疗上下文Service业务层处理 + * + * @author shuo + * @date 2026-02-25 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class BizPetMedicalContextServiceImpl implements IBizPetMedicalContextService { + + private final BizPetMedicalContextMapper baseMapper; + + /** + * 查询宠物医疗上下文 + * + * @param id 主键 + * @return 宠物医疗上下文 + */ + @Override + public BizPetMedicalContextVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询宠物医疗上下文列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宠物医疗上下文分页列表 + */ + @Override + public TableDataInfo queryPageList(BizPetMedicalContextBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的宠物医疗上下文列表 + * + * @param bo 查询条件 + * @return 宠物医疗上下文列表 + */ + @Override + public List queryList(BizPetMedicalContextBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(BizPetMedicalContextBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(BizPetMedicalContext::getId); + lqw.eq(bo.getPetId() != null, BizPetMedicalContext::getPetId, bo.getPetId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllergies()), BizPetMedicalContext::getAllergies, bo.getAllergies()); + lqw.eq(StringUtils.isNotBlank(bo.getVaccinations()), BizPetMedicalContext::getVaccinations, bo.getVaccinations()); + lqw.eq(StringUtils.isNotBlank(bo.getChronicConditions()), BizPetMedicalContext::getChronicConditions, bo.getChronicConditions()); + lqw.eq(StringUtils.isNotBlank(bo.getRegularMedications()), BizPetMedicalContext::getRegularMedications, bo.getRegularMedications()); + lqw.eq(bo.getUpdatedAt() != null, BizPetMedicalContext::getUpdatedAt, bo.getUpdatedAt()); + lqw.eq(StringUtils.isNotBlank(bo.getTenantId()), BizPetMedicalContext::getTenantId, bo.getTenantId()); + return lqw; + } + + /** + * 新增宠物医疗上下文 + * + * @param bo 宠物医疗上下文 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BizPetMedicalContextBo bo) { + BizPetMedicalContext add = MapstructUtils.convert(bo, BizPetMedicalContext. class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改宠物医疗上下文 + * + * @param bo 宠物医疗上下文 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BizPetMedicalContextBo bo) { + BizPetMedicalContext update = MapstructUtils.convert(bo, BizPetMedicalContext. class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BizPetMedicalContext entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除宠物医疗上下文信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatConfigServiceImpl.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatConfigServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatConfigServiceImpl.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatConfigServiceImpl.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatMessageServiceImpl.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatMessageServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatMessageServiceImpl.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatMessageServiceImpl.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatModelServiceImpl.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatModelServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatModelServiceImpl.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatModelServiceImpl.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatSessionServiceImpl.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatSessionServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatSessionServiceImpl.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatSessionServiceImpl.java diff --git a/ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatUsageTokenServiceImpl.java b/ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatUsageTokenServiceImpl.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/main/java/org/dromara/chat/service/impl/ChatUsageTokenServiceImpl.java rename to ruoyi-modules/ruoyi-pet/src/main/java/org/dromara/pet/service/impl/ChatUsageTokenServiceImpl.java diff --git a/ruoyi-modules/ruoyi-pet/src/main/resources/mapper/pet/BizPetMedicalContextMapper.xml b/ruoyi-modules/ruoyi-pet/src/main/resources/mapper/pet/BizPetMedicalContextMapper.xml new file mode 100644 index 0000000..1be8ade --- /dev/null +++ b/ruoyi-modules/ruoyi-pet/src/main/resources/mapper/pet/BizPetMedicalContextMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-face/src/test/java/org/dromara/chat/service/ChatSessionServiceTest.java b/ruoyi-modules/ruoyi-pet/src/test/java/org/dromara/chat/service/ChatSessionServiceTest.java similarity index 100% rename from ruoyi-modules/ruoyi-face/src/test/java/org/dromara/chat/service/ChatSessionServiceTest.java rename to ruoyi-modules/ruoyi-pet/src/test/java/org/dromara/chat/service/ChatSessionServiceTest.java diff --git a/ruoyi-server/pom.xml b/ruoyi-server/pom.xml index 158172f..d6fc57f 100644 --- a/ruoyi-server/pom.xml +++ b/ruoyi-server/pom.xml @@ -122,6 +122,11 @@ ruoyi-chat + + org.dromara + ruoyi-pet + + org.dromara