| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- package router
- import (
- "ARKItems/entity"
- "ARKItems/entity/ark"
- "ARKItems/util"
- "encoding/json"
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/spf13/cast"
- "net/http"
- )
- func ARKConfigRouter(api *gin.RouterGroup) {
- api.GET("/messages", GetMessages)
- api.GET("/timedPointsReward", GetTimedPointsReward)
- api.POST("/timedPointsReward/group", SaveGroup)
- api.PUT("/timedPointsReward/group", UpdateGroup)
- api.DELETE("/timedPointsReward/group", DeleteGroup)
- api.GET("/general", GetGeneral)
- api.PUT("/general", UpdateGeneral)
- api.GET("/kit", GetKits)
- api.POST("/kit", SaveKit)
- api.PUT("/kit", UpdateKit)
- api.DELETE("/kit", DeleteKit)
- api.GET("/shopItem", GetShopItem)
- api.POST("/shopItem", SaveShopItem)
- api.PUT("/shopItem", UpdateShopItem)
- api.DELETE("/shopItem", DeleteShopItem)
- api.GET("/sellItem", GetSellItem)
- api.POST("/sellItem", SaveSellItem)
- api.PUT("/sellItem", UpdateSellItem)
- api.DELETE("/sellItem", DeleteSellItem)
- }
- func GetMessages(c *gin.Context) {
- c.JSON(200, CreateResultData(ARKConfig.Messages))
- }
- func GetTimedPointsReward(c *gin.Context) {
- c.JSON(200, CreateResultData(ARKConfig.General.TimedPointsReward))
- }
- func GetGeneral(c *gin.Context) {
- marshal, err := json.Marshal(ARKConfig.General)
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- m := make(map[string]interface{})
- json.Unmarshal(marshal, &m)
- delete(m, "Groups")
- c.JSON(200, CreateResultData(m))
- }
- func UpdateGeneral(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- g, err := param("group")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- var General = ark.General{}
- err = util.DataToObject(g, &General)
- if ARKConfig.General.UseOriginalTradeCommandWithUI != General.UseOriginalTradeCommandWithUI {
- ARKConfig.General.UseOriginalTradeCommandWithUI = General.UseOriginalTradeCommandWithUI
- }
- if ARKConfig.General.CryoLimitedTime != General.CryoLimitedTime {
- ARKConfig.General.CryoLimitedTime = General.CryoLimitedTime
- }
- if ARKConfig.General.GiveDinosInCryopods != General.GiveDinosInCryopods {
- ARKConfig.General.GiveDinosInCryopods = General.GiveDinosInCryopods
- }
- if ARKConfig.General.UseSoulTraps != General.UseSoulTraps {
- ARKConfig.General.UseSoulTraps = General.UseSoulTraps
- }
- if ARKConfig.General.ItemsPerPage != General.ItemsPerPage {
- ARKConfig.General.ItemsPerPage = General.ItemsPerPage
- }
- if ARKConfig.General.ShopDisplayTime != General.ShopDisplayTime {
- ARKConfig.General.ShopDisplayTime = General.ShopDisplayTime
- }
- if ARKConfig.General.ShopTextSize != General.ShopTextSize {
- ARKConfig.General.ShopTextSize = General.ShopTextSize
- }
- if ARKConfig.General.DefaultKit != General.DefaultKit {
- ARKConfig.General.DefaultKit = General.DefaultKit
- }
- if ARKConfig.General.ShopDisplayTime != General.ShopDisplayTime {
- ARKConfig.General.ShopDisplayTime = General.ShopDisplayTime
- }
- if ARKConfig.General.DbPathOverride != General.DbPathOverride {
- ARKConfig.General.DbPathOverride = General.DbPathOverride
- }
- c.JSON(200, CreateResult())
- }
- //-----------------组修改----------------------
- // SaveGroup 添加VIP
- func SaveGroup(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- g, err := param("group")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- var Group = entity.Group{}
- err = util.DataToObject(g, &Group)
- fmt.Println(g, Group)
- ARKConfig.General.TimedPointsReward.Groups[Group.Name] = ark.Group{Amount: Group.Amount}
- c.JSON(200, CreateResult())
- }
- // UpdateGroup 修改VIP
- func UpdateGroup(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- g, err := param("group")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- var Group = entity.Group{}
- err = util.DataToObject(g, &Group)
- if Group.Name == "" {
- c.JSON(200, CreateResultError(400, "VIP名称不能为空"))
- return
- }
- _, ok := ARKConfig.General.TimedPointsReward.Groups[Group.Name]
- if ok {
- ARKConfig.General.TimedPointsReward.Groups[Group.Name] = ark.Group{Amount: Group.Amount}
- c.JSON(200, CreateResult())
- return
- }
- c.JSON(200, CreateResultError(400, "VIP组名不存在"))
- }
- // DeleteGroup 修改VIP
- func DeleteGroup(c *gin.Context) {
- name := c.Query("groupName")
- if cast.ToString(name) == "" {
- c.JSON(200, CreateResultError(400, "VIP名称不能为空"))
- return
- }
- _, ok := ARKConfig.General.TimedPointsReward.Groups[cast.ToString(name)]
- if ok {
- //删除一个元素
- delete(ARKConfig.General.TimedPointsReward.Groups, cast.ToString(name))
- c.JSON(200, CreateResult())
- return
- }
- c.JSON(200, CreateResultError(400, "VIP组名不存在"))
- }
- //==================礼包==========================
- func GetKits(c *gin.Context) {
- c.JSON(200, CreateResultData(ARKConfig.Kits))
- }
- func SaveKit(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- obj, err := param("kit")
- Name, err := param("kitName")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- var Kit = ark.Kit{}
- err = util.DataToObject(obj, &Kit)
- if Kit.Description == "" || Kit.Price == 0 || Kit.DefaultAmount == 0 {
- c.JSON(200, CreateResultError(400, "礼包描述不能为空,价格,数量不能为0"))
- return
- }
- ARKConfig.Kits[cast.ToString(Name)] = Kit
- }
- func UpdateKit(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- obj, err := param("kit")
- Name, err := param("kitName")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- var Kit = ark.Kit{}
- err = util.DataToObject(obj, &Kit)
- if Name == "" {
- c.JSON(200, CreateResultError(400, "礼包名不能为空"))
- }
- _, ok := ARKConfig.Kits[cast.ToString(Name)]
- if ok {
- if Kit.Price == 0 || Kit.DefaultAmount == 0 {
- c.JSON(200, CreateResultError(400, "价格,数量不能为0"))
- return
- }
- ARKConfig.Kits[cast.ToString(Name)] = Kit
- c.JSON(200, CreateResult())
- return
- }
- c.JSON(200, CreateResultError(400, "礼包不存在"))
- }
- func DeleteKit(c *gin.Context) {
- name := c.Query("kitName")
- if cast.ToString(name) == "" {
- c.JSON(200, CreateResultError(400, "礼包名称不能为空"))
- return
- }
- _, ok := ARKConfig.Kits[cast.ToString(name)]
- if ok {
- //删除一个元素
- delete(ARKConfig.Kits, cast.ToString(name))
- c.JSON(200, CreateResult())
- return
- }
- c.JSON(200, CreateResultError(400, "礼包不存在"))
- }
- //====================商店==========================
- func GetShopItem(c *gin.Context) {
- value := c.Query("type")
- if value == "" {
- c.JSON(200, CreateResultData(ARKConfig.ShopItems))
- return
- }
- switch cast.ToString(value) {
- case "item":
- c.JSON(200, CreateResultData(ARKShopItems))
- break
- case "dino":
- c.JSON(200, CreateResultData(ARKShopDines))
- break
- case "beacon":
- c.JSON(200, CreateResultData(ARKShopBeacons))
- break
- case "experience":
- c.JSON(200, CreateResultData(ARKShopExperiences))
- break
- case "unlockengram":
- c.JSON(200, CreateResultData(ARKShopUnlockengram))
- break
- case "command":
- c.JSON(200, CreateResultData(ARKShopCommands))
- break
- default:
- c.JSON(200, CreateResultError(400, "商店类型错误"))
- }
- }
- func SaveShopItem(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- obj, err := param("shopItem")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- shopType, err := param("shopType")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- Name, err := param("shopItemName")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- toMap := util.DataToMap(obj)
- if cast.ToString(Name) == "" || toMap["Price"] == 0 || toMap["Type"] == "" {
- c.JSON(200, CreateResultError(400, "商店描述,价格,类型不能为空,为0"))
- return
- }
- _, ok := ARKConfig.ShopItems[cast.ToString(Name)]
- if ok {
- c.JSON(200, CreateResultError(400, "商品名已存在"))
- return
- }
- switch cast.ToString(shopType) {
- case "item":
- var item = ark.ShopItem{}
- err = util.DataToObject(obj, &item)
- ARKConfig.ShopItems[cast.ToString(Name)] = item
- ARKShopItems[cast.ToString(Name)] = item
- break
- case "dino":
- var dino = ark.ShopDino{}
- err = util.DataToObject(obj, &dino)
- ARKConfig.ShopItems[cast.ToString(Name)] = dino
- ARKShopDines[cast.ToString(Name)] = dino
- break
- case "baecon":
- var beacon = ark.ShopBeacon{}
- err = util.DataToObject(obj, &beacon)
- ARKConfig.ShopItems[cast.ToString(Name)] = beacon
- ARKShopBeacons[cast.ToString(Name)] = beacon
- break
- case "experience":
- var experience = ark.ShopExperience{}
- err = util.DataToObject(obj, &experience)
- ARKConfig.ShopItems[cast.ToString(Name)] = experience
- ARKShopExperiences[cast.ToString(Name)] = experience
- break
- case "unlockengram":
- var unlockengram = ark.ShopCommand{}
- err = util.DataToObject(obj, &unlockengram)
- ARKConfig.ShopItems[cast.ToString(Name)] = unlockengram
- ARKShopCommands[cast.ToString(Name)] = unlockengram
- break
- case "command":
- var command = ark.ShopCommand{}
- err = util.DataToObject(obj, &command)
- ARKConfig.ShopItems[cast.ToString(Name)] = command
- ARKShopCommands[cast.ToString(Name)] = command
- break
- default:
- c.JSON(200, CreateResultError(400, "商店类型错误"))
- return
- }
- c.JSON(200, CreateResult())
- }
- func UpdateShopItem(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- obj, err := param("shopItem")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- shopType, err := param("shopType")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- Name, err := param("shopItemName")
- if err != nil {
- c.JSON(200, CreateResultError(400, "参数错误"))
- return
- }
- if cast.ToString(Name) == "" {
- c.JSON(200, CreateResultError(400, "商店名不能为空"))
- return
- }
- toMap := util.DataToMap(obj)
- if cast.ToString(Name) == "" || toMap["Price"] == 0 || toMap["Type"] == "" {
- c.JSON(200, CreateResultError(400, "商店描述,价格,类型不能为空,为0"))
- return
- }
- _, ok := ARKConfig.ShopItems[cast.ToString(Name)]
- if !ok {
- c.JSON(200, CreateResultError(400, "商品名不存在"))
- return
- }
- if toMap["Price"] == 0 || toMap["Type"] == "" {
- c.JSON(200, CreateResultError(400, "价格,类型不能为空,为0"))
- return
- }
- switch cast.ToString(shopType) {
- case "item":
- var item = ark.ShopItem{}
- err = util.DataToObject(obj, &item)
- ARKConfig.ShopItems[cast.ToString(Name)] = item
- ARKShopItems[cast.ToString(Name)] = item
- break
- case "dino":
- var dino = ark.ShopDino{}
- err = util.DataToObject(obj, &dino)
- ARKConfig.ShopItems[cast.ToString(Name)] = dino
- ARKShopDines[cast.ToString(Name)] = dino
- break
- case "baecon":
- var beacon = ark.ShopBeacon{}
- err = util.DataToObject(obj, &beacon)
- ARKConfig.ShopItems[cast.ToString(Name)] = beacon
- ARKShopBeacons[cast.ToString(Name)] = beacon
- break
- case "experience":
- var experience = ark.ShopExperience{}
- err = util.DataToObject(obj, &experience)
- ARKConfig.ShopItems[cast.ToString(Name)] = experience
- ARKShopExperiences[cast.ToString(Name)] = experience
- break
- case "unlockengram":
- var unlockengram = ark.ShopCommand{}
- err = util.DataToObject(obj, &unlockengram)
- ARKConfig.ShopItems[cast.ToString(Name)] = unlockengram
- ARKShopCommands[cast.ToString(Name)] = unlockengram
- break
- case "command":
- var command = ark.ShopCommand{}
- err = util.DataToObject(obj, &command)
- ARKConfig.ShopItems[cast.ToString(Name)] = command
- ARKShopCommands[cast.ToString(Name)] = command
- break
- default:
- c.JSON(200, CreateResultError(400, "商店类型错误"))
- return
- }
- c.JSON(200, CreateResult())
- }
- func DeleteShopItem(c *gin.Context) {
- name := c.Query("shopItemName")
- if cast.ToString(name) == "" {
- c.JSON(200, CreateResultError(400, "商店名不能为空"))
- return
- }
- _, ok := ARKConfig.ShopItems[cast.ToString(name)]
- if ok {
- //删除一个元素
- delete(ARKConfig.ShopItems, cast.ToString(name))
- delete(ARKShopItems, cast.ToString(name))
- delete(ARKShopDines, cast.ToString(name))
- delete(ARKShopBeacons, cast.ToString(name))
- delete(ARKShopExperiences, cast.ToString(name))
- delete(ARKShopUnlockengram, cast.ToString(name))
- delete(ARKShopCommands, cast.ToString(name))
- c.JSON(200, CreateResult())
- return
- }
- c.JSON(200, CreateResultError(400, "商店名不存在"))
- }
- //========================回收==========================
- func GetSellItem(c *gin.Context) {
- c.JSON(http.StatusOK, CreateResultData(ARKConfig.SellItems))
- }
- func SaveSellItem(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- obj, err := param("sellItem")
- Name, err := param("sellItemName")
- if err != nil {
- c.JSON(http.StatusBadRequest, CreateResultError(400, "参数错误"))
- return
- }
- var sellItem ark.SellItem
- err = util.DataToObject(obj, &sellItem)
- if cast.ToString(Name) == "" || sellItem.Price == 0 || sellItem.Type == "" {
- c.JSON(http.StatusBadRequest, CreateResultError(400, "描述、价格、类型不能为空或为0"))
- return
- }
- _, ok := ARKConfig.SellItems[cast.ToString(Name)]
- if ok {
- c.JSON(http.StatusBadRequest, CreateResultError(400, "商品名已存在"))
- return
- }
- ARKConfig.SellItems[cast.ToString(Name)] = sellItem
- c.JSON(http.StatusOK, CreateResult())
- }
- func UpdateSellItem(c *gin.Context) {
- param := util.GetJsonAnyParam(c)
- obj, err := param("sellItem")
- Name, err := param("sellItemName")
- if err != nil {
- c.JSON(http.StatusBadRequest, CreateResultError(400, "参数错误"))
- return
- }
- var sellItem ark.SellItem
- err = util.DataToObject(obj, &sellItem)
- if cast.ToString(Name) == "" {
- c.JSON(http.StatusBadRequest, CreateResultError(400, "商品描述不能为空"))
- return
- }
- _, ok := ARKConfig.SellItems[cast.ToString(Name)]
- if ok {
- if sellItem.Price == 0 || sellItem.Type == "" {
- c.JSON(http.StatusBadRequest, CreateResultError(400, "价格、类型不能为空或为0"))
- return
- }
- ARKConfig.SellItems[cast.ToString(Name)] = sellItem
- c.JSON(http.StatusOK, CreateResult())
- return
- }
- c.JSON(http.StatusBadRequest, CreateResultError(400, "商品名不存在"))
- }
- func DeleteSellItem(c *gin.Context) {
- name := c.Query("sellItemName")
- if cast.ToString(name) == "" {
- c.JSON(http.StatusBadRequest, CreateResultError(400, "商品描述不能为空"))
- return
- }
- _, ok := ARKConfig.SellItems[cast.ToString(name)]
- if ok {
- // 删除一个元素
- delete(ARKConfig.SellItems, cast.ToString(name))
- c.JSON(http.StatusOK, CreateResult())
- return
- }
- c.JSON(http.StatusBadRequest, CreateResultError(400, "商品名不存在"))
- }
|