merchant.active.draw.product.go 2.5 KB

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