This commit is contained in:
苏尹岚
2020-09-04 16:11:12 +08:00
parent be973b05e7
commit 1929b24bed
3 changed files with 57 additions and 17 deletions

View File

@@ -28,6 +28,12 @@ var (
}
)
type DiscountCard struct {
ID int `orm:"column(id)" json:"id"`
PicePercentage int `json:"pricePercentage"`
Price int `json:"price"`
}
type User struct {
ModelIDCULD
UserID string `orm:"size(48);column(user_id)" json:"userID" compact:"userID"` // 内部唯一标识
@@ -203,6 +209,7 @@ type UserMember struct {
MemberType int `json:"memberType"` //会员类型, 1为折扣卡
MemberTypeID int `orm:"column(member_type_id)" json:"memberTypeID"` //会员类型ID折扣卡的话代表几档
EndAt time.Time `json:"endAt"` //会员过期时间
IsPay int `json:"isPay"`
}
func (*UserMember) TableUnique() [][]string {

View File

@@ -322,7 +322,7 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType
err = dao.CreateEntity(dao.GetDB(), orderPay)
}
case model.PayTypeTL:
if orderPay, err = pay4OrderByTL(ctx, order, vendorPayType); err == nil && orderPay != nil {
if orderPay, err = pay4OrderByTL(ctx, order, payType, vendorPayType); err == nil && orderPay != nil {
dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName())
err = dao.CreateEntity(dao.GetDB(), orderPay)
}
@@ -339,7 +339,7 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType
ActualPayPrice: priceDefendOrders[0].ActualPayPrice,
VendorID: model.VendorIDJX,
}
if orderPay, err = pay4OrderByTL(ctx, order2, vendorPayType); err == nil && orderPay != nil {
if orderPay, err = pay4OrderByTL(ctx, order2, payType, vendorPayType); err == nil && orderPay != nil {
dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName())
err = dao.CreateEntity(dao.GetDB(), orderPay)
}
@@ -349,15 +349,34 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType
func Pay4User(ctx *jxcontext.Context, thingID, payType int, vendorPayType string) (orderPay *model.OrderPay, err error) {
var (
db = dao.GetDB()
db = dao.GetDB()
order *model.GoodsOrder
dicountCards []*model.DiscountCard
vendorOrderID string
)
switch payType {
case model.PayTypeTL_DiscountCard:
dao.QueryConfigs(db, "会员折扣卡", model.ConfigTypeDiscountCard, "")
// if orderPay, err = pay4UserByTL(ctx, thingID, vendorPayType); err == nil && orderPay != nil {
// dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName())
// err = dao.CreateEntity(dao.GetDB(), orderPay)
// }
if configList, err := dao.QueryConfigs(db, "会员折扣卡", model.ConfigTypeDiscountCard, ""); err == nil {
err = jxutils.Strings2Objs(configList[0], &dicountCards)
discountCard := findDiscountCard(dicountCards, thingID)
vendorOrderID = utils.Int64ToStr(GenOrderNo(ctx))
order = &model.GoodsOrder{
VendorOrderID: vendorOrderID,
ActualPayPrice: int64(discountCard.Price),
VendorID: model.VendorIDJX,
}
if orderPay, err = pay4OrderByTL(ctx, order, payType, vendorPayType); err == nil && orderPay != nil {
dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName())
err = dao.CreateEntity(dao.GetDB(), orderPay)
}
userMember := &model.UserMember{
VendorOrderID: vendorOrderID,
UserID: ctx.GetUserID(),
MemberType: ,
}
dao.WrapAddIDCULDEntity(userMember, ctx.GetUserName())
}
default:
err = fmt.Errorf("支付方式:%d当前不支持", payType)
}
@@ -368,6 +387,15 @@ func time2ShortTimeStr(t time.Time) string {
return t.Format("15:04")
}
func findDiscountCard(dicountCards []*model.DiscountCard, thingID int) (dicountCard *model.DiscountCard) {
for _, v := range dicountCards {
if v.ID == thingID {
return v
}
}
return dicountCard
}
func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerList []*DeliveryDayTimeInfo, err error) {
db := dao.GetDB()
storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX)
@@ -461,11 +489,16 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) {
// }
}
} else {
priceDefendOrders, _ := dao.GetPriceDefendOrder(dao.GetDB(), orderPay.VendorOrderID, nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, -1, 0, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if len(priceDefendOrders) > 0 {
priceDefendOrders[0].IsPay = model.YES
dao.UpdateEntity(dao.GetDB(), priceDefendOrders[0], "IsPay")
err = nil
switch orderPay.PayType {
case model.PayTypeTL_DiscountCard:
default:
priceDefendOrders, _ := dao.GetPriceDefendOrder(dao.GetDB(), orderPay.VendorOrderID, nil, nil, []int{jxutils.GetDefendPriceIssue()}, 0, -1, -1, 0, "", utils.ZeroTimeValue, utils.ZeroTimeValue, false)
if len(priceDefendOrders) > 0 {
priceDefendOrders[0].IsPay = model.YES
dao.UpdateEntity(dao.GetDB(), priceDefendOrders[0], "IsPay")
err = nil
}
}
}
return err

View File

@@ -18,7 +18,7 @@ import (
"git.rosy.net.cn/jx-callback/globals/api"
)
func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayType string) (orderPay *model.OrderPay, err error) {
func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, payType int, vendorPayType string) (orderPay *model.OrderPay, err error) {
// if order.FromStoreID != 0 {
// result, _ := orderman.GetMatterStoreOrderCount(nil, order.FromStoreID)
// if !result.Flag {
@@ -57,7 +57,7 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp
prePayID := result2.Package[strings.LastIndex(result2.Package, "=")+1 : len(result2.Package)]
orderPay = &model.OrderPay{
PayOrderID: param.Reqsn,
PayType: model.PayTypeTL,
PayType: payType,
VendorPayType: vendorPayType,
TransactionID: result.TrxID,
VendorOrderID: order.VendorOrderID,
@@ -87,11 +87,11 @@ func OnTLPayCallback(call *tonglianpayapi.CallBackResult) (err error) {
func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
orderPay := &model.OrderPay{
PayOrderID: call.CusorderID,
PayType: model.PayTypeTL,
// PayType: model.PayTypeTL,
}
orderPay.DeletedAt = utils.DefaultTimeValue
db := dao.GetDB()
if err = dao.GetEntity(db, orderPay, "PayOrderID", "PayType", "DeletedAt"); err == nil {
if err = dao.GetEntity(db, orderPay, "PayOrderID", "DeletedAt"); err == nil {
if orderPay.Status != 0 {
globals.SugarLogger.Debugf("already pay msg:%s, err:%v", utils.Format4Output(call, true), err)
return err