浏览代码

Merge branch 'yun-dev' of k.zhang/duoduo into yun-test

k.zhang 8 月之前
父节点
当前提交
96ec524400

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

@@ -76,12 +76,33 @@ func CreateMerchantCard(c *gin.Context) {
 	sqlData.UseRule = inData.UseRule
 	sqlData.MerchantCardName = inData.MerchantCardName
 
-	sqlData.CancelNumber, err = strconv.Atoi(inData.CancelNumber)
-	if err != nil {
-		app.Error(c, 400, err, err.Error())
-		return
+	if inData.CancelType == shanghu.CancelTypeOne { //统计商品数量
+		var cancelNumber int
+		for _, v := range inData.CardProjectData { //查询商品数量
+			var merchantCardProject shanghu.MerchantCardProject
+			merchantCardProject.ID = v
+			projectData, err := merchantCardProject.GetMerchantCardProject()
+			if err != nil {
+				app.Error(c, 400, err, err.Error())
+				return
+			}
+			if projectData.CancelNumber <= 0 {
+				app.Error(c, 400, errors.New("商品配置核销数量不能为0"), "商品配置核销数量不能为0")
+				return
+			}
+			cancelNumber = cancelNumber + projectData.CancelNumber
+		}
+		sqlData.CancelNumber = cancelNumber
+	} else {
+		sqlData.CancelNumber, err = strconv.Atoi(inData.CancelNumber)
+		if err != nil {
+			app.Error(c, 400, err, err.Error())
+			return
+		}
 	}
+
 	sqlData.BackgroundImage = inData.BackgroundImage
+	sqlData.CancelType = inData.CancelType
 
 	_, err = sqlData.Create()
 	if err != nil {
@@ -853,6 +874,11 @@ func CancelNumberV2(c *gin.Context) {
 	//	return
 	//}
 
+	//单次核销
+	if merchantInfo.CancelType == shanghu.CancelTypeOne {
+
+	}
+
 	for i := 0; i < inData.Number; i++ {
 		log.MerchantID = qrMessage.MerchantId
 		log.ClientOpenID = qrMessage.ClientOpenId

+ 1 - 0
apis/shanghu/merchant.card.project.go

@@ -24,6 +24,7 @@ func CreateMerchantCardProject(c *gin.Context) {
 	sqlData.ProjectUnitPrice = inData.ProjectUnitPrice
 	sqlData.ProjectUrl = inData.ProjectUrl
 	sqlData.MerchantOpenID = inData.MerchantOpenID
+	sqlData.CancelNumber = inData.CancelNumber
 	sqlData.UpdatedAt = time.Now()
 	sqlData.CreatedAt = time.Now()
 

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

@@ -21,6 +21,7 @@ type CreateMerchantCardRequest struct {
 	RebateRate        string  `json:"rebate_rate"`         // 佣金比例
 	CancelNumber      string  `json:"cancel_number"`       //核销次数
 	BackgroundImage   string  `json:"background_image"`    //背景图
+	CancelType        int     `json:"cancel_type"`         //1-单品核销
 }
 
 type GetMerchantCardRequest struct {

+ 2 - 1
apis/shanghu/models/card.project.go

@@ -5,7 +5,8 @@ type CreateMerchantCardProjectRequest struct {
 	ProjectUnitPrice string `json:"project_unit_price"` // 单价
 	ProjectUnit      string `json:"project_unit"`       // 产品单位
 	ProjectUrl       string `json:"project_url"`        // 图片
-	ProjectName      string `json:"project_name"`
+	ProjectName      string `json:"project_name"`       //
+	CancelNumber     int    `json:"cancel_number"`      //核销数量
 }
 
 type GetMerchantCardProjectRequest struct {

+ 3 - 1
apis/shanghu/models/merchant.go

@@ -59,7 +59,9 @@ type CancelCardRequest struct {
 type CancelCardV2Request struct {
 	MerchantOpenId string `json:"merchant_open_id"`
 	QRMessage      string `json:"qr_message"`
-	Number         int    `json:"number"`
+	Number         int    `json:"number"` //核销次数
+}
+type CancelCard struct {
 }
 
 type RechargeCancelRequest struct {

+ 5 - 0
models/shanghu/merchant_card.go

@@ -6,6 +6,10 @@ import (
 	"time"
 )
 
+const (
+	CancelTypeOne = 1 //单品核销
+)
+
 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"`      // 商户卡名称
@@ -32,6 +36,7 @@ type MerchantCard struct {
 	X                 string    `gorm:"column:x;type:varchar(255);default:null" json:"x"`                           // x
 	Y                 string    `gorm:"column:y;type:varchar(255);default:null" json:"y"`                           // y
 	CardTotalPrice    string    `gorm:"column:card_total_price;type:decimal(10,2)" json:"card_total_price"`         // 总价
+	CancelType        int       `gorm:"column:cancel_type;type:int(11);default:0" json:"cancel_type"`               // 核销类型 1-单次核销
 }
 
 func (m *MerchantCard) TableName() string {

+ 1 - 0
models/shanghu/merchant_card_project.go

@@ -12,6 +12,7 @@ type MerchantCardProject struct {
 	ProjectUnit      string    `gorm:"column:project_unit;type:varchar(255)" json:"project_unit"`                  // 产品单位
 	ProjectUrl       string    `gorm:"column:project_url;type:varchar(255)" json:"project_url"`                    // 图片
 	ProjectName      string    `gorm:"column:project_name;type:varchar(100)" json:"project_name"`                  // 产品名
+	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"`                       // 创建时间