diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index 635f6f3cc..fad28eb44 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -787,7 +787,7 @@ func GetSelfInfo(ctx *jxcontext.Context) (getSelfInfoResult *GetSelfInfoResult, tokenInfo, err := auth2.GetTokenInfo(ctx.GetToken()) if err == nil { if user, err2 := dao.GetUserByID(dao.GetDB(), "user_id", tokenInfo.GetID()); err2 == nil { - if userMembers, err3 := dao.GetUserMember(dao.GetDB(), user.UserID, ""); err3 == nil { + if userMembers, err3 := dao.GetUserMember(dao.GetDB(), user.UserID, "", 0); err3 == nil { getSelfInfoResult = &GetSelfInfoResult{ User: user, UserMembers: userMembers, diff --git a/business/model/dao/dao_user.go b/business/model/dao/dao_user.go index 3243b61d5..231f0825a 100644 --- a/business/model/dao/dao_user.go +++ b/business/model/dao/dao_user.go @@ -259,7 +259,7 @@ func GetUserOrderSMS(db *DaoDB, mobile, name string) (userOrderSms *model.UserOr return userOrderSms, err } -func GetUserMember(db *DaoDB, userID, vendorOrderID string) (userMembers []*model.UserMember, err error) { +func GetUserMember(db *DaoDB, userID, vendorOrderID string, memberType int) (userMembers []*model.UserMember, err error) { sql := ` SELECT * FROM user_member @@ -274,5 +274,9 @@ func GetUserMember(db *DaoDB, userID, vendorOrderID string) (userMembers []*mode sql += " AND vendor_order_id = ?" sqlParams = append(sqlParams, vendorOrderID) } + if memberType != 0 { + sql += " AND member_type = ?" + sqlParams = append(sqlParams, memberType) + } return userMembers, err } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1d177bd16..e2bf07761 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -497,7 +497,7 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) { } else { switch orderPay.PayType { case model.PayTypeTL_DiscountCard: - userMembers, _ := dao.GetUserMember(dao.GetDB(), "", orderPay.VendorOrderID) + userMembers, _ := dao.GetUserMember(dao.GetDB(), "", orderPay.VendorOrderID, model.MemberTypeDiscountCard) if len(userMembers) > 0 { userMembers[0].IsPay = model.YES dao.UpdateEntity(dao.GetDB(), userMembers[0], "IsPay") @@ -917,19 +917,29 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.FreightPrice = 0 } - //判断用户是否是会员 - // var tuserID string - // if userID == "" { - // tuserID = deliveryAddress.UserID - // } else { - // tuserID = userID - // } - // userMembers, err := dao.GetUserMember(db, tuserID, "") - // if err == nil { - - // } + // 判断用户是否是会员 + var ( + tuserID string + dicountCards []*model.DiscountCard + ) + if userID == "" { + tuserID = deliveryAddress.UserID + } else { + tuserID = userID + } + userMembers, _ := dao.GetUserMember(db, tuserID, "", model.MemberTypeDiscountCard) + if len(userMembers) > 0 { + if configList, err := dao.QueryConfigs(db, "会员折扣卡", model.ConfigTypeDiscountCard, ""); err == nil { + jxutils.Strings2Objs(configList[0].Value, &dicountCards) + discountCard := findDiscountCard(dicountCards, userMembers[0].MemberTypeID) + outJxOrder.OrderPrice = outJxOrder.OrderPrice * int64(discountCard.PicePercentage) / 100 + } + } } if err == nil { + if jxOrder.OrderType == model.OrderTypeNormal { + + } outJxOrder.TotalPrice = outJxOrder.OrderPrice + outJxOrder.FreightPrice outJxOrder.ActualPayPrice = outJxOrder.TotalPrice if jxOrder.OrderType == model.OrderTypeDefendPrice {