mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-04-05 07:47:31 +00:00
feat: 测试版本提交
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package org.ruoyi.system;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
|
||||
|
||||
/**
|
||||
* 启动程序
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@SpringBootApplication
|
||||
public class RuoYiAIApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication application = new SpringApplication(RuoYiAIApplication.class);
|
||||
application.setApplicationStartup(new BufferingApplicationStartup(2048));
|
||||
application.run(args);
|
||||
System.out.println("(♥◠‿◠)ノ゙ RuoYiAI启动成功 ლ(´ڡ`ლ)゙");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.ruoyi.system;
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||
|
||||
/**
|
||||
* web容器中进行部署
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
public class RuoYiAIServletInitializer extends SpringBootServletInitializer {
|
||||
|
||||
@Override
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||
return application.sources(RuoYiAIApplication.class);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
package org.ruoyi.system.controller.system;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import org.ruoyi.common.core.constant.Constants;
|
||||
import org.ruoyi.common.core.domain.R;
|
||||
import org.ruoyi.common.core.domain.model.*;
|
||||
import org.ruoyi.common.core.utils.MapstructUtils;
|
||||
import org.ruoyi.common.core.utils.StreamUtils;
|
||||
import org.ruoyi.common.core.utils.StringUtils;
|
||||
import org.ruoyi.common.satoken.utils.LoginHelper;
|
||||
import org.ruoyi.common.tenant.helper.TenantHelper;
|
||||
import org.ruoyi.system.domain.bo.SysTenantBo;
|
||||
import org.ruoyi.system.domain.vo.LoginTenantVo;
|
||||
import org.ruoyi.system.domain.vo.LoginVo;
|
||||
import org.ruoyi.system.domain.vo.SysTenantVo;
|
||||
import org.ruoyi.system.domain.vo.TenantListVo;
|
||||
import org.ruoyi.system.service.ISysTenantService;
|
||||
import org.ruoyi.system.service.SysLoginService;
|
||||
import org.ruoyi.system.service.SysRegisterService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 认证
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@SaIgnore
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/auth")
|
||||
public class AuthController {
|
||||
|
||||
private final SysLoginService loginService;
|
||||
private final SysRegisterService registerService;
|
||||
private final ISysTenantService tenantService;
|
||||
|
||||
|
||||
@PostMapping("/xcxLogin")
|
||||
public R<LoginVo> login(@Validated @RequestBody String xcxCode) throws WxErrorException {
|
||||
|
||||
String openidFromCode = loginService.getOpenidFromCode((String) JSONUtil.parseObj(xcxCode).get("xcxCode"));
|
||||
LoginVo loginVo = loginService.mpLogin(openidFromCode);
|
||||
return R.ok(loginVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录方法
|
||||
*
|
||||
* @param body 登录信息
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/login")
|
||||
public R<LoginVo> login(@Validated @RequestBody LoginBody body) {
|
||||
body.setTenantId(Constants.TENANT_ID);
|
||||
LoginVo loginVo = new LoginVo();
|
||||
// 生成令牌
|
||||
String token = loginService.login(
|
||||
body.getTenantId(),
|
||||
body.getUsername(), body.getPassword(),
|
||||
body.getCode(), body.getUuid());
|
||||
loginVo.setToken(token);
|
||||
loginVo.setAccess_token(token);
|
||||
loginVo.setUserInfo(LoginHelper.getLoginUser());
|
||||
return R.ok(loginVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 短信登录
|
||||
*
|
||||
* @param body 登录信息
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/smsLogin")
|
||||
public R<LoginVo> smsLogin(@Validated @RequestBody SmsLoginBody body) {
|
||||
LoginVo loginVo = new LoginVo();
|
||||
// 生成令牌
|
||||
String token = loginService.smsLogin(body.getTenantId(), body.getPhonenumber(), body.getSmsCode());
|
||||
loginVo.setToken(token);
|
||||
return R.ok(loginVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 访客登录
|
||||
*
|
||||
* @param loginBody 登录信息
|
||||
* @return token信息
|
||||
*/
|
||||
@PostMapping("/visitorLogin")
|
||||
public R<LoginVo> visitorLogin(@RequestBody VisitorLoginBody loginBody) {
|
||||
LoginVo loginVo = new LoginVo();
|
||||
return R.ok(loginVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 邮件登录
|
||||
*
|
||||
* @param body 登录信息
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/emailLogin")
|
||||
public R<LoginVo> emailLogin(@Validated @RequestBody EmailLoginBody body) {
|
||||
LoginVo loginVo = new LoginVo();
|
||||
// 生成令牌
|
||||
String token = loginService.emailLogin(body.getTenantId(), body.getEmail(), body.getEmailCode());
|
||||
loginVo.setToken(token);
|
||||
return R.ok(loginVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出登录
|
||||
*/
|
||||
@PostMapping("/logout")
|
||||
public R<Void> logout() {
|
||||
loginService.logout();
|
||||
return R.ok("退出成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户注册
|
||||
*/
|
||||
@PostMapping("/register")
|
||||
public R<Void> register(@Validated @RequestBody RegisterBody user, HttpServletRequest request) {
|
||||
String domainName = request.getServerName();
|
||||
user.setDomainName(domainName);
|
||||
registerService.register(user);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置密码
|
||||
*/
|
||||
@PostMapping("/reset/password")
|
||||
@SaIgnore
|
||||
public R<Void> resetPassWord(@Validated @RequestBody RegisterBody user) {
|
||||
registerService.resetPassWord(user);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录页面租户下拉框
|
||||
*
|
||||
* @return 租户列表
|
||||
*/
|
||||
@GetMapping("/tenant/list")
|
||||
public R<LoginTenantVo> tenantList(HttpServletRequest request) throws Exception {
|
||||
List<SysTenantVo> tenantList = tenantService.queryList(new SysTenantBo());
|
||||
List<TenantListVo> voList = MapstructUtils.convert(tenantList, TenantListVo.class);
|
||||
// 获取域名
|
||||
String host = new URL(request.getRequestURL().toString()).getHost();
|
||||
// 根据域名进行筛选
|
||||
List<TenantListVo> list = StreamUtils.filter(voList, vo -> StringUtils.equals(vo.getDomain(), host));
|
||||
// 返回对象
|
||||
LoginTenantVo vo = new LoginTenantVo();
|
||||
vo.setVoList(CollUtil.isNotEmpty(list) ? list : voList);
|
||||
vo.setTenantEnabled(TenantHelper.isEnable());
|
||||
return R.ok(vo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package org.ruoyi.system.controller.system;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.hutool.captcha.AbstractCaptcha;
|
||||
import cn.hutool.captcha.generator.CodeGenerator;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.ruoyi.common.core.constant.Constants;
|
||||
import org.ruoyi.common.core.constant.GlobalConstants;
|
||||
import org.ruoyi.common.core.domain.R;
|
||||
import org.ruoyi.common.core.exception.ServiceException;
|
||||
import org.ruoyi.common.core.service.ConfigService;
|
||||
import org.ruoyi.common.core.utils.SpringUtils;
|
||||
import org.ruoyi.common.core.utils.StringUtils;
|
||||
import org.ruoyi.common.core.utils.reflect.ReflectUtils;
|
||||
import org.ruoyi.common.mail.utils.MailUtils;
|
||||
import org.ruoyi.common.redis.utils.RedisUtils;
|
||||
import org.ruoyi.common.sms.config.properties.SmsProperties;
|
||||
import org.ruoyi.common.sms.core.SmsTemplate;
|
||||
import org.ruoyi.common.sms.entity.SmsResult;
|
||||
import org.ruoyi.common.web.config.properties.CaptchaProperties;
|
||||
import org.ruoyi.common.web.enums.CaptchaType;
|
||||
import org.ruoyi.system.domain.request.EmailRequest;
|
||||
import org.ruoyi.system.domain.vo.CaptchaVo;
|
||||
import org.springframework.expression.Expression;
|
||||
import org.springframework.expression.ExpressionParser;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 验证码操作处理
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@SaIgnore
|
||||
@Slf4j
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
public class CaptchaController {
|
||||
|
||||
private final CaptchaProperties captchaProperties;
|
||||
private final SmsProperties smsProperties;
|
||||
private final ConfigService configService;
|
||||
|
||||
/**
|
||||
* 短信验证码
|
||||
*
|
||||
* @param phonenumber 用户手机号
|
||||
*/
|
||||
@GetMapping("/resource/sms/code")
|
||||
public R<Void> smsCode(@NotBlank(message = "{user.phonenumber.not.blank}") String phonenumber) {
|
||||
if (!smsProperties.getEnabled()) {
|
||||
return R.fail("当前系统没有开启短信功能!");
|
||||
}
|
||||
String key = GlobalConstants.CAPTCHA_CODE_KEY + phonenumber;
|
||||
String code = RandomUtil.randomNumbers(4);
|
||||
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||
// 验证码模板id 自行处理 (查数据库或写死均可)
|
||||
String templateId = "";
|
||||
Map<String, String> map = new HashMap<>(1);
|
||||
map.put("code", code);
|
||||
SmsTemplate smsTemplate = SpringUtils.getBean(SmsTemplate.class);
|
||||
SmsResult result = smsTemplate.send(phonenumber, templateId, map);
|
||||
if (!result.isSuccess()) {
|
||||
log.error("验证码短信发送异常 => {}", result);
|
||||
return R.fail(result.getMessage());
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 邮箱验证码
|
||||
*
|
||||
* @param emailRequest 用户邮箱
|
||||
*/
|
||||
@PostMapping("/resource/email/code")
|
||||
public R<Void> emailCode(@RequestBody @Valid EmailRequest emailRequest) {
|
||||
String key = GlobalConstants.CAPTCHA_CODE_KEY + emailRequest.getUsername();
|
||||
String code = RandomUtil.randomNumbers(4);
|
||||
RedisUtils.setCacheObject(key, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||
// 检验邮箱后缀
|
||||
String suffix = configService.getConfigValue("mail", "suffix");
|
||||
String prompt = configService.getConfigValue("mail", "prompt");
|
||||
if(StringUtils.isNotEmpty(suffix)){
|
||||
// 动态的域名列表
|
||||
String[] invalidDomains = suffix.split(",");
|
||||
for (String domain : invalidDomains) {
|
||||
if (emailRequest.getUsername().endsWith(domain)) {
|
||||
throw new ServiceException(prompt);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 自定义邮箱模板
|
||||
String model = configService.getConfigValue("mail", "mailModel");
|
||||
String mailTitle = configService.getConfigValue("mail", "mailTitle");
|
||||
String replacedModel = model.replace("{code}", code);
|
||||
try {
|
||||
MailUtils.sendHtml(emailRequest.getUsername(), mailTitle, replacedModel);
|
||||
} catch (Exception e) {
|
||||
log.error("邮箱验证码发送异常 => {}", e.getMessage());
|
||||
return R.fail(e.getMessage());
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成验证码
|
||||
*/
|
||||
@GetMapping("/auth/code")
|
||||
public R<CaptchaVo> getCode() {
|
||||
CaptchaVo captchaVo = new CaptchaVo();
|
||||
boolean captchaEnabled = captchaProperties.getEnable();
|
||||
if (!captchaEnabled) {
|
||||
captchaVo.setCaptchaEnabled(false);
|
||||
return R.ok(captchaVo);
|
||||
}
|
||||
// 保存验证码信息
|
||||
String uuid = IdUtil.simpleUUID();
|
||||
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + uuid;
|
||||
// 生成验证码
|
||||
CaptchaType captchaType = captchaProperties.getType();
|
||||
boolean isMath = CaptchaType.MATH == captchaType;
|
||||
Integer length = isMath ? captchaProperties.getNumberLength() : captchaProperties.getCharLength();
|
||||
CodeGenerator codeGenerator = ReflectUtils.newInstance(captchaType.getClazz(), length);
|
||||
AbstractCaptcha captcha = SpringUtils.getBean(captchaProperties.getCategory().getClazz());
|
||||
captcha.setGenerator(codeGenerator);
|
||||
captcha.createCode();
|
||||
String code = captcha.getCode();
|
||||
if (isMath) {
|
||||
ExpressionParser parser = new SpelExpressionParser();
|
||||
Expression exp = parser.parseExpression(StringUtils.remove(code, "="));
|
||||
code = exp.getValue(String.class);
|
||||
}
|
||||
RedisUtils.setCacheObject(verifyKey, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION));
|
||||
captchaVo.setUuid(uuid);
|
||||
captchaVo.setImg(captcha.getImageBase64());
|
||||
return R.ok(captchaVo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,9 +8,6 @@ import org.ruoyi.common.core.domain.R;
|
||||
import org.ruoyi.common.core.service.ConfigService;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.web.core.BaseController;
|
||||
import org.ruoyi.system.domain.bo.ChatConfigBo;
|
||||
import org.ruoyi.system.domain.vo.ChatConfigVo;
|
||||
import org.ruoyi.system.service.IChatConfigService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
@@ -15,9 +15,6 @@ import org.ruoyi.common.log.enums.BusinessType;
|
||||
import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.web.core.BaseController;
|
||||
import org.ruoyi.system.domain.bo.ChatGptsBo;
|
||||
import org.ruoyi.system.domain.vo.ChatGptsVo;
|
||||
import org.ruoyi.system.service.IChatGptsService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
@@ -16,9 +16,6 @@ import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.satoken.utils.LoginHelper;
|
||||
import org.ruoyi.common.web.core.BaseController;
|
||||
import org.ruoyi.system.domain.bo.ChatMessageBo;
|
||||
import org.ruoyi.system.domain.vo.ChatMessageVo;
|
||||
import org.ruoyi.system.service.IChatMessageService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
@@ -17,9 +17,6 @@ import org.ruoyi.common.core.domain.R;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.log.enums.BusinessType;
|
||||
import org.ruoyi.system.domain.vo.ChatPluginVo;
|
||||
import org.ruoyi.system.domain.bo.ChatPluginBo;
|
||||
import org.ruoyi.system.service.IChatPluginService;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,10 +3,6 @@ package org.ruoyi.system.controller.system;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.ruoyi.common.core.domain.R;
|
||||
import org.ruoyi.common.web.core.BaseController;
|
||||
import org.ruoyi.system.domain.bo.ChatAppStoreBo;
|
||||
import org.ruoyi.system.domain.bo.ChatMessageBo;
|
||||
import org.ruoyi.system.domain.vo.ChatAppStoreVo;
|
||||
import org.ruoyi.system.service.IChatAppStoreService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -15,9 +15,6 @@ import org.ruoyi.common.log.enums.BusinessType;
|
||||
import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.web.core.BaseController;
|
||||
import org.ruoyi.system.domain.bo.ChatVisitorUsageBo;
|
||||
import org.ruoyi.system.domain.vo.ChatVisitorUsageVo;
|
||||
import org.ruoyi.system.service.IChatVisitorUsageService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
@@ -16,9 +16,6 @@ import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.web.core.BaseController;
|
||||
import org.ruoyi.common.wechat.web.utils.UUIDShortUtil;
|
||||
import org.ruoyi.system.domain.bo.ChatVoucherBo;
|
||||
import org.ruoyi.system.domain.vo.ChatVoucherVo;
|
||||
import org.ruoyi.system.service.IChatVoucherService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.ruoyi.system.controller.system;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 首页
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@SaIgnore
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
public class IndexController {
|
||||
|
||||
/**
|
||||
* 访问首页,提示语
|
||||
*/
|
||||
@GetMapping("/")
|
||||
public String index() {
|
||||
return "RuoYi-AI 启动成功";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||
//package org.ruoyi.system.controller.system;
|
||||
//
|
||||
//import cn.dev33.satoken.stp.StpUtil;
|
||||
//import jakarta.servlet.http.HttpServletRequest;
|
||||
//import jakarta.servlet.http.HttpServletResponse;
|
||||
//import jakarta.validation.Valid;
|
||||
//import jakarta.validation.constraints.NotEmpty;
|
||||
//import jakarta.validation.constraints.NotNull;
|
||||
//import lombok.RequiredArgsConstructor;
|
||||
//import org.ruoyi.common.chat.domain.request.ChatRequest;
|
||||
//import org.ruoyi.common.chat.entity.chat.Message;
|
||||
//import org.ruoyi.common.core.domain.R;
|
||||
//import org.ruoyi.common.core.validate.AddGroup;
|
||||
//import org.ruoyi.common.excel.utils.ExcelUtil;
|
||||
//import org.ruoyi.common.log.annotation.Log;
|
||||
//import org.ruoyi.common.log.enums.BusinessType;
|
||||
//import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
//import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
//import org.ruoyi.common.satoken.utils.LoginHelper;
|
||||
//import org.ruoyi.common.web.core.BaseController;
|
||||
//import org.ruoyi.knowledge.chain.vectorstore.VectorStore;
|
||||
//import org.ruoyi.knowledge.domain.bo.KnowledgeAttachBo;
|
||||
//import org.ruoyi.knowledge.domain.bo.KnowledgeFragmentBo;
|
||||
//import org.ruoyi.knowledge.domain.bo.KnowledgeInfoBo;
|
||||
//import org.ruoyi.knowledge.domain.req.KnowledgeInfoUploadRequest;
|
||||
//import org.ruoyi.knowledge.domain.vo.KnowledgeAttachVo;
|
||||
//import org.ruoyi.knowledge.domain.vo.KnowledgeFragmentVo;
|
||||
//import org.ruoyi.knowledge.domain.vo.KnowledgeInfoVo;
|
||||
//import org.ruoyi.knowledge.service.EmbeddingService;
|
||||
//import org.ruoyi.knowledge.service.IKnowledgeAttachService;
|
||||
//import org.ruoyi.knowledge.service.IKnowledgeFragmentService;
|
||||
//import org.ruoyi.knowledge.service.IKnowledgeInfoService;
|
||||
//import org.ruoyi.system.service.ISseService;
|
||||
//import org.springframework.validation.annotation.Validated;
|
||||
//import org.springframework.web.bind.annotation.*;
|
||||
//import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||
//
|
||||
//import java.util.List;
|
||||
//
|
||||
//
|
||||
///**
|
||||
// * 知识库
|
||||
// *
|
||||
// * @author Lion Li
|
||||
// * @date 2024-10-21
|
||||
// */
|
||||
//@Validated
|
||||
//@RequiredArgsConstructor
|
||||
//@RestController
|
||||
//@RequestMapping("/knowledge")
|
||||
//public class KnowledgeController extends BaseController {
|
||||
//
|
||||
// private final IKnowledgeInfoService knowledgeInfoService;
|
||||
//
|
||||
// private final VectorStore vectorStore;
|
||||
//
|
||||
// private final IKnowledgeAttachService attachService;
|
||||
//
|
||||
// private final IKnowledgeFragmentService fragmentService;
|
||||
//
|
||||
// private final EmbeddingService embeddingService;
|
||||
//
|
||||
// private final ISseService sseService;
|
||||
//
|
||||
// /**
|
||||
// * 知识库对话
|
||||
// */
|
||||
// @PostMapping("/send")
|
||||
// public SseEmitter send(@RequestBody @Valid ChatRequest chatRequest, HttpServletRequest request) {
|
||||
// List<Message> messages = chatRequest.getMessages();
|
||||
// // 获取知识库信息
|
||||
// Message message = messages.get(messages.size() - 1);
|
||||
// StringBuilder sb = new StringBuilder(message.getContent().toString());
|
||||
// List<String> nearestList;
|
||||
// List<Double> queryVector = embeddingService.getQueryVector(message.getContent().toString(), chatRequest.getKid());
|
||||
// nearestList = vectorStore.nearest(queryVector, chatRequest.getKid());
|
||||
// for (String prompt : nearestList) {
|
||||
// sb.append("\n####").append(prompt);
|
||||
// }
|
||||
// sb.append( (nearestList.size() > 0 ? "\n\n注意:回答问题时,须严格根据我给你的系统上下文内容原文进行回答,请不要自己发挥,回答时保持原来文本的段落层级" : ""));
|
||||
// message.setContent(sb.toString());
|
||||
// return sseService.sseChat(chatRequest, request);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 根据用户信息查询本地知识库
|
||||
// */
|
||||
// @GetMapping("/list")
|
||||
// public TableDataInfo<KnowledgeInfoVo> list(KnowledgeInfoBo bo, PageQuery pageQuery) {
|
||||
// if(!StpUtil.isLogin()){
|
||||
// return null;
|
||||
// }
|
||||
// bo.setUid(LoginHelper.getUserId());
|
||||
// return knowledgeInfoService.queryPageList(bo, pageQuery);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 新增知识库
|
||||
// */
|
||||
// @Log(title = "知识库", businessType = BusinessType.INSERT)
|
||||
// @PostMapping("/save")
|
||||
// public R<Void> save(@Validated(AddGroup.class) @RequestBody KnowledgeInfoBo bo) {
|
||||
// knowledgeInfoService.saveOne(bo);
|
||||
// return R.ok();
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 删除知识库
|
||||
// */
|
||||
// @PostMapping("/remove/{id}")
|
||||
// public R<String> remove(@PathVariable String id){
|
||||
// knowledgeInfoService.removeKnowledge(id);
|
||||
// return R.ok("删除知识库成功!");
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 修改知识库
|
||||
// */
|
||||
// @Log(title = "知识库", businessType = BusinessType.UPDATE)
|
||||
// @PostMapping("/edit")
|
||||
// public R<Void> edit( @RequestBody KnowledgeInfoBo bo) {
|
||||
// return toAjax(knowledgeInfoService.updateByBo(bo));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 导出知识库列表
|
||||
// */
|
||||
// @Log(title = "知识库", businessType = BusinessType.EXPORT)
|
||||
// @PostMapping("/export")
|
||||
// public void export(KnowledgeInfoBo bo, HttpServletResponse response) {
|
||||
// List<KnowledgeInfoVo> list = knowledgeInfoService.queryList(bo);
|
||||
// ExcelUtil.exportExcel(list, "知识库", KnowledgeInfoVo.class, response);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 查询知识附件信息
|
||||
// */
|
||||
// @GetMapping("/detail/{kid}")
|
||||
// public TableDataInfo<KnowledgeAttachVo> attach(KnowledgeAttachBo bo, PageQuery pageQuery,@PathVariable String kid){
|
||||
// bo.setKid(kid);
|
||||
// return attachService.queryPageList(bo, pageQuery);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 上传知识库附件
|
||||
// */
|
||||
// @PostMapping(value = "/attach/upload")
|
||||
// public R<String> upload(KnowledgeInfoUploadRequest request){
|
||||
// knowledgeInfoService.upload(request);
|
||||
// return R.ok("上传知识库附件成功!");
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 获取知识库附件详细信息
|
||||
// *
|
||||
// * @param id 主键
|
||||
// */
|
||||
// @GetMapping("attach/info/{id}")
|
||||
// public R<KnowledgeAttachVo> getAttachInfo(@NotNull(message = "主键不能为空")
|
||||
// @PathVariable Long id) {
|
||||
// return R.ok(attachService.queryById(id));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 删除知识库附件
|
||||
// *
|
||||
// */
|
||||
// @PostMapping("attach/remove/{docId}")
|
||||
// public R<Void> removeAttach(@NotEmpty(message = "主键不能为空") @PathVariable String docId) {
|
||||
// attachService.removeKnowledgeAttach(docId);
|
||||
// return R.ok();
|
||||
// }
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 查询知识片段
|
||||
// */
|
||||
// @GetMapping("/fragment/list/{docId}")
|
||||
// public TableDataInfo<KnowledgeFragmentVo> fragmentList(KnowledgeFragmentBo bo, PageQuery pageQuery, @PathVariable String docId) {
|
||||
// bo.setDocId(docId);
|
||||
// return fragmentService.queryPageList(bo, pageQuery);
|
||||
// }
|
||||
//
|
||||
//}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,81 +1,81 @@
|
||||
package org.ruoyi.system.controller.system;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.ruoyi.common.core.exception.ServiceException;
|
||||
import org.ruoyi.common.wechat.itchat4j.api.WechatTools;
|
||||
import org.ruoyi.common.wechat.itchat4j.controller.LoginController;
|
||||
import org.ruoyi.common.wechat.itchat4j.core.MsgCenter;
|
||||
import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace;
|
||||
import org.ruoyi.common.wechat.web.base.BaseException;
|
||||
import org.ruoyi.system.domain.bo.WxRobConfigBo;
|
||||
import org.ruoyi.system.domain.vo.WxRobConfigVo;
|
||||
import org.ruoyi.system.handler.MyMsgHandler;
|
||||
import org.ruoyi.system.service.ISseService;
|
||||
import org.ruoyi.system.service.IWxRobConfigService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 个人微信扩展控制器
|
||||
*
|
||||
* @author WangLe
|
||||
*/
|
||||
@SaIgnore
|
||||
@Slf4j
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
public class WeChatController {
|
||||
|
||||
private final ISseService sseService;
|
||||
|
||||
private final IWxRobConfigService wxRobConfigService;
|
||||
|
||||
/**
|
||||
* 登录第一步,获取二维码链接
|
||||
* @throws BaseException
|
||||
*/
|
||||
@PostMapping("/getQr")
|
||||
public String getQr(@RequestParam String uniqueKey) {
|
||||
LoginController login = new LoginController(uniqueKey);
|
||||
try {
|
||||
return login.login_1();
|
||||
} catch (BaseException e) {
|
||||
throw new ServiceException("获取二维码失败:"+ e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/wxLogin")
|
||||
public Boolean wxLogin(@RequestParam String uniqueKey) {
|
||||
LoginController login = new LoginController(uniqueKey);
|
||||
return login.login_2();
|
||||
}
|
||||
|
||||
@PostMapping("/wxInit")
|
||||
public Boolean wxInit(@RequestParam String uniqueKey) {
|
||||
LoginController login = new LoginController(uniqueKey);
|
||||
// 开启消息处理线程
|
||||
WxRobConfigBo wxRobConfigBo = new WxRobConfigBo();
|
||||
wxRobConfigBo.setUniqueKey(uniqueKey);
|
||||
List<WxRobConfigVo> wxRobConfigVos = wxRobConfigService.queryList(wxRobConfigBo);
|
||||
//查询机器人对应的用户
|
||||
start(uniqueKey,new MyMsgHandler(uniqueKey,sseService,wxRobConfigVos.get(0)));
|
||||
return login.login_3();
|
||||
}
|
||||
|
||||
@PostMapping("/wxLogout")
|
||||
public void wxLogout(@RequestParam String uniqueKey) {
|
||||
WechatTools.logout(uniqueKey);
|
||||
}
|
||||
|
||||
public void start(String uniqueKey,IMsgHandlerFace msgHandler) {
|
||||
log.info("7.+++开启消息处理线程["+uniqueKey+"]+++");
|
||||
new Thread(() -> MsgCenter.handleMsg(uniqueKey,msgHandler)).start();
|
||||
}
|
||||
}
|
||||
//package org.ruoyi.system.controller.system;
|
||||
//
|
||||
//import cn.dev33.satoken.annotation.SaIgnore;
|
||||
//import lombok.RequiredArgsConstructor;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.ruoyi.common.core.exception.ServiceException;
|
||||
//import org.ruoyi.common.wechat.itchat4j.api.WechatTools;
|
||||
//import org.ruoyi.common.wechat.itchat4j.controller.LoginController;
|
||||
//import org.ruoyi.common.wechat.itchat4j.core.MsgCenter;
|
||||
//import org.ruoyi.common.wechat.itchat4j.face.IMsgHandlerFace;
|
||||
//import org.ruoyi.common.wechat.web.base.BaseException;
|
||||
//import org.ruoyi.system.domain.bo.WxRobConfigBo;
|
||||
//import org.ruoyi.system.domain.vo.WxRobConfigVo;
|
||||
//import org.ruoyi.system.handler.MyMsgHandler;
|
||||
//import org.ruoyi.system.service.ISseService;
|
||||
//import org.ruoyi.system.service.IWxRobConfigService;
|
||||
//import org.springframework.validation.annotation.Validated;
|
||||
//import org.springframework.web.bind.annotation.PostMapping;
|
||||
//import org.springframework.web.bind.annotation.RequestParam;
|
||||
//import org.springframework.web.bind.annotation.RestController;
|
||||
//
|
||||
//import java.util.List;
|
||||
//
|
||||
///**
|
||||
// * 个人微信扩展控制器
|
||||
// *
|
||||
// * @author WangLe
|
||||
// */
|
||||
//@SaIgnore
|
||||
//@Slf4j
|
||||
//@Validated
|
||||
//@RequiredArgsConstructor
|
||||
//@RestController
|
||||
//public class WeChatController {
|
||||
//
|
||||
// private final ISseService sseService;
|
||||
//
|
||||
// private final IWxRobConfigService wxRobConfigService;
|
||||
//
|
||||
// /**
|
||||
// * 登录第一步,获取二维码链接
|
||||
// * @throws BaseException
|
||||
// */
|
||||
// @PostMapping("/getQr")
|
||||
// public String getQr(@RequestParam String uniqueKey) {
|
||||
// LoginController login = new LoginController(uniqueKey);
|
||||
// try {
|
||||
// return login.login_1();
|
||||
// } catch (BaseException e) {
|
||||
// throw new ServiceException("获取二维码失败:"+ e.getMessage());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/wxLogin")
|
||||
// public Boolean wxLogin(@RequestParam String uniqueKey) {
|
||||
// LoginController login = new LoginController(uniqueKey);
|
||||
// return login.login_2();
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/wxInit")
|
||||
// public Boolean wxInit(@RequestParam String uniqueKey) {
|
||||
// LoginController login = new LoginController(uniqueKey);
|
||||
// // 开启消息处理线程
|
||||
// WxRobConfigBo wxRobConfigBo = new WxRobConfigBo();
|
||||
// wxRobConfigBo.setUniqueKey(uniqueKey);
|
||||
// List<WxRobConfigVo> wxRobConfigVos = wxRobConfigService.queryList(wxRobConfigBo);
|
||||
// //查询机器人对应的用户
|
||||
// start(uniqueKey,new MyMsgHandler(uniqueKey,sseService,wxRobConfigVos.get(0)));
|
||||
// return login.login_3();
|
||||
// }
|
||||
//
|
||||
// @PostMapping("/wxLogout")
|
||||
// public void wxLogout(@RequestParam String uniqueKey) {
|
||||
// WechatTools.logout(uniqueKey);
|
||||
// }
|
||||
//
|
||||
// public void start(String uniqueKey,IMsgHandlerFace msgHandler) {
|
||||
// log.info("7.+++开启消息处理线程["+uniqueKey+"]+++");
|
||||
// new Thread(() -> MsgCenter.handleMsg(uniqueKey,msgHandler)).start();
|
||||
// }
|
||||
//}
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 应用市场
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-03-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_app_store")
|
||||
public class ChatAppStore extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 应用地址
|
||||
*/
|
||||
private String appUrl;
|
||||
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.sensitive.annotation.Sensitive;
|
||||
import org.ruoyi.common.sensitive.core.SensitiveStrategy;
|
||||
import org.ruoyi.common.tenant.core.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 对话配置信息对象 chat_config
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-04-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_config")
|
||||
public class ChatConfig extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 配置类型
|
||||
*/
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 配置名称
|
||||
*/
|
||||
private String configName;
|
||||
|
||||
/**
|
||||
* 配置值
|
||||
*/
|
||||
@Sensitive(strategy = SensitiveStrategy.SKY)
|
||||
private String configValue;
|
||||
|
||||
/**
|
||||
* 说明
|
||||
*/
|
||||
private String configDict;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 删除标志(0代表存在 1代表删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
private String updateIp;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.Version;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* gpts管理对象 chat_gpts
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-07-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_gpts")
|
||||
public class ChatGpts extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* gpts应用id
|
||||
*/
|
||||
private String gid;
|
||||
|
||||
/**
|
||||
* gpts应用名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* gpts图标
|
||||
*/
|
||||
private String logo;
|
||||
|
||||
/**
|
||||
* gpts描述
|
||||
*/
|
||||
private String info;
|
||||
|
||||
/**
|
||||
* 作者id
|
||||
*/
|
||||
private String authorId;
|
||||
|
||||
/**
|
||||
* 作者名称
|
||||
*/
|
||||
private String authorName;
|
||||
|
||||
/**
|
||||
* 点赞
|
||||
*/
|
||||
private String useCnt;
|
||||
|
||||
/**
|
||||
* 差评
|
||||
*/
|
||||
private String bad;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 版本
|
||||
*/
|
||||
@Version
|
||||
private Long version;
|
||||
|
||||
/**
|
||||
* 删除标志(0代表存在 1代表删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
private String updateIp;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
private String modelName;
|
||||
|
||||
|
||||
/**
|
||||
* 模型system
|
||||
*/
|
||||
private String systemPrompt;
|
||||
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 聊天消息对象 chat_message
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2023-11-26
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_message")
|
||||
public class ChatMessage extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long UserId;
|
||||
|
||||
/**
|
||||
* 对话角色
|
||||
*/
|
||||
private String role;
|
||||
|
||||
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
@NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String content;
|
||||
|
||||
|
||||
/**
|
||||
* 扣除费用
|
||||
*/
|
||||
private Double deductCost;
|
||||
|
||||
/**
|
||||
* 累计 Tokens
|
||||
*/
|
||||
@NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer totalTokens;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 插件管理对象 chat_plugin
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-03-30
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_plugin")
|
||||
public class ChatPlugin extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 插件名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 插件编码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 用户token使用记录
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2023-11-26
|
||||
*/
|
||||
@Data
|
||||
@TableName("chat_usage_token")
|
||||
public class ChatToken implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long UserId;
|
||||
|
||||
/**
|
||||
* 待结算token
|
||||
*/
|
||||
private Integer token;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String modelName;
|
||||
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.Version;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 访客管理对象 chat_visitor_usage
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-07-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_visitor_usage")
|
||||
public class ChatVisitorUsage extends BaseEntity implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 浏览器指纹
|
||||
*/
|
||||
private String fingerprint;
|
||||
|
||||
/**
|
||||
* 使用次数
|
||||
*/
|
||||
private String usageCount;
|
||||
|
||||
/**
|
||||
* ip地址
|
||||
*/
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 版本
|
||||
*/
|
||||
@Version
|
||||
private Long version;
|
||||
|
||||
/**
|
||||
* 删除标志(0代表存在 1代表删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
private String updateIp;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
package org.ruoyi.system.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 用户兑换记录对象 chat_voucher
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-05-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("chat_voucher")
|
||||
public class ChatVoucher extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 兑换码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 兑换金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 兑换状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 兑换前余额
|
||||
*/
|
||||
private BigDecimal balanceBefore;
|
||||
|
||||
/**
|
||||
* 兑换后余额
|
||||
*/
|
||||
private BigDecimal balanceAfter;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package org.ruoyi.system.domain.bo;
|
||||
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import org.ruoyi.system.domain.ChatAppStore;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 应用市场业务对象 voice_role
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-03-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatAppStore.class, reverseConvertGenerate = false)
|
||||
public class ChatAppStoreBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@NotBlank(message = "名称不能为空")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 角色描述
|
||||
*/
|
||||
@NotBlank(message = "描述不能为空")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
@NotBlank(message = "头像不能为空")
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 音频地址
|
||||
*/
|
||||
@NotBlank(message = "应用地址不能为空")
|
||||
private String appUrl;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
package org.ruoyi.system.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import org.ruoyi.common.sensitive.annotation.Sensitive;
|
||||
import org.ruoyi.common.sensitive.core.SensitiveStrategy;
|
||||
import org.ruoyi.system.domain.ChatConfig;
|
||||
|
||||
/**
|
||||
* 对话配置信息
|
||||
业务对象 chat_config
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-04-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatConfig.class, reverseConvertGenerate = false)
|
||||
public class ChatConfigBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 配置类型
|
||||
*/
|
||||
@NotBlank(message = "配置类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 配置名称
|
||||
*/
|
||||
@NotBlank(message = "配置名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String configName;
|
||||
|
||||
/**
|
||||
* 配置值
|
||||
*/
|
||||
@Sensitive(strategy = SensitiveStrategy.SKY)
|
||||
@NotBlank(message = "配置值不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String configValue;
|
||||
|
||||
/**
|
||||
* 说明
|
||||
*/
|
||||
@NotBlank(message = "参数说明不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String configDict;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
@NotBlank(message = "更新IP不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String updateIp;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
package org.ruoyi.system.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import org.ruoyi.system.domain.ChatGpts;
|
||||
|
||||
/**
|
||||
* gpts管理业务对象 chat_gpts
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-07-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatGpts.class, reverseConvertGenerate = false)
|
||||
public class ChatGptsBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* gpts应用id
|
||||
*/
|
||||
@NotBlank(message = "gpts应用id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String gid;
|
||||
|
||||
/**
|
||||
* gpts应用名称
|
||||
*/
|
||||
@NotBlank(message = "gpts应用名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* gpts图标
|
||||
*/
|
||||
private String logo;
|
||||
|
||||
/**
|
||||
* gpts描述
|
||||
*/
|
||||
private String info;
|
||||
|
||||
/**
|
||||
* 作者id
|
||||
*/
|
||||
private String authorId;
|
||||
|
||||
/**
|
||||
* 作者名称
|
||||
*/
|
||||
private String authorName;
|
||||
|
||||
/**
|
||||
* 点赞
|
||||
*/
|
||||
private String useCnt;
|
||||
|
||||
/**
|
||||
* 差评
|
||||
*/
|
||||
private String bad;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
private String updateIp;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 模型system
|
||||
*/
|
||||
private String systemPrompt;
|
||||
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
package org.ruoyi.system.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import org.ruoyi.system.domain.ChatMessage;
|
||||
|
||||
/**
|
||||
* 聊天消息业务对象 chat_message
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2023-11-26
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatMessage.class, reverseConvertGenerate = false)
|
||||
public class ChatMessageBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 对话角色
|
||||
*/
|
||||
private String role;
|
||||
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
@NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 扣除费用
|
||||
*/
|
||||
private Double deductCost;
|
||||
|
||||
/**
|
||||
* 累计 Tokens
|
||||
*/
|
||||
private Integer totalTokens;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package org.ruoyi.system.domain.bo;
|
||||
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.system.domain.ChatPlugin;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 插件管理业务对象 chat_plugin
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-03-30
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatPlugin.class, reverseConvertGenerate = false)
|
||||
public class ChatPluginBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 插件名称
|
||||
*/
|
||||
@NotBlank(message = "插件名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 插件编码
|
||||
*/
|
||||
@NotBlank(message = "插件编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
package org.ruoyi.system.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import org.ruoyi.system.domain.ChatVisitorUsage;
|
||||
|
||||
/**
|
||||
* 访客管理业务对象 chat_visitor_usage
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-07-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatVisitorUsage.class, reverseConvertGenerate = false)
|
||||
public class ChatVisitorUsageBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 浏览器指纹
|
||||
*/
|
||||
@NotBlank(message = "浏览器指纹不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String fingerprint;
|
||||
|
||||
/**
|
||||
* 使用次数
|
||||
*/
|
||||
@NotBlank(message = "使用次数不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String usageCount;
|
||||
|
||||
/**
|
||||
* ip地址
|
||||
*/
|
||||
@NotBlank(message = "ip地址不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
@NotBlank(message = "更新IP不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String updateIp;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
package org.ruoyi.system.domain.bo;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.common.mybatis.core.domain.BaseEntity;
|
||||
import org.ruoyi.system.domain.ChatVoucher;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 用户兑换记录业务对象 chat_voucher
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-05-03
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ChatVoucher.class, reverseConvertGenerate = false)
|
||||
public class ChatVoucherBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 兑换码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 兑换金额
|
||||
*/
|
||||
@NotNull(message = "兑换金额不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 兑换状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 兑换前余额
|
||||
*/
|
||||
private Double balanceBefore;
|
||||
|
||||
/**
|
||||
* 兑换后余额
|
||||
*/
|
||||
private Double balanceAfter;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.ruoyi.system.domain.ChatAppStore;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 应用市场视图对象
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-03-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatAppStore.class)
|
||||
public class ChatAppStoreVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
@ExcelProperty(value = "名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 角色描述
|
||||
*/
|
||||
@ExcelProperty(value = "描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
@ExcelProperty(value = "头像")
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 音频地址
|
||||
*/
|
||||
@ExcelProperty(value = "应用地址")
|
||||
private String appUrl;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.ruoyi.common.sensitive.annotation.Sensitive;
|
||||
import org.ruoyi.common.sensitive.core.SensitiveStrategy;
|
||||
import org.ruoyi.system.domain.ChatConfig;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 对话配置信息
|
||||
视图对象 chat_config
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-04-13
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatConfig.class)
|
||||
public class ChatConfigVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ExcelProperty(value = "主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 配置类型
|
||||
*/
|
||||
@ExcelProperty(value = "配置类型")
|
||||
private String category;
|
||||
|
||||
/**
|
||||
* 配置名称
|
||||
*/
|
||||
@ExcelProperty(value = "配置名称")
|
||||
private String configName;
|
||||
|
||||
/**
|
||||
* 配置值
|
||||
*/
|
||||
@ExcelProperty(value = "配置值")
|
||||
@Sensitive(strategy = SensitiveStrategy.SKY)
|
||||
private String configValue;
|
||||
|
||||
/**
|
||||
* 说明
|
||||
*/
|
||||
@ExcelProperty(value = "说明")
|
||||
private String configDict;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
@ExcelProperty(value = "更新IP")
|
||||
private String updateIp;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.ruoyi.system.domain.ChatGpts;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* gpts管理视图对象 chat_gpts
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-07-09
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatGpts.class)
|
||||
public class ChatGptsVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* gpts应用id
|
||||
*/
|
||||
@ExcelProperty(value = "gpts应用id")
|
||||
private String gid;
|
||||
|
||||
/**
|
||||
* gpts应用名称
|
||||
*/
|
||||
@ExcelProperty(value = "gpts应用名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* gpts图标
|
||||
*/
|
||||
@ExcelProperty(value = "gpts图标")
|
||||
private String logo;
|
||||
|
||||
/**
|
||||
* gpts描述
|
||||
*/
|
||||
@ExcelProperty(value = "gpts描述")
|
||||
private String info;
|
||||
|
||||
/**
|
||||
* 作者id
|
||||
*/
|
||||
@ExcelProperty(value = "作者id")
|
||||
private String authorId;
|
||||
|
||||
/**
|
||||
* 作者名称
|
||||
*/
|
||||
@ExcelProperty(value = "作者名称")
|
||||
private String authorName;
|
||||
|
||||
/**
|
||||
* 点赞
|
||||
*/
|
||||
@ExcelProperty(value = "点赞")
|
||||
private String useCnt;
|
||||
|
||||
/**
|
||||
* 差评
|
||||
*/
|
||||
@ExcelProperty(value = "差评")
|
||||
private String bad;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
@ExcelProperty(value = "更新IP")
|
||||
private String updateIp;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@ExcelProperty(value = "模型名称")
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 模型system
|
||||
*/
|
||||
private String systemPrompt;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import org.ruoyi.system.domain.ChatMessage;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 聊天消息视图对象 chat_message
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2023-11-26
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatMessage.class)
|
||||
public class ChatMessageVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
@NotBlank(message = "用户名称")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 对话角色
|
||||
*/
|
||||
private String role;
|
||||
|
||||
|
||||
/**
|
||||
* 消息内容
|
||||
*/
|
||||
@NotBlank(message = "消息内容不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String content;
|
||||
|
||||
|
||||
/**
|
||||
* 扣除费用
|
||||
*/
|
||||
private Double deductCost;
|
||||
|
||||
/**
|
||||
* 累计 Tokens
|
||||
*/
|
||||
@NotNull(message = "累计 Tokens不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Integer totalTokens;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String modelName;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import org.ruoyi.system.domain.ChatPlugin;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 插件管理视图对象 chat_plugin
|
||||
*
|
||||
* @author ageerle
|
||||
* @date 2025-03-30
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatPlugin.class)
|
||||
public class ChatPluginVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ExcelProperty(value = "主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 插件名称
|
||||
*/
|
||||
@ExcelProperty(value = "插件名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 插件编码
|
||||
*/
|
||||
@ExcelProperty(value = "插件编码")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import org.ruoyi.common.core.validate.AddGroup;
|
||||
import org.ruoyi.common.core.validate.EditGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 用户token chat_token
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2023-11-26
|
||||
*/
|
||||
@Data
|
||||
public class ChatTokenVo implements Serializable {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long UserId;
|
||||
|
||||
/**
|
||||
* 待结算token
|
||||
*/
|
||||
private Integer token;
|
||||
|
||||
/**
|
||||
* 模型名称
|
||||
*/
|
||||
@NotBlank(message = "模型名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String modelName;
|
||||
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import org.ruoyi.system.domain.ChatVisitorUsage;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* 访客管理视图对象 chat_visitor_usage
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-07-14
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatVisitorUsage.class)
|
||||
public class ChatVisitorUsageVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@ExcelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 浏览器指纹
|
||||
*/
|
||||
@ExcelProperty(value = "浏览器指纹")
|
||||
private String fingerprint;
|
||||
|
||||
/**
|
||||
* 使用次数
|
||||
*/
|
||||
@ExcelProperty(value = "使用次数")
|
||||
private String usageCount;
|
||||
|
||||
/**
|
||||
* ip地址
|
||||
*/
|
||||
@ExcelProperty(value = "ip地址")
|
||||
private String ipAddress;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新IP
|
||||
*/
|
||||
@ExcelProperty(value = "更新IP")
|
||||
private String updateIp;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
package org.ruoyi.system.domain.vo;
|
||||
|
||||
import org.ruoyi.system.domain.ChatVoucher;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 用户兑换记录视图对象 chat_voucher
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-05-03
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ChatVoucher.class)
|
||||
public class ChatVoucherVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@ExcelProperty(value = "主键")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@ExcelProperty(value = "用户id")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
@ExcelProperty(value = "用户名称")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 兑换码
|
||||
*/
|
||||
@ExcelProperty(value = "兑换码")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 兑换金额
|
||||
*/
|
||||
@ExcelProperty(value = "兑换金额")
|
||||
private Double amount;
|
||||
|
||||
/**
|
||||
* 兑换状态
|
||||
*/
|
||||
@ExcelProperty(value = "兑换状态")
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 兑换前余额
|
||||
*/
|
||||
@ExcelProperty(value = "兑换前余额")
|
||||
private Double balanceBefore;
|
||||
|
||||
/**
|
||||
* 兑换后余额
|
||||
*/
|
||||
@ExcelProperty(value = "兑换后余额")
|
||||
private Double balanceAfter;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@ExcelProperty(value = "创建时间")
|
||||
private String createTime;
|
||||
|
||||
|
||||
}
|
||||
@@ -19,7 +19,7 @@ import java.util.Map;
|
||||
@RequiredArgsConstructor
|
||||
public class MsgHandler extends AbstractHandler {
|
||||
|
||||
private final ISseService sseService;
|
||||
// private final ISseService sseService;
|
||||
|
||||
|
||||
|
||||
@@ -34,8 +34,10 @@ public class MsgHandler extends AbstractHandler {
|
||||
if (!msgType.equals(WxConsts.XmlMsgType.EVENT)) {
|
||||
//TODO 可以选择将消息保存到本地
|
||||
}
|
||||
|
||||
//TODO 组装回复消息
|
||||
String content = sseService.wxCpChat(wxMessage.getContent());
|
||||
String content = "";
|
||||
//sseService.wxCpChat(wxMessage.getContent());
|
||||
|
||||
return new TextBuilder().build(content, wxMessage, cpService);
|
||||
|
||||
|
||||
@@ -15,11 +15,8 @@ import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse;
|
||||
import org.ruoyi.common.chat.utils.TikTokensUtil;
|
||||
import org.ruoyi.common.core.utils.SpringUtils;
|
||||
import org.ruoyi.common.core.utils.StringUtils;
|
||||
import org.ruoyi.system.domain.bo.ChatMessageBo;
|
||||
import org.ruoyi.system.domain.bo.SysModelBo;
|
||||
import org.ruoyi.system.domain.vo.SysModelVo;
|
||||
import org.ruoyi.system.service.IChatCostService;
|
||||
import org.ruoyi.system.service.IChatMessageService;
|
||||
import org.ruoyi.system.service.ISysModelService;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.ruoyi.system.domain.ChatAppStore;
|
||||
import org.ruoyi.system.domain.vo.ChatAppStoreVo;
|
||||
|
||||
/**
|
||||
* 应用市场Mapper接口
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.system.domain.ChatConfig;
|
||||
import org.ruoyi.system.domain.vo.ChatConfigVo;
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.ruoyi.system.domain.ChatGpts;
|
||||
import org.ruoyi.system.domain.vo.ChatGptsVo;
|
||||
|
||||
/**
|
||||
* gpts管理Mapper接口
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.ruoyi.system.domain.ChatMessage;
|
||||
import org.ruoyi.system.domain.vo.ChatMessageVo;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.system.domain.ChatPlugin;
|
||||
import org.ruoyi.system.domain.vo.ChatPluginVo;
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.ruoyi.system.domain.ChatToken;
|
||||
import org.ruoyi.system.domain.vo.ChatTokenVo;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.system.domain.ChatVisitorUsage;
|
||||
import org.ruoyi.system.domain.vo.ChatVisitorUsageVo;
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package org.ruoyi.system.mapper;
|
||||
|
||||
import org.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.ruoyi.system.domain.ChatVoucher;
|
||||
import org.ruoyi.system.domain.vo.ChatVoucherVo;
|
||||
|
||||
/**
|
||||
* 用户兑换记录Mapper接口
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
package org.ruoyi.system.service;
|
||||
|
||||
import org.ruoyi.system.domain.vo.ChatAppStoreVo;
|
||||
import org.ruoyi.system.domain.bo.ChatAppStoreBo;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.system.request.RoleListDto;
|
||||
import org.ruoyi.system.request.RoleRequest;
|
||||
import org.ruoyi.system.request.SimpleGenerateRequest;
|
||||
import org.ruoyi.system.response.SimpleGenerateDataResponse;
|
||||
import org.ruoyi.system.response.rolelist.ChatAppStoreVO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 应用市场Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2024-03-19
|
||||
*/
|
||||
public interface IChatAppStoreService {
|
||||
|
||||
/**
|
||||
* 查询应用市场
|
||||
*/
|
||||
ChatAppStoreVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询应用市场列表
|
||||
*/
|
||||
TableDataInfo<ChatAppStoreVo> queryPageList(ChatAppStoreBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询应用市场列表
|
||||
*/
|
||||
List<ChatAppStoreVo> queryList(ChatAppStoreBo bo);
|
||||
|
||||
/**
|
||||
* 新增应用市场
|
||||
*/
|
||||
Boolean insertByBo(RoleRequest roleRequest);
|
||||
|
||||
/**
|
||||
* 生成音频
|
||||
*/
|
||||
SimpleGenerateDataResponse simpleGenerate(SimpleGenerateRequest simpleGenerateRequest);
|
||||
|
||||
/**
|
||||
* 修改应用市场
|
||||
*/
|
||||
Boolean updateByBo(ChatAppStoreBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除应用市场信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 查询市场角色
|
||||
*
|
||||
* @return 角色列表
|
||||
*/
|
||||
List<ChatAppStoreVO> roleList();
|
||||
|
||||
/**
|
||||
* 收藏市场角色
|
||||
*
|
||||
*/
|
||||
void copyRole(RoleListDto roleListDto);
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
package org.ruoyi.system.service;
|
||||
|
||||
import org.ruoyi.common.mybatis.core.page.PageQuery;
|
||||
import org.ruoyi.common.mybatis.core.page.TableDataInfo;
|
||||
import org.ruoyi.system.domain.bo.ChatConfigBo;
|
||||
import org.ruoyi.system.domain.vo.ChatConfigVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 对话配置信息Service接口
|
||||
* @date 2024-04-13
|
||||
*/
|
||||
public interface IChatConfigService {
|
||||
|
||||
/**
|
||||
* 查询配置信息
|
||||
|
||||
*/
|
||||
ChatConfigVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询配置信息列表
|
||||
*/
|
||||
TableDataInfo<ChatConfigVo> queryPageList(ChatConfigBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询配置信息列表
|
||||
*/
|
||||
List<ChatConfigVo> queryList(ChatConfigBo bo);
|
||||
|
||||
/**
|
||||
* 新增配置信息
|
||||
|
||||
*/
|
||||
Boolean insertByBo(ChatConfigBo bo);
|
||||
|
||||
/**
|
||||
* 修改配置信息
|
||||
*/
|
||||
Boolean updateByBo(ChatConfigBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除配置信息信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 查询系统参数
|
||||
*/
|
||||
List<ChatConfigVo> getSysConfigValue(String category);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user