feat: 增加竞品报告相关路由

This commit is contained in:
cjy 2026-01-12 14:34:15 +08:00
parent 17215e758b
commit 26c59ee54c
2 changed files with 188 additions and 0 deletions

View File

@ -33,7 +33,19 @@ func AnalysisRouter(r *gin.RouterGroup) {
analysis.POST("update-approval-id", serviceCast.UpdateWorkAnalysisApprovalID) // 更新作品分析审批ID analysis.POST("update-approval-id", serviceCast.UpdateWorkAnalysisApprovalID) // 更新作品分析审批ID
analysis.POST("trigger-ayrshare-metrics", serviceCast.TriggerAyrshareMetricsCollector) // 手动触发 Ayrshare 指标采集任务 analysis.POST("trigger-ayrshare-metrics", serviceCast.TriggerAyrshareMetricsCollector) // 手动触发 Ayrshare 指标采集任务
}
competitiveReport := r.Group("report")
competitiveReport.Use(middleware.CheckWebLogin(service.AccountProvider))
{
competitiveReport.POST("create", serviceCast.CreateCompetitiveReport) // 创建竞品报告
// competitiveReport.POST("import-batch", serviceCast.ImportCompetitiveReportBatch) // 批量导入竞品报告
competitiveReport.POST("update-status", serviceCast.UpdateCompetitiveReportStatus) // 更新竞品报告状态
competitiveReport.POST("detail", serviceCast.GetCompetitiveReport) // 获取竞品报告详情
competitiveReport.POST("list", serviceCast.ListCompetitiveReport) // 获取竞品报告列表
competitiveReport.POST("delete", serviceCast.DeleteCompetitiveReport) // 删除竞品报告
competitiveReport.POST("update-approval-id", serviceCast.UpdateCompetitiveReportApprovalID) // 更新竞品报告审批ID
competitiveReport.POST("count-by-work-uuids", serviceCast.CountCompetitiveReportByWorkUuids) // 根据作品UUID统计竞品报告数量
} }
// 员工任务相关路由需要App登录验证 // 员工任务相关路由需要App登录验证
@ -47,4 +59,10 @@ func AnalysisRouter(r *gin.RouterGroup) {
analysisAppRoute.POST("tobe-confirmed-list", serviceCast.TobeConfirmedList) // 待确认数据列表 analysisAppRoute.POST("tobe-confirmed-list", serviceCast.TobeConfirmedList) // 待确认数据列表
analysisAppRoute.POST("work-analysis-confirm", bundle.WorkAnalysisConfirm) analysisAppRoute.POST("work-analysis-confirm", bundle.WorkAnalysisConfirm)
} }
competitiveReportAppRoute := r.Group("app/report")
competitiveReportAppRoute.Use(middleware.CheckLogin(service.AccountFieeProvider))
{
competitiveReportAppRoute.POST("detail", serviceCast.GetCompetitiveReportForApp) // 获取竞品报告详情App端
}
} }

170
pkg/service/cast/report.go Normal file
View File

@ -0,0 +1,170 @@
package cast
import (
"fonchain-fiee/api/cast"
"fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin"
)
// CreateCompetitiveReport 创建竞品报告
func CreateCompetitiveReport(ctx *gin.Context) {
var req *cast.CreateCompetitiveReportReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.CreateCompetitiveReport(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// ImportCompetitiveReportBatch 批量导入竞品报告
func ImportCompetitiveReportBatch(ctx *gin.Context) {
var req *cast.ImportCompetitiveReportBatchReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.ImportCompetitiveReportBatch(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// UpdateCompetitiveReportStatus 更新竞品报告状态
func UpdateCompetitiveReportStatus(ctx *gin.Context) {
var req *cast.UpdateCompetitiveReportStatusReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
_, err = service.CastProvider.UpdateCompetitiveReportStatus(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, nil)
return
}
// GetCompetitiveReport 获取竞品报告详情
func GetCompetitiveReport(ctx *gin.Context) {
var req *cast.GetCompetitiveReportDetailReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.GetCompetitiveReport(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// GetCompetitiveReportForApp 获取竞品报告详情App端
func GetCompetitiveReportForApp(ctx *gin.Context) {
var req *cast.GetCompetitiveReportForAppReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.GetCompetitiveReportForApp(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// ListCompetitiveReport 获取竞品报告列表
func ListCompetitiveReport(ctx *gin.Context) {
var req *cast.ListCompetitiveReportReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.ListCompetitiveReport(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// DeleteCompetitiveReport 删除竞品报告
func DeleteCompetitiveReport(ctx *gin.Context) {
var req *cast.DeleteCompetitiveReportReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
_, err = service.CastProvider.DeleteCompetitiveReport(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, nil)
return
}
// UpdateCompetitiveReportApprovalID 更新竞品报告审批ID
func UpdateCompetitiveReportApprovalID(ctx *gin.Context) {
var req *cast.UpdateCompetitiveReportApprovalIDReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
_, err = service.CastProvider.UpdateCompetitiveReportApprovalID(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, nil)
return
}
// CountCompetitiveReportByWorkUuids 根据作品UUID统计竞品报告数量
func CountCompetitiveReportByWorkUuids(ctx *gin.Context) {
var req *cast.CountCompetitiveReportByWorkUuidsReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.CountCompetitiveReportByWorkUuids(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}