user.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package user
  2. import (
  3. "encoding/json"
  4. "github.com/gin-gonic/gin"
  5. "go.uber.org/zap"
  6. "log"
  7. "sfbase/global"
  8. sutils "sfbase/utils"
  9. "sfis/db"
  10. "sfis/lock"
  11. "sfis/model"
  12. "sfis/model/response"
  13. "sfis/service"
  14. "sfis/utils"
  15. "strconv"
  16. "sync"
  17. "time"
  18. )
  19. func DevUserManageRegister(router *gin.Engine) {
  20. userGroup := router.Group("/manage/user/")
  21. userGroup.Use()
  22. {
  23. userGroup.POST("/create", userCreate)
  24. userGroup.POST("/userProjectChoose", userProjectChoose)
  25. userGroup.POST("/userProjectList", userProjectList)
  26. }
  27. }
  28. // 创建用户
  29. func userCreate(context *gin.Context) {
  30. var user model.User
  31. if err := context.ShouldBind(&user); err != nil {
  32. response.Fail(context)
  33. return
  34. }
  35. t := time.Now()
  36. appId := utils.GetAppID(t.Unix())
  37. key := sutils.GetComplexRandom(8, 3, 5)
  38. user.SecretKey = key
  39. user.AppID = appId
  40. result := db.GetSFISDB().Create(&user)
  41. if result.Error != nil {
  42. global.Logger.Error("userCreate Error", zap.Any("user", user), zap.Any("error", result.Error))
  43. response.Fail(context)
  44. } else {
  45. global.Logger.Info("userCreate Success", zap.Any("user", user))
  46. // 生全局内存锁
  47. lock.MainLock.Lock()
  48. lock.UserLockMap[appId] = &sync.Mutex{}
  49. lock.MainLock.Unlock()
  50. response.OkWithData(user, context)
  51. }
  52. }
  53. func userProjectChoose(c *gin.Context) {
  54. appId := c.PostForm("appId")
  55. projectIds := c.PostForm("projectIds")
  56. startTime := c.PostForm("startTime") //时间格式2021-01-11 16:50:06
  57. endTime := c.PostForm("endTime")
  58. leftNum, _ := strconv.Atoi(c.PostForm("leftNum"))
  59. costModel, _ := strconv.Atoi(c.PostForm("costModel"))
  60. interfaceStatus, _ := strconv.Atoi(c.PostForm("interfaceStatus"))
  61. callTimesLimitDay, _ := strconv.Atoi(c.PostForm("callTimesLimitDay"))
  62. dataNumOneTimes, _ := strconv.Atoi(c.PostForm("dataNumOneTimes"))
  63. tradeMoney, _ := strconv.Atoi(c.PostForm("tradeMoney"))
  64. tradeMoney = tradeMoney * 100
  65. buyType, _ := strconv.Atoi(c.PostForm("buyType"))
  66. historyUnitPrice, _ := strconv.Atoi(c.PostForm("historyUnitPrice"))
  67. log.Println("tradeMoney", tradeMoney)
  68. p := gin.H{
  69. "appId": appId,
  70. "projectIds": projectIds,
  71. "startTime": startTime,
  72. "endTime": endTime,
  73. "leftNum": leftNum,
  74. "costModel": costModel,
  75. "interfaceStatus": interfaceStatus,
  76. "callTimesLimitDay": callTimesLimitDay,
  77. "dataNumOneTimes": dataNumOneTimes,
  78. }
  79. bs, _ := json.Marshal(p)
  80. param := string(bs)
  81. global.Logger.Info("api userProjectChoose参数:", zap.Any("param", param))
  82. service.UserProject(projectIds, appId, startTime, endTime, leftNum, costModel, interfaceStatus, callTimesLimitDay, dataNumOneTimes, tradeMoney, buyType, historyUnitPrice, c)
  83. }
  84. func userProjectList(c *gin.Context) {
  85. appId := c.PostForm("appId")
  86. global.Logger.Info("manage userProjectList接口参数:", zap.Any("appId", appId))
  87. service.UserProjectList(appId, c)
  88. }