k.zhang 1 gadu atpakaļ
vecāks
revīzija
6663565552

+ 1 - 0
apis/shanghu/base.go

@@ -31,5 +31,6 @@ func InitShangHuRouter(engine *gin.RouterGroup) {
 		v1.POST("/upload/picture", UploadPicture)                           //上传图片
 		v1.POST("/client/pay/list", GetPayTransList)                        //交易列表
 		v1.POST("/verification/code", GetVerificationCode)                  //核销码
+		v1.POST("/merchant/sale/list", GetMerchantPayTransList)             //销售记录
 	}
 }

+ 51 - 0
apis/shanghu/client.trans.go

@@ -8,6 +8,7 @@ import (
 	"errors"
 	"fmt"
 	"github.com/gin-gonic/gin"
+	"github.com/shopspring/decimal"
 	"time"
 )
 
@@ -79,3 +80,53 @@ func GetVerificationCode(c *gin.Context) {
 
 	app.OK(c, qr, app.Success)
 }
+
+func GetMerchantPayTransList(c *gin.Context) {
+	var inData models.MerchantTransRequest
+	var sqlMerchant shanghu.MerchantCard
+	var sqlPay shanghu.ClientPayTrans
+	var outData []models.MerchantTransReply
+	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
+	}
+
+	sqlMerchant.MerchantOpenID = inData.MerchantOpenId
+	merchantData, err := sqlMerchant.GetMerchantByOpenId()
+	if err != nil {
+		app.Error(c, 500, err, err.Error())
+		return
+	}
+	mer := make(map[int64]shanghu.MerchantCard, 0)
+	var merIdList []int64
+	for i := 0; i < len(merchantData); i++ {
+		merIdList = append(merIdList, merchantData[i].ID)
+		fmt.Println(merchantData[i])
+		mer[merchantData[i].ID] = merchantData[i]
+	}
+
+	payInfo, count, err := sqlPay.GetPayTransSuccessByMerchantID(pageSize, pageIndex, merIdList)
+	for i := 0; i < len(payInfo); i++ {
+		data := models.MerchantTransReply{}
+		data.TransId = payInfo[i].ID
+		data.MerchantCardTime = tools.TimeToStr(mer[payInfo[i].MerchantCardID].MerchantCardTime)
+		data.MerchantCardName = mer[payInfo[i].MerchantCardID].MerchantCardName
+		data.TotalAmount = payInfo[i].Amount
+		data.SaleAmount = payInfo[i].Amount.Mul(decimal.NewFromInt(mer[payInfo[i].MerchantCardID].RebateRate)).Div(decimal.NewFromInt(100)).Round(2)
+		data.MerchantAmount = data.TotalAmount.Sub(data.SaleAmount)
+		data.MerchantCardID = payInfo[i].MerchantCardID
+		data.PayTime = payInfo[i].PayTime.Format(time.DateTime)
+		outData = append(outData, data)
+	}
+	app.PageOK(c, outData, count, pageIndex, pageSize, app.Success)
+
+}

+ 17 - 0
apis/shanghu/models/client.trans.go

@@ -27,3 +27,20 @@ type VerificationCodeRequest struct {
 type VerificationCodeReply struct {
 	QR string `json:"qr"`
 }
+
+type MerchantTransRequest struct {
+	MerchantOpenId string `json:"open_id"`
+	PageSize       int    `json:"page_size"`
+	PageIndex      int    `json:"page_index"`
+}
+
+type MerchantTransReply struct {
+	MerchantCardID   int64           `json:"merchant_card_id"`   // 商户卡id
+	TotalAmount      decimal.Decimal `json:"amount"`             // 交易金额
+	MerchantAmount   decimal.Decimal `json:"merchant_amount"`    // 商家获得金额
+	SaleAmount       decimal.Decimal `json:"sale_amount"`        //分销佣金
+	PayTime          string          `json:"pay_time"`           // 支付时间
+	MerchantCardName string          `json:"merchant_card_name"` // 商户卡名称
+	MerchantCardTime string          `json:"merchant_card_time"` // 商户卡有效期
+	TransId          int64           `json:"trans_id"`           // 交易id
+}

+ 14 - 0
models/shanghu/merchant_card.go

@@ -82,6 +82,20 @@ func (m *MerchantCard) GetOpenIdList(pageSize int, pageIndex int, listType int)
 	return doc, count, nil
 }
 
+// list 接口使用
+func (m *MerchantCard) GetMerchantByOpenId() ([]MerchantCard, error) {
+	var doc []MerchantCard
+
+	table := orm.ShMysql.Table(m.TableName())
+
+	table = table.Where("merchant_open_id = ?  ", m.MerchantOpenID)
+	err := table.Select("id,merchant_card_name,merchant_card_time,rebate_rate").Find(&doc).Error
+	if err != nil {
+		return nil, err
+	}
+	return doc, nil
+}
+
 // list 接口使用
 func (m *MerchantCard) ClientGetOpenIdList(pageSize int, pageIndex int, listType int) ([]MerchantCard, int, error) {
 	var doc []MerchantCard

+ 15 - 0
models/shanghu/pay.go

@@ -142,6 +142,21 @@ func (m *ClientPayTrans) GetPayTransSuccessByOpenID(pageSize int, pageIndex int)
 
 }
 
+func (m *ClientPayTrans) GetPayTransSuccessByMerchantID(pageSize int, pageIndex int, merchantId []int64) ([]ClientPayTrans, int, error) {
+	var doc []ClientPayTrans
+
+	table := orm.ShMysql.Table(m.TableName())
+
+	table = table.Where("merchant_card_id in (?)  and status = 2", merchantId)
+	var count int
+	if err := table.Select("*").Order("id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil {
+		return nil, 0, err
+	}
+	table.Count(&count)
+	return doc, count, nil
+
+}
+
 func (m *ClientPayTrans) SettleAdd(merchantAmount, clientAmount decimal.Decimal, merchantOpenId, clientOpenId string) error {
 	// 使用事务 添加
 	var err error