merchant.active.draw.product.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. func DrawProductCreate(c *gin.Context) {
  12. var inData models.CreateDrawProductRequest
  13. var sqlData shanghu.MerchantActiveDrawProduct
  14. err := c.ShouldBindJSON(&inData)
  15. if err != nil {
  16. app.Error(c, 400, err, err.Error())
  17. return
  18. }
  19. if inData.DrawProductName == "" || inData.DrawUrl == "" || inData.TotalStock <= 0 {
  20. app.Error(c, 500, errors.New("必填参数缺失"), "必填参数缺失")
  21. return
  22. }
  23. if inData.DrawOdds <= 0 {
  24. app.Error(c, 500, errors.New("中奖率需要大于0"), "中奖率需要大于0")
  25. return
  26. }
  27. if inData.DrawOdds > 100 {
  28. app.Error(c, 500, errors.New("中奖率不能大于100"), "中奖率不能大于100")
  29. return
  30. }
  31. //if !inData.DrawOdds.GreaterThan(decimal.NewFromFloat(0)) {
  32. // app.Error(c, 500, errors.New("中奖率需要大于0"), "中奖率需要大于0")
  33. // return
  34. //}
  35. sqlData.CreatedAt = time.Now()
  36. sqlData.UpdatedAt = time.Now()
  37. sqlData.DrawOdds = inData.DrawOdds
  38. sqlData.TotalStock = inData.TotalStock
  39. sqlData.MerchantOpenID = inData.MerchantOpenID
  40. sqlData.DrawProductName = inData.DrawProductName
  41. sqlData.Stock = inData.TotalStock
  42. sqlData.DrawUrl = inData.DrawUrl
  43. sqlData.Version = 0
  44. sqlData.IsPrize = inData.IsPrize
  45. _, err = sqlData.Create()
  46. if err != nil {
  47. app.Error(c, 500, err, err.Error())
  48. return
  49. }
  50. app.OK(c, nil, app.Success)
  51. }
  52. // 奖品商品列表
  53. func DrawProductList(c *gin.Context) {
  54. var inData models.DrawProductListRequest
  55. var sqlData shanghu.MerchantActiveDrawProduct
  56. var outData []models.DrawProductListReply
  57. err := c.ShouldBindJSON(&inData)
  58. if err != nil {
  59. app.Error(c, 400, err, err.Error())
  60. return
  61. }
  62. sqlData.MerchantOpenID = inData.OpenId
  63. var pageSize = 10
  64. var pageIndex = 1
  65. if inData.PageSize != 0 {
  66. pageSize = inData.PageSize
  67. }
  68. if inData.PageIndex != 0 {
  69. pageIndex = inData.PageIndex
  70. }
  71. drawProductList, count, err := sqlData.GetDrawProductListByOpenId(pageSize, pageIndex)
  72. if err != nil {
  73. app.Error(c, 500, err, err.Error())
  74. return
  75. }
  76. for _, v := range drawProductList {
  77. var drawProductInfo models.DrawProductListReply
  78. drawProductInfo.DrawProductName = v.DrawProductName
  79. drawProductInfo.DrawOdds = v.DrawOdds
  80. drawProductInfo.MerchantOpenID = v.MerchantOpenID
  81. drawProductInfo.DrawUrl = v.DrawUrl
  82. drawProductInfo.ActiveConfigID = v.ActiveConfigID
  83. drawProductInfo.ID = v.ID
  84. drawProductInfo.Stock = v.Stock
  85. drawProductInfo.TotalStock = v.TotalStock
  86. drawProductInfo.IsPrize = v.IsPrize
  87. outData = append(outData, drawProductInfo)
  88. }
  89. app.PageOK(c, outData, count, pageIndex, pageSize, app.Success)
  90. }