k.zhang 1 anno fa
parent
commit
3492b1d2b4

+ 1 - 0
apis/shanghu/base.go

@@ -42,6 +42,7 @@ func InitShangHuRouter(engine *gin.RouterGroup) {
 		v1.POST("/merchant/pay.info/create", CreateMerchantPayInfo)         //创建支付信息
 		v1.POST("/merchant/pay.info/update", UpdateMerchantPayInfo)         //更新支付信息
 		v1.POST("/merchant/pay.info/get", GetMerchantPayInfo)               //获取支付信息
+		v1.POST("/merchant/recharge.url/get", GetRechargeUrl)               //获取充值url
 	}
 
 	v2 := engine.Group("v2")

+ 51 - 0
apis/shanghu/merchant.go

@@ -8,6 +8,8 @@ import (
 	"time"
 )
 
+const rechargeUrl = "http://lingyang.shisanmiao.com/shanghuka/WechatIMG5342.jpeg"
+
 func CreateMerchant(c *gin.Context) {
 	var inData models.CreateMerchantRequest
 	var sqlData shanghu.Merchant
@@ -45,6 +47,7 @@ func CreateMerchant(c *gin.Context) {
 	sqlData.Iphone = inData.Iphone
 	sqlData.NumberPlate = inData.NumberPlate
 	sqlData.OpenId = inData.OpenId
+	sqlData.RechargeUrl = inData.RechargeUrl
 
 	_, err = sqlData.Create()
 	if err != nil {
@@ -130,6 +133,7 @@ func UpdateMerchant(c *gin.Context) {
 	sqlData.IndustryCategory = inData.IndustryCategory
 	sqlData.Iphone = inData.Iphone
 	sqlData.NumberPlate = inData.NumberPlate
+	sqlData.RechargeUrl = inData.RechargeUrl
 
 	err = sqlData.UpdateMerchant()
 	if err != nil {
@@ -139,3 +143,50 @@ func UpdateMerchant(c *gin.Context) {
 
 	app.OK(c, nil, app.Success)
 }
+
+func GetRechargeUrl(c *gin.Context) {
+	var inData models.GetRechargeRequest
+	var outData models.GetRechargeReply
+	var sqlData shanghu.Merchant
+	var paySql shanghu.ClientPayTrans
+	var card shanghu.MerchantCard
+
+	err := c.ShouldBindJSON(&inData)
+	if err != nil {
+		app.Error(c, 400, err, err.Error())
+		return
+	}
+
+	//查询c端用户最近的交易记录 未查到直接展示默认url
+	paySql.ClientOpenID = inData.OpenId
+	payInfo, err := paySql.GetPayTransByOpenId()
+	if err != nil {
+		outData.RechargeUrl = rechargeUrl
+		app.OK(c, outData, app.Success)
+	}
+
+	//根据 card-id 查询商家id
+	card.ID = payInfo.MerchantCardID
+	cardInfo, err := card.GetMerchantCard()
+	if err != nil {
+		outData.RechargeUrl = rechargeUrl
+		app.OK(c, outData, app.Success)
+	}
+
+	//根据商家id查询配置
+	sqlData.OpenId = cardInfo.MerchantOpenID
+
+	merchant, err := sqlData.GetMerchant()
+	if err != nil {
+		outData.RechargeUrl = rechargeUrl
+		app.OK(c, outData, app.Success)
+	}
+	if merchant.RechargeUrl == "" {
+		outData.RechargeUrl = rechargeUrl
+	} else {
+		outData.RechargeUrl = merchant.RechargeUrl
+	}
+
+	app.OK(c, outData, app.Success)
+
+}

+ 10 - 0
apis/shanghu/models/merchant.go

@@ -14,6 +14,7 @@ type CreateMerchantRequest struct {
 	NumberPlate        string `json:"number_plate"`         // 门牌号
 	BusinessLicenseUrl string `json:"business_license_url"` // 营业执照 url
 	DoorHeaderUrl      string `json:"door_header_url"`      // 门头照 url
+	RechargeUrl        string `json:"recharge_url"`         // 充值url
 
 }
 
@@ -21,6 +22,14 @@ type GetMerchantRequest struct {
 	OpenId string `json:"open_id"` //openid
 }
 
+type GetRechargeRequest struct {
+	OpenId string `json:"open_id"` //openid
+}
+
+type GetRechargeReply struct {
+	RechargeUrl string `json:"recharge_url"` //recharge_url
+}
+
 type MerchantListRequest struct {
 	OpenId    string `json:"open_id"`
 	PageSize  int    `json:"page_size"`
@@ -41,6 +50,7 @@ type UpdateMerchantRequest struct {
 	NumberPlate        string `json:"number_plate"`         // 门牌号
 	BusinessLicenseUrl string `json:"business_license_url"` // 营业执照 url
 	DoorHeaderUrl      string `json:"door_header_url"`      // 门头照 url
+	RechargeUrl        string `json:"recharge_url"`         // 充值url
 }
 
 type CancelCardRequest struct {

+ 3 - 1
models/shanghu/merchant.go

@@ -20,6 +20,7 @@ type Merchant struct {
 	NumberPlate        string    `gorm:"column:number_plate;type:varchar(50)" json:"number_plate"`                  // 门牌号
 	BusinessLicenseUrl string    `gorm:"column:business_license_url;type:varchar(255)" json:"business_license_url"` // 营业执照 url
 	DoorHeaderUrl      string    `gorm:"column:door_header_url;type:varchar(255)" json:"door_header_url"`           // 门头照 url
+	RechargeUrl        string    `gorm:"column:recharge_url;type:varchar(255)" json:"recharge_url"`                 // 充值 url
 	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"`                      // 创建时间
@@ -87,7 +88,8 @@ func (m *Merchant) UpdateMerchant() error {
 			"address":              m.Address,
 			"number_plate":         m.NumberPlate,
 			"business_license_url": m.BusinessLicenseUrl,
-			"door_header_url":      m.DoorHeaderUrl}).Error; err != nil {
+			"door_header_url":      m.DoorHeaderUrl,
+			"recharge_url":         m.RechargeUrl}).Error; err != nil {
 		return err
 	}
 

+ 13 - 0
models/shanghu/pay.go

@@ -63,6 +63,19 @@ func (m *ClientPayTrans) GetPayTransByOpenid() (ClientPayTrans, error) {
 	return doc, nil
 }
 
+func (m *ClientPayTrans) GetPayTransByOpenId() (ClientPayTrans, error) {
+	var doc ClientPayTrans
+
+	table := orm.ShMysql.Table(m.TableName())
+	table = table.Where("client_open_id = ? and status = 2 ", m.ClientOpenID)
+
+	if err := table.Select("*").First(&doc).Error; err != nil {
+		return doc, err
+	}
+
+	return doc, nil
+}
+
 func (m *ClientPayTrans) GetPaySuccessTransByInvitationCode(pageSize int, pageIndex int) ([]ClientPayTrans, int, error) {
 	var doc []ClientPayTrans