Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

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)
}