fix: Controller编译错误(private mapper+import缺失+字段位置)

This commit is contained in:
mediabot-pt
2026-07-05 20:00:03 +08:00
parent 7ee928aa42
commit e6aaa3b238
7 changed files with 79 additions and 114 deletions

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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);
}