merchant.card.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package shanghu
  2. import (
  3. "duoduo/apis/shanghu/models"
  4. "duoduo/models/shanghu"
  5. "duoduo/tools"
  6. "duoduo/tools/app"
  7. "encoding/json"
  8. "fmt"
  9. "github.com/gin-gonic/gin"
  10. "strconv"
  11. "time"
  12. )
  13. func CreateMerchantCard(c *gin.Context) {
  14. var inData models.CreateMerchantCardRequest
  15. var sqlData shanghu.MerchantCard
  16. err := c.ShouldBindJSON(&inData)
  17. if err != nil {
  18. app.Error(c, 400, err, err.Error())
  19. return
  20. }
  21. sqlData.CreatedAt = time.Now()
  22. sqlData.UpdatedAt = time.Now()
  23. jsStr, err := json.Marshal(inData.CardProjectData)
  24. if err != nil {
  25. app.Error(c, 400, err, "包含项目不能为空")
  26. return
  27. }
  28. //"json: cannot unmarshal string into Go struct field CreateMerchantCardRequest.inventory of type int64"
  29. //"json: cannot unmarshal bool into Go struct field CreateMerchantCardRequest.merchant_card_time of type string"
  30. //"json: cannot unmarshal string into Go struct field CreateMerchantCardRequest.inventory of type int64"
  31. sqlData.CardProjectData = string(jsStr)
  32. sqlData.CardPrice = inData.CardPrice
  33. sqlData.ActivityEndTime, err = tools.TimeToInt64(inData.ActivityEndTime, "2006-01-02")
  34. if err != nil {
  35. app.Error(c, 400, err, err.Error())
  36. return
  37. }
  38. sqlData.ActivityStartTime, err = tools.TimeToInt64(inData.ActivityStartTime, "2006-01-02")
  39. if err != nil {
  40. app.Error(c, 400, err, err.Error())
  41. return
  42. }
  43. sqlData.Inventory, err = strconv.ParseInt(inData.Inventory, 10, 64)
  44. if err != nil {
  45. app.Error(c, 400, err, err.Error())
  46. return
  47. }
  48. sqlData.MerchantCardTime, err = tools.TimeToInt64(inData.MerchantCardTime, "2006-01-02")
  49. if err != nil {
  50. app.Error(c, 400, err, err.Error())
  51. return
  52. }
  53. sqlData.MerchantOpenID = inData.MerchantOpenID
  54. sqlData.Picture = inData.Picture
  55. sqlData.QuotaNum, err = strconv.ParseInt(inData.QuotaNum, 10, 64)
  56. if err != nil {
  57. app.Error(c, 400, err, err.Error())
  58. return
  59. }
  60. sqlData.RebateRate, err = strconv.ParseInt(inData.RebateRate, 10, 64)
  61. if err != nil {
  62. app.Error(c, 400, err, err.Error())
  63. return
  64. }
  65. sqlData.UseRule = inData.UseRule
  66. sqlData.MerchantCardName = inData.MerchantCardName
  67. _, err = sqlData.Create()
  68. if err != nil {
  69. app.Error(c, 500, err, err.Error())
  70. return
  71. }
  72. app.OK(c, nil, app.Success)
  73. }
  74. func GetMerchantCard(c *gin.Context) {
  75. var inData models.GetMerchantCardRequest
  76. var outData models.GetMerchantCardReply
  77. var sqlData shanghu.MerchantCard
  78. var project []int64
  79. err := c.ShouldBindJSON(&inData)
  80. if err != nil {
  81. app.Error(c, 400, err, err.Error())
  82. return
  83. }
  84. sqlData.ID = inData.MerchantId
  85. merchantCard, err := sqlData.GetMerchantCard()
  86. if err != nil {
  87. app.Error(c, 500, err, err.Error())
  88. return
  89. }
  90. err = json.Unmarshal([]byte(merchantCard.CardProjectData), &project)
  91. if err != nil {
  92. app.Error(c, 500, err, err.Error())
  93. return
  94. }
  95. merchantCard.CardProjectData = ""
  96. for i := 0; i < len(project); i++ {
  97. var cardProject shanghu.MerchantCardProject
  98. cardProject.ID = project[i]
  99. projectInfo, err := cardProject.GetMerchantCardProject()
  100. if err != nil {
  101. app.Error(c, 500, err, err.Error())
  102. return
  103. }
  104. merchantCard.CardProjectData = merchantCard.CardProjectData + projectInfo.ProjectName + "x1 "
  105. }
  106. outData.CardProjectData = merchantCard.CardProjectData
  107. outData.MerchantCardName = merchantCard.MerchantCardName
  108. outData.MerchantCardTime = time.Unix(merchantCard.MerchantCardTime, 0).Format("2006-01-02")
  109. outData.ActivityEndTime = time.Unix(merchantCard.ActivityEndTime, 0).Format("2006-01-02")
  110. outData.ActivityStartTime = time.Unix(merchantCard.ActivityStartTime, 0).Format("2006-01-02")
  111. outData.Picture = merchantCard.Picture
  112. outData.UseRule = merchantCard.UseRule
  113. outData.QuotaNum = merchantCard.QuotaNum
  114. outData.Inventory = merchantCard.Inventory
  115. outData.RebateRate = merchantCard.RebateRate
  116. outData.CardPrice = merchantCard.CardPrice
  117. app.OK(c, outData, app.Success)
  118. }
  119. func MerchantCardList(c *gin.Context) {
  120. var inData models.MerchantCardListRequest
  121. var sqlData shanghu.MerchantCard
  122. err := c.ShouldBindJSON(&inData)
  123. if err != nil {
  124. app.Error(c, 400, err, err.Error())
  125. return
  126. }
  127. var pageSize = 10
  128. var pageIndex = 1
  129. if inData.PageSize != 0 {
  130. pageSize = inData.PageSize
  131. }
  132. if inData.PageIndex != 0 {
  133. pageIndex = inData.PageIndex
  134. }
  135. fmt.Println(inData.OpenId)
  136. sqlData.MerchantOpenID = inData.OpenId
  137. merchantCard, count, err := sqlData.GetOpenIdList(pageSize, pageIndex, inData.TypeList)
  138. if err != nil {
  139. app.Error(c, 500, err, err.Error())
  140. return
  141. }
  142. app.PageOK(c, merchantCard, count, pageIndex, pageSize, app.Success)
  143. }
  144. func UpdateMerchantCard(c *gin.Context) {
  145. var inData models.UpdateMerchantCardRequest
  146. var sqlData shanghu.MerchantCard
  147. err := c.ShouldBindJSON(&inData)
  148. if err != nil {
  149. app.Error(c, 400, err, err.Error())
  150. return
  151. }
  152. sqlData.ID = inData.ID
  153. sqlData.QuotaNum = inData.QuotaNum
  154. sqlData.UseRule = inData.UseRule
  155. sqlData.Picture = inData.Picture
  156. sqlData.Inventory = inData.Inventory
  157. sqlData.ActivityStartTime = inData.ActivityStartTime
  158. sqlData.ActivityEndTime = inData.ActivityEndTime
  159. err = sqlData.UpdateMerchantCard()
  160. if err != nil {
  161. app.Error(c, 400, err, err.Error())
  162. return
  163. }
  164. app.OK(c, nil, app.Success)
  165. }