This commit is contained in:
lwl0608 2024-06-14 10:20:08 +08:00
parent 30f18cf601
commit 064300871b
5 changed files with 41 additions and 23 deletions

View File

@ -182,8 +182,9 @@ type ZoneRefundPageReq struct {
}
type ZoneRefundPageData struct {
Price int64 `json:"price"` // 退款价格,单位:分
Name string `json:"name"` // 退款商品名
Price int64 `json:"price"` // 退款价格,单位:分
CoinPrice int64 `json:"coin_price"` // 推荐价格,单位:金币
Name string `json:"name"` // 退款商品名
}
type ZoneRefundPageResp struct {

View File

@ -63,7 +63,7 @@ func ZoneRefundPage(ctx *gin.Context) {
ReplyErrCodeMsg(ctx, errcode.ErrCodeBadParam)
return
}
name, price, ec, err := service.DefaultService.ZoneGetRefundPage(ctx, req)
name, price, payType, ec, err := service.DefaultService.ZoneGetRefundPage(ctx, req)
if ec != errcode.ErrCodeVasSrvOk {
logger.Error("ZoneGetRefundPage fail, req: %v, ec: %v", util.ToJson(req), ec)
if ec == errcode.ErrCodeVasSrvFail && err != nil {
@ -74,8 +74,12 @@ func ZoneRefundPage(ctx *gin.Context) {
return
}
data := &vasproto.ZoneRefundPageData{
Price: price,
Name: name,
Name: name,
}
if payType == vasproto.PayTypeCoin {
data.CoinPrice = price
} else {
data.Price = price
}
ReplyOk(ctx, data)
}

View File

@ -1509,10 +1509,12 @@ func (v *Vas) PayCallback(ctx *gin.Context, p *vasproto.PayCallbackParamIn) erro
ch.SType = goproto.Int32(dbstruct.CHSTypeChargeZoneSuperfanship)
ch.Change = goproto.Int64(order.GetPayAmount())
}
err = v.store.CreateConsumeHistory(ctx, tx, ch)
if err != nil {
logger.Error("CreateConsumeHistory fail, ch: %v, err: %v", util.ToJson(ch), err)
return err
if !(order.GetPayType() == vasproto.PayTypeCoin && product.Id == dbstruct.ProductIdMembership) {
err = v.store.CreateConsumeHistory(ctx, tx, ch)
if err != nil {
logger.Error("CreateConsumeHistory fail, ch: %v, err: %v", util.ToJson(ch), err)
return err
}
}
// 更新状态
@ -2243,7 +2245,11 @@ func (v *Vas) UnlockMembership(ctx *gin.Context, tx *sqlx.Tx, mid int64, product
}
// 增加空间消费
_err := v.IncZoneConsume(ctx, tx, zid, mid, order.GetUid(), order.GetPayAmount(), orderId, order.GetProductId())
consume := order.GetPayAmount()
if order.GetPayType() == vasproto.PayTypeCoin {
consume = consume * 10
}
_err := v.IncZoneConsume(ctx, tx, zid, mid, order.GetUid(), consume, orderId, order.GetProductId())
if _err != nil {
logger.Error("IncZoneConsume fail, mid: %v, orderId: %v, err: %v", mid, orderId, err)
}

View File

@ -277,7 +277,6 @@ func (v *Vas) UnlockZoneMoment(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct.Or
var (
orderId = order.GetID()
price = order.GetPayAmount()
mid = order.GetMid()
zid = order.GetZid()
momentId = order.GetMomentId()
@ -313,7 +312,11 @@ func (v *Vas) UnlockZoneMoment(ctx *gin.Context, tx *sqlx.Tx, order *dbstruct.Or
}
// 增加空间消费
_err := v.IncZoneConsume(ctx, tx, zid, mid, 0, price, orderId, order.GetProductId())
consume := order.GetPayAmount()
if order.GetPayType() == vasproto.PayTypeCoin {
consume = consume * 10
}
_err := v.IncZoneConsume(ctx, tx, zid, mid, 0, consume, orderId, order.GetProductId())
if _err != nil {
logger.Error("IncZoneConsume fail, mid: %v, zid: %v, mmid: %v, orderId: %v, err: %v", mid, zid, momentId, orderId, err)
}
@ -407,7 +410,6 @@ func (v *Vas) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, order *dbstr
var (
orderId = order.GetID()
price = order.GetPayAmount()
mid = order.GetMid()
zid = order.GetZid()
)
@ -449,7 +451,11 @@ func (v *Vas) UnlockZoneSuperfanship(ctx *gin.Context, tx *sqlx.Tx, order *dbstr
}
// 增加空间消费
_err := v.IncZoneConsume(ctx, tx, zid, mid, 0, price, orderId, order.GetProductId())
consume := order.GetPayAmount()
if order.GetPayType() == vasproto.PayTypeCoin {
consume = consume * 10
}
_err := v.IncZoneConsume(ctx, tx, zid, mid, 0, consume, orderId, order.GetProductId())
if _err != nil {
logger.Error("IncZoneConsume fail, mid: %v, zid: %v, orderId: %v, err: %v", mid, zid, orderId, err)
}
@ -881,36 +887,36 @@ func (v *Vas) GetZoneMomentUnlockMapByMidMomentIds(ctx *gin.Context, mid int64,
}
// 空间退款页面
func (v *Vas) ZoneGetRefundPage(ctx *gin.Context, req *vasproto.ZoneRefundPageReq) (string, int64, error) {
func (v *Vas) ZoneGetRefundPage(ctx *gin.Context, req *vasproto.ZoneRefundPageReq) (string, int64, string, error) {
zv, err := v.store.GetZoneUnlock(ctx, nil, req.Mid, req.Zid)
if err == sql.ErrNoRows || zv == nil {
logger.Error("no zone unlock info, mid: %v, zid: %v", req.Mid, req.Zid)
return "", 0, fmt.Errorf("没有解锁信息")
return "", 0, "", fmt.Errorf("没有解锁信息")
}
if err != nil {
logger.Error("get zone unlock info fail, mid: %v, zid: %v, err: %v", req.Mid, req.Zid, err)
return "", 0, err
return "", 0, "", err
}
// 判断
if zv.GetAdmissionUntil() == 0 || len(zv.GetAdmissionOrderId()) <= 0 {
err = fmt.Errorf("无空间解锁记录")
logger.Error("no zone unlock info, mid: %v, zid: %v", req.Mid, req.Zid)
return "", 0, err
return "", 0, "", err
}
// 获取订单
order, err := v.store.GetOrderById(ctx, nil, zv.GetAdmissionOrderId())
if err == sql.ErrNoRows || order == nil {
logger.Error("no zone admission order info, mid: %v, zid: %v, orderId: %v", req.Mid, req.Zid, zv.GetAdmissionOrderId())
return "", 0, fmt.Errorf("没有相关订单")
return "", 0, "", fmt.Errorf("没有相关订单")
}
if err != nil {
logger.Error("get zone admission order info fail, mid: %v, zid: %v, orderId: %v, err: %v", req.Mid, req.Zid, zv.GetAdmissionOrderId(), err)
return "", 0, err
return "", 0, "", err
}
return "空间成员权限", order.GetPayAmount(), nil
return "空间成员权限", order.GetPayAmount(), order.GetPayType(), nil
}
// 空间退款

View File

@ -325,6 +325,7 @@ func (s *Service) chListCharge(ctx *gin.Context, chList []*dbstruct.ConsumeHisto
newChange += oldChange[:1]
}
newChange += fmt.Sprintf("%d金币", chDB.GetChange())
item.Change = newChange
}
list = append(list, item)
@ -907,8 +908,8 @@ func (s *Service) ZoneGetCashier(ctx *gin.Context, req *vasproto.ZoneGetCashierR
return
}
func (s *Service) ZoneGetRefundPage(ctx *gin.Context, req *vasproto.ZoneRefundPageReq) (name string, price int64, ec errcode.ErrCode, err error) {
name, price, err = _DefaultVas.ZoneGetRefundPage(ctx, req)
func (s *Service) ZoneGetRefundPage(ctx *gin.Context, req *vasproto.ZoneRefundPageReq) (name string, price int64, payType string, ec errcode.ErrCode, err error) {
name, price, payType, err = _DefaultVas.ZoneGetRefundPage(ctx, req)
ec, err = errs.DealVasErr(err)
if err != nil {
logger.Error("ZoneGetRefundPage fail, err: %v", err)