merchant.active.draw.product.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. "github.com/shopspring/decimal"
  9. "time"
  10. )
  11. // 中奖商品与库存
  12. func DrawProductCreate(c *gin.Context) {
  13. var inData models.CreateDrawProductRequest
  14. var sqlData shanghu.MerchantActiveDrawProduct
  15. err := c.ShouldBindJSON(&inData)
  16. if err != nil {
  17. app.Error(c, 400, err, err.Error())
  18. return
  19. }
  20. if inData.DrawProductName == "" || inData.DrawUrl == "" || inData.TotalStock <= 0 {
  21. app.Error(c, 500, errors.New("必填参数缺失"), "必填参数缺失")
  22. return
  23. }
  24. if !inData.DrawOdds.GreaterThan(decimal.NewFromFloat(0)) {
  25. app.Error(c, 500, errors.New("中奖率需要大于0"), "中奖率需要大于0")
  26. return
  27. }
  28. sqlData.CreatedAt = time.Now()
  29. sqlData.UpdatedAt = time.Now()
  30. sqlData.DrawOdds = inData.DrawOdds
  31. sqlData.TotalStock = inData.TotalStock
  32. sqlData.MerchantOpenID = inData.MerchantOpenID
  33. sqlData.DrawProductName = inData.DrawProductName
  34. sqlData.Stock = 0
  35. sqlData.DrawUrl = inData.DrawUrl
  36. sqlData.Version = 0
  37. sqlData.IsPrize = inData.IsPrize
  38. _, err = sqlData.Create()
  39. if err != nil {
  40. app.Error(c, 500, err, err.Error())
  41. return
  42. }
  43. app.OK(c, nil, app.Success)
  44. }