package vipcardexperimentctrl import ( "encoding/json" "strings" "time" "91porn-server/common" "91porn-server/common/stderr" "91porn-server/models/l/operatorlgmod" "91porn-server/models/v/vipcardexperimentmod" "91porn-server/web/service/vipcardexperimentser" "github.com/gin-gonic/gin" ) func Current(ctx *gin.Context) { experiment, err := vipcardexperimentser.Current(time.Now()) if err != nil { common.ServeJSON(ctx, stderr.ErrDbQueryError, err.Error()) return } if experiment == nil { common.ServeJSON(ctx, stderr.Success, gin.H{}) return } common.ServeJSON(ctx, stderr.Success, experiment) } func Publish(ctx *gin.Context) { manager, err := common.GetAdminAct(ctx) if err != nil { common.ServeJSON(ctx, stderr.AdminIDErr, err.Error()) return } experiment := vipcardexperimentmod.Experiment{} if err = ctx.ShouldBindJSON(&experiment); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } if err = vipcardexperimentser.Publish(&experiment, manager); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } body, _ := json.Marshal(experiment) _ = operatorlgmod.RecordOperation(manager, "VIP卡片A/B实验", "发布", string(body), ctx.Request.URL.RequestURI()) common.ServeJSON(ctx, stderr.Success, experiment) } func Disable(ctx *gin.Context) { manager, err := common.GetAdminAct(ctx) if err != nil { common.ServeJSON(ctx, stderr.AdminIDErr, err.Error()) return } request := vipcardexperimentser.DisableRequest{} if err = ctx.ShouldBindJSON(&request); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } if err = vipcardexperimentser.Disable(request.ExperimentID, manager); err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } _ = operatorlgmod.RecordOperation(manager, "VIP卡片A/B实验", "停用", request.ExperimentID, ctx.Request.URL.RequestURI()) common.ServeJSON(ctx, stderr.Success, "") } func Statistics(ctx *gin.Context) { experimentID := strings.TrimSpace(ctx.Query("experimentId")) response, err := vipcardexperimentser.Statistics(experimentID) if err != nil { common.ServeJSON(ctx, stderr.ErrParamError, err.Error()) return } common.ServeJSON(ctx, stderr.Success, response) }