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

@@ -787,7 +787,7 @@ func GetSelfInfo(ctx *jxcontext.Context) (getSelfInfoResult *GetSelfInfoResult,
tokenInfo, err := auth2.GetTokenInfo(ctx.GetToken()) tokenInfo, err := auth2.GetTokenInfo(ctx.GetToken())
if err == nil { if err == nil {
if user, err2 := dao.GetUserByID(dao.GetDB(), "user_id", tokenInfo.GetID()); err2 == nil { if user, err2 := dao.GetUserByID(dao.GetDB(), "user_id", tokenInfo.GetID()); err2 == nil {
if userMembers, err3 := dao.GetUserMember(dao.GetDB(), user.UserID, "", 0); err3 == nil { if userMembers, err3 := dao.GetUserMember(dao.GetDB(), user.UserID, "", 0, model.YES); err3 == nil {
getSelfInfoResult = &GetSelfInfoResult{ getSelfInfoResult = &GetSelfInfoResult{
User: user, User: user,
UserMembers: userMembers, UserMembers: userMembers,
@@ -1140,3 +1140,7 @@ func CleanUserOrderSMSMark(ctx *jxcontext.Context) (err error) {
} }
return err return err
} }
func RefreshUserMemberStatus(ctx *jxcontext.Context) (err error) {
return err
}

View File

@@ -267,6 +267,8 @@ func Init() {
ScheduleTimerFunc("ChangeJxPriceByDiscountAct", func() { ScheduleTimerFunc("ChangeJxPriceByDiscountAct", func() {
act.ChangeJxPriceByDiscountAct(jxcontext.AdminCtx) act.ChangeJxPriceByDiscountAct(jxcontext.AdminCtx)
}, discountActJxList) }, discountActJxList)
ScheduleTimerFunc("RefreshUserMemberStatus", func() {
}, updateActStatusTimeList)
} }
ScheduleTimerFunc("AutoSaleStoreSku", func() { ScheduleTimerFunc("AutoSaleStoreSku", func() {
cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false) cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false)

View File

@@ -4,6 +4,7 @@ import (
"errors" "errors"
"net/http" "net/http"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/auth2" "git.rosy.net.cn/jx-callback/business/auth2"
"git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/model/dao"
@@ -56,7 +57,7 @@ func New(notUsed interface{}, token string, w http.ResponseWriter, r *http.Reque
authInfo, err2 := auth2.GetTokenInfo(token) authInfo, err2 := auth2.GetTokenInfo(token)
if err = err2; err == nil { if err = err2; err == nil {
ctx.userInfo = authInfo ctx.userInfo = authInfo
// globals.SugarLogger.Debugf("jxcontext New, V2 authInfo:%s", utils.Format4Output(authInfo, true)) globals.SugarLogger.Debugf("jxcontext New, V2 authInfo:%s", utils.Format4Output(authInfo, true))
if authInfo.TokenType != auth2.TokenTypeNormal { if authInfo.TokenType != auth2.TokenTypeNormal {
err = errors.New("需要正式TOKEN") err = errors.New("需要正式TOKEN")
} }

View File

@@ -259,7 +259,7 @@ func GetUserOrderSMS(db *DaoDB, mobile, name string) (userOrderSms *model.UserOr
return userOrderSms, err return userOrderSms, err
} }
func GetUserMember(db *DaoDB, userID, vendorOrderID string, memberType int) (userMembers []*model.UserMember, err error) { func GetUserMember(db *DaoDB, userID, vendorOrderID string, memberType, isPay int) (userMembers []*model.UserMember, err error) {
sql := ` sql := `
SELECT * SELECT *
FROM user_member FROM user_member
@@ -278,5 +278,9 @@ func GetUserMember(db *DaoDB, userID, vendorOrderID string, memberType int) (use
sql += " AND member_type = ?" sql += " AND member_type = ?"
sqlParams = append(sqlParams, memberType) sqlParams = append(sqlParams, memberType)
} }
if isPay != 0 {
sql += " AND is_pay = ?"
sqlParams = append(sqlParams, isPay)
}
return userMembers, err return userMembers, err
} }

View File

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