审核流程

2026-10-26 21:55:35 后台业务

审核流程包含初审、复审、发布等标准环节及审核数据统计。可在顶层做抽象,定义核心方法,各业务自行实现逻辑。该方案仅需一套后台接口统一收口,支撑全量审核流程,减少冗余代码,架构更简洁。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
type Service interface {
//初审列表
GetList(c *gin.Context) (interface{}, int)
//初审未完成数量
UndetermineCount() int

// 初审在start,end期间未完成审核的数量
UndetermineTimeRangeCount(start, end int64) int

//审核处理
Determine(c *gin.Context) error

//抽样
Sampling(reqParams *SamplingParams, taskId int64) (int, int)
//抽样列表
SampleList(c *gin.Context, taskId int64) (interface{}, int, int)
//复审
Review(c *gin.Context) error
//复审未完成数量
UnreviewCount(taskId int64) (int, int)
//复审抽样统计
ReviewStatistics(taskId int64) ([]Statistics, []string)
// DeleteReview 删除复审任务
// - 对于未复审的(review_state=1):重置 review_state 和 review_task_id
// - 对于已复审的(review_state=2):额外重置 ReviewDetermine中修改的字段
DeleteReview(taskId int64)

//发布审核内容
UnpublishCount(c *gin.Context) int
Publish(c *gin.Context) error

RefuseReason(c *gin.Context) (map[int]string, error)
TicketDetail(ticketDetail TicketDetailParam) (interface{}, error) // 某一条工单的详情
StatReviewAuditRet(param audit.StatisticsResultReq) map[string]*audit.StatisticsList // 复审结果统计数据
StatReviewAuditRetDetail(param *audit.StatisticsDetailListReq) ([]*audit.ListData, int, error) // 复审结果详情列表
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
func determineList(c *gin.Context) {
var reqParams struct {
FuncId int `form:"func_id" binding:"required"`
}

if err := c.ShouldBind(&reqParams); err != nil {
c.JSON(http.StatusOK, serialize.Response(def.CodeParamError, "参数不正确", err.Error()))
return
}

s, ok := SMgr.Load(reqParams.FuncId)
if !ok {
c.JSON(http.StatusOK, serialize.Response(def.CodeError, "审核类型错误,请重试", nil))
return
}

err := s.(service.Service).Determine(c)

if err != nil {
c.JSON(http.StatusOK, serialize.Response(def.CodeError, err.Error(), nil))
return
}
c.JSON(http.StatusOK, serialize.Response(def.CodeSuccess, "ok", nil))

}