merchant.active.config.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package shanghu
  2. import (
  3. "duoduo/apis/shanghu/models"
  4. "duoduo/models/shanghu"
  5. "duoduo/tools/app"
  6. "errors"
  7. "github.com/gin-gonic/gin"
  8. "time"
  9. )
  10. // 一个活动对应一个抽奖,一个抽奖对应多个奖品
  11. // 一个活动对应多个拼团,一个拼团对应一个张主图,一个拼团对应多个商品(多个商品是为了核销)
  12. func ActiveConfigCreate(c *gin.Context) {
  13. var inData models.CreateActiveConfigRequest
  14. var sqlData shanghu.MerchantActiveConfig
  15. err := c.ShouldBindJSON(&inData)
  16. if err != nil {
  17. app.Error(c, 400, err, err.Error())
  18. return
  19. }
  20. if inData.GroupBuyMode == 0 && inData.DrawMode == 0 {
  21. app.Error(c, 500, errors.New("请选择抽奖与开团"), "请选择抽奖与开团")
  22. return
  23. }
  24. sqlData.MerchantOpenID = inData.MerchantOpenID
  25. sqlData.CreatedAt = time.Now()
  26. sqlData.UpdatedAt = time.Now()
  27. sqlData.ConfigMode = 1
  28. sqlData.DrawOneBiZhong = inData.DrawOneBiZhong
  29. sqlData.DrawMode = inData.DrawMode
  30. sqlData.GroupBuyMode = inData.GroupBuyMode
  31. sqlData.GroupBuyUrl = inData.GroupBuyUrl
  32. sqlData.GroupBuy = `{}`
  33. sqlData.DrawProduct = `{}`
  34. configData, err := sqlData.Create()
  35. if err != nil {
  36. app.Error(c, 500, err, err.Error())
  37. return
  38. }
  39. for _, v := range inData.DrawId {
  40. var drawData shanghu.MerchantActiveDrawProduct
  41. drawData.ActiveConfigID = configData.ID
  42. err = drawData.UpdateConfigId(v)
  43. if err != nil {
  44. app.Error(c, 500, err, err.Error())
  45. return
  46. }
  47. }
  48. for _, v := range inData.GroupBuyId {
  49. var groupBuy shanghu.MerchantActiveGroupBuy
  50. groupBuy.ActiveConfigID = configData.ID
  51. err = groupBuy.UpdateConfigId(v)
  52. if err != nil {
  53. app.Error(c, 500, err, err.Error())
  54. return
  55. }
  56. }
  57. app.OK(c, nil, app.Success)
  58. }
  59. // 活动配置信息
  60. func ActiveConfigInfo(c *gin.Context) {
  61. var inData models.ActiveConfigRequest
  62. var sqlData shanghu.MerchantActiveConfig
  63. var outData models.ActiveConfigReply
  64. var drawInfoSql shanghu.MerchantActiveDrawProduct
  65. var groupBuy shanghu.MerchantActiveGroupBuy
  66. err := c.ShouldBindJSON(&inData)
  67. if err != nil {
  68. app.Error(c, 400, err, err.Error())
  69. return
  70. }
  71. sqlData.MerchantOpenID = inData.MerchantOpenID
  72. sqlData.ID = inData.ActiveConfigId
  73. configInfo, err := sqlData.GetConfigInfoById()
  74. if err != nil {
  75. app.Error(c, 500, err, err.Error())
  76. return
  77. }
  78. outData.GroupBuyMode = configInfo.GroupBuyMode
  79. outData.DrawMode = configInfo.DrawMode
  80. outData.GroupBuyUrl = configInfo.GroupBuyUrl
  81. outData.DrawOneBiZhong = configInfo.DrawOneBiZhong
  82. //中奖商品
  83. drawInfoSql.ActiveConfigID = configInfo.ID
  84. drawInfo, _, err := drawInfoSql.GetDrawProductList()
  85. if err != nil {
  86. app.Error(c, 500, err, err.Error())
  87. return
  88. }
  89. for _, v := range drawInfo {
  90. var drawProduct models.DrawProduct
  91. drawProduct.DrawProductName = v.DrawProductName
  92. drawProduct.DrawUrl = v.DrawUrl
  93. drawProduct.DrawOdds = v.DrawOdds
  94. drawProduct.IsPrize = v.IsPrize
  95. drawProduct.TotalStock = v.TotalStock
  96. drawProduct.Stock = v.Stock
  97. outData.DrawProduct = append(outData.DrawProduct, drawProduct)
  98. }
  99. // 查询拼团列表
  100. groupBuy.ActiveConfigID = configInfo.ID
  101. groupBuyInfoList, _, err := groupBuy.GetGroupBuyList()
  102. if err != nil {
  103. app.Error(c, 500, err, err.Error())
  104. return
  105. }
  106. for _, v := range groupBuyInfoList {
  107. var groupBuyInfo models.DrawGroupBuy
  108. var groupBuyProject shanghu.MerchantActiveGroupByProject
  109. groupBuyInfo.GroupBuyName = v.GroupBuyName
  110. groupBuyInfo.GroupBuyMode = v.GroupBuyMode
  111. groupBuyInfo.GroupBuyUrl = v.GroupBuyUrl
  112. groupBuyInfo.GroupBuyThreeNum = v.GroupBuyThreeNum
  113. groupBuyInfo.GroupBuyThreePrice = v.GroupBuyThreePrice
  114. groupBuyInfo.GroupBuyFourNum = v.GroupBuyFourNum
  115. groupBuyInfo.GroupBuyFourPrice = v.GroupBuyFourPrice
  116. groupBuyInfo.GroupBuyTwoNum = v.GroupBuyTwoNum
  117. groupBuyInfo.GroupBuyTwoPrice = v.GroupBuyTwoPrice
  118. groupBuyInfo.GroupBuyOneNum = v.GroupBuyOneNum
  119. groupBuyInfo.GroupBuyOnePrice = v.GroupBuyOnePrice
  120. groupBuyInfo.MerchantOpenID = v.MerchantOpenID
  121. groupBuyInfo.OriginalPrice = v.OriginalPrice
  122. groupBuyProject.GroupBuyID = v.ID
  123. projectList, _, err := groupBuyProject.GetGroupBuyProjectList()
  124. if err != nil {
  125. app.Error(c, 500, err, err.Error())
  126. return
  127. }
  128. for _, v := range projectList {
  129. var groupBuyProjectInfo models.GroupBuyProject
  130. groupBuyProjectInfo.ProjectName = v.ProjectName
  131. groupBuyProjectInfo.CancelNum = v.CancelNum
  132. groupBuyInfo.GroupBuyProject = append(groupBuyInfo.GroupBuyProject, groupBuyProjectInfo)
  133. }
  134. outData.DrawGroupBuy = append(outData.DrawGroupBuy, groupBuyInfo)
  135. }
  136. app.OK(c, outData, app.Success)
  137. }