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