This commit is contained in:
oneao committed 2026-03-27 17:22:22 +08:00
1 parent 26721a142e
commit 840d33ef3b
32 files changed
+2068 -590

No files matched your search

@@ -99,6 +99,56 @@ public class AuthController {
}
@PostMapping("/loginPhone")
public Result<Map<String,Object>> loginPhone(@RequestBody Map<String,Object> params) {
String orgid = (String) params.get("orgid");
String userid = (String) params.get("userid");
if (StringUtils.isBlank(orgid)) {
return Result.fail("机构码不能为空");
}
if (StringUtils.isBlank(userid)) {
return Result.fail("账号不能为空");
}
try {
DataSourceManager.getOrCreateDataSource(orgid);
} catch (Exception e) {
return Result.fail("机构码错误");
}
DataSourceContextHolder.setDataSourceKey(orgid);
String sql = "SELECT b_id,b_name,b_password,b_canuse FROM b_user WHERE b_id = ?";
List<Map<String, Object>> list = dbUtils.loadData(sql, userid);
if (list.isEmpty()) {
return Result.fail("账号不存在");
}
Map<String, Object> user = list.get(0);
String canuse = Objects.toString(user.get("b_canuse"), "");
if (!canuse.equals("1")){
return Result.fail("账号未启用");
}
// 校验成功
String token = JwtUtils.createToken(new JwtPayload(orgid, userid));
Map<String,Object> map = new HashMap<>();
map.put("token",token);
map.put("username",Objects.toString(user.get("b_name"), ""));
asyncService.invokeAsyncLoginLog(userid);
return Result.ok(map);
}
@PostMapping("/updatePassword")
@Transactional
public Result<Map<String,Object>> updatePassword(@RequestBody Map<String,Object> params){
@@ -96,6 +96,34 @@ public class DataListController {
return Result.ok(result);
}
/**
* 分页查询接口
*
* @param params 参数集合,包含:
* - viewName: 视图名称(必填)
* - start: 页码(默认 1)
* - end: 每页条数(默认 10)
* - searchCondition: 查询条件
* - searchColumns: 查询列(未指定时默认查询所有列)
* - orderField: 排序字段
* @return 总页数
*/
@PostMapping("/range")
public Result<List<Map<String,Object>>> range(@RequestBody Map<String, Object> params){
ValidationUtils.checkRequiredFields(params, "viewName");
Integer start = (Integer) params.getOrDefault("start", 1);
Integer end = (Integer) params.getOrDefault("end", 10);
String viewName = (String) params.get("viewName");
String searchCondition = (String) params.get("searchCondition");
List<String> searchColumns = (List<String>) params.get("searchColumns");
String orderField = (String) params.get("orderField");
List<Map<String,Object>> result = dbUtils.range(start, end, viewName, searchCondition, orderField, searchColumns);
return Result.ok(result);
}
/**
* 树形数据查询接口
*
@@ -25,7 +25,7 @@ public class OcrController {
String fileUrl = (String) params.get("fileUrl");
String requestUrl = "http://192.168.1.137:8867/ocr";
String requestUrl = "http://127.0.0.1:8867/ocr";
Map<String, Object> reqPayload = new HashMap<>();
reqPayload.put("file", fileUrl);
@@ -208,6 +208,93 @@ public class DbUtils {
return result;
}
public List<Map<String, Object>> range(
int start,
int end,
String viewName,
String searchCondition,
String orderField,
List<String> searchColumns
) {
validateIdentifier(viewName);
validateIdentifier(orderField);
// ======================
// 参数兜底
// ======================
if (start < 1) start = 1;
if (end < 1) end = 1;
if (start > end) {
int temp = start;
start = end;
end = temp;
}
List<Object> params = new ArrayList<>();
// ======================
// SELECT 字段
// ======================
String selectSql;
String outerSelectSql;
if (searchColumns != null && !searchColumns.isEmpty()) {
searchColumns.forEach(this::validateIdentifier);
selectSql = searchColumns.stream()
.map(c -> "t." + c)
.collect(Collectors.joining(","));
outerSelectSql = searchColumns.stream()
.map(c -> "sub." + c)
.collect(Collectors.joining(","));
} else {
selectSql = "t.*";
outerSelectSql = "sub.*";
}
// ======================
// WHERE 条件
// ======================
StringBuilder whereSql = new StringBuilder("1=1");
if (StringUtils.isNotBlank(searchCondition)) {
whereSql.append(" AND ").append(searchCondition);
}
// ======================
// ORDER BY
// ======================
String orderSql;
if (StringUtils.isBlank(orderField)) {
orderSql = "(SELECT NULL)";
} else {
orderSql = "t." + orderField;
}
// ======================
// SQLServer 2008 区间查询
// ======================
String sql =
"SELECT " + outerSelectSql + " FROM (" +
" SELECT ROW_NUMBER() OVER (ORDER BY " + orderSql + ") AS row_num, " +
selectSql +
" FROM " + viewName + " t " +
" WHERE " + whereSql +
") sub WHERE sub.row_num BETWEEN ? AND ?";
params.add(start);
params.add(end);
validateFinalSql(sql);
return jdbcTemplate.queryForList(sql, params.toArray());
}
public void validateFinalSql(String sql) {
if (StringUtils.isBlank(sql)) {
return;
@@ -7,7 +7,7 @@ server:
threads:
max: 800 # 最大线程数
min-spare: 100 # 初始化的线程数
port: 8085
port: 80
spring:
servlet:
@@ -1,4 +1,10 @@
url=jdbc:sqlserver://118.89.70.199:1433;databaseName=G3BoxOCR
#url=jdbc:sqlserver://118.89.70.199:1433;databaseName=G3BoxOCR
#username=sa
#password=zhang520..
#driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1:1433;databaseName=G3BoxOCR
username=sa
password=zhang520..
password=123456@aaa
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver