ARKConfigRouter.go 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. package router
  2. import (
  3. "ARKItems/entity"
  4. "ARKItems/entity/ark"
  5. "ARKItems/util"
  6. "encoding/json"
  7. "fmt"
  8. "github.com/gin-gonic/gin"
  9. "github.com/spf13/cast"
  10. "net/http"
  11. )
  12. func ARKConfigRouter(api *gin.RouterGroup) {
  13. api.GET("/messages", GetMessages)
  14. api.GET("/timedPointsReward", GetTimedPointsReward)
  15. api.POST("/timedPointsReward/group", SaveGroup)
  16. api.PUT("/timedPointsReward/group", UpdateGroup)
  17. api.DELETE("/timedPointsReward/group", DeleteGroup)
  18. api.GET("/general", GetGeneral)
  19. api.PUT("/general", UpdateGeneral)
  20. api.GET("/kit", GetKits)
  21. api.POST("/kit", SaveKit)
  22. api.PUT("/kit", UpdateKit)
  23. api.DELETE("/kit", DeleteKit)
  24. api.GET("/shopItem", GetShopItem)
  25. api.POST("/shopItem", SaveShopItem)
  26. api.PUT("/shopItem", UpdateShopItem)
  27. api.DELETE("/shopItem", DeleteShopItem)
  28. api.GET("/sellItem", GetSellItem)
  29. api.POST("/sellItem", SaveSellItem)
  30. api.PUT("/sellItem", UpdateSellItem)
  31. api.DELETE("/sellItem", DeleteSellItem)
  32. }
  33. func GetMessages(c *gin.Context) {
  34. c.JSON(200, CreateResultData(ARKConfig.Messages))
  35. }
  36. func GetTimedPointsReward(c *gin.Context) {
  37. c.JSON(200, CreateResultData(ARKConfig.General.TimedPointsReward))
  38. }
  39. func GetGeneral(c *gin.Context) {
  40. marshal, err := json.Marshal(ARKConfig.General)
  41. if err != nil {
  42. c.JSON(200, CreateResultError(400, "参数错误"))
  43. return
  44. }
  45. m := make(map[string]interface{})
  46. json.Unmarshal(marshal, &m)
  47. delete(m, "Groups")
  48. c.JSON(200, CreateResultData(m))
  49. }
  50. func UpdateGeneral(c *gin.Context) {
  51. param := util.GetJsonAnyParam(c)
  52. g, err := param("group")
  53. if err != nil {
  54. c.JSON(200, CreateResultError(400, "参数错误"))
  55. return
  56. }
  57. var General = ark.General{}
  58. err = util.DataToObject(g, &General)
  59. if ARKConfig.General.UseOriginalTradeCommandWithUI != General.UseOriginalTradeCommandWithUI {
  60. ARKConfig.General.UseOriginalTradeCommandWithUI = General.UseOriginalTradeCommandWithUI
  61. }
  62. if ARKConfig.General.CryoLimitedTime != General.CryoLimitedTime {
  63. ARKConfig.General.CryoLimitedTime = General.CryoLimitedTime
  64. }
  65. if ARKConfig.General.GiveDinosInCryopods != General.GiveDinosInCryopods {
  66. ARKConfig.General.GiveDinosInCryopods = General.GiveDinosInCryopods
  67. }
  68. if ARKConfig.General.UseSoulTraps != General.UseSoulTraps {
  69. ARKConfig.General.UseSoulTraps = General.UseSoulTraps
  70. }
  71. if ARKConfig.General.ItemsPerPage != General.ItemsPerPage {
  72. ARKConfig.General.ItemsPerPage = General.ItemsPerPage
  73. }
  74. if ARKConfig.General.ShopDisplayTime != General.ShopDisplayTime {
  75. ARKConfig.General.ShopDisplayTime = General.ShopDisplayTime
  76. }
  77. if ARKConfig.General.ShopTextSize != General.ShopTextSize {
  78. ARKConfig.General.ShopTextSize = General.ShopTextSize
  79. }
  80. if ARKConfig.General.DefaultKit != General.DefaultKit {
  81. ARKConfig.General.DefaultKit = General.DefaultKit
  82. }
  83. if ARKConfig.General.ShopDisplayTime != General.ShopDisplayTime {
  84. ARKConfig.General.ShopDisplayTime = General.ShopDisplayTime
  85. }
  86. if ARKConfig.General.DbPathOverride != General.DbPathOverride {
  87. ARKConfig.General.DbPathOverride = General.DbPathOverride
  88. }
  89. c.JSON(200, CreateResult())
  90. }
  91. //-----------------组修改----------------------
  92. // SaveGroup 添加VIP
  93. func SaveGroup(c *gin.Context) {
  94. param := util.GetJsonAnyParam(c)
  95. g, err := param("group")
  96. if err != nil {
  97. c.JSON(200, CreateResultError(400, "参数错误"))
  98. return
  99. }
  100. var Group = entity.Group{}
  101. err = util.DataToObject(g, &Group)
  102. fmt.Println(g, Group)
  103. ARKConfig.General.TimedPointsReward.Groups[Group.Name] = ark.Group{Amount: Group.Amount}
  104. c.JSON(200, CreateResult())
  105. }
  106. // UpdateGroup 修改VIP
  107. func UpdateGroup(c *gin.Context) {
  108. param := util.GetJsonAnyParam(c)
  109. g, err := param("group")
  110. if err != nil {
  111. c.JSON(200, CreateResultError(400, "参数错误"))
  112. return
  113. }
  114. var Group = entity.Group{}
  115. err = util.DataToObject(g, &Group)
  116. if Group.Name == "" {
  117. c.JSON(200, CreateResultError(400, "VIP名称不能为空"))
  118. return
  119. }
  120. _, ok := ARKConfig.General.TimedPointsReward.Groups[Group.Name]
  121. if ok {
  122. ARKConfig.General.TimedPointsReward.Groups[Group.Name] = ark.Group{Amount: Group.Amount}
  123. c.JSON(200, CreateResult())
  124. return
  125. }
  126. c.JSON(200, CreateResultError(400, "VIP组名不存在"))
  127. }
  128. // DeleteGroup 修改VIP
  129. func DeleteGroup(c *gin.Context) {
  130. name := c.Query("groupName")
  131. if cast.ToString(name) == "" {
  132. c.JSON(200, CreateResultError(400, "VIP名称不能为空"))
  133. return
  134. }
  135. _, ok := ARKConfig.General.TimedPointsReward.Groups[cast.ToString(name)]
  136. if ok {
  137. //删除一个元素
  138. delete(ARKConfig.General.TimedPointsReward.Groups, cast.ToString(name))
  139. c.JSON(200, CreateResult())
  140. return
  141. }
  142. c.JSON(200, CreateResultError(400, "VIP组名不存在"))
  143. }
  144. //==================礼包==========================
  145. func GetKits(c *gin.Context) {
  146. c.JSON(200, CreateResultData(ARKConfig.Kits))
  147. }
  148. func SaveKit(c *gin.Context) {
  149. param := util.GetJsonAnyParam(c)
  150. obj, err := param("kit")
  151. Name, err := param("kitName")
  152. if err != nil {
  153. c.JSON(200, CreateResultError(400, "参数错误"))
  154. return
  155. }
  156. var Kit = ark.Kit{}
  157. err = util.DataToObject(obj, &Kit)
  158. if Kit.Description == "" || Kit.Price == 0 || Kit.DefaultAmount == 0 {
  159. c.JSON(200, CreateResultError(400, "礼包描述不能为空,价格,数量不能为0"))
  160. return
  161. }
  162. ARKConfig.Kits[cast.ToString(Name)] = Kit
  163. }
  164. func UpdateKit(c *gin.Context) {
  165. param := util.GetJsonAnyParam(c)
  166. obj, err := param("kit")
  167. Name, err := param("kitName")
  168. if err != nil {
  169. c.JSON(200, CreateResultError(400, "参数错误"))
  170. return
  171. }
  172. var Kit = ark.Kit{}
  173. err = util.DataToObject(obj, &Kit)
  174. if Name == "" {
  175. c.JSON(200, CreateResultError(400, "礼包名不能为空"))
  176. }
  177. _, ok := ARKConfig.Kits[cast.ToString(Name)]
  178. if ok {
  179. if Kit.Price == 0 || Kit.DefaultAmount == 0 {
  180. c.JSON(200, CreateResultError(400, "价格,数量不能为0"))
  181. return
  182. }
  183. ARKConfig.Kits[cast.ToString(Name)] = Kit
  184. c.JSON(200, CreateResult())
  185. return
  186. }
  187. c.JSON(200, CreateResultError(400, "礼包不存在"))
  188. }
  189. func DeleteKit(c *gin.Context) {
  190. name := c.Query("kitName")
  191. if cast.ToString(name) == "" {
  192. c.JSON(200, CreateResultError(400, "礼包名称不能为空"))
  193. return
  194. }
  195. _, ok := ARKConfig.Kits[cast.ToString(name)]
  196. if ok {
  197. //删除一个元素
  198. delete(ARKConfig.Kits, cast.ToString(name))
  199. c.JSON(200, CreateResult())
  200. return
  201. }
  202. c.JSON(200, CreateResultError(400, "礼包不存在"))
  203. }
  204. //====================商店==========================
  205. func GetShopItem(c *gin.Context) {
  206. value := c.Query("type")
  207. if value == "" {
  208. c.JSON(200, CreateResultData(ARKConfig.ShopItems))
  209. return
  210. }
  211. switch cast.ToString(value) {
  212. case "item":
  213. c.JSON(200, CreateResultData(ARKShopItems))
  214. break
  215. case "dino":
  216. c.JSON(200, CreateResultData(ARKShopDines))
  217. break
  218. case "beacon":
  219. c.JSON(200, CreateResultData(ARKShopBeacons))
  220. break
  221. case "experience":
  222. c.JSON(200, CreateResultData(ARKShopExperiences))
  223. break
  224. case "unlockengram":
  225. c.JSON(200, CreateResultData(ARKShopUnlockengram))
  226. break
  227. case "command":
  228. c.JSON(200, CreateResultData(ARKShopCommands))
  229. break
  230. default:
  231. c.JSON(200, CreateResultError(400, "商店类型错误"))
  232. }
  233. }
  234. func SaveShopItem(c *gin.Context) {
  235. param := util.GetJsonAnyParam(c)
  236. obj, err := param("shopItem")
  237. if err != nil {
  238. c.JSON(200, CreateResultError(400, "参数错误"))
  239. return
  240. }
  241. shopType, err := param("shopType")
  242. if err != nil {
  243. c.JSON(200, CreateResultError(400, "参数错误"))
  244. return
  245. }
  246. Name, err := param("shopItemName")
  247. if err != nil {
  248. c.JSON(200, CreateResultError(400, "参数错误"))
  249. return
  250. }
  251. toMap := util.DataToMap(obj)
  252. if cast.ToString(Name) == "" || toMap["Price"] == 0 || toMap["Type"] == "" {
  253. c.JSON(200, CreateResultError(400, "商店描述,价格,类型不能为空,为0"))
  254. return
  255. }
  256. _, ok := ARKConfig.ShopItems[cast.ToString(Name)]
  257. if ok {
  258. c.JSON(200, CreateResultError(400, "商品名已存在"))
  259. return
  260. }
  261. switch cast.ToString(shopType) {
  262. case "item":
  263. var item = ark.ShopItem{}
  264. err = util.DataToObject(obj, &item)
  265. ARKConfig.ShopItems[cast.ToString(Name)] = item
  266. ARKShopItems[cast.ToString(Name)] = item
  267. break
  268. case "dino":
  269. var dino = ark.ShopDino{}
  270. err = util.DataToObject(obj, &dino)
  271. ARKConfig.ShopItems[cast.ToString(Name)] = dino
  272. ARKShopDines[cast.ToString(Name)] = dino
  273. break
  274. case "baecon":
  275. var beacon = ark.ShopBeacon{}
  276. err = util.DataToObject(obj, &beacon)
  277. ARKConfig.ShopItems[cast.ToString(Name)] = beacon
  278. ARKShopBeacons[cast.ToString(Name)] = beacon
  279. break
  280. case "experience":
  281. var experience = ark.ShopExperience{}
  282. err = util.DataToObject(obj, &experience)
  283. ARKConfig.ShopItems[cast.ToString(Name)] = experience
  284. ARKShopExperiences[cast.ToString(Name)] = experience
  285. break
  286. case "unlockengram":
  287. var unlockengram = ark.ShopCommand{}
  288. err = util.DataToObject(obj, &unlockengram)
  289. ARKConfig.ShopItems[cast.ToString(Name)] = unlockengram
  290. ARKShopCommands[cast.ToString(Name)] = unlockengram
  291. break
  292. case "command":
  293. var command = ark.ShopCommand{}
  294. err = util.DataToObject(obj, &command)
  295. ARKConfig.ShopItems[cast.ToString(Name)] = command
  296. ARKShopCommands[cast.ToString(Name)] = command
  297. break
  298. default:
  299. c.JSON(200, CreateResultError(400, "商店类型错误"))
  300. return
  301. }
  302. c.JSON(200, CreateResult())
  303. }
  304. func UpdateShopItem(c *gin.Context) {
  305. param := util.GetJsonAnyParam(c)
  306. obj, err := param("shopItem")
  307. if err != nil {
  308. c.JSON(200, CreateResultError(400, "参数错误"))
  309. return
  310. }
  311. shopType, err := param("shopType")
  312. if err != nil {
  313. c.JSON(200, CreateResultError(400, "参数错误"))
  314. return
  315. }
  316. Name, err := param("shopItemName")
  317. if err != nil {
  318. c.JSON(200, CreateResultError(400, "参数错误"))
  319. return
  320. }
  321. if cast.ToString(Name) == "" {
  322. c.JSON(200, CreateResultError(400, "商店名不能为空"))
  323. return
  324. }
  325. toMap := util.DataToMap(obj)
  326. if cast.ToString(Name) == "" || toMap["Price"] == 0 || toMap["Type"] == "" {
  327. c.JSON(200, CreateResultError(400, "商店描述,价格,类型不能为空,为0"))
  328. return
  329. }
  330. _, ok := ARKConfig.ShopItems[cast.ToString(Name)]
  331. if !ok {
  332. c.JSON(200, CreateResultError(400, "商品名不存在"))
  333. return
  334. }
  335. if toMap["Price"] == 0 || toMap["Type"] == "" {
  336. c.JSON(200, CreateResultError(400, "价格,类型不能为空,为0"))
  337. return
  338. }
  339. switch cast.ToString(shopType) {
  340. case "item":
  341. var item = ark.ShopItem{}
  342. err = util.DataToObject(obj, &item)
  343. ARKConfig.ShopItems[cast.ToString(Name)] = item
  344. ARKShopItems[cast.ToString(Name)] = item
  345. break
  346. case "dino":
  347. var dino = ark.ShopDino{}
  348. err = util.DataToObject(obj, &dino)
  349. ARKConfig.ShopItems[cast.ToString(Name)] = dino
  350. ARKShopDines[cast.ToString(Name)] = dino
  351. break
  352. case "baecon":
  353. var beacon = ark.ShopBeacon{}
  354. err = util.DataToObject(obj, &beacon)
  355. ARKConfig.ShopItems[cast.ToString(Name)] = beacon
  356. ARKShopBeacons[cast.ToString(Name)] = beacon
  357. break
  358. case "experience":
  359. var experience = ark.ShopExperience{}
  360. err = util.DataToObject(obj, &experience)
  361. ARKConfig.ShopItems[cast.ToString(Name)] = experience
  362. ARKShopExperiences[cast.ToString(Name)] = experience
  363. break
  364. case "unlockengram":
  365. var unlockengram = ark.ShopCommand{}
  366. err = util.DataToObject(obj, &unlockengram)
  367. ARKConfig.ShopItems[cast.ToString(Name)] = unlockengram
  368. ARKShopCommands[cast.ToString(Name)] = unlockengram
  369. break
  370. case "command":
  371. var command = ark.ShopCommand{}
  372. err = util.DataToObject(obj, &command)
  373. ARKConfig.ShopItems[cast.ToString(Name)] = command
  374. ARKShopCommands[cast.ToString(Name)] = command
  375. break
  376. default:
  377. c.JSON(200, CreateResultError(400, "商店类型错误"))
  378. return
  379. }
  380. c.JSON(200, CreateResult())
  381. }
  382. func DeleteShopItem(c *gin.Context) {
  383. name := c.Query("shopItemName")
  384. if cast.ToString(name) == "" {
  385. c.JSON(200, CreateResultError(400, "商店名不能为空"))
  386. return
  387. }
  388. _, ok := ARKConfig.ShopItems[cast.ToString(name)]
  389. if ok {
  390. //删除一个元素
  391. delete(ARKConfig.ShopItems, cast.ToString(name))
  392. delete(ARKShopItems, cast.ToString(name))
  393. delete(ARKShopDines, cast.ToString(name))
  394. delete(ARKShopBeacons, cast.ToString(name))
  395. delete(ARKShopExperiences, cast.ToString(name))
  396. delete(ARKShopUnlockengram, cast.ToString(name))
  397. delete(ARKShopCommands, cast.ToString(name))
  398. c.JSON(200, CreateResult())
  399. return
  400. }
  401. c.JSON(200, CreateResultError(400, "商店名不存在"))
  402. }
  403. //========================回收==========================
  404. func GetSellItem(c *gin.Context) {
  405. c.JSON(http.StatusOK, CreateResultData(ARKConfig.SellItems))
  406. }
  407. func SaveSellItem(c *gin.Context) {
  408. param := util.GetJsonAnyParam(c)
  409. obj, err := param("sellItem")
  410. Name, err := param("sellItemName")
  411. if err != nil {
  412. c.JSON(http.StatusBadRequest, CreateResultError(400, "参数错误"))
  413. return
  414. }
  415. var sellItem ark.SellItem
  416. err = util.DataToObject(obj, &sellItem)
  417. if cast.ToString(Name) == "" || sellItem.Price == 0 || sellItem.Type == "" {
  418. c.JSON(http.StatusBadRequest, CreateResultError(400, "描述、价格、类型不能为空或为0"))
  419. return
  420. }
  421. _, ok := ARKConfig.SellItems[cast.ToString(Name)]
  422. if ok {
  423. c.JSON(http.StatusBadRequest, CreateResultError(400, "商品名已存在"))
  424. return
  425. }
  426. ARKConfig.SellItems[cast.ToString(Name)] = sellItem
  427. c.JSON(http.StatusOK, CreateResult())
  428. }
  429. func UpdateSellItem(c *gin.Context) {
  430. param := util.GetJsonAnyParam(c)
  431. obj, err := param("sellItem")
  432. Name, err := param("sellItemName")
  433. if err != nil {
  434. c.JSON(http.StatusBadRequest, CreateResultError(400, "参数错误"))
  435. return
  436. }
  437. var sellItem ark.SellItem
  438. err = util.DataToObject(obj, &sellItem)
  439. if cast.ToString(Name) == "" {
  440. c.JSON(http.StatusBadRequest, CreateResultError(400, "商品描述不能为空"))
  441. return
  442. }
  443. _, ok := ARKConfig.SellItems[cast.ToString(Name)]
  444. if ok {
  445. if sellItem.Price == 0 || sellItem.Type == "" {
  446. c.JSON(http.StatusBadRequest, CreateResultError(400, "价格、类型不能为空或为0"))
  447. return
  448. }
  449. ARKConfig.SellItems[cast.ToString(Name)] = sellItem
  450. c.JSON(http.StatusOK, CreateResult())
  451. return
  452. }
  453. c.JSON(http.StatusBadRequest, CreateResultError(400, "商品名不存在"))
  454. }
  455. func DeleteSellItem(c *gin.Context) {
  456. name := c.Query("sellItemName")
  457. if cast.ToString(name) == "" {
  458. c.JSON(http.StatusBadRequest, CreateResultError(400, "商品描述不能为空"))
  459. return
  460. }
  461. _, ok := ARKConfig.SellItems[cast.ToString(name)]
  462. if ok {
  463. // 删除一个元素
  464. delete(ARKConfig.SellItems, cast.ToString(name))
  465. c.JSON(http.StatusOK, CreateResult())
  466. return
  467. }
  468. c.JSON(http.StatusBadRequest, CreateResultError(400, "商品名不存在"))
  469. }