merchant.active.config.go 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package shanghu
  2. import (
  3. "duoduo/apis/shanghu/models"
  4. "duoduo/models/shanghu"
  5. "duoduo/tools"
  6. "duoduo/tools/app"
  7. "errors"
  8. "github.com/gin-gonic/gin"
  9. "time"
  10. )
  11. // 一个活动对应一个抽奖,一个抽奖对应多个奖品
  12. // 一个活动对应多个拼团,一个拼团对应一个张主图,一个拼团对应多个商品(多个商品是为了核销)
  13. func ActiveConfigCreate(c *gin.Context) {
  14. var inData models.CreateActiveConfigRequest
  15. var sqlData shanghu.MerchantActiveConfig
  16. err := c.ShouldBindJSON(&inData)
  17. if err != nil {
  18. app.Error(c, 400, err, err.Error())
  19. return
  20. }
  21. if inData.GroupBuyMode == 0 && inData.DrawMode == 0 {
  22. app.Error(c, 500, errors.New("请选择抽奖与开团"), "请选择抽奖与开团")
  23. return
  24. }
  25. sqlData.ActivityEndTime, err = tools.TimeToInt64(inData.ActivityEndTime, "2006-01-02")
  26. if err != nil {
  27. app.Error(c, 400, err, err.Error())
  28. return
  29. }
  30. sqlData.ActivityStartTime, err = tools.TimeToInt64(inData.ActivityStartTime, "2006-01-02")
  31. if err != nil {
  32. app.Error(c, 400, err, err.Error())
  33. return
  34. }
  35. sqlData.ActiveName = inData.ActiveName
  36. sqlData.MerchantOpenID = inData.MerchantOpenID
  37. sqlData.CreatedAt = time.Now()
  38. sqlData.UpdatedAt = time.Now()
  39. sqlData.ConfigMode = 1
  40. sqlData.DrawOneBiZhong = inData.DrawOneBiZhong
  41. sqlData.DrawMode = inData.DrawMode
  42. sqlData.GroupBuyMode = inData.GroupBuyMode
  43. sqlData.GroupBuyUrl = inData.GroupBuyUrl
  44. sqlData.GroupBuy = `{}`
  45. sqlData.DrawProduct = `{}`
  46. configData, err := sqlData.Create()
  47. if err != nil {
  48. app.Error(c, 500, err, err.Error())
  49. return
  50. }
  51. for _, v := range inData.DrawId {
  52. var drawData shanghu.MerchantActiveDrawProduct
  53. drawData.ActiveConfigID = configData.ID
  54. err = drawData.UpdateConfigId(v)
  55. if err != nil {
  56. app.Error(c, 500, err, err.Error())
  57. return
  58. }
  59. }
  60. for _, v := range inData.GroupBuyId {
  61. var groupBuy shanghu.MerchantActiveGroupBuy
  62. groupBuy.ActiveConfigID = configData.ID
  63. err = groupBuy.UpdateConfigId(v)
  64. if err != nil {
  65. app.Error(c, 500, err, err.Error())
  66. return
  67. }
  68. }
  69. app.OK(c, nil, app.Success)
  70. }
  71. // 活动配置信息
  72. func ActiveConfigInfo(c *gin.Context) {
  73. var inData models.ActiveConfigRequest
  74. var sqlData shanghu.MerchantActiveConfig
  75. var outData models.ActiveConfigReply
  76. var drawInfoSql shanghu.MerchantActiveDrawProduct
  77. var groupBuy shanghu.MerchantActiveGroupBuy
  78. err := c.ShouldBindJSON(&inData)
  79. if err != nil {
  80. app.Error(c, 400, err, err.Error())
  81. return
  82. }
  83. sqlData.MerchantOpenID = inData.MerchantOpenID
  84. sqlData.ID = inData.ActiveConfigId
  85. configInfo, err := sqlData.GetConfigInfoById()
  86. if err != nil {
  87. app.Error(c, 500, err, err.Error())
  88. return
  89. }
  90. outData.GroupBuyMode = configInfo.GroupBuyMode
  91. outData.DrawMode = configInfo.DrawMode
  92. outData.GroupBuyUrl = configInfo.GroupBuyUrl
  93. outData.DrawOneBiZhong = configInfo.DrawOneBiZhong
  94. outData.ActivityEndTime = tools.TimeToStr(configInfo.ActivityEndTime)
  95. outData.ActivityStartTime = tools.TimeToStr(configInfo.ActivityStartTime)
  96. outData.ActiveName = configInfo.ActiveName
  97. //中奖商品
  98. drawInfoSql.ActiveConfigID = configInfo.ID
  99. drawInfo, _, err := drawInfoSql.GetDrawProductList()
  100. if err != nil {
  101. app.Error(c, 500, err, err.Error())
  102. return
  103. }
  104. for _, v := range drawInfo {
  105. var drawProduct models.DrawProduct
  106. drawProduct.DrawProductName = v.DrawProductName
  107. drawProduct.DrawUrl = v.DrawUrl
  108. drawProduct.DrawOdds = v.DrawOdds
  109. drawProduct.IsPrize = v.IsPrize
  110. drawProduct.TotalStock = v.TotalStock
  111. drawProduct.Stock = v.Stock
  112. outData.DrawProduct = append(outData.DrawProduct, drawProduct)
  113. }
  114. // 查询拼团列表
  115. groupBuy.ActiveConfigID = configInfo.ID
  116. groupBuyInfoList, _, err := groupBuy.GetGroupBuyList()
  117. if err != nil {
  118. app.Error(c, 500, err, err.Error())
  119. return
  120. }
  121. for _, v := range groupBuyInfoList {
  122. var groupBuyInfo models.DrawGroupBuy
  123. var groupBuyProject shanghu.MerchantActiveGroupByProject
  124. groupBuyInfo.GroupBuyName = v.GroupBuyName
  125. groupBuyInfo.GroupBuyMode = v.GroupBuyMode
  126. groupBuyInfo.GroupBuyUrl = v.GroupBuyUrl
  127. groupBuyInfo.GroupBuyThreeNum = v.GroupBuyThreeNum
  128. groupBuyInfo.GroupBuyThreePrice = v.GroupBuyThreePrice
  129. groupBuyInfo.GroupBuyFourNum = v.GroupBuyFourNum
  130. groupBuyInfo.GroupBuyFourPrice = v.GroupBuyFourPrice
  131. groupBuyInfo.GroupBuyTwoNum = v.GroupBuyTwoNum
  132. groupBuyInfo.GroupBuyTwoPrice = v.GroupBuyTwoPrice
  133. groupBuyInfo.GroupBuyOneNum = v.GroupBuyOneNum
  134. groupBuyInfo.GroupBuyOnePrice = v.GroupBuyOnePrice
  135. groupBuyInfo.MerchantOpenID = v.MerchantOpenID
  136. groupBuyInfo.OriginalPrice = v.OriginalPrice
  137. groupBuyInfo.RebateRate = v.RebateRate
  138. groupBuyProject.GroupBuyID = v.ID
  139. projectList, _, err := groupBuyProject.GetGroupBuyProjectList()
  140. if err != nil {
  141. app.Error(c, 500, err, err.Error())
  142. return
  143. }
  144. for _, v := range projectList {
  145. var groupBuyProjectInfo models.GroupBuyProject
  146. groupBuyProjectInfo.ProjectName = v.ProjectName
  147. groupBuyProjectInfo.CancelNum = v.CancelNum
  148. groupBuyInfo.GroupBuyProject = append(groupBuyInfo.GroupBuyProject, groupBuyProjectInfo)
  149. }
  150. outData.DrawGroupBuy = append(outData.DrawGroupBuy, groupBuyInfo)
  151. }
  152. app.OK(c, outData, app.Success)
  153. }
  154. // 活动列表
  155. func ActiveConfigList(c *gin.Context) {
  156. var inData models.ActiveConfigListRequest
  157. var sqlData shanghu.MerchantActiveConfig
  158. var outData []models.ActiveConfigListReply
  159. err := c.ShouldBindJSON(&inData)
  160. if err != nil {
  161. app.Error(c, 400, err, err.Error())
  162. return
  163. }
  164. sqlData.MerchantOpenID = inData.OpenId
  165. var pageSize = 10
  166. var pageIndex = 1
  167. if inData.PageSize != 0 {
  168. pageSize = inData.PageSize
  169. }
  170. if inData.PageIndex != 0 {
  171. pageIndex = inData.PageIndex
  172. }
  173. activeConfigList, count, err := sqlData.GetActiveConfigList(pageSize, pageIndex)
  174. if err != nil {
  175. app.Error(c, 500, err, err.Error())
  176. return
  177. }
  178. for _, v := range activeConfigList {
  179. var activeConfig models.ActiveConfigListReply
  180. activeConfig.ActivityStart = tools.TimeToStr(v.ActivityStartTime)
  181. activeConfig.ActivityEnd = tools.TimeToStr(v.ActivityEndTime)
  182. activeConfig.ActiveName = v.ActiveName
  183. activeConfig.CreatedAt = v.CreatedAt.Format(time.DateTime)
  184. outData = append(outData, activeConfig)
  185. }
  186. app.PageOK(c, outData, count, pageIndex, pageSize, app.Success)
  187. }