|
@@ -0,0 +1,188 @@
|
|
|
+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)
|
|
|
+}
|