package shanghu import ( "duoduo/apis/shanghu/models" "duoduo/models/shanghu" "duoduo/tools" "duoduo/tools/app" "encoding/json" "fmt" "github.com/gin-gonic/gin" "strconv" "time" ) func CreateMerchantCard(c *gin.Context) { var inData models.CreateMerchantCardRequest var sqlData shanghu.MerchantCard err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.CreatedAt = time.Now() sqlData.UpdatedAt = time.Now() jsStr, err := json.Marshal(inData.CardProjectData) if err != nil { app.Error(c, 400, err, "包含项目不能为空") return } //"json: cannot unmarshal string into Go struct field CreateMerchantCardRequest.inventory of type int64" //"json: cannot unmarshal bool into Go struct field CreateMerchantCardRequest.merchant_card_time of type string" //"json: cannot unmarshal string into Go struct field CreateMerchantCardRequest.inventory of type int64" sqlData.CardProjectData = string(jsStr) sqlData.CardPrice = inData.CardPrice sqlData.ActivityEndTime, err = tools.TimeToInt64(inData.ActivityEndTime, "2006-01-02") if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.ActivityStartTime, err = tools.TimeToInt64(inData.ActivityStartTime, "2006-01-02") if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.Inventory, err = strconv.ParseInt(inData.Inventory, 10, 64) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.MerchantCardTime, err = tools.TimeToInt64(inData.MerchantCardTime, "2006-01-02") if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.MerchantOpenID = inData.MerchantOpenID sqlData.Picture = inData.Picture sqlData.QuotaNum, err = strconv.ParseInt(inData.QuotaNum, 10, 64) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.RebateRate, err = strconv.ParseInt(inData.RebateRate, 10, 64) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.UseRule = inData.UseRule sqlData.MerchantCardName = inData.MerchantCardName _, err = sqlData.Create() if err != nil { app.Error(c, 500, err, err.Error()) return } app.OK(c, nil, app.Success) } func GetMerchantCard(c *gin.Context) { var inData models.GetMerchantCardRequest var outData models.GetMerchantCardReply var sqlData shanghu.MerchantCard var project []int64 err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.ID = inData.MerchantId merchantCard, err := sqlData.GetMerchantCard() if err != nil { app.Error(c, 500, err, err.Error()) return } err = json.Unmarshal([]byte(merchantCard.CardProjectData), &project) if err != nil { app.Error(c, 500, err, err.Error()) return } merchantCard.CardProjectData = "" for i := 0; i < len(project); i++ { var cardProject shanghu.MerchantCardProject cardProject.ID = project[i] projectInfo, err := cardProject.GetMerchantCardProject() if err != nil { app.Error(c, 500, err, err.Error()) return } merchantCard.CardProjectData = merchantCard.CardProjectData + projectInfo.ProjectName + "x1 " } outData.CardProjectData = merchantCard.CardProjectData outData.MerchantCardName = merchantCard.MerchantCardName outData.MerchantCardTime = time.Unix(merchantCard.MerchantCardTime, 0).Format("2006-01-02") outData.ActivityEndTime = time.Unix(merchantCard.ActivityEndTime, 0).Format("2006-01-02") outData.ActivityStartTime = time.Unix(merchantCard.ActivityStartTime, 0).Format("2006-01-02") outData.Picture = merchantCard.Picture outData.UseRule = merchantCard.UseRule outData.QuotaNum = merchantCard.QuotaNum outData.Inventory = merchantCard.Inventory outData.RebateRate = merchantCard.RebateRate outData.CardPrice = merchantCard.CardPrice app.OK(c, outData, app.Success) } func MerchantCardList(c *gin.Context) { var inData models.MerchantCardListRequest var sqlData shanghu.MerchantCard err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } var pageSize = 10 var pageIndex = 1 if inData.PageSize != 0 { pageSize = inData.PageSize } if inData.PageIndex != 0 { pageIndex = inData.PageIndex } fmt.Println(inData.OpenId) sqlData.MerchantOpenID = inData.OpenId merchantCard, count, err := sqlData.GetOpenIdList(pageSize, pageIndex, inData.TypeList) if err != nil { app.Error(c, 500, err, err.Error()) return } app.PageOK(c, merchantCard, count, pageIndex, pageSize, app.Success) } func UpdateMerchantCard(c *gin.Context) { var inData models.UpdateMerchantCardRequest var sqlData shanghu.MerchantCard err := c.ShouldBindJSON(&inData) if err != nil { app.Error(c, 400, err, err.Error()) return } sqlData.ID = inData.ID sqlData.QuotaNum = inData.QuotaNum sqlData.UseRule = inData.UseRule sqlData.Picture = inData.Picture sqlData.Inventory = inData.Inventory sqlData.ActivityStartTime = inData.ActivityStartTime sqlData.ActivityEndTime = inData.ActivityEndTime err = sqlData.UpdateMerchantCard() if err != nil { app.Error(c, 400, err, err.Error()) return } app.OK(c, nil, app.Success) }