From 69746285ae2b478a60ce11d08149907cd98c8c43 Mon Sep 17 00:00:00 2001 From: "daniel.w" Date: Fri, 25 Oct 2024 18:17:27 +0800 Subject: [PATCH] generate service --- Makefile | 64 +++++++++++++ etc/trade.yaml | 6 ++ go.mod | 89 +++++++++++++++++++ internal/config/config.go | 7 ++ .../couponservice/create_coupon_logic.go | 31 +++++++ .../couponservice/delete_coupon_logic.go | 31 +++++++ .../logic/couponservice/list_coupons_logic.go | 31 +++++++ .../logic/couponservice/query_coupon_logic.go | 31 +++++++ .../couponservice/update_coupon_logic.go | 31 +++++++ .../couponservice/validate_coupon_logic.go | 31 +++++++ .../logic/inventoryservice/add_stock_logic.go | 31 +++++++ .../inventoryservice/adjust_stock_logic.go | 31 +++++++ .../inventoryservice/create_stock_logic.go | 31 +++++++ .../inventoryservice/list_all_stock_logic.go | 31 +++++++ .../inventoryservice/query_stock_logic.go | 31 +++++++ .../inventoryservice/reduce_stock_logic.go | 31 +++++++ .../release_reserved_stock_logic.go | 31 +++++++ .../inventoryservice/reserve_stock_logic.go | 31 +++++++ .../logic/orderservice/cancel_order_logic.go | 31 +++++++ .../logic/orderservice/create_order_logic.go | 31 +++++++ .../logic/orderservice/delete_order_logic.go | 31 +++++++ .../logic/orderservice/get_order_logic.go | 31 +++++++ .../logic/orderservice/list_order_logic.go | 31 +++++++ .../orderservice/modify_order_status_logic.go | 31 +++++++ .../order_status_timeout_logic.go | 31 +++++++ .../productservice/create_product_logic.go | 31 +++++++ .../productservice/delete_product_logic.go | 31 +++++++ .../productservice/list_all_products_logic.go | 31 +++++++ .../productservice/query_product_logic.go | 31 +++++++ .../productservice/update_product_logic.go | 31 +++++++ .../cancel_subscription_logic.go | 31 +++++++ .../check_subscription_status_logic.go | 31 +++++++ .../create_subscription_logic.go | 31 +++++++ .../list_subscriptions_logic.go | 31 +++++++ .../query_subscription_logic.go | 31 +++++++ .../refresh_subscription_status_logic.go | 31 +++++++ .../renew_subscription_logic.go | 31 +++++++ .../update_subscription_logic.go | 31 +++++++ .../walletservice/append_to_freeze_logic.go | 31 +++++++ .../walletservice/cancel_freeze_logic.go | 31 +++++++ .../walletservice/create_wallet_logic.go | 31 +++++++ .../walletservice/deposit_funds_logic.go | 31 +++++++ .../logic/walletservice/freeze_funds_logic.go | 31 +++++++ .../walletservice/query_balance_logic.go | 31 +++++++ .../walletservice/rollback_freeze_logic.go | 31 +++++++ .../settle_restricted_funds_logic.go | 31 +++++++ .../transfer_to_restricted_funds_logic.go | 31 +++++++ .../walletservice/unfreeze_funds_logic.go | 31 +++++++ .../walletservice/withdraw_funds_logic.go | 31 +++++++ .../couponservice/coupon_service_server.go | 59 ++++++++++++ .../inventory_service_server.go | 71 +++++++++++++++ .../orderservice/order_service_server.go | 65 ++++++++++++++ .../productservice/product_service_server.go | 53 +++++++++++ .../subscription_service_server.go | 71 +++++++++++++++ .../walletservice/wallet_service_server.go | 89 +++++++++++++++++++ internal/svc/service_context.go | 13 +++ trade.go | 49 ++++++++++ 57 files changed, 2031 insertions(+) create mode 100644 Makefile create mode 100644 etc/trade.yaml create mode 100644 go.mod create mode 100755 internal/config/config.go create mode 100644 internal/logic/couponservice/create_coupon_logic.go create mode 100644 internal/logic/couponservice/delete_coupon_logic.go create mode 100644 internal/logic/couponservice/list_coupons_logic.go create mode 100644 internal/logic/couponservice/query_coupon_logic.go create mode 100644 internal/logic/couponservice/update_coupon_logic.go create mode 100644 internal/logic/couponservice/validate_coupon_logic.go create mode 100644 internal/logic/inventoryservice/add_stock_logic.go create mode 100644 internal/logic/inventoryservice/adjust_stock_logic.go create mode 100644 internal/logic/inventoryservice/create_stock_logic.go create mode 100644 internal/logic/inventoryservice/list_all_stock_logic.go create mode 100644 internal/logic/inventoryservice/query_stock_logic.go create mode 100644 internal/logic/inventoryservice/reduce_stock_logic.go create mode 100644 internal/logic/inventoryservice/release_reserved_stock_logic.go create mode 100644 internal/logic/inventoryservice/reserve_stock_logic.go create mode 100644 internal/logic/orderservice/cancel_order_logic.go create mode 100644 internal/logic/orderservice/create_order_logic.go create mode 100644 internal/logic/orderservice/delete_order_logic.go create mode 100644 internal/logic/orderservice/get_order_logic.go create mode 100644 internal/logic/orderservice/list_order_logic.go create mode 100644 internal/logic/orderservice/modify_order_status_logic.go create mode 100644 internal/logic/orderservice/order_status_timeout_logic.go create mode 100644 internal/logic/productservice/create_product_logic.go create mode 100644 internal/logic/productservice/delete_product_logic.go create mode 100644 internal/logic/productservice/list_all_products_logic.go create mode 100644 internal/logic/productservice/query_product_logic.go create mode 100644 internal/logic/productservice/update_product_logic.go create mode 100644 internal/logic/subscriptionservice/cancel_subscription_logic.go create mode 100644 internal/logic/subscriptionservice/check_subscription_status_logic.go create mode 100644 internal/logic/subscriptionservice/create_subscription_logic.go create mode 100644 internal/logic/subscriptionservice/list_subscriptions_logic.go create mode 100644 internal/logic/subscriptionservice/query_subscription_logic.go create mode 100644 internal/logic/subscriptionservice/refresh_subscription_status_logic.go create mode 100644 internal/logic/subscriptionservice/renew_subscription_logic.go create mode 100644 internal/logic/subscriptionservice/update_subscription_logic.go create mode 100644 internal/logic/walletservice/append_to_freeze_logic.go create mode 100644 internal/logic/walletservice/cancel_freeze_logic.go create mode 100644 internal/logic/walletservice/create_wallet_logic.go create mode 100644 internal/logic/walletservice/deposit_funds_logic.go create mode 100644 internal/logic/walletservice/freeze_funds_logic.go create mode 100644 internal/logic/walletservice/query_balance_logic.go create mode 100644 internal/logic/walletservice/rollback_freeze_logic.go create mode 100644 internal/logic/walletservice/settle_restricted_funds_logic.go create mode 100644 internal/logic/walletservice/transfer_to_restricted_funds_logic.go create mode 100644 internal/logic/walletservice/unfreeze_funds_logic.go create mode 100644 internal/logic/walletservice/withdraw_funds_logic.go create mode 100644 internal/server/couponservice/coupon_service_server.go create mode 100644 internal/server/inventoryservice/inventory_service_server.go create mode 100644 internal/server/orderservice/order_service_server.go create mode 100644 internal/server/productservice/product_service_server.go create mode 100644 internal/server/subscriptionservice/subscription_service_server.go create mode 100644 internal/server/walletservice/wallet_service_server.go create mode 100644 internal/svc/service_context.go create mode 100644 trade.go diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..eac2065 --- /dev/null +++ b/Makefile @@ -0,0 +1,64 @@ +GO_CTL_NAME=goctl + +# go-zero 生成風格 +GO_ZERO_STYLE=go_zero + +GO ?= go +GOFMT ?= gofmt "-s" +GOFILES := $(shell find . -name "*.go") +LDFLAGS := -s -w +VERSION="v1.0.1" +DOCKER_REPO="igs170911/feed" + +.PHONY: test +test: # 進行測試 + go test -v --cover ./... + +.PHONY: fmt +fmt: # 格式優化 + $(GOFMT) -w $(GOFILES) + goimports -w ./ + golangci-lint run + +.PHONY: gen-rpc +gen-rpc: # 建立 rpc code + $(GO_CTL_NAME) rpc protoc ./generate/protobuf/trade.proto -m --style=$(GO_ZERO_STYLE) --go_out=./gen_result/pb --go-grpc_out=./gen_result/pb --zrpc_out=. + go mod tidy + @echo "Generate core-api files successfully" + +.PHONY: gen-clean +gen-clean: # 建立 rpc code + rm -rf ./client + rm -rf ./etc + rm -rf ./gen_result + rm -rf ./internal + rm -rf go.mod + rm -rf go.sum + rm -rf order.go + @echo "Generate core-api files successfully" + +.PHONY: run-docker +run-docker: # 建立 rpc code + docker run --platform=linux/arm64/v8 -p 8080:8080 $(DOCKER_REPO):$(VERSION) + +.PHONY: build-docker +build-docker: + cp ./build/Dockerfile Dockerfile + docker buildx build -t $(DOCKER_REPO):$(VERSION) --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/ed_25519)" . + rm -rf Dockerfile + @echo "Generate core-api files successfully" + +gen-mongo-model: # 建立 rpc 資料庫 + # 只產生 Model 剩下的要自己撰寫,連欄位名稱也是 + goctl model mongo -t order --dir ./internal/model/mongo --style $(GO_ZERO_STYLE) + @echo "Generate mongo model files successfully" + +.PHONY: mock-gen +mock-gen: # 建立 mock 資料 + mockgen -source=./internal/model/mongo/order_model_gen.go -destination=./internal/mock/model/order_model_gen.go -package=mock + mockgen -source=./internal/model/mongo/order_model.go -destination=./internal/mock/model/order_model.go -package=mock + @echo "Generate mock files successfully" + +.PHONY: migrate-database +migrate-database: + migrate -source file://generate/database/mongodb -database 'mongodb://127.0.0.1:27017/digimon_order' up diff --git a/etc/trade.yaml b/etc/trade.yaml new file mode 100644 index 0000000..b6ca0b5 --- /dev/null +++ b/etc/trade.yaml @@ -0,0 +1,6 @@ +Name: trade.rpc +ListenOn: 0.0.0.0:8080 +Etcd: + Hosts: + - 127.0.0.1:2379 + Key: trade.rpc diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..eb744f6 --- /dev/null +++ b/go.mod @@ -0,0 +1,89 @@ +module app-cloudep-trade-service + +go 1.22.3 + +require ( + github.com/zeromicro/go-zero v1.7.3 + google.golang.org/grpc v1.67.1 + google.golang.org/protobuf v1.35.1 +) + +require ( + github.com/beorn7/perks v1.0.1 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/coreos/go-semver v0.3.1 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/fatih/color v1.17.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/swag v0.22.4 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/mock v1.6.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.17.9 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/openzipkin/zipkin-go v0.4.3 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/redis/go-redis/v9 v9.7.0 // indirect + github.com/spaolacci/murmur3 v1.1.0 // indirect + go.etcd.io/etcd/api/v3 v3.5.15 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.5.15 // indirect + go.etcd.io/etcd/client/v3 v3.5.15 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/jaeger v1.17.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.24.0 // indirect + go.opentelemetry.io/otel/exporters/zipkin v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/sdk v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/proto/otlp v1.3.1 // indirect + go.uber.org/atomic v1.10.0 // indirect + go.uber.org/automaxprocs v1.6.0 // indirect + go.uber.org/multierr v1.9.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/net v0.30.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/sys v0.26.0 // indirect + golang.org/x/term v0.25.0 // indirect + golang.org/x/text v0.19.0 // indirect + golang.org/x/time v0.7.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/api v0.29.3 // indirect + k8s.io/apimachinery v0.29.4 // indirect + k8s.io/client-go v0.29.3 // indirect + k8s.io/klog/v2 v2.110.1 // indirect + k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.3.0 // indirect +) diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100755 index 0000000..c1f85b9 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,7 @@ +package config + +import "github.com/zeromicro/go-zero/zrpc" + +type Config struct { + zrpc.RpcServerConf +} diff --git a/internal/logic/couponservice/create_coupon_logic.go b/internal/logic/couponservice/create_coupon_logic.go new file mode 100644 index 0000000..b94d766 --- /dev/null +++ b/internal/logic/couponservice/create_coupon_logic.go @@ -0,0 +1,31 @@ +package couponservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateCouponLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCreateCouponLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateCouponLogic { + return &CreateCouponLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CreateCoupon 創建優惠券 +func (l *CreateCouponLogic) CreateCoupon(in *trade.CreateCouponReq) (*trade.CouponResp, error) { + // todo: add your logic here and delete this line + + return &trade.CouponResp{}, nil +} diff --git a/internal/logic/couponservice/delete_coupon_logic.go b/internal/logic/couponservice/delete_coupon_logic.go new file mode 100644 index 0000000..704d354 --- /dev/null +++ b/internal/logic/couponservice/delete_coupon_logic.go @@ -0,0 +1,31 @@ +package couponservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeleteCouponLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDeleteCouponLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteCouponLogic { + return &DeleteCouponLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// DeleteCoupon 刪除優惠券 +func (l *DeleteCouponLogic) DeleteCoupon(in *trade.CouponQueryReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/couponservice/list_coupons_logic.go b/internal/logic/couponservice/list_coupons_logic.go new file mode 100644 index 0000000..595fbdb --- /dev/null +++ b/internal/logic/couponservice/list_coupons_logic.go @@ -0,0 +1,31 @@ +package couponservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ListCouponsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewListCouponsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListCouponsLogic { + return &ListCouponsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ListCoupons列出所有優惠券 +func (l *ListCouponsLogic) ListCoupons(in *trade.CouponListReq) (*trade.CouponListResp, error) { + // todo: add your logic here and delete this line + + return &trade.CouponListResp{}, nil +} diff --git a/internal/logic/couponservice/query_coupon_logic.go b/internal/logic/couponservice/query_coupon_logic.go new file mode 100644 index 0000000..d38d884 --- /dev/null +++ b/internal/logic/couponservice/query_coupon_logic.go @@ -0,0 +1,31 @@ +package couponservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type QueryCouponLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewQueryCouponLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QueryCouponLogic { + return &QueryCouponLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// QueryCoupon查詢優惠券 +func (l *QueryCouponLogic) QueryCoupon(in *trade.CouponQueryReq) (*trade.CouponResp, error) { + // todo: add your logic here and delete this line + + return &trade.CouponResp{}, nil +} diff --git a/internal/logic/couponservice/update_coupon_logic.go b/internal/logic/couponservice/update_coupon_logic.go new file mode 100644 index 0000000..35cf418 --- /dev/null +++ b/internal/logic/couponservice/update_coupon_logic.go @@ -0,0 +1,31 @@ +package couponservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UpdateCouponLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewUpdateCouponLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateCouponLogic { + return &UpdateCouponLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// UpdateCoupon更新優惠券 +func (l *UpdateCouponLogic) UpdateCoupon(in *trade.UpdateCouponReq) (*trade.CouponResp, error) { + // todo: add your logic here and delete this line + + return &trade.CouponResp{}, nil +} diff --git a/internal/logic/couponservice/validate_coupon_logic.go b/internal/logic/couponservice/validate_coupon_logic.go new file mode 100644 index 0000000..b592414 --- /dev/null +++ b/internal/logic/couponservice/validate_coupon_logic.go @@ -0,0 +1,31 @@ +package couponservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ValidateCouponLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewValidateCouponLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ValidateCouponLogic { + return &ValidateCouponLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ValidateCoupon 驗證優惠券 (在下單或支付時使用) +func (l *ValidateCouponLogic) ValidateCoupon(in *trade.ValidateCouponReq) (*trade.CouponValidationResp, error) { + // todo: add your logic here and delete this line + + return &trade.CouponValidationResp{}, nil +} diff --git a/internal/logic/inventoryservice/add_stock_logic.go b/internal/logic/inventoryservice/add_stock_logic.go new file mode 100644 index 0000000..ecea963 --- /dev/null +++ b/internal/logic/inventoryservice/add_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type AddStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewAddStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AddStockLogic { + return &AddStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// AddStock 增加庫存 +func (l *AddStockLogic) AddStock(in *trade.StockAdjustmentReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/inventoryservice/adjust_stock_logic.go b/internal/logic/inventoryservice/adjust_stock_logic.go new file mode 100644 index 0000000..201cb92 --- /dev/null +++ b/internal/logic/inventoryservice/adjust_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type AdjustStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewAdjustStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdjustStockLogic { + return &AdjustStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// AdjustStock 調整庫存 (批量修改庫存,用於大批商品更新) +func (l *AdjustStockLogic) AdjustStock(in *trade.BatchStockAdjustmentReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/inventoryservice/create_stock_logic.go b/internal/logic/inventoryservice/create_stock_logic.go new file mode 100644 index 0000000..9ee754a --- /dev/null +++ b/internal/logic/inventoryservice/create_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCreateStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateStockLogic { + return &CreateStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CreateStock 建立庫存品項 +func (l *CreateStockLogic) CreateStock(in *trade.StockAdjustmentReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/inventoryservice/list_all_stock_logic.go b/internal/logic/inventoryservice/list_all_stock_logic.go new file mode 100644 index 0000000..7774e62 --- /dev/null +++ b/internal/logic/inventoryservice/list_all_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ListAllStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewListAllStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListAllStockLogic { + return &ListAllStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ListAllStock 查詢所有商品的庫存狀況 +func (l *ListAllStockLogic) ListAllStock(in *trade.StockListReq) (*trade.StockListResp, error) { + // todo: add your logic here and delete this line + + return &trade.StockListResp{}, nil +} diff --git a/internal/logic/inventoryservice/query_stock_logic.go b/internal/logic/inventoryservice/query_stock_logic.go new file mode 100644 index 0000000..6e08e27 --- /dev/null +++ b/internal/logic/inventoryservice/query_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type QueryStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewQueryStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QueryStockLogic { + return &QueryStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// QueryStock 查詢單一商品的庫存 +func (l *QueryStockLogic) QueryStock(in *trade.StockQueryReq) (*trade.StockResp, error) { + // todo: add your logic here and delete this line + + return &trade.StockResp{}, nil +} diff --git a/internal/logic/inventoryservice/reduce_stock_logic.go b/internal/logic/inventoryservice/reduce_stock_logic.go new file mode 100644 index 0000000..6c55b28 --- /dev/null +++ b/internal/logic/inventoryservice/reduce_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ReduceStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewReduceStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ReduceStockLogic { + return &ReduceStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ReduceStock 減少庫存 +func (l *ReduceStockLogic) ReduceStock(in *trade.StockAdjustmentReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/inventoryservice/release_reserved_stock_logic.go b/internal/logic/inventoryservice/release_reserved_stock_logic.go new file mode 100644 index 0000000..15c2cb9 --- /dev/null +++ b/internal/logic/inventoryservice/release_reserved_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ReleaseReservedStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewReleaseReservedStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ReleaseReservedStockLogic { + return &ReleaseReservedStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ReleaseReservedStock 釋放預留庫存 (取消或失效的訂單) +func (l *ReleaseReservedStockLogic) ReleaseReservedStock(in *trade.StockReservationReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/inventoryservice/reserve_stock_logic.go b/internal/logic/inventoryservice/reserve_stock_logic.go new file mode 100644 index 0000000..51728aa --- /dev/null +++ b/internal/logic/inventoryservice/reserve_stock_logic.go @@ -0,0 +1,31 @@ +package inventoryservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ReserveStockLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewReserveStockLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ReserveStockLogic { + return &ReserveStockLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ReserveStock 預留庫存 (用於未完成的訂單) +func (l *ReserveStockLogic) ReserveStock(in *trade.StockReservationReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/orderservice/cancel_order_logic.go b/internal/logic/orderservice/cancel_order_logic.go new file mode 100644 index 0000000..02bc3db --- /dev/null +++ b/internal/logic/orderservice/cancel_order_logic.go @@ -0,0 +1,31 @@ +package orderservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CancelOrderLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCancelOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CancelOrderLogic { + return &CancelOrderLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CancelOrder 取消訂單 +func (l *CancelOrderLogic) CancelOrder(in *trade.CancelOrderReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/orderservice/create_order_logic.go b/internal/logic/orderservice/create_order_logic.go new file mode 100644 index 0000000..7530de4 --- /dev/null +++ b/internal/logic/orderservice/create_order_logic.go @@ -0,0 +1,31 @@ +package orderservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateOrderLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCreateOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateOrderLogic { + return &CreateOrderLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CreateOrder 建立訂單 +func (l *CreateOrderLogic) CreateOrder(in *trade.CreateOrderReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/orderservice/delete_order_logic.go b/internal/logic/orderservice/delete_order_logic.go new file mode 100644 index 0000000..a3de943 --- /dev/null +++ b/internal/logic/orderservice/delete_order_logic.go @@ -0,0 +1,31 @@ +package orderservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeleteOrderLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDeleteOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteOrderLogic { + return &DeleteOrderLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// DeleteOrder 刪除訂單(軟刪除) +func (l *DeleteOrderLogic) DeleteOrder(in *trade.DeleteOrderReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/orderservice/get_order_logic.go b/internal/logic/orderservice/get_order_logic.go new file mode 100644 index 0000000..26feecd --- /dev/null +++ b/internal/logic/orderservice/get_order_logic.go @@ -0,0 +1,31 @@ +package orderservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetOrderLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewGetOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetOrderLogic { + return &GetOrderLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// GetOrder 取得訂單詳情 +func (l *GetOrderLogic) GetOrder(in *trade.GetOrderReq) (*trade.GetOrderResp, error) { + // todo: add your logic here and delete this line + + return &trade.GetOrderResp{}, nil +} diff --git a/internal/logic/orderservice/list_order_logic.go b/internal/logic/orderservice/list_order_logic.go new file mode 100644 index 0000000..e327edd --- /dev/null +++ b/internal/logic/orderservice/list_order_logic.go @@ -0,0 +1,31 @@ +package orderservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ListOrderLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewListOrderLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListOrderLogic { + return &ListOrderLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ListOrder 取得訂單列表 +func (l *ListOrderLogic) ListOrder(in *trade.ListOrderReq) (*trade.ListOrderResp, error) { + // todo: add your logic here and delete this line + + return &trade.ListOrderResp{}, nil +} diff --git a/internal/logic/orderservice/modify_order_status_logic.go b/internal/logic/orderservice/modify_order_status_logic.go new file mode 100644 index 0000000..5c60413 --- /dev/null +++ b/internal/logic/orderservice/modify_order_status_logic.go @@ -0,0 +1,31 @@ +package orderservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ModifyOrderStatusLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewModifyOrderStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ModifyOrderStatusLogic { + return &ModifyOrderStatusLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ModifyOrderStatus 修改訂單狀態 +func (l *ModifyOrderStatusLogic) ModifyOrderStatus(in *trade.ModifyOrderStatusReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/orderservice/order_status_timeout_logic.go b/internal/logic/orderservice/order_status_timeout_logic.go new file mode 100644 index 0000000..0c7528f --- /dev/null +++ b/internal/logic/orderservice/order_status_timeout_logic.go @@ -0,0 +1,31 @@ +package orderservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type OrderStatusTimeoutLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewOrderStatusTimeoutLogic(ctx context.Context, svcCtx *svc.ServiceContext) *OrderStatusTimeoutLogic { + return &OrderStatusTimeoutLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// OrderStatusTimeout 訂單超時任務/cron/order-status/timeout +func (l *OrderStatusTimeoutLogic) OrderStatusTimeout(in *trade.OrderStatusTimeoutReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/productservice/create_product_logic.go b/internal/logic/productservice/create_product_logic.go new file mode 100644 index 0000000..02ac737 --- /dev/null +++ b/internal/logic/productservice/create_product_logic.go @@ -0,0 +1,31 @@ +package productservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateProductLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCreateProductLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateProductLogic { + return &CreateProductLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CreateProduct 新增商品 +func (l *CreateProductLogic) CreateProduct(in *trade.ProductCreateReq) (*trade.ProductResp, error) { + // todo: add your logic here and delete this line + + return &trade.ProductResp{}, nil +} diff --git a/internal/logic/productservice/delete_product_logic.go b/internal/logic/productservice/delete_product_logic.go new file mode 100644 index 0000000..cecbcf4 --- /dev/null +++ b/internal/logic/productservice/delete_product_logic.go @@ -0,0 +1,31 @@ +package productservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeleteProductLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDeleteProductLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteProductLogic { + return &DeleteProductLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// DeleteProduct 刪除商品 +func (l *DeleteProductLogic) DeleteProduct(in *trade.ProductDeleteReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/productservice/list_all_products_logic.go b/internal/logic/productservice/list_all_products_logic.go new file mode 100644 index 0000000..0739982 --- /dev/null +++ b/internal/logic/productservice/list_all_products_logic.go @@ -0,0 +1,31 @@ +package productservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ListAllProductsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewListAllProductsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListAllProductsLogic { + return &ListAllProductsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ListAllProducts 查詢所有商品資訊 +func (l *ListAllProductsLogic) ListAllProducts(in *trade.ProductListReq) (*trade.ProductListResp, error) { + // todo: add your logic here and delete this line + + return &trade.ProductListResp{}, nil +} diff --git a/internal/logic/productservice/query_product_logic.go b/internal/logic/productservice/query_product_logic.go new file mode 100644 index 0000000..cdf6cfe --- /dev/null +++ b/internal/logic/productservice/query_product_logic.go @@ -0,0 +1,31 @@ +package productservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type QueryProductLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewQueryProductLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QueryProductLogic { + return &QueryProductLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// QueryProduct 查詢單一商品資訊 +func (l *QueryProductLogic) QueryProduct(in *trade.ProductQueryReq) (*trade.ProductResp, error) { + // todo: add your logic here and delete this line + + return &trade.ProductResp{}, nil +} diff --git a/internal/logic/productservice/update_product_logic.go b/internal/logic/productservice/update_product_logic.go new file mode 100644 index 0000000..735c420 --- /dev/null +++ b/internal/logic/productservice/update_product_logic.go @@ -0,0 +1,31 @@ +package productservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UpdateProductLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewUpdateProductLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateProductLogic { + return &UpdateProductLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// UpdateProduct 更新商品資訊 +func (l *UpdateProductLogic) UpdateProduct(in *trade.ProductUpdateReq) (*trade.ProductResp, error) { + // todo: add your logic here and delete this line + + return &trade.ProductResp{}, nil +} diff --git a/internal/logic/subscriptionservice/cancel_subscription_logic.go b/internal/logic/subscriptionservice/cancel_subscription_logic.go new file mode 100644 index 0000000..7927d47 --- /dev/null +++ b/internal/logic/subscriptionservice/cancel_subscription_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CancelSubscriptionLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCancelSubscriptionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CancelSubscriptionLogic { + return &CancelSubscriptionLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CancelSubscription 取消訂閱 +func (l *CancelSubscriptionLogic) CancelSubscription(in *trade.SubscriptionCancelReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/subscriptionservice/check_subscription_status_logic.go b/internal/logic/subscriptionservice/check_subscription_status_logic.go new file mode 100644 index 0000000..d9d520d --- /dev/null +++ b/internal/logic/subscriptionservice/check_subscription_status_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CheckSubscriptionStatusLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCheckSubscriptionStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CheckSubscriptionStatusLogic { + return &CheckSubscriptionStatusLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CheckSubscriptionStatus 查詢訂閱狀態 (啟用/過期/取消) +func (l *CheckSubscriptionStatusLogic) CheckSubscriptionStatus(in *trade.SubscriptionStatusQueryReq) (*trade.SubscriptionStatusResp, error) { + // todo: add your logic here and delete this line + + return &trade.SubscriptionStatusResp{}, nil +} diff --git a/internal/logic/subscriptionservice/create_subscription_logic.go b/internal/logic/subscriptionservice/create_subscription_logic.go new file mode 100644 index 0000000..7dbee9e --- /dev/null +++ b/internal/logic/subscriptionservice/create_subscription_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateSubscriptionLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCreateSubscriptionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateSubscriptionLogic { + return &CreateSubscriptionLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CreateSubscription 建立訂閱 +func (l *CreateSubscriptionLogic) CreateSubscription(in *trade.SubscriptionCreateReq) (*trade.SubscriptionResp, error) { + // todo: add your logic here and delete this line + + return &trade.SubscriptionResp{}, nil +} diff --git a/internal/logic/subscriptionservice/list_subscriptions_logic.go b/internal/logic/subscriptionservice/list_subscriptions_logic.go new file mode 100644 index 0000000..8fc57b3 --- /dev/null +++ b/internal/logic/subscriptionservice/list_subscriptions_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ListSubscriptionsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewListSubscriptionsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListSubscriptionsLogic { + return &ListSubscriptionsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ListSubscriptions 查詢所有訂閱 (用於管理和監控) +func (l *ListSubscriptionsLogic) ListSubscriptions(in *trade.ListSubscriptionsReq) (*trade.SubscriptionListResp, error) { + // todo: add your logic here and delete this line + + return &trade.SubscriptionListResp{}, nil +} diff --git a/internal/logic/subscriptionservice/query_subscription_logic.go b/internal/logic/subscriptionservice/query_subscription_logic.go new file mode 100644 index 0000000..ead2424 --- /dev/null +++ b/internal/logic/subscriptionservice/query_subscription_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type QuerySubscriptionLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewQuerySubscriptionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QuerySubscriptionLogic { + return &QuerySubscriptionLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// QuerySubscription 查詢單一訂閱資訊 +func (l *QuerySubscriptionLogic) QuerySubscription(in *trade.SubscriptionQueryReq) (*trade.SubscriptionResp, error) { + // todo: add your logic here and delete this line + + return &trade.SubscriptionResp{}, nil +} diff --git a/internal/logic/subscriptionservice/refresh_subscription_status_logic.go b/internal/logic/subscriptionservice/refresh_subscription_status_logic.go new file mode 100644 index 0000000..6294f0c --- /dev/null +++ b/internal/logic/subscriptionservice/refresh_subscription_status_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type RefreshSubscriptionStatusLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewRefreshSubscriptionStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RefreshSubscriptionStatusLogic { + return &RefreshSubscriptionStatusLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// RefreshSubscriptionStatus cron 改變訂閱的狀態(時間到了要過期,需要續約自動續約),每 5 分鐘執行一次 +func (l *RefreshSubscriptionStatusLogic) RefreshSubscriptionStatus(in *trade.NoneReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/subscriptionservice/renew_subscription_logic.go b/internal/logic/subscriptionservice/renew_subscription_logic.go new file mode 100644 index 0000000..c06e628 --- /dev/null +++ b/internal/logic/subscriptionservice/renew_subscription_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type RenewSubscriptionLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewRenewSubscriptionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RenewSubscriptionLogic { + return &RenewSubscriptionLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// RenewSubscription 續訂訂閱 +func (l *RenewSubscriptionLogic) RenewSubscription(in *trade.SubscriptionRenewReq) (*trade.SubscriptionResp, error) { + // todo: add your logic here and delete this line + + return &trade.SubscriptionResp{}, nil +} diff --git a/internal/logic/subscriptionservice/update_subscription_logic.go b/internal/logic/subscriptionservice/update_subscription_logic.go new file mode 100644 index 0000000..2e76a2e --- /dev/null +++ b/internal/logic/subscriptionservice/update_subscription_logic.go @@ -0,0 +1,31 @@ +package subscriptionservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UpdateSubscriptionLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewUpdateSubscriptionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateSubscriptionLogic { + return &UpdateSubscriptionLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// UpdateSubscription 更新訂閱設定 +func (l *UpdateSubscriptionLogic) UpdateSubscription(in *trade.SubscriptionUpdateReq) (*trade.SubscriptionResp, error) { + // todo: add your logic here and delete this line + + return &trade.SubscriptionResp{}, nil +} diff --git a/internal/logic/walletservice/append_to_freeze_logic.go b/internal/logic/walletservice/append_to_freeze_logic.go new file mode 100644 index 0000000..b28f9ac --- /dev/null +++ b/internal/logic/walletservice/append_to_freeze_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type AppendToFreezeLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewAppendToFreezeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AppendToFreezeLogic { + return &AppendToFreezeLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// AppendToFreeze 追加凍結 - 減少可用餘額,追加到現有的 [凍結餘額] (基於原order_id) +func (l *AppendToFreezeLogic) AppendToFreeze(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/cancel_freeze_logic.go b/internal/logic/walletservice/cancel_freeze_logic.go new file mode 100644 index 0000000..4328343 --- /dev/null +++ b/internal/logic/walletservice/cancel_freeze_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CancelFreezeLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCancelFreezeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CancelFreezeLogic { + return &CancelFreezeLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CancelFreeze 取消凍結 - 減少 [凍結餘額],加回 [可用餘額],可指定金額 +func (l *CancelFreezeLogic) CancelFreeze(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/create_wallet_logic.go b/internal/logic/walletservice/create_wallet_logic.go new file mode 100644 index 0000000..105c151 --- /dev/null +++ b/internal/logic/walletservice/create_wallet_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CreateWalletLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCreateWalletLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateWalletLogic { + return &CreateWalletLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// CreateWallet 建立錢包 +func (l *CreateWalletLogic) CreateWallet(in *trade.CreateWalletReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/deposit_funds_logic.go b/internal/logic/walletservice/deposit_funds_logic.go new file mode 100644 index 0000000..bbf3202 --- /dev/null +++ b/internal/logic/walletservice/deposit_funds_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DepositFundsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDepositFundsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DepositFundsLogic { + return &DepositFundsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// DepositFunds 充值 - 增加 [可用餘額] 或 [限制餘額] +func (l *DepositFundsLogic) DepositFunds(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/freeze_funds_logic.go b/internal/logic/walletservice/freeze_funds_logic.go new file mode 100644 index 0000000..1927ef8 --- /dev/null +++ b/internal/logic/walletservice/freeze_funds_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type FreezeFundsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewFreezeFundsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *FreezeFundsLogic { + return &FreezeFundsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// FreezeFunds 凍結 - 將 [可用餘額] 減少,加到 [凍結餘額] +func (l *FreezeFundsLogic) FreezeFunds(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/query_balance_logic.go b/internal/logic/walletservice/query_balance_logic.go new file mode 100644 index 0000000..5b56e13 --- /dev/null +++ b/internal/logic/walletservice/query_balance_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type QueryBalanceLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewQueryBalanceLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QueryBalanceLogic { + return &QueryBalanceLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// QueryBalance 餘額查詢 -> 依照日期查詢 +func (l *QueryBalanceLogic) QueryBalance(in *trade.QueryBalanceByDateReq) (*trade.QueryBalanceByDateResp, error) { + // todo: add your logic here and delete this line + + return &trade.QueryBalanceByDateResp{}, nil +} diff --git a/internal/logic/walletservice/rollback_freeze_logic.go b/internal/logic/walletservice/rollback_freeze_logic.go new file mode 100644 index 0000000..b0d6158 --- /dev/null +++ b/internal/logic/walletservice/rollback_freeze_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type RollbackFreezeLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewRollbackFreezeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RollbackFreezeLogic { + return &RollbackFreezeLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// RollbackFreeze 凍結回滾 - 減少 [凍結餘額],加回 [可用餘額],不可指定金額,整筆訂單的凍結金額加回 [可用餘額] +func (l *RollbackFreezeLogic) RollbackFreeze(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/settle_restricted_funds_logic.go b/internal/logic/walletservice/settle_restricted_funds_logic.go new file mode 100644 index 0000000..5de959f --- /dev/null +++ b/internal/logic/walletservice/settle_restricted_funds_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type SettleRestrictedFundsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewSettleRestrictedFundsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SettleRestrictedFundsLogic { + return &SettleRestrictedFundsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// SettleRestrictedFunds 結算限制餘額 - 限制餘額在 T+N 天後自動失效,每日只能執行一次 +func (l *SettleRestrictedFundsLogic) SettleRestrictedFunds(in *trade.NoneReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/transfer_to_restricted_funds_logic.go b/internal/logic/walletservice/transfer_to_restricted_funds_logic.go new file mode 100644 index 0000000..977991b --- /dev/null +++ b/internal/logic/walletservice/transfer_to_restricted_funds_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type TransferToRestrictedFundsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewTransferToRestrictedFundsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *TransferToRestrictedFundsLogic { + return &TransferToRestrictedFundsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// TransferToRestrictedFunds 限制 - 減少 [凍結餘額],轉移到另一個使用者的 [限制餘額] +func (l *TransferToRestrictedFundsLogic) TransferToRestrictedFunds(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/unfreeze_funds_logic.go b/internal/logic/walletservice/unfreeze_funds_logic.go new file mode 100644 index 0000000..4d31cbf --- /dev/null +++ b/internal/logic/walletservice/unfreeze_funds_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UnfreezeFundsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewUnfreezeFundsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UnfreezeFundsLogic { + return &UnfreezeFundsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// UnfreezeFunds 解凍 - 減少 [凍結餘額] +func (l *UnfreezeFundsLogic) UnfreezeFunds(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/logic/walletservice/withdraw_funds_logic.go b/internal/logic/walletservice/withdraw_funds_logic.go new file mode 100644 index 0000000..543284c --- /dev/null +++ b/internal/logic/walletservice/withdraw_funds_logic.go @@ -0,0 +1,31 @@ +package walletservicelogic + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type WithdrawFundsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewWithdrawFundsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *WithdrawFundsLogic { + return &WithdrawFundsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// WithdrawFunds 提現 - 減少 [可用餘額] +func (l *WithdrawFundsLogic) WithdrawFunds(in *trade.WalletTransactionReq) (*trade.OKResp, error) { + // todo: add your logic here and delete this line + + return &trade.OKResp{}, nil +} diff --git a/internal/server/couponservice/coupon_service_server.go b/internal/server/couponservice/coupon_service_server.go new file mode 100644 index 0000000..ae08579 --- /dev/null +++ b/internal/server/couponservice/coupon_service_server.go @@ -0,0 +1,59 @@ +// Code generated by goctl. DO NOT EDIT. +// Source: trade.proto + +package server + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/logic/couponservice" + "app-cloudep-trade-service/internal/svc" +) + +type CouponServiceServer struct { + svcCtx *svc.ServiceContext + trade.UnimplementedCouponServiceServer +} + +func NewCouponServiceServer(svcCtx *svc.ServiceContext) *CouponServiceServer { + return &CouponServiceServer{ + svcCtx: svcCtx, + } +} + +// CreateCoupon 創建優惠券 +func (s *CouponServiceServer) CreateCoupon(ctx context.Context, in *trade.CreateCouponReq) (*trade.CouponResp, error) { + l := couponservicelogic.NewCreateCouponLogic(ctx, s.svcCtx) + return l.CreateCoupon(in) +} + +// UpdateCoupon更新優惠券 +func (s *CouponServiceServer) UpdateCoupon(ctx context.Context, in *trade.UpdateCouponReq) (*trade.CouponResp, error) { + l := couponservicelogic.NewUpdateCouponLogic(ctx, s.svcCtx) + return l.UpdateCoupon(in) +} + +// QueryCoupon查詢優惠券 +func (s *CouponServiceServer) QueryCoupon(ctx context.Context, in *trade.CouponQueryReq) (*trade.CouponResp, error) { + l := couponservicelogic.NewQueryCouponLogic(ctx, s.svcCtx) + return l.QueryCoupon(in) +} + +// DeleteCoupon 刪除優惠券 +func (s *CouponServiceServer) DeleteCoupon(ctx context.Context, in *trade.CouponQueryReq) (*trade.OKResp, error) { + l := couponservicelogic.NewDeleteCouponLogic(ctx, s.svcCtx) + return l.DeleteCoupon(in) +} + +// ListCoupons列出所有優惠券 +func (s *CouponServiceServer) ListCoupons(ctx context.Context, in *trade.CouponListReq) (*trade.CouponListResp, error) { + l := couponservicelogic.NewListCouponsLogic(ctx, s.svcCtx) + return l.ListCoupons(in) +} + +// ValidateCoupon 驗證優惠券 (在下單或支付時使用) +func (s *CouponServiceServer) ValidateCoupon(ctx context.Context, in *trade.ValidateCouponReq) (*trade.CouponValidationResp, error) { + l := couponservicelogic.NewValidateCouponLogic(ctx, s.svcCtx) + return l.ValidateCoupon(in) +} diff --git a/internal/server/inventoryservice/inventory_service_server.go b/internal/server/inventoryservice/inventory_service_server.go new file mode 100644 index 0000000..8419076 --- /dev/null +++ b/internal/server/inventoryservice/inventory_service_server.go @@ -0,0 +1,71 @@ +// Code generated by goctl. DO NOT EDIT. +// Source: trade.proto + +package server + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/logic/inventoryservice" + "app-cloudep-trade-service/internal/svc" +) + +type InventoryServiceServer struct { + svcCtx *svc.ServiceContext + trade.UnimplementedInventoryServiceServer +} + +func NewInventoryServiceServer(svcCtx *svc.ServiceContext) *InventoryServiceServer { + return &InventoryServiceServer{ + svcCtx: svcCtx, + } +} + +// CreateStock 建立庫存品項 +func (s *InventoryServiceServer) CreateStock(ctx context.Context, in *trade.StockAdjustmentReq) (*trade.OKResp, error) { + l := inventoryservicelogic.NewCreateStockLogic(ctx, s.svcCtx) + return l.CreateStock(in) +} + +// AddStock 增加庫存 +func (s *InventoryServiceServer) AddStock(ctx context.Context, in *trade.StockAdjustmentReq) (*trade.OKResp, error) { + l := inventoryservicelogic.NewAddStockLogic(ctx, s.svcCtx) + return l.AddStock(in) +} + +// ReduceStock 減少庫存 +func (s *InventoryServiceServer) ReduceStock(ctx context.Context, in *trade.StockAdjustmentReq) (*trade.OKResp, error) { + l := inventoryservicelogic.NewReduceStockLogic(ctx, s.svcCtx) + return l.ReduceStock(in) +} + +// QueryStock 查詢單一商品的庫存 +func (s *InventoryServiceServer) QueryStock(ctx context.Context, in *trade.StockQueryReq) (*trade.StockResp, error) { + l := inventoryservicelogic.NewQueryStockLogic(ctx, s.svcCtx) + return l.QueryStock(in) +} + +// ListAllStock 查詢所有商品的庫存狀況 +func (s *InventoryServiceServer) ListAllStock(ctx context.Context, in *trade.StockListReq) (*trade.StockListResp, error) { + l := inventoryservicelogic.NewListAllStockLogic(ctx, s.svcCtx) + return l.ListAllStock(in) +} + +// ReserveStock 預留庫存 (用於未完成的訂單) +func (s *InventoryServiceServer) ReserveStock(ctx context.Context, in *trade.StockReservationReq) (*trade.OKResp, error) { + l := inventoryservicelogic.NewReserveStockLogic(ctx, s.svcCtx) + return l.ReserveStock(in) +} + +// ReleaseReservedStock 釋放預留庫存 (取消或失效的訂單) +func (s *InventoryServiceServer) ReleaseReservedStock(ctx context.Context, in *trade.StockReservationReq) (*trade.OKResp, error) { + l := inventoryservicelogic.NewReleaseReservedStockLogic(ctx, s.svcCtx) + return l.ReleaseReservedStock(in) +} + +// AdjustStock 調整庫存 (批量修改庫存,用於大批商品更新) +func (s *InventoryServiceServer) AdjustStock(ctx context.Context, in *trade.BatchStockAdjustmentReq) (*trade.OKResp, error) { + l := inventoryservicelogic.NewAdjustStockLogic(ctx, s.svcCtx) + return l.AdjustStock(in) +} diff --git a/internal/server/orderservice/order_service_server.go b/internal/server/orderservice/order_service_server.go new file mode 100644 index 0000000..8771b43 --- /dev/null +++ b/internal/server/orderservice/order_service_server.go @@ -0,0 +1,65 @@ +// Code generated by goctl. DO NOT EDIT. +// Source: trade.proto + +package server + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/logic/orderservice" + "app-cloudep-trade-service/internal/svc" +) + +type OrderServiceServer struct { + svcCtx *svc.ServiceContext + trade.UnimplementedOrderServiceServer +} + +func NewOrderServiceServer(svcCtx *svc.ServiceContext) *OrderServiceServer { + return &OrderServiceServer{ + svcCtx: svcCtx, + } +} + +// CreateOrder 建立訂單 +func (s *OrderServiceServer) CreateOrder(ctx context.Context, in *trade.CreateOrderReq) (*trade.OKResp, error) { + l := orderservicelogic.NewCreateOrderLogic(ctx, s.svcCtx) + return l.CreateOrder(in) +} + +// CancelOrder 取消訂單 +func (s *OrderServiceServer) CancelOrder(ctx context.Context, in *trade.CancelOrderReq) (*trade.OKResp, error) { + l := orderservicelogic.NewCancelOrderLogic(ctx, s.svcCtx) + return l.CancelOrder(in) +} + +// ModifyOrderStatus 修改訂單狀態 +func (s *OrderServiceServer) ModifyOrderStatus(ctx context.Context, in *trade.ModifyOrderStatusReq) (*trade.OKResp, error) { + l := orderservicelogic.NewModifyOrderStatusLogic(ctx, s.svcCtx) + return l.ModifyOrderStatus(in) +} + +// DeleteOrder 刪除訂單(軟刪除) +func (s *OrderServiceServer) DeleteOrder(ctx context.Context, in *trade.DeleteOrderReq) (*trade.OKResp, error) { + l := orderservicelogic.NewDeleteOrderLogic(ctx, s.svcCtx) + return l.DeleteOrder(in) +} + +// GetOrder 取得訂單詳情 +func (s *OrderServiceServer) GetOrder(ctx context.Context, in *trade.GetOrderReq) (*trade.GetOrderResp, error) { + l := orderservicelogic.NewGetOrderLogic(ctx, s.svcCtx) + return l.GetOrder(in) +} + +// ListOrder 取得訂單列表 +func (s *OrderServiceServer) ListOrder(ctx context.Context, in *trade.ListOrderReq) (*trade.ListOrderResp, error) { + l := orderservicelogic.NewListOrderLogic(ctx, s.svcCtx) + return l.ListOrder(in) +} + +// OrderStatusTimeout 訂單超時任務/cron/order-status/timeout +func (s *OrderServiceServer) OrderStatusTimeout(ctx context.Context, in *trade.OrderStatusTimeoutReq) (*trade.OKResp, error) { + l := orderservicelogic.NewOrderStatusTimeoutLogic(ctx, s.svcCtx) + return l.OrderStatusTimeout(in) +} diff --git a/internal/server/productservice/product_service_server.go b/internal/server/productservice/product_service_server.go new file mode 100644 index 0000000..abc38bc --- /dev/null +++ b/internal/server/productservice/product_service_server.go @@ -0,0 +1,53 @@ +// Code generated by goctl. DO NOT EDIT. +// Source: trade.proto + +package server + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/logic/productservice" + "app-cloudep-trade-service/internal/svc" +) + +type ProductServiceServer struct { + svcCtx *svc.ServiceContext + trade.UnimplementedProductServiceServer +} + +func NewProductServiceServer(svcCtx *svc.ServiceContext) *ProductServiceServer { + return &ProductServiceServer{ + svcCtx: svcCtx, + } +} + +// CreateProduct 新增商品 +func (s *ProductServiceServer) CreateProduct(ctx context.Context, in *trade.ProductCreateReq) (*trade.ProductResp, error) { + l := productservicelogic.NewCreateProductLogic(ctx, s.svcCtx) + return l.CreateProduct(in) +} + +// UpdateProduct 更新商品資訊 +func (s *ProductServiceServer) UpdateProduct(ctx context.Context, in *trade.ProductUpdateReq) (*trade.ProductResp, error) { + l := productservicelogic.NewUpdateProductLogic(ctx, s.svcCtx) + return l.UpdateProduct(in) +} + +// DeleteProduct 刪除商品 +func (s *ProductServiceServer) DeleteProduct(ctx context.Context, in *trade.ProductDeleteReq) (*trade.OKResp, error) { + l := productservicelogic.NewDeleteProductLogic(ctx, s.svcCtx) + return l.DeleteProduct(in) +} + +// QueryProduct 查詢單一商品資訊 +func (s *ProductServiceServer) QueryProduct(ctx context.Context, in *trade.ProductQueryReq) (*trade.ProductResp, error) { + l := productservicelogic.NewQueryProductLogic(ctx, s.svcCtx) + return l.QueryProduct(in) +} + +// ListAllProducts 查詢所有商品資訊 +func (s *ProductServiceServer) ListAllProducts(ctx context.Context, in *trade.ProductListReq) (*trade.ProductListResp, error) { + l := productservicelogic.NewListAllProductsLogic(ctx, s.svcCtx) + return l.ListAllProducts(in) +} diff --git a/internal/server/subscriptionservice/subscription_service_server.go b/internal/server/subscriptionservice/subscription_service_server.go new file mode 100644 index 0000000..edf4f02 --- /dev/null +++ b/internal/server/subscriptionservice/subscription_service_server.go @@ -0,0 +1,71 @@ +// Code generated by goctl. DO NOT EDIT. +// Source: trade.proto + +package server + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/logic/subscriptionservice" + "app-cloudep-trade-service/internal/svc" +) + +type SubscriptionServiceServer struct { + svcCtx *svc.ServiceContext + trade.UnimplementedSubscriptionServiceServer +} + +func NewSubscriptionServiceServer(svcCtx *svc.ServiceContext) *SubscriptionServiceServer { + return &SubscriptionServiceServer{ + svcCtx: svcCtx, + } +} + +// CreateSubscription 建立訂閱 +func (s *SubscriptionServiceServer) CreateSubscription(ctx context.Context, in *trade.SubscriptionCreateReq) (*trade.SubscriptionResp, error) { + l := subscriptionservicelogic.NewCreateSubscriptionLogic(ctx, s.svcCtx) + return l.CreateSubscription(in) +} + +// UpdateSubscription 更新訂閱設定 +func (s *SubscriptionServiceServer) UpdateSubscription(ctx context.Context, in *trade.SubscriptionUpdateReq) (*trade.SubscriptionResp, error) { + l := subscriptionservicelogic.NewUpdateSubscriptionLogic(ctx, s.svcCtx) + return l.UpdateSubscription(in) +} + +// CancelSubscription 取消訂閱 +func (s *SubscriptionServiceServer) CancelSubscription(ctx context.Context, in *trade.SubscriptionCancelReq) (*trade.OKResp, error) { + l := subscriptionservicelogic.NewCancelSubscriptionLogic(ctx, s.svcCtx) + return l.CancelSubscription(in) +} + +// QuerySubscription 查詢單一訂閱資訊 +func (s *SubscriptionServiceServer) QuerySubscription(ctx context.Context, in *trade.SubscriptionQueryReq) (*trade.SubscriptionResp, error) { + l := subscriptionservicelogic.NewQuerySubscriptionLogic(ctx, s.svcCtx) + return l.QuerySubscription(in) +} + +// ListSubscriptions 查詢所有訂閱 (用於管理和監控) +func (s *SubscriptionServiceServer) ListSubscriptions(ctx context.Context, in *trade.ListSubscriptionsReq) (*trade.SubscriptionListResp, error) { + l := subscriptionservicelogic.NewListSubscriptionsLogic(ctx, s.svcCtx) + return l.ListSubscriptions(in) +} + +// RenewSubscription 續訂訂閱 +func (s *SubscriptionServiceServer) RenewSubscription(ctx context.Context, in *trade.SubscriptionRenewReq) (*trade.SubscriptionResp, error) { + l := subscriptionservicelogic.NewRenewSubscriptionLogic(ctx, s.svcCtx) + return l.RenewSubscription(in) +} + +// CheckSubscriptionStatus 查詢訂閱狀態 (啟用/過期/取消) +func (s *SubscriptionServiceServer) CheckSubscriptionStatus(ctx context.Context, in *trade.SubscriptionStatusQueryReq) (*trade.SubscriptionStatusResp, error) { + l := subscriptionservicelogic.NewCheckSubscriptionStatusLogic(ctx, s.svcCtx) + return l.CheckSubscriptionStatus(in) +} + +// RefreshSubscriptionStatus cron 改變訂閱的狀態(時間到了要過期,需要續約自動續約),每 5 分鐘執行一次 +func (s *SubscriptionServiceServer) RefreshSubscriptionStatus(ctx context.Context, in *trade.NoneReq) (*trade.OKResp, error) { + l := subscriptionservicelogic.NewRefreshSubscriptionStatusLogic(ctx, s.svcCtx) + return l.RefreshSubscriptionStatus(in) +} diff --git a/internal/server/walletservice/wallet_service_server.go b/internal/server/walletservice/wallet_service_server.go new file mode 100644 index 0000000..43e3670 --- /dev/null +++ b/internal/server/walletservice/wallet_service_server.go @@ -0,0 +1,89 @@ +// Code generated by goctl. DO NOT EDIT. +// Source: trade.proto + +package server + +import ( + "context" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/logic/walletservice" + "app-cloudep-trade-service/internal/svc" +) + +type WalletServiceServer struct { + svcCtx *svc.ServiceContext + trade.UnimplementedWalletServiceServer +} + +func NewWalletServiceServer(svcCtx *svc.ServiceContext) *WalletServiceServer { + return &WalletServiceServer{ + svcCtx: svcCtx, + } +} + +// CreateWallet 建立錢包 +func (s *WalletServiceServer) CreateWallet(ctx context.Context, in *trade.CreateWalletReq) (*trade.OKResp, error) { + l := walletservicelogic.NewCreateWalletLogic(ctx, s.svcCtx) + return l.CreateWallet(in) +} + +// DepositFunds 充值 - 增加 [可用餘額] 或 [限制餘額] +func (s *WalletServiceServer) DepositFunds(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewDepositFundsLogic(ctx, s.svcCtx) + return l.DepositFunds(in) +} + +// WithdrawFunds 提現 - 減少 [可用餘額] +func (s *WalletServiceServer) WithdrawFunds(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewWithdrawFundsLogic(ctx, s.svcCtx) + return l.WithdrawFunds(in) +} + +// FreezeFunds 凍結 - 將 [可用餘額] 減少,加到 [凍結餘額] +func (s *WalletServiceServer) FreezeFunds(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewFreezeFundsLogic(ctx, s.svcCtx) + return l.FreezeFunds(in) +} + +// UnfreezeFunds 解凍 - 減少 [凍結餘額] +func (s *WalletServiceServer) UnfreezeFunds(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewUnfreezeFundsLogic(ctx, s.svcCtx) + return l.UnfreezeFunds(in) +} + +// AppendToFreeze 追加凍結 - 減少可用餘額,追加到現有的 [凍結餘額] (基於原order_id) +func (s *WalletServiceServer) AppendToFreeze(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewAppendToFreezeLogic(ctx, s.svcCtx) + return l.AppendToFreeze(in) +} + +// RollbackFreeze 凍結回滾 - 減少 [凍結餘額],加回 [可用餘額],不可指定金額,整筆訂單的凍結金額加回 [可用餘額] +func (s *WalletServiceServer) RollbackFreeze(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewRollbackFreezeLogic(ctx, s.svcCtx) + return l.RollbackFreeze(in) +} + +// CancelFreeze 取消凍結 - 減少 [凍結餘額],加回 [可用餘額],可指定金額 +func (s *WalletServiceServer) CancelFreeze(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewCancelFreezeLogic(ctx, s.svcCtx) + return l.CancelFreeze(in) +} + +// TransferToRestrictedFunds 限制 - 減少 [凍結餘額],轉移到另一個使用者的 [限制餘額] +func (s *WalletServiceServer) TransferToRestrictedFunds(ctx context.Context, in *trade.WalletTransactionReq) (*trade.OKResp, error) { + l := walletservicelogic.NewTransferToRestrictedFundsLogic(ctx, s.svcCtx) + return l.TransferToRestrictedFunds(in) +} + +// SettleRestrictedFunds 結算限制餘額 - 限制餘額在 T+N 天後自動失效,每日只能執行一次 +func (s *WalletServiceServer) SettleRestrictedFunds(ctx context.Context, in *trade.NoneReq) (*trade.OKResp, error) { + l := walletservicelogic.NewSettleRestrictedFundsLogic(ctx, s.svcCtx) + return l.SettleRestrictedFunds(in) +} + +// QueryBalance 餘額查詢 -> 依照日期查詢 +func (s *WalletServiceServer) QueryBalance(ctx context.Context, in *trade.QueryBalanceByDateReq) (*trade.QueryBalanceByDateResp, error) { + l := walletservicelogic.NewQueryBalanceLogic(ctx, s.svcCtx) + return l.QueryBalance(in) +} diff --git a/internal/svc/service_context.go b/internal/svc/service_context.go new file mode 100644 index 0000000..fa78db1 --- /dev/null +++ b/internal/svc/service_context.go @@ -0,0 +1,13 @@ +package svc + +import "app-cloudep-trade-service/internal/config" + +type ServiceContext struct { + Config config.Config +} + +func NewServiceContext(c config.Config) *ServiceContext { + return &ServiceContext{ + Config: c, + } +} diff --git a/trade.go b/trade.go new file mode 100644 index 0000000..9a123cb --- /dev/null +++ b/trade.go @@ -0,0 +1,49 @@ +package main + +import ( + "flag" + "fmt" + + "app-cloudep-trade-service/gen_result/pb/trade" + "app-cloudep-trade-service/internal/config" + couponserviceServer "app-cloudep-trade-service/internal/server/couponservice" + inventoryserviceServer "app-cloudep-trade-service/internal/server/inventoryservice" + orderserviceServer "app-cloudep-trade-service/internal/server/orderservice" + productserviceServer "app-cloudep-trade-service/internal/server/productservice" + subscriptionserviceServer "app-cloudep-trade-service/internal/server/subscriptionservice" + walletserviceServer "app-cloudep-trade-service/internal/server/walletservice" + "app-cloudep-trade-service/internal/svc" + + "github.com/zeromicro/go-zero/core/conf" + "github.com/zeromicro/go-zero/core/service" + "github.com/zeromicro/go-zero/zrpc" + "google.golang.org/grpc" + "google.golang.org/grpc/reflection" +) + +var configFile = flag.String("f", "etc/trade.yaml", "the config file") + +func main() { + flag.Parse() + + var c config.Config + conf.MustLoad(*configFile, &c) + ctx := svc.NewServiceContext(c) + + s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) { + trade.RegisterOrderServiceServer(grpcServer, orderserviceServer.NewOrderServiceServer(ctx)) + trade.RegisterWalletServiceServer(grpcServer, walletserviceServer.NewWalletServiceServer(ctx)) + trade.RegisterInventoryServiceServer(grpcServer, inventoryserviceServer.NewInventoryServiceServer(ctx)) + trade.RegisterProductServiceServer(grpcServer, productserviceServer.NewProductServiceServer(ctx)) + trade.RegisterSubscriptionServiceServer(grpcServer, subscriptionserviceServer.NewSubscriptionServiceServer(ctx)) + trade.RegisterCouponServiceServer(grpcServer, couponserviceServer.NewCouponServiceServer(ctx)) + + if c.Mode == service.DevMode || c.Mode == service.TestMode { + reflection.Register(grpcServer) + } + }) + defer s.Stop() + + fmt.Printf("Starting rpc server at %s...\n", c.ListenOn) + s.Start() +}