package shanghu
import (
"duoduo/apis/shanghu/models"
"duoduo/models/shanghu"
"duoduo/tools/app"
"github.com/gin-gonic/gin"
"strconv"
"time"
)
func GetClientRechargeLog(c *gin.Context) {
var inData models.MerchantRechargeClientAccountLogRequest
var sqlData shanghu.MerchantRechargeClientAccountLog
var outDataList []models.MerchantRechargeClientAccountLogReply
var countData int
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
}
if inData.Type == 1 { //充值核销
sqlData.ClientOpenID = inData.ClientOpenId
cashOutList, count, err := sqlData.MerchantRechargeClientAccountLogListByClient(pageSize, pageIndex)
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
countData = count
for _, v := range cashOutList {
var merchant shanghu.Merchant
var user shanghu.MerchantUser
var outData models.MerchantRechargeClientAccountLogReply
merchant.OpenId = v.MerchantOpenID
merchantData, err := merchant.GetMerchant()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
user.OpenID = v.Operator
operator, err := user.GetUserInfo()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
outData.MerchantOpenName = merchantData.MerchantName
outData.CancelAmount = v.Amount.String()
outData.CancelAmountAfter = v.AmountAfter.String()
outData.CancelAmountPre = v.AmountPre.String()
outData.Operator = operator.Code
outData.CancelTime = v.CreatedAt.Format(time.DateTime)
outDataList = append(outDataList, outData)
}
} else if inData.Type == 2 { //卡券核销
var recharge shanghu.RechargeCancelLog
recharge.ClientOpenID = inData.ClientOpenId
cashOutList, count, err := recharge.RechargeCancelLogByClientList(pageSize, pageIndex)
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
countData = count
for _, v := range cashOutList {
var merchant shanghu.Merchant
var user shanghu.MerchantUser
var outData models.MerchantRechargeClientAccountLogReply
merchant.OpenId = v.MerchantOpenID
merchantData, err := merchant.GetMerchant()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
user.OpenID = v.Operator
operator, err := user.GetUserInfo()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
outData.MerchantOpenName = merchantData.MerchantName
outData.CancelAmount = strconv.FormatInt(int64(v.Quantity), 10)
outData.CancelAmountAfter = strconv.FormatInt(int64(v.QuantityAfter), 10)
outData.CancelAmountPre = strconv.FormatInt(int64(v.QuantityPre), 10)
outData.Operator = operator.Code
outData.CancelTime = v.CreatedAt.Format(time.DateTime)
outDataList = append(outDataList, outData)
}
}
app.PageOK(c, outDataList, countData, pageIndex, pageSize, app.Success)
}
func GetMerchantRechargeLog(c *gin.Context) {
var inData models.MerchantRechargeAccountLogRequest
var sqlData shanghu.MerchantRechargeClientAccountLog
var outDataList []models.MerchantRechargeAccountLogReply
var countData int
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
}
if inData.Type == 1 { //充值核销
sqlData.MerchantOpenID = inData.MerchantOpenId
cashOutList, count, err := sqlData.MerchantRechargeAccountLogList(pageSize, pageIndex)
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
countData = count
for _, v := range cashOutList {
var client shanghu.MerchantClientUser
var user shanghu.MerchantUser
//var merchant shanghu.Merchant
var outData models.MerchantRechargeAccountLogReply
client.ClientOpenID = v.ClientOpenID
clientInfo, err := client.GetUserInfo()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
user.OpenID = v.Operator
operator, err := user.GetUserInfo()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
outData.ClientCode = clientInfo.Code
outData.CancelAmount = v.Amount.String()
outData.CancelAmountAfter = v.AmountAfter.String()
outData.CancelAmountPre = v.AmountPre.String()
outData.Operator = operator.Code
outData.CancelTime = v.CreatedAt.Format(time.DateTime)
outDataList = append(outDataList, outData)
}
} else if inData.Type == 2 { //卡券核销
var recharge shanghu.RechargeCancelLog
recharge.MerchantOpenID = inData.MerchantOpenId
cashOutList, count, err := recharge.RechargeCancelLogByMerchantList(pageSize, pageIndex)
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
countData = count
for _, v := range cashOutList {
var client shanghu.MerchantClientUser
var user shanghu.MerchantUser
//var merchant shanghu.Merchant
var outData models.MerchantRechargeAccountLogReply
client.ClientOpenID = v.ClientOpenID
clientData, err := client.GetUserInfo()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
user.OpenID = v.Operator
operator, err := user.GetUserInfo()
if err != nil {
app.Error(c, 500, err, err.Error())
return
}
outData.ClientCode = clientData.Code
outData.CancelAmount = strconv.FormatInt(int64(v.Quantity), 10)
outData.CancelAmountAfter = strconv.FormatInt(int64(v.QuantityAfter), 10)
outData.CancelAmountPre = strconv.FormatInt(int64(v.QuantityPre), 10)
outData.Operator = operator.Code
outData.CancelTime = v.CreatedAt.Format(time.DateTime)
outDataList = append(outDataList, outData)
}
}
app.PageOK(c, outDataList, countData, pageIndex, pageSize, app.Success)
}