@@ -0,0 +1,288 @@
|
||||
package newactivityctrl
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/constant"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/l/operatorlgmod"
|
||||
"91porn-server/models/v/newactivity"
|
||||
"91porn-server/models/v/usermod"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/tealeg/xlsx"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
)
|
||||
|
||||
// @Tags 特制H5活动
|
||||
// @Summary 导入所有嫩模
|
||||
// @Description 导入所有嫩模
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags web-H5嫩模活动
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param file formData file false "选择的文件"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/web/admin/newactivity/importModels [post]
|
||||
func ImportModels(ctx *gin.Context) {
|
||||
token := ctx.PostForm("token")
|
||||
if token != "q7ydjHVIVBYiTqQ&" {
|
||||
common.ServeJSON(ctx, stderr.ErrNoToken, nil)
|
||||
return
|
||||
}
|
||||
form, err := ctx.MultipartForm()
|
||||
if err != nil {
|
||||
log.Warn("request multipart wrong ", log.E(err))
|
||||
common.ServeJSON(ctx, stderr.ErrUploadError, err.Error())
|
||||
return
|
||||
}
|
||||
fs := form.File["file"]
|
||||
if len(fs) == 0 {
|
||||
common.ServeJSON(ctx, stderr.ErrUploadError, err.Error())
|
||||
return
|
||||
}
|
||||
file, err := fs[0].Open()
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrUploadError, err.Error())
|
||||
return
|
||||
}
|
||||
buffer := bytes.Buffer{}
|
||||
buffer.Reset()
|
||||
_, err = buffer.ReadFrom(file)
|
||||
file.Close()
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrUploadError, err.Error())
|
||||
return
|
||||
}
|
||||
excelFile, err := xlsx.OpenBinary(buffer.Bytes())
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrUploadError, err.Error())
|
||||
return
|
||||
}
|
||||
id := uint32(130)
|
||||
insertSqls := make([]mongo.WriteModel, 0, 50)
|
||||
stockInsertSqls := make([]mongo.WriteModel, 0, 500)
|
||||
for _, row := range excelFile.Sheets[0].Rows[1:51] {
|
||||
excelModel := &struct {
|
||||
Name string `xlsx:"4"` //姓名
|
||||
Location string `xlsx:"5"` //地区
|
||||
BgImg string `xlsx:"6"` //图片
|
||||
Video string `xlsx:"7"` //视频
|
||||
}{}
|
||||
if err = row.ReadStruct(excelModel); err != nil {
|
||||
continue
|
||||
}
|
||||
model := newactivity.Model{
|
||||
Id: id,
|
||||
Name: strings.TrimSpace(excelModel.Name),
|
||||
BgImg: strings.Split(excelModel.BgImg, ","),
|
||||
Location: strings.TrimSpace(excelModel.Location),
|
||||
Video: excelModel.Video,
|
||||
}
|
||||
insert := mongo.NewInsertOneModel()
|
||||
insert.SetDocument(&model)
|
||||
insertSqls = append(insertSqls, insert)
|
||||
date := time.Date(2020, 6, 20, 0, 0, 0, 0, time.Local)
|
||||
for i := 0; i < 11; i++ {
|
||||
stockModel := newactivity.GiftStock{
|
||||
ModelId: id,
|
||||
Date: date.Add(time.Duration(i) * 24 * time.Hour),
|
||||
GiftLeft: 300,
|
||||
SoldOut: false,
|
||||
}
|
||||
stockInsert := mongo.NewInsertOneModel()
|
||||
stockInsert.SetDocument(&stockModel)
|
||||
stockInsertSqls = append(stockInsertSqls, stockInsert)
|
||||
}
|
||||
id++
|
||||
}
|
||||
if err = newactivity.BulkStocks(stockInsertSqls); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrUploadError, err.Error())
|
||||
return
|
||||
}
|
||||
if err = newactivity.BulkAddModels(insertSqls); err != nil {
|
||||
common.ServeJSON(ctx, stderr.Failure, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(ctx, stderr.Success, nil)
|
||||
}
|
||||
|
||||
// @Tags 特制H5活动
|
||||
// @Summary 写入参数活动人数
|
||||
// @Description 写入参数活动人数
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags web-H5嫩模活动
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param num formData integer false "人数"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/web/admin/newactivity/updateJoinNum [post]
|
||||
func UpdateJoinNum(ctx *gin.Context) {
|
||||
manager, err := common.GetAdminAct(ctx)
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.AdminIDErr, err.Error())
|
||||
return
|
||||
}
|
||||
var req struct {
|
||||
Num int64 `json:"num"`
|
||||
}
|
||||
if err = ctx.ShouldBind(&req); err != nil {
|
||||
ctx.JSON(http.StatusBadRequest, gin.H{"data": err.Error(), "code": stderr.ErrParamError, "msg": stderr.ErrParamError.Msg()})
|
||||
return
|
||||
}
|
||||
if err = newactivity.UpdateJoinNum(req.Num); err != nil {
|
||||
common.ServeJSON(ctx, stderr.Failure, nil)
|
||||
return
|
||||
}
|
||||
log, _ := json.Marshal(req)
|
||||
_ = operatorlgmod.RecordOperation(manager, constant.NewsModel, constant.Modify, string(log), ctx.Request.URL.RequestURI())
|
||||
common.ServeJSON(ctx, stderr.Success, nil)
|
||||
}
|
||||
|
||||
// @Tags 特制H5活动
|
||||
// @Summary 获取参加活动人数
|
||||
// @Description 获取参加活动人数
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags web-H5嫩模活动
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/web/admin/newactivity/joinNum [get]
|
||||
func GetJoinNum(ctx *gin.Context) {
|
||||
num, err := newactivity.GetJoinNum()
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.Failure, nil)
|
||||
return
|
||||
}
|
||||
common.ServeJSON(ctx, stderr.Success, gin.H{"num": num})
|
||||
}
|
||||
|
||||
// @Tags 特制H5活动
|
||||
// @Summary 购买列表
|
||||
// @Description 购买列表
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags web-H5嫩模活动
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param page formData integer false "页码"
|
||||
// @Param pageSize formData integer false "条数"
|
||||
// @Param userId formData integer false "用户id"
|
||||
// @Param userName formData string false "用户昵称"
|
||||
// @Param modelId formData integer false "模特id"
|
||||
// @Param date formData string false "期号"
|
||||
// @Param start formData string false "开始时间"
|
||||
// @Param end formData string false "结束时间"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/web/admin/newactivity/buyPage [post]
|
||||
func BuyPage(ctx *gin.Context) {
|
||||
var req newactivity.BuyPageReq
|
||||
if err := ctx.ShouldBind(&req); err != nil {
|
||||
ctx.JSON(http.StatusBadRequest, gin.H{"data": err.Error(), "code": stderr.ErrParamError, "msg": stderr.ErrParamError.Msg()})
|
||||
return
|
||||
}
|
||||
rs, err := newactivity.BuyPage(req)
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.Failure, nil)
|
||||
return
|
||||
|
||||
}
|
||||
common.ServeJSON(ctx, stderr.Success, rs)
|
||||
}
|
||||
|
||||
// @Tags 特制H5活动
|
||||
// @Summary 添加获奖记录
|
||||
// @Description 添加获奖记录
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags web-H5嫩模活动
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param date formData string false "日期"
|
||||
// @Param userId formData uint32 false "用户id"
|
||||
// @Param userName formData string false "用户昵称"
|
||||
// @Param userLogo formData string false "用户头像"
|
||||
// @Param winNum formData uint32 false "中奖号码"
|
||||
// @Param modelId formData uint32 false "模特Id"
|
||||
// @Param createdAt formData string false "创建时间"
|
||||
// @Param updatedAt formData string false "更新时间"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/web/admin/newactivity/addWinRecord [post]
|
||||
func AddWinRecord(ctx *gin.Context) {
|
||||
manager, err := common.GetAdminAct(ctx)
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.AdminIDErr, err.Error())
|
||||
return
|
||||
}
|
||||
var req struct {
|
||||
Quantity uint32 `json:"quantity" bson:"quantity"` //购买份数
|
||||
newactivity.WinRecords
|
||||
}
|
||||
if err = ctx.ShouldBind(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
exists, err := newactivity.ExistsOrder(req.Quantity, req.WinRecords)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if !exists {
|
||||
common.ServeJSON(ctx, stderr.Failure, "中奖信息有误")
|
||||
return
|
||||
}
|
||||
userInfo, err := usermod.FindUserByUID(uint64(req.UserId))
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.Failure, err)
|
||||
return
|
||||
}
|
||||
req.UserName = userInfo.Name
|
||||
req.UserLogo = userInfo.Portrait
|
||||
req.WinNum = req.Quantity
|
||||
if err = newactivity.AddWinRecord(req.WinRecords); err != nil {
|
||||
common.ServeJSON(ctx, stderr.Failure, err)
|
||||
return
|
||||
}
|
||||
log, _ := json.Marshal(req)
|
||||
_ = operatorlgmod.RecordOperation(manager, constant.RewardList, constant.Add, string(log), ctx.Request.URL.RequestURI())
|
||||
common.ServeJSON(ctx, stderr.Success, nil)
|
||||
}
|
||||
|
||||
// @Tags 特制H5活动
|
||||
// @Summary 获奖记录列表
|
||||
// @Description 获奖记录列表
|
||||
// @Security ApiKeyAuth
|
||||
// @Tags web-H5嫩模活动
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param page formData int64 false "页码"
|
||||
// @Param pageSize formData int64 false "条数"
|
||||
// @Param userId formData uint32 false "用户id"
|
||||
// @Param userName formData string false "用户昵称"
|
||||
// @Param modelId formData uint32 false "模特id"
|
||||
// @Param date formData string false "期号"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /api/web/admin/newactivity/winRecordPage [post]
|
||||
func WinRecordPage(ctx *gin.Context) {
|
||||
var req newactivity.WinRcdPageReq
|
||||
if err := ctx.ShouldBind(&req); err != nil {
|
||||
common.ServeJSON(ctx, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
rs, err := newactivity.WinRecordPage(req)
|
||||
if err != nil {
|
||||
common.ServeJSON(ctx, stderr.Failure, nil)
|
||||
return
|
||||
|
||||
}
|
||||
common.ServeJSON(ctx, stderr.Success, rs)
|
||||
}
|
||||
Reference in New Issue
Block a user