78 lines
2.2 KiB
Go
78 lines
2.2 KiB
Go
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)
|
|
}
|