package org.springblade.mng.config.util;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.mng.cgform.entity.CgformEnhanceJava;
import org.springblade.mng.cgform.entity.CgformField;
import org.springblade.mng.cgform.entity.CgformHead;
import org.springblade.mng.cgform.entity.CgformIndex;
import org.springblade.mng.cgform.enums.CgformValidPatternEnum;
import org.springblade.mng.cgform.mapper.CategoryMapper;
import org.springblade.mng.cgform.model.DictModel;
import org.springblade.mng.cgform.model.FieldModel;
import org.springblade.mng.cgform.model.SysPermissionDataRuleModel;
import org.springblade.mng.cgform.model.query.MatchTypeEnum;
import org.springblade.mng.cgform.model.query.QueryGenerator;
import org.springblade.mng.cgform.model.query.QueryRuleEnum;
import org.springblade.mng.cgform.service.ICgformFieldService;
import org.springblade.mng.cgform.service.IDictItemService;
import org.springblade.mng.cgform.service.IDictService;
import org.springblade.mng.common.utils.MjkjUtils;
import org.springblade.mng.config.exception.DBException;
import org.springblade.mng.config.util.jsonschema.BaseColumn;
import org.springblade.mng.config.util.jsonschema.CommonProperty;
import org.springblade.mng.config.util.jsonschema.JsonSchemaDescrip;
import org.springblade.mng.config.util.jsonschema.JsonschemaUtil;
import org.springblade.mng.config.util.jsonschema.validate.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.SQLException;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Slf4j
public class SqlSymbolUtil {
/**
* 获取id
*
* @return
*/
public static Long getIdWorkerId() {
long id = IdWorker.getId();
return id;
}
/**
* 获取查询sql
*
* @param tableName
* @param onlCgformFields
* @param map
* @return
*/
public static String getSelectSql(String tableName, List<CgformField> onlCgformFields, Map<String, Object> map) {
StringBuffer whereSb = new StringBuffer();//where条件字段
StringBuffer selectSb = new StringBuffer();//查询字段
for (CgformField onlCgformField : onlCgformFields) {
String dbFieldName = onlCgformField.getDbFieldName();
String dbType = onlCgformField.getDbType();
if (onlCgformField.getIsShowList() == 1) {
selectSb.append("," + dbFieldName);
}
if (Func.isNotEmpty(onlCgformField.getMainField())) {
boolean flag = !DataTypeUtil.isNumberType(dbType);
String sql = QueryGenerator.getSingleQueryConditionSql(dbFieldName, "", map.get(dbFieldName), flag);
if (!"".equals(sql)) {
whereSb.append(" AND " + sql);
}
}
if (onlCgformField.getIsQuery() != 1) {//是否查询条件0否 1是
continue;
}
if ("single".equals(onlCgformField.getQueryMode())) {//查询模式
if (map.get(dbFieldName) != null) {
boolean flag = DataTypeUtil.isNotNumberType(dbType);
String sql = QueryGenerator.getSingleQueryConditionSql(dbFieldName, "", map.get(dbFieldName), flag);
if (!"".equals(sql)) {
whereSb.append(" AND " + sql);
}
}
} else {
Object beginObj = map.get(dbFieldName + "_begin");
if (beginObj != null) {
whereSb.append(" AND " + dbFieldName + ">=");
if (DataTypeUtil.isNumberType(dbType)) {
whereSb.append(beginObj.toString());
} else {
whereSb.append("'" + beginObj.toString() + "'");
}
}
Object endObj = map.get(dbFieldName + "_end");
if (endObj != null) {
whereSb.append(" AND " + dbFieldName + "<=");
if (DataTypeUtil.isNumberType(dbType)) {
whereSb.append(endObj.toString());
} else {
whereSb.append("'" + endObj.toString() + "'");
}
}
}
}
return "SELECT id" + selectSb.toString() + " FROM " + getSubstring(tableName) + " where is_deleted =0 " + whereSb.toString();
}
public static boolean equals(Object object1, Object object2) {
if (Func.isEmpty(object1) && Func.isEmpty(object2)) {
return true;
} else {
return Func.isNotEmpty(object1) && object1.equals(object2);
}
}
/**
* 判断表名称和表说明是否一样
*
* @param onlCgformHead
* @param newOnlCgformHead
* @return
*/
public static boolean onlCgformHeadEquals(CgformHead onlCgformHead, CgformHead newOnlCgformHead) {
return !equals(onlCgformHead.getTableName(), newOnlCgformHead.getTableName()) || !equals(onlCgformHead.getTableTxt(), newOnlCgformHead.getTableTxt());
}
/**
* 判断新字段和旧字段是否一致
*
* @param field
* @param newField
* @return
*/
public static boolean fieldEquals(CgformField field, CgformField newField) {
return !equals(field.getDbFieldName(), newField.getDbFieldName())
|| !equals(field.getDbFieldTxt(), newField.getDbFieldTxt())
|| !equals(field.getDbLength(), newField.getDbLength())
|| !equals(field.getDbPointLength(), newField.getDbPointLength())
|| !equals(field.getDbType(), newField.getDbType())
|| !equals(field.getDbIsNull(), newField.getDbIsNull())
|| !equals(field.getDbIsKey(), newField.getDbIsKey())
|| !equals(field.getDbDefaultVal(), newField.getDbDefaultVal());
}
/**
* 判断新索引和旧索引是否一致
*
* @param index
* @param newIndex
* @return
*/
public static boolean indexEquals(CgformIndex index, CgformIndex newIndex) {
return !equals(index.getIndexName(), newIndex.getIndexName())
|| !equals(index.getIndexField(), newIndex.getIndexField())
|| !equals(index.getIndexType(), newIndex.getIndexType());
}
/**
* java增强,判断是否是java类
*
* @param onlCgformEnhanceJava
* @return
*/
public static boolean isExistJava(CgformEnhanceJava onlCgformEnhanceJava) {
String javaType = onlCgformEnhanceJava.getCgJavaType();
String javaValue = onlCgformEnhanceJava.getCgJavaValue();
if (Func.isEmpty(javaValue)) {
return true;
}
try {
if ("class".equals(javaType)) {
Class clazz = Class.forName(javaValue);
if (clazz == null || clazz.newInstance() == null) {
return false;
}
} else if ("spring".equals(javaType)) {
Object bean = SpringContextUtils.getBean(javaValue);
if (bean == null) {
return false;
}
}
return true;
} catch (Exception e) {
log.error(e.getMessage(), e);
return false;
}
}
public static String getSubstring(String s) {
return Pattern.matches("^[a-zA-z].*\\$\\d+$", s) ? s.substring(0, s.lastIndexOf("$")) : s;
}
/**
* 将表字段转为json
*
* @param availableFieldsList
* @param disabledFieldsLiast
* @param fieldModel
* @return
*/
public static JSONObject getFiledJson(List<CgformField> availableFieldsList, List<String> disabledFieldsLiast, FieldModel fieldModel) {
List<String> mustAddList = new ArrayList<>();//必填字段
List<CommonProperty> hiddenList = new ArrayList<>();//隐藏列表
List<String> arrayList2 = new ArrayList<>();
IDictService dictService = SpringContextUtils.getBean(IDictService.class);
IDictItemService dictItemService = SpringContextUtils.getBean(IDictItemService.class);
CategoryMapper categoryMapper = SpringContextUtils.getBean(CategoryMapper.class);
Iterator<CgformField> iterator = availableFieldsList.iterator();
while (true) {
CgformField onlCgformField;
String dbFieldName;
do {
do {
if (!iterator.hasNext()) {//没有下一个
if (mustAddList.size() > 0) {
JsonSchemaDescrip jsonSchemaDescrip = new JsonSchemaDescrip(mustAddList);
return Jsonsche
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringCloud与OpenAI的ChatGPT机器人设计与实现源码
共835个文件
java:314个
png:147个
js:109个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 52 浏览量
2024-10-03
20:14:10
上传
评论
收藏 38.23MB ZIP 举报
温馨提示
该源码包是一个基于SpringCloud架构的ChatGPT机器人设计项目,共计837个文件,涵盖314个Java源文件、109个JavaScript文件、104个Vue组件、45个XML配置文件、38个图片文件以及少量其他格式文件。项目集成了多种AI功能,包括GPT-3.5、GPT-4.0、Kimi、百度文心一言、stable diffusion AI绘图和Midjourney绘图。用户可通过界面与机器人互动,实现文本交流及文生图功能。项目持续更新,不断解锁新功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringCloud与OpenAI的ChatGPT机器人设计与实现源码 (835个子文件)
.browserslistrc 30B
index.css 233KB
index.css 68KB
animate.css 52KB
font-awesome.css 37KB
font-awesome.min.css 30KB
iconfont.css 3KB
screen.css 550B
index.css 532B
Dockerfile 99B
.editorconfig 364B
fontawesome-webfont.eot 162KB
.eslintignore 29B
tableTemplate.ftl 8KB
.gitignore 356B
.gitignore 231B
.gitignore 188B
index.html 3KB
emailTemplate.html 3KB
index.html 2KB
SqlSymbolUtil.java 61KB
WebServiceImpl.java 40KB
CgformApiController.java 35KB
CgformHeadServiceImpl.java 32KB
CgformFieldServiceImpl.java 32KB
QueryGenerator.java 30KB
ChatController.java 27KB
ChatGPTServiceImpl.java 23KB
MjkjBaseSqlServiceImpl.java 23KB
MjkjUtils.java 23KB
OpenController.java 22KB
MjkjUtils.java 21KB
SystemController.java 20KB
DateUtils.java 19KB
ConvertUtils.java 17KB
SqlHelper.java 16KB
OnlineServiceImpl.java 16KB
CgformEnhanceSqlServiceImpl.java 12KB
MjkjUserServiceImpl.java 12KB
CgformEnhanceController.java 11KB
PosterUtil.java 11KB
SlidePuzzleUtil.java 9KB
DesformApiController.java 9KB
CgformEnhanceJavaServiceImpl.java 9KB
SqlServerTableHandle.java 8KB
PgTableHandle.java 8KB
BaseController.java 7KB
ChatgptConfig.java 7KB
TableUtil.java 7KB
CgformField.java 7KB
EnhanceJsUtil.java 7KB
QRCodeUtil.java 7KB
ColumnMeta.java 7KB
EmailUtil.java 6KB
IMjkjBaseSqlService.java 6KB
ICgformFieldService.java 6KB
EmailTemplateUtils.java 6KB
OracleTableHandle.java 6KB
MysqlTableHandle.java 5KB
CgformHead.java 5KB
BrowserUtils.java 5KB
AuthController.java 5KB
SimpleFormat.java 5KB
MessageCountEnhance.java 5KB
DictServiceImpl.java 5KB
DataTypeUtil.java 5KB
ColumnVo.java 4KB
CategoryServiceImpl.java 4KB
ControlTypeUtil.java 4KB
FileUtil.java 4KB
MngServiceImpl.java 4KB
WxMiniTokenGranter.java 4KB
MngMapper.java 4KB
MjkjBaseSqlMapper.java 4KB
CgformButtonServiceImpl.java 4KB
IWebService.java 4KB
CommonProperty.java 4KB
ChatGptController.java 4KB
CheckRuleServiceImpl.java 4KB
NumberProperty.java 4KB
SqlInjectionUtil.java 4KB
FileSizeUtil.java 3KB
ConverterUtil.java 3KB
CgformButtonController.java 3KB
MyClassLoader.java 3KB
MngController.java 3KB
TemplatePathUtil.java 3KB
ChatGPTServiceImpl.java 3KB
AsyncPoolServiceImpl.java 3KB
TreeSelectProperty.java 3KB
SmsServiceImpl.java 3KB
CgFormColumnExtendVo.java 3KB
SqlMapper.java 3KB
DbConvertDef.java 3KB
ZipUtil.java 3KB
TableVo.java 3KB
DesformHead.java 3KB
IDictService.java 3KB
DictMapper.java 3KB
ChatgptBladeDept.java 3KB
共 835 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
csbysj2020
- 粉丝: 2655
- 资源: 5505
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功