Skip to content

Commit

Permalink
Merge pull request #156 from Mikaelemmmm/dev
Browse files Browse the repository at this point in the history
Upgraded
  • Loading branch information
Mikaelemmmm authored Nov 23, 2024
2 parents 686a3f3 + 9eb8c34 commit fdd7dad
Show file tree
Hide file tree
Showing 96 changed files with 457 additions and 402 deletions.
2 changes: 0 additions & 2 deletions app/mqueue/cmd/job/etc/mqueue.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
Name: mqueue-job
Host: 0.0.0.0
Port: 3002
Mode: dev

#监控
Expand Down
5 changes: 2 additions & 3 deletions app/mqueue/cmd/job/internal/logic/closeOrder.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ import (
"looklook/app/mqueue/cmd/job/jobtype"
"looklook/app/order/cmd/rpc/order"
"looklook/app/order/model"
"looklook/common/xerr"
"looklook/pkg/xerr"
)


var ErrCloseOrderFal = xerr.NewErrMsg("close order fail")

// CloseHomestayOrderHandler close no pay homestayOrder
Expand All @@ -22,7 +21,7 @@ type CloseHomestayOrderHandler struct {

func NewCloseHomestayOrderHandler(svcCtx *svc.ServiceContext) *CloseHomestayOrderHandler {
return &CloseHomestayOrderHandler{
svcCtx:svcCtx,
svcCtx: svcCtx,
}
}

Expand Down
49 changes: 23 additions & 26 deletions app/mqueue/cmd/job/internal/logic/paySuccessNotifyUser.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,23 @@ import (
"looklook/app/order/model"
"looklook/app/usercenter/cmd/rpc/usercenter"
usercenterModel "looklook/app/usercenter/model"
"looklook/common/globalkey"
"looklook/common/tool"
"looklook/common/wxminisub"
"looklook/common/xerr"
"looklook/pkg/globalkey"
"looklook/pkg/tool"
"looklook/pkg/wxminisub"
"looklook/pkg/xerr"
"time"
)

var ErrPaySuccessNotifyFail = xerr.NewErrMsg("pay success notify user fail")


// PaySuccessNotifyUserHandler pay success notify user
type PaySuccessNotifyUserHandler struct {
svcCtx *svc.ServiceContext
}

func NewPaySuccessNotifyUserHandler(svcCtx *svc.ServiceContext) *PaySuccessNotifyUserHandler {
return &PaySuccessNotifyUserHandler{
svcCtx:svcCtx,
svcCtx: svcCtx,
}
}

Expand All @@ -49,56 +48,54 @@ func (l *PaySuccessNotifyUserHandler) ProcessTask(ctx context.Context, t *asynq.
AuthType: usercenterModel.UserAuthTypeSmallWX,
})
if err != nil {
return errors.Wrapf(ErrPaySuccessNotifyFail,"pay success notify user fail, rpc get user err:%v , orderSn:%s , userId:%d",err,p.Order.Sn,p.Order.UserId)
return errors.Wrapf(ErrPaySuccessNotifyFail, "pay success notify user fail, rpc get user err:%v , orderSn:%s , userId:%d", err, p.Order.Sn, p.Order.UserId)
}
if usercenterResp.UserAuth == nil || len(usercenterResp.UserAuth.AuthKey) == 0 {
return errors.Wrapf(ErrPaySuccessNotifyFail,"pay success notify user , user no exists err:%v , orderSn:%s , userId:%d",err,p.Order.Sn,p.Order.UserId)
return errors.Wrapf(ErrPaySuccessNotifyFail, "pay success notify user , user no exists err:%v , orderSn:%s , userId:%d", err, p.Order.Sn, p.Order.UserId)
}
openId := usercenterResp.UserAuth.AuthKey


// 2、send notify
msgs := l.getData(ctx,p.Order,openId)
for _, msg := range msgs {
l.SendWxMini(ctx,msg)
msgs := l.getData(ctx, p.Order, openId)
for _, msg := range msgs {
l.SendWxMini(ctx, msg)
}

return nil
}

// get send data
func (l *PaySuccessNotifyUserHandler) getData(_ context.Context,order *model.HomestayOrder,openId string)[]*subscribe.Message{
func (l *PaySuccessNotifyUserHandler) getData(_ context.Context, order *model.HomestayOrder, openId string) []*subscribe.Message {

return []*subscribe.Message{
{
ToUser: openId,
ToUser: openId,
TemplateID: wxminisub.OrderPaySuccessTemplateID,
Data: map[string]*subscribe.DataItem{
"character_string6": {Value: order.Sn},
"thing1": {Value: order.Title},
"amount2": {Value:fmt.Sprintf("%.2f", tool.Fen2Yuan(order.OrderTotalPrice))},
"time4": {Value:carbon.CreateFromTimestamp(order.LiveStartDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)},
"time5": {Value:carbon.CreateFromTimestamp(order.LiveEndDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)},
"amount2": {Value: fmt.Sprintf("%.2f", tool.Fen2Yuan(order.OrderTotalPrice))},
"time4": {Value: carbon.CreateFromTimestamp(order.LiveStartDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)},
"time5": {Value: carbon.CreateFromTimestamp(order.LiveEndDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)},
},
},
{
ToUser: openId,
ToUser: openId,
TemplateID: wxminisub.OrderPaySuccessLiveKnowTemplateID,
Data: map[string]*subscribe.DataItem{
"date2": {Value:carbon.CreateFromTimestamp(order.LiveStartDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)},
"date3": {Value:carbon.CreateFromTimestamp(order.LiveEndDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)} ,
"character_string4": {Value:order.TradeCode} ,
"thing1": {Value:"请不要将验证码告知商家以外人员,以防上当"} ,
"date2": {Value: carbon.CreateFromTimestamp(order.LiveStartDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)},
"date3": {Value: carbon.CreateFromTimestamp(order.LiveEndDate.Unix()).Format(globalkey.DateTimeFormatTplStandardDate)},
"character_string4": {Value: order.TradeCode},
"thing1": {Value: "请不要将验证码告知商家以外人员,以防上当"},
},
},
}
}


// SendWxMini send to wechat mini
func (l *PaySuccessNotifyUserHandler) SendWxMini(ctx context.Context,msg *subscribe.Message) {
func (l *PaySuccessNotifyUserHandler) SendWxMini(ctx context.Context, msg *subscribe.Message) {

if l.svcCtx.Config.Mode != service.ProMode{
if l.svcCtx.Config.Mode != service.ProMode {
msg.MiniprogramState = "developer"
} else {
msg.MiniprogramState = "formal"
Expand All @@ -114,7 +111,7 @@ func (l *PaySuccessNotifyUserHandler) SendWxMini(ctx context.Context,msg *subscr
err := l.svcCtx.MiniProgram.GetSubscribe().Send(msg)
if err != nil {
if retryNum > maxRetryNum {
logx.WithContext(ctx).Errorf("Payment successful send wechat mini subscription message failed retryNum : %d , err:%v, msg : %+v ", retryNum,err, msg)
logx.WithContext(ctx).Errorf("Payment successful send wechat mini subscription message failed retryNum : %d , err:%v, msg : %+v ", retryNum, err, msg)
return
}
retryNum++
Expand Down
2 changes: 0 additions & 2 deletions app/mqueue/cmd/scheduler/etc/mqueue.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
Name: mqueue-scheduler
Host: 0.0.0.0
Port: 3003
Mode: dev

#监控
Expand Down
7 changes: 3 additions & 4 deletions app/mqueue/cmd/scheduler/mqueue.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,20 @@ func main() {
conf.MustLoad(*configFile, &c)

logx.DisableStat()

// log、prometheus、trace、metricsUrl.
if err := c.SetUp(); err != nil {
panic(err)
}


svcContext := svc.NewServiceContext(c)
ctx := context.Background()
mqueueScheduler := logic.NewCronScheduler(ctx, svcContext)
mqueueScheduler.Register()

if err:=svcContext.Scheduler.Run();err!= nil{
logx.Errorf("!!!MqueueSchedulerErr!!! run err:%+v",err)
if err := svcContext.Scheduler.Run(); err != nil {
logx.Errorf("!!!MqueueSchedulerErr!!! run err:%+v", err)
os.Exit(1)
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"looklook/app/order/cmd/api/internal/logic/homestayOrder"
"looklook/app/order/cmd/api/internal/svc"
"looklook/app/order/cmd/api/internal/types"
"looklook/common/result"
"looklook/pkg/result"

"github.com/zeromicro/go-zero/rest/httpx"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"looklook/app/order/cmd/api/internal/logic/homestayOrder"
"looklook/app/order/cmd/api/internal/svc"
"looklook/app/order/cmd/api/internal/types"
"looklook/common/result"
"looklook/pkg/result"

"github.com/zeromicro/go-zero/rest/httpx"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"looklook/app/order/cmd/api/internal/logic/homestayOrder"
"looklook/app/order/cmd/api/internal/svc"
"looklook/app/order/cmd/api/internal/types"
"looklook/common/result"
"looklook/pkg/result"

"github.com/zeromicro/go-zero/rest/httpx"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ package homestayOrder
import (
"context"
"looklook/app/travel/cmd/rpc/pb"
"looklook/common/ctxdata"
"looklook/pkg/ctxdata"

"looklook/app/order/cmd/api/internal/svc"
"looklook/app/order/cmd/api/internal/types"
"looklook/app/order/cmd/rpc/order"
"looklook/common/xerr"
"looklook/pkg/xerr"

"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/logx"
Expand All @@ -31,14 +31,14 @@ func NewCreateHomestayOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext
// create order
func (l *CreateHomestayOrderLogic) CreateHomestayOrder(req types.CreateHomestayOrderReq) (*types.CreateHomestayOrderResp, error) {

homestayResp , err:=l.svcCtx.TravelRpc.HomestayDetail(l.ctx,&pb.HomestayDetailReq{
homestayResp, err := l.svcCtx.TravelRpc.HomestayDetail(l.ctx, &pb.HomestayDetailReq{
Id: req.HomestayId,
})
if err != nil{
if err != nil {
return nil, err
}
if homestayResp.Homestay == nil || homestayResp.Homestay .Id == 0{
return nil,errors.Wrapf(xerr.NewErrMsg("homestay no exists"),"CreateHomestayOrder homestay no exists id : %d",req.HomestayId)
if homestayResp.Homestay == nil || homestayResp.Homestay.Id == 0 {
return nil, errors.Wrapf(xerr.NewErrMsg("homestay no exists"), "CreateHomestayOrder homestay no exists id : %d", req.HomestayId)
}

userId := ctxdata.GetUidFromCtx(l.ctx)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import (
"looklook/app/order/cmd/rpc/order"
"looklook/app/order/model"
"looklook/app/payment/cmd/rpc/payment"
"looklook/common/ctxdata"
"looklook/common/tool"
"looklook/common/xerr"
"looklook/pkg/ctxdata"
"looklook/pkg/tool"
"looklook/pkg/xerr"

"github.com/jinzhu/copier"
"github.com/pkg/errors"
Expand Down Expand Up @@ -47,15 +47,15 @@ func (l *UserHomestayOrderDetailLogic) UserHomestayOrderDetail(req types.UserHom

copier.Copy(&typesOrderDetail, resp.HomestayOrder)

//重置价格.
// format price.
typesOrderDetail.OrderTotalPrice = tool.Fen2Yuan(resp.HomestayOrder.OrderTotalPrice)
typesOrderDetail.FoodTotalPrice = tool.Fen2Yuan(resp.HomestayOrder.FoodTotalPrice)
typesOrderDetail.HomestayTotalPrice = tool.Fen2Yuan(resp.HomestayOrder.HomestayTotalPrice)
typesOrderDetail.HomestayPrice = tool.Fen2Yuan(resp.HomestayOrder.HomestayPrice)
typesOrderDetail.FoodPrice = tool.Fen2Yuan(resp.HomestayOrder.FoodPrice)
typesOrderDetail.MarketHomestayPrice = tool.Fen2Yuan(resp.HomestayOrder.MarketHomestayPrice)

//支付信息.
// payment info.
if typesOrderDetail.TradeState != model.HomestayOrderTradeStateCancel && typesOrderDetail.TradeState != model.HomestayOrderTradeStateWaitPay {
paymentResp, err := l.svcCtx.PaymentRpc.GetPaymentSuccessRefundByOrderSn(l.ctx, &payment.GetPaymentSuccessRefundByOrderSnReq{
OrderSn: resp.HomestayOrder.Sn,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import (
"looklook/app/order/cmd/api/internal/svc"
"looklook/app/order/cmd/api/internal/types"
"looklook/app/order/cmd/rpc/order"
"looklook/common/ctxdata"
"looklook/common/tool"
"looklook/common/xerr"
"looklook/pkg/ctxdata"
"looklook/pkg/tool"
"looklook/pkg/xerr"

"github.com/jinzhu/copier"
"github.com/pkg/errors"
Expand Down Expand Up @@ -47,6 +47,11 @@ func (l *UserHomestayOrderListLogic) UserHomestayOrderList(req types.UserHomesta

if len(resp.List) > 0 {

// 【!!notice!!】Why not use copier to make a copy of the whole list here?
// 【!!重要!!】这里为什么不使用copier去对整个list进行拷贝?

// answer : copier This library is essentially the use of reflection implementation, in our online practice, the copy of large slices will take up a lot of cpu, serious performance consumption, if you can manually assign the value as much as possible manually, would like to use the copier is highly recommended only copy a single object is not a great impact
// 答:copier 这个库本质上是使用反射实现的,在我们线上实践中,对大切片拷贝会占用大量的cpu,严重消耗性能,如果能手动赋值尽量手动,想使用copier强烈建议只拷贝单个对象影响不是很大
for _, homestayOrder := range resp.List {

var typeHomestayOrder types.UserHomestayOrderListView
Expand Down
2 changes: 0 additions & 2 deletions app/order/cmd/mq/etc/order.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
Name: order-mq
Host: 0.0.0.0
Port: 3001
Mode: dev

#监控
Expand Down
11 changes: 6 additions & 5 deletions app/order/cmd/mq/internal/mqs/kq/paymentUpdateStatus.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,16 @@ import (
"looklook/app/order/cmd/rpc/order"
"looklook/app/order/model"
paymentModel "looklook/app/payment/model"
"looklook/common/kqueue"
"looklook/common/xerr"
"looklook/pkg/kqueue"
"looklook/pkg/xerr"

"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/logx"
)

/**
Listening to the payment flow status change notification message queue
/*
*
Listening to the payment flow status change notification message queue
*/
type PaymentUpdateStatusMq struct {
ctx context.Context
Expand Down Expand Up @@ -62,7 +63,7 @@ func (l *PaymentUpdateStatusMq) execService(message kqueue.ThirdPaymentUpdatePay
return nil
}

//Get order status based on payment status.
// Get order status based on payment status.
func (l *PaymentUpdateStatusMq) getOrderTradeStateByPaymentTradeState(thirdPaymentPayStatus int64) int64 {

switch thirdPaymentPayStatus {
Expand Down
19 changes: 9 additions & 10 deletions app/order/cmd/rpc/internal/logic/createHomestayOrderLogic.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ import (
"looklook/app/order/cmd/rpc/pb"
"looklook/app/order/model"
"looklook/app/travel/cmd/rpc/travel"
"looklook/common/tool"
"looklook/common/uniqueid"
"looklook/common/xerr"
"looklook/pkg/tool"
"looklook/pkg/uniqueid"
"looklook/pkg/xerr"

"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/logx"
)

const CloseOrderTimeMinutes = 30 //defer close order time
const CloseOrderTimeMinutes = 30 //defer close order time

type CreateHomestayOrderLogic struct {
ctx context.Context
Expand Down Expand Up @@ -93,20 +93,19 @@ func (l *CreateHomestayOrderLogic) CreateHomestayOrder(in *pb.CreateHomestayOrde

order.OrderTotalPrice = order.HomestayTotalPrice + order.FoodTotalPrice //Calculate total order price.

_, err = l.svcCtx.HomestayOrderModel.Insert(l.ctx,nil, order)
_, err = l.svcCtx.HomestayOrderModel.Insert(l.ctx, nil, order)
if err != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "Order Database Exception order : %+v , err: %v", order, err)
}


//2、Delayed closing of order tasks.
payload, err := json.Marshal(jobtype.DeferCloseHomestayOrderPayload{Sn: order.Sn})
if err != nil {
logx.WithContext(l.ctx).Errorf("create defer close order task json Marshal fail err :%+v , sn : %s",err,order.Sn)
}else{
_, err = l.svcCtx.AsynqClient.Enqueue(asynq.NewTask(jobtype.DeferCloseHomestayOrder, payload), asynq.ProcessIn(CloseOrderTimeMinutes * time.Minute))
logx.WithContext(l.ctx).Errorf("create defer close order task json Marshal fail err :%+v , sn : %s", err, order.Sn)
} else {
_, err = l.svcCtx.AsynqClient.Enqueue(asynq.NewTask(jobtype.DeferCloseHomestayOrder, payload), asynq.ProcessIn(CloseOrderTimeMinutes*time.Minute))
if err != nil {
logx.WithContext(l.ctx).Errorf("create defer close order task insert queue fail err :%+v , sn : %s",err,order.Sn)
logx.WithContext(l.ctx).Errorf("create defer close order task insert queue fail err :%+v , sn : %s", err, order.Sn)
}
}

Expand Down
4 changes: 2 additions & 2 deletions app/order/cmd/rpc/internal/logic/homestayOrderDetailLogic.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"looklook/app/order/cmd/rpc/internal/svc"
"looklook/app/order/cmd/rpc/pb"
"looklook/app/order/model"
"looklook/common/xerr"
"looklook/pkg/xerr"

"github.com/jinzhu/copier"
"github.com/pkg/errors"
Expand All @@ -29,7 +29,7 @@ func NewHomestayOrderDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext

func (l *HomestayOrderDetailLogic) HomestayOrderDetail(in *pb.HomestayOrderDetailReq) (*pb.HomestayOrderDetailResp, error) {

homestayOrder, err := l.svcCtx.HomestayOrderModel.FindOneBySn(l.ctx,in.Sn)
homestayOrder, err := l.svcCtx.HomestayOrderModel.FindOneBySn(l.ctx, in.Sn)
if err != nil && err != model.ErrNotFound {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "HomestayOrderModel FindOneBySn db err : %v , sn : %s", err, in.Sn)
}
Expand Down
Loading

0 comments on commit fdd7dad

Please sign in to comment.