This commit is contained in:
苏尹岚
2020-09-18 14:47:30 +08:00
parent 7a51e5675d
commit 7c082d1b67
5 changed files with 45 additions and 7 deletions

View File

@@ -362,6 +362,10 @@ func Pay4User(ctx *jxcontext.Context, thingID, payType int, vendorPayType string
return nil, err
}
discountCard := findDiscountCard(dicountCards, thingID)
flag, userMemberOrigin, err := checkMember(db, ctx.GetUserID(), discountCard)
if err != nil {
return nil, err
}
vendorOrderID = utils.Int64ToStr(GenOrderNo(ctx))
order = &model.GoodsOrder{
VendorOrderID: vendorOrderID,
@@ -381,7 +385,12 @@ func Pay4User(ctx *jxcontext.Context, thingID, payType int, vendorPayType string
IsPay: model.NO,
}
dao.WrapAddIDCULDEntity(userMember, ctx.GetUserName())
dao.CreateEntity(db, userMember)
if flag == 0 {
dao.CreateEntity(db, userMember)
} else if flag == 1 {
userMemberOrigin.EndAt = userMemberOrigin.EndAt.AddDate(0, 1, 0)
dao.UpdateEntity(db, userMemberOrigin, "EndAt")
}
}
default:
err = fmt.Errorf("支付方式:%d当前不支持", payType)
@@ -389,6 +398,25 @@ func Pay4User(ctx *jxcontext.Context, thingID, payType int, vendorPayType string
return orderPay, err
}
//flag
//0 正常购买
//1 续费
//-1 不能购买
func checkMember(db *dao.DaoDB, userID string, discountCard *model.DiscountCard) (flag int, userMember *model.UserMember, err error) {
userMembers, err := dao.GetUserMember(db, userID, "", model.MemberTypeDiscountCard, model.YES)
if len(userMembers) > 0 {
userMember = userMembers[0]
if userMember.ID < discountCard.ID {
return 0, userMember, err
} else if userMember.ID == discountCard.ID {
return 1, userMember, err
} else {
return -1, userMember, fmt.Errorf("已购买更高档次的会员,无法继续购买!")
}
}
return 0, userMember, err
}
func time2ShortTimeStr(t time.Time) string {
return t.Format("15:04")
}
@@ -497,7 +525,7 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) {
} else {
switch orderPay.PayType {
case model.PayTypeTL_DiscountCard:
userMembers, _ := dao.GetUserMember(dao.GetDB(), "", orderPay.VendorOrderID, model.MemberTypeDiscountCard)
userMembers, _ := dao.GetUserMember(dao.GetDB(), "", orderPay.VendorOrderID, model.MemberTypeDiscountCard, model.NO)
if len(userMembers) > 0 {
userMembers[0].IsPay = model.YES
dao.UpdateEntity(dao.GetDB(), userMembers[0], "IsPay")
@@ -930,7 +958,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
} else {
tuserID = userID
}
userMembers, _ := dao.GetUserMember(db, tuserID, "", model.MemberTypeDiscountCard)
userMembers, _ := dao.GetUserMember(db, tuserID, "", model.MemberTypeDiscountCard, model.YES)
if len(userMembers) > 0 {
if configList, err := dao.QueryConfigs(db, "会员折扣卡", model.ConfigTypeDiscountCard, ""); err == nil {
jxutils.Strings2Objs(configList[0].Value, &dicountCards)
@@ -941,7 +969,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64
outJxOrder.ActualPayPrice = outJxOrder.OrderPrice + outJxOrder.FreightPrice
} else if jxOrder.OrderType == model.OrderTypeDefendPrice {
outJxOrder.Skus[0].DefendPrice = jxOrder.Skus[0].DefendPrice
} else {
outJxOrder.TotalPrice = outJxOrder.OrderPrice + outJxOrder.FreightPrice
outJxOrder.ActualPayPrice = outJxOrder.TotalPrice