fix: Controller编译错误(private mapper+import缺失+字段位置)
This commit is contained in:
@@ -48,6 +48,10 @@ public class AdminController {
|
||||
private final ConfigService configService;
|
||||
private final CachedStorageService storageService;
|
||||
private final com.par.core.service.SiteService siteService;
|
||||
private final com.par.core.mapper.SitePagesMapper sitePagesMapper;
|
||||
private final com.par.core.mapper.RiskRuleMapper riskRuleMapper;
|
||||
private final com.par.core.service.SitePagesService sitePagesService;
|
||||
private final com.par.core.service.RiskRuleService riskRuleService;
|
||||
|
||||
/**
|
||||
* 获取所有用户列表
|
||||
@@ -424,8 +428,8 @@ public class AdminController {
|
||||
}
|
||||
// 2. 页面配置(去重取最新版本)
|
||||
Set<String> seenPages = new HashSet<>();
|
||||
for (var sp : ((com.par.core.service.impl.SitePagesServiceImpl) siteService).mapper
|
||||
.selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.par.core.entity.SitePages>()
|
||||
for (var sp : sitePagesMapper.selectList(
|
||||
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.par.core.entity.SitePages>()
|
||||
.eq(com.par.core.entity.SitePages::getDeleted, 0)
|
||||
.orderByDesc(com.par.core.entity.SitePages::getId))) {
|
||||
if (seenPages.add(sp.getSiteId())) {
|
||||
@@ -434,8 +438,7 @@ public class AdminController {
|
||||
}
|
||||
// 3. 风险规则(去重取最新版本)
|
||||
Set<String> seenRules = new HashSet<>();
|
||||
var ruleMapper = new com.par.core.mapper.RiskRuleMapper() {};
|
||||
for (var rr : ruleMapper.selectList(
|
||||
for (var rr : riskRuleMapper.selectList(
|
||||
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<com.par.core.entity.RiskRule>()
|
||||
.eq(com.par.core.entity.RiskRule::getDeleted, 0)
|
||||
.orderByDesc(com.par.core.entity.RiskRule::getId))) {
|
||||
@@ -483,10 +486,10 @@ public class AdminController {
|
||||
configService.submitConfig(sid, String.valueOf(System.currentTimeMillis()), content, null);
|
||||
} else if (name.startsWith("pages/") && name.endsWith(".json")) {
|
||||
String sid = name.replace("pages/", "").replace(".json", "");
|
||||
siteService.savePages(sid, parseJson(content));
|
||||
sitePagesService.savePages(sid, parseJson(content));
|
||||
} else if (name.startsWith("rules/") && name.endsWith(".json")) {
|
||||
String type = name.replace("rules/", "").replace(".json", "");
|
||||
((com.par.core.service.RiskRuleService) riskService).saveRules(type, parseJson(content));
|
||||
riskRuleService.saveRules(type, parseJson(content));
|
||||
}
|
||||
ok++;
|
||||
} catch (Exception ex) { log.error("导入失败: {}", name, ex); fail++; }
|
||||
@@ -502,11 +505,6 @@ public class AdminController {
|
||||
catch (Exception e) { return java.util.List.of(); }
|
||||
}
|
||||
|
||||
private final com.par.core.service.SitePagesService siteService;
|
||||
private final com.par.core.service.RiskRuleService riskService;
|
||||
|
||||
// ==================== 旧脚本导入导出(保留兼容) ====================
|
||||
|
||||
private void checkAdmin(HttpServletRequest request) {
|
||||
TrustLevel level = (TrustLevel) request.getAttribute("trustLevel");
|
||||
if (level == null || level != TrustLevel.ADMIN) {
|
||||
|
||||
@@ -11,9 +11,6 @@ import org.springframework.web.bind.annotation.*;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 风险规则接口
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@@ -21,51 +18,40 @@ public class RiskRuleController {
|
||||
|
||||
private final RiskRuleService riskRuleService;
|
||||
|
||||
/** 获取风险规则 */
|
||||
@GetMapping("/api/v1/risk-rules/{siteType}")
|
||||
public ResponseEntity<?> getRules(
|
||||
@PathVariable String siteType,
|
||||
public ResponseEntity<?> getRules(@PathVariable String siteType,
|
||||
@RequestParam(defaultValue = "0") int version) {
|
||||
int currentVer = riskRuleService.getVersion(siteType);
|
||||
if (currentVer <= version) {
|
||||
return ResponseEntity.status(304).build();
|
||||
}
|
||||
if (currentVer <= version) return ResponseEntity.status(304).build();
|
||||
Map<String, Object> data = riskRuleService.getRules(siteType);
|
||||
if (data == null) return ResponseEntity.status(304).build();
|
||||
return ResponseEntity.ok(data);
|
||||
}
|
||||
|
||||
/** 提交风险规则 */
|
||||
@PostMapping("/api/v1/risk-rules/{siteType}")
|
||||
public ApiResponse<Void> saveRules(
|
||||
@PathVariable String siteType,
|
||||
public ApiResponse<Void> saveRules(@PathVariable String siteType,
|
||||
@RequestBody Map<String, Object> payload) {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> rules = (List<Map<String, Object>>) payload.get("rules");
|
||||
if (rules == null || rules.isEmpty()) {
|
||||
return ApiResponse.error(400, "rules is required");
|
||||
}
|
||||
var rules = (List<Map<String, Object>>) payload.get("rules");
|
||||
if (rules == null || rules.isEmpty()) return ApiResponse.error(400, "rules is required");
|
||||
riskRuleService.saveRules(siteType, rules);
|
||||
return ApiResponse.success();
|
||||
}
|
||||
|
||||
/** 管理员查看所有风险规则列表 */
|
||||
@GetMapping("/api/v1/admin/risk-rules")
|
||||
public ApiResponse<List<Map<String, Object>>> adminList(HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
return ApiResponse.success(riskRuleService.listAll());
|
||||
}
|
||||
|
||||
/** 管理员查看某个类型风险规则内容 */
|
||||
@GetMapping("/api/v1/admin/risk-rules/{siteType}")
|
||||
public ApiResponse<Map<String, Object>> adminGet(@PathVariable String siteType, HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
Map<String, Object> data = riskRuleService.getRules(siteType);
|
||||
var data = riskRuleService.getRules(siteType);
|
||||
if (data == null) return ApiResponse.error(404, "风险规则不存在");
|
||||
return ApiResponse.success(data);
|
||||
}
|
||||
|
||||
/** 管理员删除风险规则 */
|
||||
@DeleteMapping("/api/v1/admin/risk-rules/{siteType}")
|
||||
public ApiResponse<Void> adminDelete(@PathVariable String siteType, HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
@@ -73,45 +59,21 @@ 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);
|
||||
return ApiResponse.success(riskRuleService.listVersions(siteType));
|
||||
}
|
||||
|
||||
/** 获取指定版本风险规则内容 */
|
||||
@GetMapping("/api/v1/admin/risk-rules/{siteType}/version/{version}")
|
||||
public ApiResponse<Map<String, Object>> getVersion(
|
||||
public ApiResponse<Map<String, Object>> getContentByVersion(
|
||||
@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);
|
||||
String content = riskRuleService.getVersionContent(siteType, version);
|
||||
if (content == null) return ApiResponse.error(404, "版本不存在");
|
||||
return ApiResponse.success(Map.of("siteType", siteType, "version", version, "content", content));
|
||||
}
|
||||
|
||||
/** 获取或保存默认风险规则模板 */
|
||||
@GetMapping("/api/v1/admin/default-rules/{type}")
|
||||
public ApiResponse<Map<String, Object>> getDefaultRules(@PathVariable String type, HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
|
||||
@@ -5,15 +5,11 @@ import com.par.core.service.SitePagesService;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 站点页面配置接口
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@@ -21,7 +17,6 @@ public class SitePagesController {
|
||||
|
||||
private final SitePagesService sitePagesService;
|
||||
|
||||
/** 获取站点页面配置 */
|
||||
@GetMapping("/api/v1/sites/{siteId}/pages")
|
||||
public ApiResponse<Map<String, Object>> getPages(@PathVariable String siteId) {
|
||||
Map<String, Object> data = sitePagesService.getPages(siteId);
|
||||
@@ -29,45 +24,36 @@ public class SitePagesController {
|
||||
return ApiResponse.success(data);
|
||||
}
|
||||
|
||||
/** 获取页面配置版本 */
|
||||
@GetMapping("/api/v1/sites/{siteId}/pages/version")
|
||||
public ApiResponse<Map<String, String>> getVersion(@PathVariable String siteId) {
|
||||
String v = sitePagesService.getVersion(siteId);
|
||||
return ApiResponse.success(Map.of("version", v != null ? v : "0"));
|
||||
}
|
||||
|
||||
/** 上传/更新页面配置(PSK 签名认证) */
|
||||
@PutMapping("/api/v1/sites/{siteId}/pages")
|
||||
public ApiResponse<Void> savePages(
|
||||
@PathVariable String siteId,
|
||||
@RequestBody Map<String, Object> payload,
|
||||
HttpServletRequest request) {
|
||||
@PathVariable String siteId, @RequestBody Map<String, Object> payload) {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> entries = (List<Map<String, Object>>) payload.get("entries");
|
||||
if (entries == null || entries.isEmpty()) {
|
||||
return ApiResponse.error(400, "entries is required");
|
||||
}
|
||||
var entries = (List<Map<String, Object>>) payload.get("entries");
|
||||
if (entries == null || entries.isEmpty()) return ApiResponse.error(400, "entries is required");
|
||||
sitePagesService.savePages(siteId, entries);
|
||||
return ApiResponse.success();
|
||||
}
|
||||
|
||||
/** 管理员查看所有站点页面配置列表 */
|
||||
@GetMapping("/api/v1/admin/site-pages")
|
||||
public ApiResponse<List<Map<String, Object>>> adminList(HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
return ApiResponse.success(sitePagesService.listAll());
|
||||
}
|
||||
|
||||
/** 管理员查看某站点页面配置内容 */
|
||||
|
||||
@GetMapping("/api/v1/admin/site-pages/{siteId}")
|
||||
public ApiResponse<Map<String, Object>> adminGet(@PathVariable String siteId, HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
Map<String, Object> data = sitePagesService.getPages(siteId);
|
||||
var data = sitePagesService.getPages(siteId);
|
||||
if (data == null) return ApiResponse.error(404, "页面配置不存在");
|
||||
return ApiResponse.success(data);
|
||||
}
|
||||
|
||||
/** 管理员删除站点页面配置 */
|
||||
@DeleteMapping("/api/v1/admin/site-pages/{siteId}")
|
||||
public ApiResponse<Void> adminDelete(@PathVariable String siteId, HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
@@ -75,56 +61,27 @@ 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);
|
||||
return ApiResponse.success(sitePagesService.listVersions(siteId));
|
||||
}
|
||||
|
||||
/** 获取指定版本页面配置内容 */
|
||||
@GetMapping("/api/v1/admin/site-pages/{siteId}/version/{version}")
|
||||
public ApiResponse<Map<String, Object>> getVersion(
|
||||
public ApiResponse<Map<String, Object>> getContentByVersion(
|
||||
@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);
|
||||
String content = sitePagesService.getVersionContent(siteId, version);
|
||||
if (content == null) return ApiResponse.error(404, "版本不存在");
|
||||
return ApiResponse.success(Map.of("siteId", siteId, "version", version, "content", content));
|
||||
}
|
||||
|
||||
/** 获取或保存默认页面模板 */
|
||||
@GetMapping("/api/v1/admin/default-pages/{type}")
|
||||
public ApiResponse<Map<String, Object>> getDefaultPages(@PathVariable String type, HttpServletRequest request) {
|
||||
checkAdmin(request);
|
||||
String defaultId = "default:" + type;
|
||||
Map<String, Object> data = sitePagesService.getPages(defaultId);
|
||||
if (data == null) {
|
||||
data = Map.of("siteId", defaultId, "version", "0", "entries", List.of());
|
||||
}
|
||||
if (data == null) data = Map.of("siteId", defaultId, "version", "0", "entries", List.of());
|
||||
return ApiResponse.success(data);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user