feat: 站点提交改为待审核(pending),管理员审核通过/拒绝

- submitSite: 新站点 status=PENDING
- AdminController: GET /admin/sites/pending, POST /admin/sites/{id}/approve|reject
- reject 物理删除站点记录
This commit is contained in:
mediabot-pt
2026-06-29 23:34:14 +08:00
parent d1445d3920
commit b829fc68fe
3 changed files with 61 additions and 2 deletions

View File

@@ -26,8 +26,17 @@ public interface SiteService {
SiteDTO toDTO(Site site);
/**
* 提交站点信息(创建/更新,需审核)
* 提交站点信息(创建 pending,更新保持原状态)
*/
Site submitSite(String siteId, String name, String description, String baseUrl,
String iconUrl, String siteType, Long submitterId);
/** 待审核站点列表 */
List<Site> listPendingSites();
/** 审核通过 */
void approveSite(Long id, Long reviewerId);
/** 拒绝(删除) */
void rejectSite(Long id);
}

View File

@@ -77,9 +77,32 @@ public class SiteServiceImpl implements SiteService {
site.setIconUrl(iconUrl);
site.setSiteType(siteType != null ? com.par.core.enums.SiteType.fromValue(siteType) : com.par.core.enums.SiteType.UNKNOWN);
site.setSchemaVersion("1.0.0");
site.setStatus(SiteStatus.ACTIVE);
site.setStatus(SiteStatus.PENDING); // 新站点需审核
site.setSubmitterId(submitterId);
siteMapper.insert(site);
return site;
}
@Override
public List<Site> listPendingSites() {
return siteMapper.selectList(
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<Site>()
.eq(Site::getStatus, SiteStatus.PENDING)
.eq(Site::getDeleted, 0));
}
@Override
public void approveSite(Long id, Long reviewerId) {
Site site = siteMapper.selectById(id);
if (site != null) {
site.setStatus(SiteStatus.ACTIVE);
siteMapper.updateById(site);
}
}
@Override
public void rejectSite(Long id) {
siteMapper.deleteById(id); // 物理删除
}
}
}