SysAds.go 4.3 KB
package Api

import (
	"encoding/json"
	"github.com/aarongao/tools"
	"github.com/asaskevich/govalidator"
	"github.com/gin-gonic/gin"
	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/bson/primitive"
	"letu/DB"
	"letu/Lib/Auth"
	"strconv"
)

// @Title 查询系统广告
// @Description 查询系统广告-单条
// @Accept  json
// @Produce  json
// @Param   id     5dfb03070a9ac17ac7a82054    string     true        "id"
// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":{"Id":"5e858c09b1d67b2d117e2e58","Site":"景区选择页","Size":{"Width":100,"Height":100},"Type":"轮播","Picture":[{"Src":"/Upload/1585820891339307000.png","Link":"222"}],"Video":[]}}"
// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
// @Router /SysAds/Info? [get]
func SysAdsInfo(c *gin.Context) {
	c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
	c.Header("Access-Control-Allow-Credentials", "true")

	var aSysAds *DB.SSysAds
	objId, _ := primitive.ObjectIDFromHex(c.Query("id"))
	DB.CSysAds.FindOne(tools.GetContext(), bson.M{"_id": objId}).Decode(&aSysAds)

	c.JSON(200, tools.ResponseSeccess{
		0,
		aSysAds,
	})
}

// @Title 查询系统广告
// @Description 查询系统广告-列表
// @Accept  json
// @Produce  json
// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":[{"Id":"5e858c09b1d67b2d117e2e58","Site":"景区选择页","Size":{"Width":100,"Height":100},"Type":"轮播","Picture":[{"Src":"/Upload/1585820891339307000.png","Link":"222"}],"Video":[]}]}"
// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
// @Router /SysAds/List? [get]
func SysAdsList(c *gin.Context) {
	c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
	c.Header("Access-Control-Allow-Credentials", "true")

	var aSysAds []*DB.SSysAds

	cur, err := DB.CSysAds.Find(tools.GetContext(), bson.M{}) //
	defer cur.Close(tools.GetContext())
	if err == nil {
		for cur.Next(tools.GetContext()) {
			var e *DB.SSysAds
			cur.Decode(&e)
			aSysAds = append(aSysAds, e)
		}
	}

	if aSysAds == nil {
		aSysAds = []*DB.SSysAds{}
	}
	c.JSON(200, tools.ResponseSeccess{
		0,
		aSysAds,
	})
}


// @Title 修改平台广告
// @Description 修改平台广告
// @Accept  json
// @Produce  json
// @Param   id     5dfb03070a9ac17ac7a82054    string     true        "平台广告id"
// @Param   Site     Height    string     true        "位置"
// @Param   Height     100    string     true        "尺寸"
// @Param   Width     100    string     true        "尺寸"
// @Param   Type     单视频    string     true        "类型(轮播|单图|单视频)"
// @Param   Picture     [{"Src":"/Upload/1585820891339307000.png","Link":"222"}]    string     true        "图片"
// @Param   Video     [{"Src":"../plugins/images/defaultpic.png","Link":"22","Title":"22","VideoPicture":"/Upload/1585821569540095000.png"}]    string     true        "视频"
// @Param   Token     wgergejfwe    string     true        "用户token"
// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":"ok"}"
// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
// @Router /SysAds/Modify? [post]
func ModifySysAds(c *gin.Context) {
	c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
	c.Header("Access-Control-Allow-Credentials", "true")

	_user, _ := c.Get("UserInfo")
	user := _user.(*DB.SMember)

	err := Auth.CheckScenicAuth(c.PostForm("ScenicId"), user)
	if err != nil {
		c.JSON(200, tools.ResponseError{
			401,
			"没有权限",
		})
		return
	}

	objectID, _ := primitive.ObjectIDFromHex(c.PostForm("id"))

	width, _ := strconv.ParseInt(c.PostForm("Width"), 0, 64)
	height, _ := strconv.ParseInt(c.PostForm("Height"), 0, 64)

	var aPictures []DB.SPicture
	json.Unmarshal([]byte(c.PostForm("Picture")), &aPictures)

	var aVideo []DB.SVideo
	json.Unmarshal([]byte(c.PostForm("Video")), &aVideo)

	SysAds := &DB.SSysAds{
		&objectID,
		c.PostForm("Site"),
		DB.SSize{width, height},
		c.PostForm("Type"),
		aPictures,
		aVideo,
	}
	_, err = govalidator.ValidateStruct(SysAds);
	if err != nil {
		c.JSON(200, tools.ResponseError{
			1,
			err.Error(),
		})
		return
	}

	_, err = DB.CSysAds.UpdateOne(tools.GetContext(),
		bson.M{"_id": objectID},
		bson.M{"$set": SysAds},
	)

	c.JSON(200, tools.ResponseSeccess{
		0,
		"ok",
	})

}