k.zhang 1 ano atrás
pai
commit
8ebfa5c7e8

+ 1 - 0
apis/shanghu/base.go

@@ -33,5 +33,6 @@ func InitShangHuRouter(engine *gin.RouterGroup) {
 		v1.POST("/verification/code", GetVerificationCode)                  //核销码
 		v1.POST("/merchant/sale/list", GetMerchantPayTransList)             //销售记录
 		v1.POST("/merchant/cancel", CancelNumber)                           //核销
+		v1.POST("/merchant/update/whxy", UpdateMerchantCardWXYZ)            //xyz                               //更新坐标
 	}
 }

+ 36 - 4
apis/shanghu/merchant.card.go

@@ -34,10 +34,6 @@ func CreateMerchantCard(c *gin.Context) {
 		return
 	}
 
-	//"json: cannot unmarshal string into Go struct field CreateMerchantCardRequest.cancel_number of type int"
-	//"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")
@@ -80,6 +76,7 @@ func CreateMerchantCard(c *gin.Context) {
 		app.Error(c, 400, err, err.Error())
 		return
 	}
+	sqlData.BackgroundImage = inData.BackgroundImage
 
 	_, err = sqlData.Create()
 	if err != nil {
@@ -454,6 +451,41 @@ func UpdateMerchantCard(c *gin.Context) {
 	app.OK(c, nil, app.Success)
 }
 
+func UpdateMerchantCardWXYZ(c *gin.Context) {
+	var inData models.UpdateMerchantCardWHXYRequest
+	var sqlData shanghu.MerchantCard
+	var whxy []models.WHXYStr
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	err = json.Unmarshal([]byte(inData.Whxy), &whxy)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+	for i := 0; i < len(whxy); i++ {
+		if !whxy[i].Y.IsZero() {
+			sqlData.W = whxy[i].W
+			sqlData.X = whxy[i].X
+			sqlData.Y = whxy[i].Y
+			sqlData.H = whxy[i].H
+		}
+	}
+	sqlData.ID = inData.MerchantCardId
+
+	err = sqlData.UpdateMerchantWHXY()
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	app.OK(c, nil, app.Success)
+}
+
 // 核销次数
 func CancelNumber(c *gin.Context) {
 	var inData models.CancelCardRequest

+ 17 - 0
apis/shanghu/models/card.go

@@ -19,6 +19,7 @@ type CreateMerchantCardRequest struct {
 	Picture           string  `json:"picture"`             // 图片
 	RebateRate        string  `json:"rebate_rate"`         // 佣金比例
 	CancelNumber      string  `json:"cancel_number"`       //核销次数
+	BackgroundImage   string  `json:"background_image"`    //背景图
 }
 
 type GetMerchantCardRequest struct {
@@ -124,3 +125,19 @@ type UpdateMerchantCardRequest struct {
 	UseRule           string `json:"use_rule"`            // 使用规则
 	Picture           string `json:"picture"`             // 图片
 }
+
+type UpdateMerchantCardWHXYRequest struct {
+	Whxy           string `json:"whxy"` //坐标
+	MerchantCardId int64  `json:"merchant_card_id"`
+}
+
+type WHXYStr struct {
+	Type     string          `json:"type"`
+	URL      string          `json:"url"`
+	Y        decimal.Decimal `json:"y,omitempty"`
+	X        decimal.Decimal `json:"x,omitempty"`
+	W        decimal.Decimal `json:"w,omitempty"`
+	H        decimal.Decimal `json:"h,omitempty"`
+	Rotate   int             `json:"rotate,omitempty"`
+	SourceID any             `json:"sourceId,omitempty"`
+}

+ 41 - 20
models/shanghu/merchant_card.go

@@ -3,29 +3,35 @@ package shanghu
 import (
 	orm "duoduo/database"
 	"duoduo/tools"
+	"github.com/shopspring/decimal"
 	"time"
 )
 
 type MerchantCard struct {
-	ID                int64     `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"`
-	MerchantCardName  string    `gorm:"column:merchant_card_name;type:varchar(255)" json:"merchant_card_name"`      // 商户卡名称
-	MerchantOpenID    string    `gorm:"column:merchant_open_id;type:varchar(255);NOT NULL" json:"merchant_open_id"` // openid
-	CardProjectData   string    `gorm:"column:card_project_data;type:json" json:"card_project_data"`                // 项目
-	CardPrice         string    `gorm:"column:card_price;type:decimal(10,2)" json:"card_price"`                     // 单价
-	ActivityEndTime   int64     `gorm:"column:activity_end_time;type:bigint(20)" json:"activity_end_time"`          // 活动结束时间
-	ActivityStartTime int64     `gorm:"column:activity_start_time;type:bigint(20)" json:"activity_start_time"`      // 活动开始时间
-	MerchantCardTime  int64     `gorm:"column:merchant_card_time;type:bigint(20)" json:"merchant_card_time"`        // 商户卡有效期
-	Inventory         int64     `gorm:"column:inventory;type:bigint(20)" json:"inventory"`                          // 库存数量
-	QuotaNum          int64     `gorm:"column:quota_num;type:int(11)" json:"quota_num"`                             // 限购数量
-	UseRule           string    `gorm:"column:use_rule;type:varchar(255)" json:"use_rule"`                          // 使用规则
-	Picture           string    `gorm:"column:picture;type:varchar(255)" json:"picture"`                            // 图片
-	RebateRate        int64     `gorm:"column:rebate_rate;type:int(11)" json:"rebate_rate"`                         // 佣金比例
-	CancelNumber      int       `gorm:"column:cancel_number;type:int(11)" json:"cancel_number"`                     //
-	CreateBy          int64     `gorm:"column:create_by;type:bigint(20)" json:"create_by"`                          // 创建者
-	UpdateBy          int64     `gorm:"column:update_by;type:bigint(20)" json:"update_by"`                          // 更新者
-	CreatedAt         time.Time `gorm:"column:created_at;type:datetime(3)" json:"created_at"`                       // 创建时间
-	UpdatedAt         time.Time `gorm:"column:updated_at;type:datetime(3)" json:"updated_at"`                       // 最后更新时间
-	DeletedAt         time.Time `gorm:"column:deleted_at;type:datetime(3);default:null" json:"deleted_at"`          // 删除时间
+	ID                int64           `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"`
+	MerchantCardName  string          `gorm:"column:merchant_card_name;type:varchar(255)" json:"merchant_card_name"`      // 商户卡名称
+	MerchantOpenID    string          `gorm:"column:merchant_open_id;type:varchar(255);NOT NULL" json:"merchant_open_id"` // openid
+	CardProjectData   string          `gorm:"column:card_project_data;type:json" json:"card_project_data"`                // 项目
+	CardPrice         string          `gorm:"column:card_price;type:decimal(10,2)" json:"card_price"`                     // 单价
+	ActivityEndTime   int64           `gorm:"column:activity_end_time;type:bigint(20)" json:"activity_end_time"`          // 活动结束时间
+	ActivityStartTime int64           `gorm:"column:activity_start_time;type:bigint(20)" json:"activity_start_time"`      // 活动开始时间
+	MerchantCardTime  int64           `gorm:"column:merchant_card_time;type:bigint(20)" json:"merchant_card_time"`        // 商户卡有效期
+	Inventory         int64           `gorm:"column:inventory;type:bigint(20)" json:"inventory"`                          // 库存数量
+	QuotaNum          int64           `gorm:"column:quota_num;type:int(11)" json:"quota_num"`                             // 限购数量
+	UseRule           string          `gorm:"column:use_rule;type:varchar(255)" json:"use_rule"`                          // 使用规则
+	Picture           string          `gorm:"column:picture;type:varchar(255)" json:"picture"`                            // 图片
+	RebateRate        int64           `gorm:"column:rebate_rate;type:int(11)" json:"rebate_rate"`                         // 佣金比例
+	CancelNumber      int             `gorm:"column:cancel_number;type:int(11)" json:"cancel_number"`                     //
+	CreateBy          int64           `gorm:"column:create_by;type:bigint(20)" json:"create_by"`                          // 创建者
+	UpdateBy          int64           `gorm:"column:update_by;type:bigint(20)" json:"update_by"`                          // 更新者
+	CreatedAt         time.Time       `gorm:"column:created_at;type:datetime(3)" json:"created_at"`                       // 创建时间
+	UpdatedAt         time.Time       `gorm:"column:updated_at;type:datetime(3)" json:"updated_at"`                       // 最后更新时间
+	DeletedAt         time.Time       `gorm:"column:deleted_at;type:datetime(3);default:null" json:"deleted_at"`          // 删除时间
+	BackgroundImage   string          `gorm:"column:background_image;type:varchar(255)" json:"background_image"`          //背景图
+	W                 decimal.Decimal `gorm:"column:w;type:decimal(16,2);default:null" json:"w"`                          // w
+	H                 decimal.Decimal `gorm:"column:h;type:decimal(16,2);default:null" json:"h"`                          // h
+	X                 decimal.Decimal `gorm:"column:x;type:decimal(16,2);default:null" json:"x"`                          // x
+	Y                 decimal.Decimal `gorm:"column:y;type:decimal(16,2);default:null" json:"y"`                          // y
 }
 
 func (m *MerchantCard) TableName() string {
@@ -130,7 +136,22 @@ func (m *MerchantCard) UpdateMerchantCard() error {
 			"quota_num":           m.QuotaNum,
 			"use_rule":            m.UseRule,
 			"picture":             m.Picture,
-			"update_time":         tools.GetCurrntTimeStr()}).Error; err != nil {
+			"updated_at":          tools.GetCurrntTimeStr()}).Error; err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (m *MerchantCard) UpdateMerchantWHXY() error {
+
+	if err := orm.ShMysql.Table(m.TableName()).Model(&m).Where("id = ? ", m.ID).Updates(
+		map[string]interface{}{
+			"w":          m.W,
+			"h":          m.H,
+			"x":          m.X,
+			"y":          m.Y,
+			"updated_at": tools.GetCurrntTimeStr()}).Error; err != nil {
 		return err
 	}