refactor: 页面+规则存七牛云本地缓存+版本历史接口

This commit is contained in:
mediabot-pt
2026-07-05 19:09:57 +08:00
parent 41d730c249
commit 4ac61a1868
4 changed files with 95 additions and 5 deletions

View File

@@ -73,6 +73,44 @@ public class RiskRuleController {
return ApiResponse.success();
}
/** 获取风险规则版本历史 */
@GetMapping("/api/v1/admin/risk-rules/{siteType}/versions")
public ApiResponse<List<Map<String, Object>>> versions(@PathVariable String siteType, HttpServletRequest request) {
checkAdmin(request);
var mapper = ((com.par.core.service.impl.RiskRuleServiceImpl) riskRuleService).mapper;
var list = mapper.selectList(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.par.core.entity.RiskRule>()
.eq(com.par.core.entity.RiskRule::getSiteType, siteType)
.eq(com.par.core.entity.RiskRule::getDeleted, 0)
.orderByDesc(com.par.core.entity.RiskRule::getId));
List<Map<String, Object>> result = new ArrayList<>();
for (var r : list) {
Map<String, Object> m = new LinkedHashMap<>();
m.put("id", r.getId()); m.put("version", r.getVersion());
m.put("createdAt", r.getCreatedAt()); m.put("updatedAt", r.getUpdatedAt());
result.add(m);
}
return ApiResponse.success(result);
}
/** 获取指定版本风险规则内容 */
@GetMapping("/api/v1/admin/risk-rules/{siteType}/version/{version}")
public ApiResponse<Map<String, Object>> getVersion(
@PathVariable String siteType, @PathVariable int version, HttpServletRequest request) {
checkAdmin(request);
var mapper = ((com.par.core.service.impl.RiskRuleServiceImpl) riskRuleService).mapper;
var r = mapper.selectOne(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.par.core.entity.RiskRule>()
.eq(com.par.core.entity.RiskRule::getSiteType, siteType)
.eq(com.par.core.entity.RiskRule::getVersion, version)
.eq(com.par.core.entity.RiskRule::getDeleted, 0));
if (r == null) return ApiResponse.error(404, "版本不存在");
Map<String, Object> result = new LinkedHashMap<>();
result.put("siteType", siteType); result.put("version", r.getVersion());
result.put("content", r.getRulesJson());
return ApiResponse.success(result);
}
private void checkAdmin(HttpServletRequest request) {
var level = request.getAttribute("trustLevel");
if (level == null || !"ADMIN".equals(level.toString())) {

View File

@@ -75,6 +75,47 @@ public class SitePagesController {
return ApiResponse.success();
}
/** 获取页面配置版本历史 */
@GetMapping("/api/v1/admin/site-pages/{siteId}/versions")
public ApiResponse<List<Map<String, Object>>> versions(@PathVariable String siteId, HttpServletRequest request) {
checkAdmin(request);
var mapper = ((com.par.core.service.impl.SitePagesServiceImpl) sitePagesService).mapper;
var list = mapper.selectList(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.par.core.entity.SitePages>()
.eq(com.par.core.entity.SitePages::getSiteId, siteId)
.eq(com.par.core.entity.SitePages::getDeleted, 0)
.orderByDesc(com.par.core.entity.SitePages::getId));
List<Map<String, Object>> result = new ArrayList<>();
for (var p : list) {
Map<String, Object> m = new LinkedHashMap<>();
m.put("id", p.getId());
m.put("version", p.getVersion());
m.put("createdAt", p.getCreatedAt());
m.put("updatedAt", p.getUpdatedAt());
result.add(m);
}
return ApiResponse.success(result);
}
/** 获取指定版本页面配置内容 */
@GetMapping("/api/v1/admin/site-pages/{siteId}/version/{version}")
public ApiResponse<Map<String, Object>> getVersion(
@PathVariable String siteId, @PathVariable String version, HttpServletRequest request) {
checkAdmin(request);
var mapper = ((com.par.core.service.impl.SitePagesServiceImpl) sitePagesService).mapper;
var p = mapper.selectOne(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.par.core.entity.SitePages>()
.eq(com.par.core.entity.SitePages::getSiteId, siteId)
.eq(com.par.core.entity.SitePages::getVersion, version)
.eq(com.par.core.entity.SitePages::getDeleted, 0));
if (p == null) return ApiResponse.error(404, "版本不存在");
Map<String, Object> result = new LinkedHashMap<>();
result.put("siteId", siteId);
result.put("version", p.getVersion());
result.put("content", p.getEntriesJson());
return ApiResponse.success(result);
}
private void checkAdmin(HttpServletRequest request) {
var level = request.getAttribute("trustLevel");
if (level == null || !"ADMIN".equals(level.toString())) {