refactor all service dependency injection

This commit is contained in:
2026-08-10 11:35:48 +08:00
parent 007a7ba38a
commit c883cc52a2
152 changed files with 1030 additions and 223 deletions

View File

@@ -5,17 +5,20 @@ import (
"bsm/full/module/ec/address/internal/config"
"bsm/full/module/ec/address/internal/models"
"git.apinb.com/bsm-sdk/core/cache/redis"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/vars"
"go.etcd.io/etcd/client/pkg/v3/transport"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
var (
RedisCache *redis.RedisClient
Etcd *clientv3.Client
DBService *gorm.DB
)
func withRedisCache(srvKey string) {
@@ -40,6 +43,7 @@ func withDatabases() {
printer.Error("Database Init Failed !")
panic(err)
}
DBService = models.DBService
}

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/address/internal/impl"
"bsm/full/module/ec/address/internal/models"
pb "bsm/full/module/ec/address/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -37,10 +39,10 @@ func Create(ctx context.Context, in *pb.AddressCreateRequest) (reply *pb.StatusR
address.Status = int8(in.Status)
if address.Status == 2 {
models.DBService.Model(&models.AddressLibrary{}).Where("owner_id = ? and status=2", auth.ID).UpdateColumn("status", "1")
impl.DBService.Model(&models.AddressLibrary{}).Where("owner_id = ? and status=2", auth.ID).UpdateColumn("status", "1")
}
err = models.DBService.Create(address).Error
err = impl.DBService.Create(address).Error
if err != nil {
printer.Error(err.Error())

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/address/internal/impl"
"bsm/full/module/ec/address/internal/models"
pb "bsm/full/module/ec/address/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -19,7 +21,7 @@ func Delete(ctx context.Context, in *pb.AddressDeleteRequest) (reply *pb.StatusR
return nil, err
}
err = models.DBService.Delete(&models.AddressLibrary{}, "id in ?", in.Id).Error
err = impl.DBService.Delete(&models.AddressLibrary{}, "id in ?", in.Id).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -3,8 +3,10 @@ package library
import (
"context"
"bsm/full/module/ec/address/internal/impl"
"bsm/full/module/ec/address/internal/models"
pb "bsm/full/module/ec/address/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -23,7 +25,7 @@ func Fetch(ctx context.Context, in *pb.IdentRequest) (reply *pb.AddressListReply
result = make([]*pb.AddressItem, 0)
)
err = models.DBService.Where("owner_identity=?", auth.Identity).Find(&address).Error
err = impl.DBService.Where("owner_identity=?", auth.Identity).Find(&address).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -4,8 +4,10 @@ import (
"context"
"errors"
"bsm/full/module/ec/address/internal/impl"
"bsm/full/module/ec/address/internal/models"
pb "bsm/full/module/ec/address/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -24,7 +26,7 @@ func Get(ctx context.Context, in *pb.IdentRequest) (reply *pb.AddressItem, err e
}
address := new(models.AddressLibrary)
err = models.DBService.Where("id=?", in.Id).First(&address).Error
err = impl.DBService.Where("id=?", in.Id).First(&address).Error
if err != nil {
if errors.Is(err, models.ErrNotFound) {

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/address/internal/impl"
"bsm/full/module/ec/address/internal/models"
pb "bsm/full/module/ec/address/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -31,10 +33,10 @@ func Modify(ctx context.Context, in *pb.AddressItem) (reply *pb.StatusReply, err
address.Status = int8(in.Status)
if address.Status == 2 {
models.DBService.Model(&models.AddressLibrary{}).Where("owner_id = ? and status=2", auth.ID).UpdateColumn("status", "1")
impl.DBService.Model(&models.AddressLibrary{}).Where("owner_id = ? and status=2", auth.ID).UpdateColumn("status", "1")
}
err = models.DBService.Where("id=?", in.Id).Updates(&address).Error
err = impl.DBService.Where("id=?", in.Id).Updates(&address).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -0,0 +1,29 @@
package service
import (
"bsm/full/module/ec/address/internal/impl"
"git.apinb.com/bsm-sdk/core/cache/redis"
cache "github.com/patrickmn/go-cache"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
// Dependencies contains shared infrastructure supplied by the all module.
type Dependencies struct {
Redis *redis.RedisClient
Etcd *clientv3.Client
DB *gorm.DB
Cache *cache.Cache
}
func applyDependencies(deps Dependencies) {
if deps.Redis != nil {
impl.RedisCache = deps.Redis
}
if deps.Etcd != nil {
impl.Etcd = deps.Etcd
}
if deps.DB != nil {
impl.DBService = deps.DB
}
}

View File

@@ -10,11 +10,13 @@ import (
)
type ExposeOptions struct {
Dependencies
GRPC *grpc.Server
Gateway *gwRuntime.ServeMux
}
func Expose(options ExposeOptions) error {
applyDependencies(options.Dependencies)
server.New(options.GRPC)
ctx := context.Background()

View File

@@ -0,0 +1,32 @@
package service
import (
"bsm/full/module/ec/mall/internal/impl"
"git.apinb.com/bsm-sdk/core/cache/redis"
cache "github.com/patrickmn/go-cache"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
// Dependencies contains shared infrastructure supplied by the all module.
type Dependencies struct {
Redis *redis.RedisClient
Etcd *clientv3.Client
DB *gorm.DB
Cache *cache.Cache
}
func applyDependencies(deps Dependencies) {
if deps.Redis != nil {
impl.RedisService = deps.Redis
}
if deps.Etcd != nil {
impl.EtcdService = deps.Etcd
}
if deps.DB != nil {
impl.DBService = deps.DB
}
if deps.Cache != nil {
impl.MemorySerice = deps.Cache
}
}

View File

@@ -10,11 +10,13 @@ import (
)
type ExposeOptions struct {
Dependencies
GRPC *grpc.Server
Gateway *gwRuntime.ServeMux
}
func Expose(options ExposeOptions) error {
applyDependencies(options.Dependencies)
server.New(options.GRPC)
ctx := context.Background()

View File

@@ -5,17 +5,20 @@ import (
"bsm/full/module/ec/market/internal/config"
"bsm/full/module/ec/market/internal/models"
"git.apinb.com/bsm-sdk/core/cache/redis"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/vars"
"go.etcd.io/etcd/client/pkg/v3/transport"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
var (
RedisCache *redis.RedisClient
Etcd *clientv3.Client
DBService *gorm.DB
)
func withRedisCache(srvKey string) {
@@ -40,6 +43,7 @@ func withDatabases() {
printer.Error("Database Init Failed !")
panic(err)
}
DBService = models.DBService
}

View File

@@ -4,8 +4,10 @@ import (
"context"
"log"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
)
@@ -16,7 +18,7 @@ func Approve(ctx context.Context, in *pb.ApproveRequest) (reply *pb.IdentityStat
return nil, errcode.ErrInvalidArgument
}
if err := models.DBService.Where("identity = ?", in.GetIdentity()).First(&data).Error; err != nil {
if err := impl.DBService.Where("identity = ?", in.GetIdentity()).First(&data).Error; err != nil {
return nil, err
}
if data.Status != 1 {
@@ -24,12 +26,12 @@ func Approve(ctx context.Context, in *pb.ApproveRequest) (reply *pb.IdentityStat
}
switch in.GetApprove() {
case 1:
if err := models.DBService.Model(&data).Update("approve", 2).Error; err != nil {
if err := impl.DBService.Model(&data).Update("approve", 2).Error; err != nil {
log.Println("更新代理商数据失败:", err)
return nil, errcode.ErrDB
}
case 2:
if err := models.DBService.Model(&data).Update("approve", -2).Error; err != nil {
if err := impl.DBService.Model(&data).Update("approve", -2).Error; err != nil {
log.Println("更新代理商数据失败:", err)
return nil, errcode.ErrDB
}

View File

@@ -5,8 +5,10 @@ import (
"fmt"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/types"
"git.apinb.com/bsm-sdk/core/utils"
@@ -43,7 +45,7 @@ func Create(ctx context.Context, in *pb.MarketAgenctyItem) (reply *pb.IdentitySt
Area: in.GetArea(),
}
fmt.Println("mktModel = ", mktModel)
if err := models.DBService.Create(&mktModel).Error; err != nil {
if err := impl.DBService.Create(&mktModel).Error; err != nil {
fmt.Println("err = ", err)
return nil, err

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
)
@@ -21,7 +23,7 @@ func Delete(ctx context.Context, in *pb.IdentRequest) (reply *pb.IdentityStatusR
if in.Id == 0 && in.Identity == "" {
return nil, errcode.ErrInvalidArgument
}
if err := models.DBService.Where("id = ? or identity = ?", in.GetId(), in.GetIdentity()).Delete(&models.MarketAgency{}).Error; err != nil {
if err := impl.DBService.Where("id = ? or identity = ?", in.GetId(), in.GetIdentity()).Delete(&models.MarketAgency{}).Error; err != nil {
printer.Error(err.Error())
return nil, err
}

View File

@@ -3,8 +3,10 @@ package agency
import (
"context"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -28,7 +30,7 @@ func Fetch(ctx context.Context, in *pb.MarketFetchRequest) (reply *pb.AgencyRepl
if in.GetPageSize() < 10 {
in.PageSize = 50
}
tx := models.DBService.Model(&models.MarketAgency{})
tx := impl.DBService.Model(&models.MarketAgency{})
if in.GetIdentity() != "" {
tx.Where("identity = ?", in.GetIdentity())
}

View File

@@ -5,8 +5,10 @@ import (
"log"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/service"
)
@@ -24,7 +26,7 @@ func Get(ctx context.Context, in *pb.IdentRequest) (reply *pb.MarketAgenctyItem,
identity = in.GetIdentity()
}
mktModel := models.MarketAgency{}
if err := models.DBService.Where("identity=?", identity).First(&mktModel).Error; err != nil {
if err := impl.DBService.Where("identity=?", identity).First(&mktModel).Error; err != nil {
log.Println("获取代理商数据失败:", err)
return nil, err
}

View File

@@ -5,8 +5,10 @@ import (
"errors"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/crypto/encipher"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/utils"
@@ -21,7 +23,7 @@ func Login(ctx context.Context, in *pb.LoginRequest) (reply *pb.LoginReply, err
return nil, errcode.ErrInvalidArgument
}
err = models.DBService.Where("account=? and id<>0", in.Account).First(&marketData).Error
err = impl.DBService.Where("account=? and id<>0", in.Account).First(&marketData).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, errcode.ErrAccountNotFound
@@ -55,7 +57,7 @@ func Login(ctx context.Context, in *pb.LoginRequest) (reply *pb.LoginReply, err
// 更新登录时间
marketData.LastLoginAt = time.Now()
err = models.DBService.Debug().Where("id = ?", marketData.ID).Select("last_login_at").Updates(marketData).Error
err = impl.DBService.Debug().Where("id = ?", marketData.ID).Select("last_login_at").Updates(marketData).Error
if err != nil {
return nil, err
}

View File

@@ -5,8 +5,10 @@ import (
"log"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/service"
)
@@ -40,7 +42,7 @@ func Modify(ctx context.Context, in *pb.MarketAgenctyItem) (reply *pb.IdentitySt
Country: in.GetCountry(),
Area: in.GetArea(),
}
if err := models.DBService.Where("identity=?", identity).Updates(&mktModel).Error; err != nil {
if err := impl.DBService.Where("identity=?", identity).Updates(&mktModel).Error; err != nil {
log.Println("更新代理商数据失败:", err)
return nil, err
}

View File

@@ -3,8 +3,10 @@ package agency
import (
"context"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -29,7 +31,7 @@ func Pending(ctx context.Context, in *pb.MarketFetchRequest) (reply *pb.AgencyRe
if in.GetPageSize() < 0 {
in.PageSize = 50
}
tx := models.DBService.Model(&models.MarketAgency{}).Where("approve = 0").Order("created_at desc")
tx := impl.DBService.Model(&models.MarketAgency{}).Where("approve = 0").Order("created_at desc")
if in.GetIdentity() != "" {
tx.Where("identity = ?", in.GetIdentity())
}

View File

@@ -7,8 +7,10 @@ import (
"log"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/service"
"git.apinb.com/bsm-sdk/core/utils"
@@ -33,7 +35,7 @@ func SetPassword(ctx context.Context, in *pb.SetPasswordRequest) (reply *pb.Iden
}
// 获取当前角色数据
mktModel := models.MarketAgency{}
if err := models.DBService.Where("identity = ?", identity).First(&mktModel).Error; err != nil {
if err := impl.DBService.Where("identity = ?", identity).First(&mktModel).Error; err != nil {
log.Println("获取代理商数据失败:", err)
return nil, err
}
@@ -45,7 +47,7 @@ func SetPassword(ctx context.Context, in *pb.SetPasswordRequest) (reply *pb.Iden
// 设置新密码
newPwd := utils.Md5(in.GetNewPassword() + mktModel.Salt)
if err := models.DBService.Model(&mktModel).Update("password", newPwd).Error; err != nil {
if err := impl.DBService.Model(&mktModel).Update("password", newPwd).Error; err != nil {
log.Println("更新密码失败:", err)
return nil, err
}

View File

@@ -1,8 +1,9 @@
package data
import (
"context"
pb "bsm/full/module/ec/market/pb"
"context"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/service"
)

View File

@@ -1,8 +1,9 @@
package data
import (
"context"
pb "bsm/full/module/ec/market/pb"
"context"
"git.apinb.com/bsm-sdk/core/service"
)

View File

@@ -1,8 +1,9 @@
package data
import (
"context"
pb "bsm/full/module/ec/market/pb"
"context"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/service"
)

View File

@@ -1,8 +1,9 @@
package data
import (
"context"
pb "bsm/full/module/ec/market/pb"
"context"
"git.apinb.com/bsm-sdk/core/service"
)

View File

@@ -1,8 +1,9 @@
package data
import (
"context"
pb "bsm/full/module/ec/market/pb"
"context"
"git.apinb.com/bsm-sdk/core/service"
)

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/types"
"git.apinb.com/bsm-sdk/core/utils"
@@ -34,7 +36,7 @@ func Create(ctx context.Context, in *pb.MarketSupplyItem) (reply *pb.IdentitySta
Remark: in.GetRemark(),
CommissionRate: in.GetCommissionRate(),
}
if err := models.DBService.Create(&mktModel).Error; err != nil {
if err := impl.DBService.Create(&mktModel).Error; err != nil {
return nil, err
}

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -24,7 +26,7 @@ func Delete(ctx context.Context, in *pb.IdentRequest) (reply *pb.IdentityStatusR
return nil, errcode.ErrInvalidArgument
}
if err := models.DBService.Where("id = ? or identity = ?", in.GetId(), in.GetIdentity()).Delete(&models.MarketSupply{}).Error; err != nil {
if err := impl.DBService.Where("id = ? or identity = ?", in.GetId(), in.GetIdentity()).Delete(&models.MarketSupply{}).Error; err != nil {
printer.Error(err.Error())
return nil, err
}

View File

@@ -3,8 +3,10 @@ package supply
import (
"context"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -28,7 +30,7 @@ func Fetch(ctx context.Context, in *pb.MarketFetchRequest) (reply *pb.SupplyRepl
if in.GetPageSize() < 10 {
in.PageSize = 50
}
tx := models.DBService.Model(&models.MarketSupply{}).Where("status = ?", 1)
tx := impl.DBService.Model(&models.MarketSupply{}).Where("status = ?", 1)
if in.GetIdentity() != "" {
tx.Where("identity = ?", in.GetIdentity())
}

View File

@@ -4,8 +4,10 @@ import (
"context"
"log"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/service"
)
@@ -18,7 +20,7 @@ func Get(ctx context.Context, in *pb.IdentRequest) (reply *pb.MarketSupplyItem,
}
mktModel := models.MarketSupply{}
if err := models.DBService.Where("identity=?", in.GetIdentity()).First(&mktModel).Error; err != nil {
if err := impl.DBService.Where("identity=?", in.GetIdentity()).First(&mktModel).Error; err != nil {
log.Println("获取供应商数据失败:", err)
return nil, err
}

View File

@@ -5,8 +5,10 @@ import (
"log"
"time"
"bsm/full/module/ec/market/internal/impl"
"bsm/full/module/ec/market/internal/models"
pb "bsm/full/module/ec/market/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/service"
)
@@ -33,7 +35,7 @@ func Modify(ctx context.Context, in *pb.MarketSupplyItem) (reply *pb.IdentitySta
Remark: in.GetRemark(),
CommissionRate: in.GetCommissionRate(),
}
if err := models.DBService.Where("identity=?", in.GetIdentity()).Updates(&mktModel).Error; err != nil {
if err := impl.DBService.Where("identity=?", in.GetIdentity()).Updates(&mktModel).Error; err != nil {
log.Println("更新供应商数据失败:", err)
return nil, err
}

View File

@@ -0,0 +1,29 @@
package service
import (
"bsm/full/module/ec/market/internal/impl"
"git.apinb.com/bsm-sdk/core/cache/redis"
cache "github.com/patrickmn/go-cache"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
// Dependencies contains shared infrastructure supplied by the all module.
type Dependencies struct {
Redis *redis.RedisClient
Etcd *clientv3.Client
DB *gorm.DB
Cache *cache.Cache
}
func applyDependencies(deps Dependencies) {
if deps.Redis != nil {
impl.RedisCache = deps.Redis
}
if deps.Etcd != nil {
impl.Etcd = deps.Etcd
}
if deps.DB != nil {
impl.DBService = deps.DB
}
}

View File

@@ -10,11 +10,13 @@ import (
)
type ExposeOptions struct {
Dependencies
GRPC *grpc.Server
Gateway *gwRuntime.ServeMux
}
func Expose(options ExposeOptions) error {
applyDependencies(options.Dependencies)
server.New(options.GRPC)
ctx := context.Background()

View File

@@ -5,17 +5,20 @@ import (
"bsm/full/module/ec/order/internal/config"
"bsm/full/module/ec/order/internal/models"
"git.apinb.com/bsm-sdk/core/cache/redis"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/vars"
"go.etcd.io/etcd/client/pkg/v3/transport"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
var (
RedisCache *redis.RedisClient
Etcd *clientv3.Client
DBService *gorm.DB
)
func withRedisCache(srvKey string) {
@@ -40,6 +43,7 @@ func withDatabases() {
printer.Error("Database Init Failed !")
panic(err)
}
DBService = models.DBService
}

View File

@@ -5,8 +5,10 @@ import (
"errors"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -22,7 +24,7 @@ func Create(ctx context.Context, in *pb.CartAddRequest) (reply *pb.OrderStatusRe
}
var cart *models.OrderCart
err = models.DBService.Where("cart_identity=? and product_identity=? and spec_id = ? ", in.CartIdentity, in.ProductIdentity, in.SpecId).First(&cart).Error
err = impl.DBService.Where("cart_identity=? and product_identity=? and spec_id = ? ", in.CartIdentity, in.ProductIdentity, in.SpecId).First(&cart).Error
if err != nil {
if !errors.Is(err, gorm.ErrRecordNotFound) {
printer.Error(err.Error())
@@ -41,10 +43,10 @@ func Create(ctx context.Context, in *pb.CartAddRequest) (reply *pb.OrderStatusRe
data.PassportIdentity = auth.Identity
data.Identity = utils.UUID()
if cart.ID == 0 {
err = models.DBService.Create(&data).Error
err = impl.DBService.Create(&data).Error
} else {
data.Number += cart.Number
err = models.DBService.Where("cart_identity=? and product_identity=? and spec_id = ? ", in.CartIdentity, in.ProductIdentity, in.SpecId).Updates(&data).Error
err = impl.DBService.Where("cart_identity=? and product_identity=? and spec_id = ? ", in.CartIdentity, in.ProductIdentity, in.SpecId).Updates(&data).Error
}
if err != nil {

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/service"
)
@@ -17,7 +19,7 @@ func Delete(ctx context.Context, in *pb.CartDelRequest) (reply *pb.OrderStatusRe
return nil, err
}
err = models.DBService.Where("id in ?", in.Id).Delete(&models.OrderCart{}).Error
err = impl.DBService.Where("id in ?", in.Id).Delete(&models.OrderCart{}).Error
if err != nil {
return nil, err
}

View File

@@ -3,8 +3,10 @@ package cart
import (
"context"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -26,7 +28,7 @@ func Fetch(ctx context.Context, in *pb.CartGetRequest) (reply *pb.CartGetReply,
}
}
// 查询购物车数据
err = models.DBService.Where("cart_identity=? or passport_identity=?", in.GetCarIdentity(), auth.Identity).Find(&cart).Error
err = impl.DBService.Where("cart_identity=? or passport_identity=?", in.GetCarIdentity(), auth.Identity).Find(&cart).Error
if err != nil {
printer.Error(err.Error())
@@ -35,7 +37,7 @@ func Fetch(ctx context.Context, in *pb.CartGetRequest) (reply *pb.CartGetReply,
for _, item := range cart {
product := models.Product{}
err := models.DBService.Raw(`
err := impl.DBService.Raw(`
SELECT
p.id, p.identity, p.title, p.cover_image, p.args, p.cost_price,
( SELECT MIN(mps.price)

View File

@@ -4,8 +4,9 @@ import (
"context"
"time"
"bsm/full/module/ec/order/internal/models"
"bsm/full/module/ec/order/internal/impl"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -20,7 +21,7 @@ func Modify(ctx context.Context, in *pb.CartSetRequest) (reply *pb.OrderStatusRe
return nil, err
}
if len(in.GetUpdates()) > 0 {
err = models.DBService.Transaction(func(tx *gorm.DB) error {
err = impl.DBService.Transaction(func(tx *gorm.DB) error {
for _, update := range in.Updates {
err := tx.Table("order_cart").Where("id = ?", update.Id).Update("number", update.Number).Error
if err != nil {
@@ -36,7 +37,7 @@ func Modify(ctx context.Context, in *pb.CartSetRequest) (reply *pb.OrderStatusRe
return nil, errcode.ErrInvalidArgument
}
err = models.DBService.Table("order_cart").Where("id = ?", in.Id).Update("number", in.Number).Error
err = impl.DBService.Table("order_cart").Where("id = ?", in.Id).Update("number", in.Number).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -1,6 +1,7 @@
package common
import (
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
)
@@ -11,7 +12,7 @@ func GetOrderSummaryByIdentity(identity string) (*pb.OrderSummaryItem, error) {
err error
summary = new(models.OrderSummary)
)
err = models.DBService.Preload("OrderDetails").Where("identity = ?", identity).First(&summary).Error
err = impl.DBService.Preload("OrderDetails").Where("identity = ?", identity).First(&summary).Error
if err != nil {
return nil, err
}
@@ -24,7 +25,7 @@ func GetOrderSummaryByNo(no string) (*pb.OrderSummaryItem, error) {
err error
summary = new(models.OrderSummary)
)
err = models.DBService.Preload("OrderDetails").Where("order_no = ?", no).First(&summary).Error
err = impl.DBService.Preload("OrderDetails").Where("order_no = ?", no).First(&summary).Error
if err != nil {
return nil, err
}

View File

@@ -4,6 +4,7 @@ import (
"bsm/full/module/ec/order/internal/models"
order "bsm/full/module/ec/order/pb"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/vars"
)

View File

@@ -3,8 +3,10 @@ package coupon
import (
"context"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -23,7 +25,7 @@ func ByStatus(ctx context.Context, in *pb.Status) (reply *pb.CouponListReply, er
result = make([]*pb.CouponItem, 0)
)
err = models.DBService.Where("passport_id=?", auth.ID).Find(&coupon).Error
err = impl.DBService.Where("passport_id=?", auth.ID).Find(&coupon).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"gorm.io/gorm"
@@ -19,7 +21,7 @@ func OrderApprove(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.Orde
}
// 获取当前订单信息。
var order models.OrderSummary
if err := models.DBService.Preload("OrderDetails").Where("identity=?", in.Identity).First(&order).Error; err != nil {
if err := impl.DBService.Preload("OrderDetails").Where("identity=?", in.Identity).First(&order).Error; err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
}
@@ -29,7 +31,7 @@ func OrderApprove(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.Orde
// 申请退款
case 1:
if in.GetApprove() == 4 {
err = models.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).
err = impl.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).
Updates(map[string]any{
"approve": in.GetApprove(),
"status": 7,
@@ -42,7 +44,7 @@ func OrderApprove(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.Orde
// 申请退货
case 2:
if in.GetApprove() == 4 {
models.DBService.Transaction(func(tx *gorm.DB) error {
impl.DBService.Transaction(func(tx *gorm.DB) error {
err = tx.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).
Updates(map[string]any{
"approve": in.GetApprove(),
@@ -68,7 +70,7 @@ func OrderApprove(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.Orde
case 3:
if in.GetApprove() == 4 {
err = models.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).
err = impl.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).
Updates(map[string]any{
"approve": in.GetApprove(),
"status": 6,
@@ -81,7 +83,7 @@ func OrderApprove(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.Orde
}
// 审批未通过
if in.GetApprove() == -2 {
if err := models.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).
if err := impl.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).
Update("approve", in.GetApprove()).Error; err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -32,7 +34,7 @@ func OrderCancel(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.Order
if in.GetIdentity() == "" {
return nil, errcode.ErrInvalidArgument
}
err = models.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).Update("status", -1).Error
err = impl.DBService.Model(&models.OrderSummary{}).Where("identity=?", in.Identity).Update("status", -1).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -5,9 +5,11 @@ import (
"errors"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/logic/common"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -52,7 +54,7 @@ func OrderCreate(ctx context.Context, in *pb.CreateOrderRequest) (reply *pb.Orde
// 查询产品信息以确保其存在且状态为启用。
for _, specs := range in.Spec {
product := map[string]any{}
err = models.DBService.Table("mall_product").Take(&product, "identity=?", specs.ProductIdentity).Error
err = impl.DBService.Table("mall_product").Take(&product, "identity=?", specs.ProductIdentity).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
@@ -62,7 +64,7 @@ func OrderCreate(ctx context.Context, in *pb.CreateOrderRequest) (reply *pb.Orde
}
// 查询产品规格信息。
spec := map[string]any{}
err = models.DBService.Table("mall_product_spec").Take(&spec, "product_identity=? ", specs.ProductIdentity).Error
err = impl.DBService.Table("mall_product_spec").Take(&spec, "product_identity=? ", specs.ProductIdentity).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
@@ -96,7 +98,7 @@ func OrderCreate(ctx context.Context, in *pb.CreateOrderRequest) (reply *pb.Orde
// 查询地址信息以确保其存在。
address := map[string]any{}
err = models.DBService.Table("address_library").Take(&address, "identity=?", in.AddressIdentity).Error
err = impl.DBService.Table("address_library").Take(&address, "identity=?", in.AddressIdentity).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
@@ -126,7 +128,7 @@ func OrderCreate(ctx context.Context, in *pb.CreateOrderRequest) (reply *pb.Orde
summary.Status = 1
// 将订单摘要和订单详情记录到数据库。
err = models.DBService.Transaction(func(tx *gorm.DB) error {
err = impl.DBService.Transaction(func(tx *gorm.DB) error {
// 创建订单摘要。
if err := tx.Create(summary).Error; err != nil {
printer.Error(err.Error())

View File

@@ -4,9 +4,11 @@ import (
"context"
"errors"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/logic/common"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -41,7 +43,7 @@ func OrderGet(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.OrderGet
storeIdentity = ownerStore["store_identity"].(string)
}
order := &models.OrderSummary{}
err = models.DBService.Model(&models.OrderSummary{}).Where("store_identity = ? and identity=?", storeIdentity, in.Identity).Preload("OrderDetails").Find(&order).Error
err = impl.DBService.Model(&models.OrderSummary{}).Where("store_identity = ? and identity=?", storeIdentity, in.Identity).Preload("OrderDetails").Find(&order).Error
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, errcode.ErrRecordNotFound

View File

@@ -4,9 +4,11 @@ import (
"context"
"errors"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/logic/common"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -55,7 +57,7 @@ func OrderListByStore(ctx context.Context, in *pb.OrderListByStoreRequest) (repl
}
orderList := make([]*models.OrderSummary, 0)
tx := models.DBService.Model(&models.OrderSummary{}).Where("store_identity = ?", storeIdentity).Where("partner_id = ?", auth.ID).Preload("OrderDetails")
tx := impl.DBService.Model(&models.OrderSummary{}).Where("store_identity = ?", storeIdentity).Where("partner_id = ?", auth.ID).Preload("OrderDetails")
// 根据状态查询订单
if in.GetStatus() != 0 {
tx = tx.Where("status = ?", in.GetStatus())

View File

@@ -5,6 +5,7 @@ import (
"time"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/service"
)

View File

@@ -5,8 +5,10 @@ import (
"errors"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -29,7 +31,7 @@ func OrderReturnable(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.O
// 获取当前订单信息
order := models.OrderSummary{}
if err := models.DBService.Preload("OrderDetails").Where("identity=?", in.Identity).First(&order).Error; err != nil {
if err := impl.DBService.Preload("OrderDetails").Where("identity=?", in.Identity).First(&order).Error; err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
}
@@ -44,7 +46,7 @@ func OrderReturnable(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb.O
Approve: int8(in.GetApprove()),
Reason: in.GetReason(),
}
err = models.DBService.Model(&models.OrderSummary{}).Where("identity = ?", in.Identity).Updates(&summaryModel).Error
err = impl.DBService.Model(&models.OrderSummary{}).Where("identity = ?", in.Identity).Updates(&summaryModel).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -23,7 +25,7 @@ func Cancel(ctx context.Context, in *pb.CancelRequest) (reply *pb.OrderStatusRep
summary = new(models.OrderSummary)
)
err = models.DBService.Where("order_no = ?", in.OrderNo).First(&summary).Error
err = impl.DBService.Where("order_no = ?", in.OrderNo).First(&summary).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
@@ -36,14 +38,14 @@ func Cancel(ctx context.Context, in *pb.CancelRequest) (reply *pb.OrderStatusRep
}
values.Status = -1
err := models.DBService.Where("order_no = ?", in.OrderNo).Updates(values).Error
err := impl.DBService.Where("order_no = ?", in.OrderNo).Updates(values).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
}
err = models.DBService.Model(&models.OrderCoupon{}).Where("identity=?", summary.CouponIdentity).Update("status", 2).Error
err = impl.DBService.Model(&models.OrderCoupon{}).Where("identity=?", summary.CouponIdentity).Update("status", 2).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -4,8 +4,10 @@ import (
"context"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -21,7 +23,7 @@ func Check(ctx context.Context, in *pb.Empty) (reply *pb.OrderStatusReply, err e
var (
summary = new(models.OrderSummary)
)
err = models.DBService.Where("passport_id = ?", auth.ID).First(&summary).Error
err = impl.DBService.Where("passport_id = ?", auth.ID).First(&summary).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -3,8 +3,10 @@ package summary
import (
"context"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -25,7 +27,7 @@ func Confirm(ctx context.Context, in *pb.ConfirmRequest) (reply *pb.ConfirmReply
coupon = new(models.OrderCoupon)
)
err = models.DBService.Where("order_no = ?", in.OrderNo).First(&summary).Error
err = impl.DBService.Where("order_no = ?", in.OrderNo).First(&summary).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
@@ -33,7 +35,7 @@ func Confirm(ctx context.Context, in *pb.ConfirmRequest) (reply *pb.ConfirmReply
if in.AddressIdentity != "" {
/*
err = models.DBService.Where("id=?", in.AddressId).First(&address).Error
err = impl.DBService.Where("id=?", in.AddressId).First(&address).Error
if err == nil {
summary.Address = address.Detail
summary.County = address.Country
@@ -51,10 +53,10 @@ func Confirm(ctx context.Context, in *pb.ConfirmRequest) (reply *pb.ConfirmReply
}
if in.CouponIdentity != "" {
err = models.DBService.Where("identity=?", in.CouponIdentity).First(&coupon).Error
err = impl.DBService.Where("identity=?", in.CouponIdentity).First(&coupon).Error
if err == nil {
if coupon.Status == 2 {
models.DBService.Model(&models.OrderCoupon{}).Where("identity=?", in.CouponIdentity).Update("status", 3)
impl.DBService.Model(&models.OrderCoupon{}).Where("identity=?", in.CouponIdentity).Update("status", 3)
couponAmount = coupon.Amount
} else {
printer.Error(err.Error())
@@ -72,7 +74,7 @@ func Confirm(ctx context.Context, in *pb.ConfirmRequest) (reply *pb.ConfirmReply
summary.Status = 1
err = models.DBService.Where("order_no = ?", in.OrderNo).Updates(summary).Error
err = impl.DBService.Where("order_no = ?", in.OrderNo).Updates(summary).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -5,6 +5,7 @@ import (
"bsm/full/module/ec/order/internal/logic/common"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"

View File

@@ -4,9 +4,11 @@ import (
"context"
"errors"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/logic/common"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -43,7 +45,7 @@ func List(ctx context.Context, in *pb.SummaryListRequest) (reply *pb.SummaryList
}
orderList := make([]*models.OrderSummary, 0)
tx := models.DBService.Model(&models.OrderSummary{}).Preload("OrderDetails").Where("passport_identity = ?", auth.Identity)
tx := impl.DBService.Model(&models.OrderSummary{}).Preload("OrderDetails").Where("passport_identity = ?", auth.Identity)
if payType != 0 {
tx = tx.Where("pay_type = ?", payType)

View File

@@ -6,9 +6,11 @@ import (
"strings"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/logic/common"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -30,7 +32,7 @@ func QuickCreateByProduct(ctx context.Context, in *pb.QuickCreateByProductReques
// 查询商店信息以确保其存在且状态为启用。
store := map[string]any{}
err = models.DBService.Table("mall_store").Take(&store, "identity=?", in.StoreIdentity).Error
err = impl.DBService.Table("mall_store").Take(&store, "identity=?", in.StoreIdentity).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {
@@ -46,9 +48,9 @@ func QuickCreateByProduct(ctx context.Context, in *pb.QuickCreateByProductReques
product := map[string]any{}
var pi string = strings.ToLower(in.ProductIdentity)
if pi == "gas_by_kg" || pi == "gas_by_bottle" {
err = models.DBService.Table("mall_product").Take(&product, "store_identity=? and serial_id=?", in.StoreIdentity, pi).Error
err = impl.DBService.Table("mall_product").Take(&product, "store_identity=? and serial_id=?", in.StoreIdentity, pi).Error
} else {
err = models.DBService.Table("mall_product").Take(&product, "identity=?", in.ProductIdentity).Error
err = impl.DBService.Table("mall_product").Take(&product, "identity=?", in.ProductIdentity).Error
}
if err != nil {
printer.Error(err.Error())
@@ -63,7 +65,7 @@ func QuickCreateByProduct(ctx context.Context, in *pb.QuickCreateByProductReques
// 查询产品规格信息
spec := map[string]any{}
err = models.DBService.Table("mall_product_spec").Take(&spec, "product_identity=?", in.ProductIdentity).Error
err = impl.DBService.Table("mall_product_spec").Take(&spec, "product_identity=?", in.ProductIdentity).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {
@@ -74,7 +76,7 @@ func QuickCreateByProduct(ctx context.Context, in *pb.QuickCreateByProductReques
// 查询地址信息以确保其存在。
address := map[string]any{}
err = models.DBService.Table("address_library").Take(&address, "identity=?", in.AddressIdentity).Error
err = impl.DBService.Table("address_library").Take(&address, "identity=?", in.AddressIdentity).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {
@@ -85,7 +87,7 @@ func QuickCreateByProduct(ctx context.Context, in *pb.QuickCreateByProductReques
// // 查询配送员信息
// member := map[string]any{}
// err = models.DBService.Table("delivery_member").Take(&member, "identity=?", in.MemberIdentity).Error
// err = impl.DBService.Table("delivery_member").Take(&member, "identity=?", in.MemberIdentity).Error
// if err != nil {
// printer.Error(err.Error())
// if errors.Is(err, models.ErrNotFound) {
@@ -144,13 +146,13 @@ func QuickCreateByProduct(ctx context.Context, in *pb.QuickCreateByProductReques
}
// 将订单摘要和订单详情记录到数据库。
err = models.DBService.Create(summary).Error
err = impl.DBService.Create(summary).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB
}
err = models.DBService.Create(details).Error
err = impl.DBService.Create(details).Error
if err != nil {
printer.Error(err.Error())
return nil, errcode.ErrDB

View File

@@ -5,8 +5,10 @@ import (
"errors"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -20,7 +22,7 @@ func SimulatePay(ctx context.Context, in *pb.SimulatePayRequest) (reply *pb.Orde
return nil, err
}
err = models.DBService.Model(&models.OrderSummary{}).Where("identity in ?", in.Identity).Updates(models.OrderSummary{Status: 2, PayTime: time.Now(), PayType: 4, PayRemark: "支付备注", PayTradeNo: "Pay12371937812897", PayAmount: 10000000}).Error
err = impl.DBService.Model(&models.OrderSummary{}).Where("identity in ?", in.Identity).Updates(models.OrderSummary{Status: 2, PayTime: time.Now(), PayType: 4, PayRemark: "支付备注", PayTradeNo: "Pay12371937812897", PayAmount: 10000000}).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {

View File

@@ -5,8 +5,10 @@ import (
"errors"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -24,7 +26,7 @@ func SimulateReceiving(ctx context.Context, in *pb.OrderIdentRequest) (reply *pb
return nil, errcode.ErrInvalidArgument
}
err = models.DBService.Model(&models.OrderSummary{}).Where("identity = ?", in.Identity).Update("status", 4).Error
err = impl.DBService.Model(&models.OrderSummary{}).Where("identity = ?", in.Identity).Update("status", 4).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {

View File

@@ -5,8 +5,10 @@ import (
"errors"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -24,7 +26,7 @@ func SimulateShipments(ctx context.Context, in *pb.SimulateShipmentsRequest) (re
return nil, errcode.ErrInvalidArgument
}
err = models.DBService.Where("identity = ?", in.Identity).Updates(&models.OrderSummary{Status: 3, DeliveryIdentity: in.MemberIdentity}).Error
err = impl.DBService.Where("identity = ?", in.Identity).Updates(&models.OrderSummary{Status: 3, DeliveryIdentity: in.MemberIdentity}).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {

View File

@@ -7,9 +7,11 @@ import (
"strings"
"time"
"bsm/full/module/ec/order/internal/impl"
"bsm/full/module/ec/order/internal/logic/common"
"bsm/full/module/ec/order/internal/models"
pb "bsm/full/module/ec/order/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/printer"
"git.apinb.com/bsm-sdk/core/service"
@@ -40,7 +42,7 @@ func Submit(ctx context.Context, in *pb.SubmitRequest) (reply *pb.OrderStatusRep
)
// 获取购物车内数据信息
err = models.DBService.Where("passport_identity = ?", auth.Identity).Find(&cart).Error
err = impl.DBService.Where("passport_identity = ?", auth.Identity).Find(&cart).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {
@@ -63,7 +65,7 @@ func Submit(ctx context.Context, in *pb.SubmitRequest) (reply *pb.OrderStatusRep
ZipCode: in.Address.ZipCode,
}
} else {
err = models.DBService.Table("address_library").Where("identity = ?", in.AddressIdentity).Find(&address).Error
err = impl.DBService.Table("address_library").Where("identity = ?", in.AddressIdentity).Find(&address).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {
@@ -77,7 +79,7 @@ func Submit(ctx context.Context, in *pb.SubmitRequest) (reply *pb.OrderStatusRep
storeGroups := make(map[string][]*models.OrderCart)
for k, item := range cart {
product := models.Product{}
err = models.DBService.Select("store_identity").Table("mall_product").Where("id = ?", item.ProductID).First(&product).Error
err = impl.DBService.Select("store_identity").Table("mall_product").Where("id = ?", item.ProductID).First(&product).Error
if err != nil {
printer.Error(err.Error())
if errors.Is(err, models.ErrNotFound) {
@@ -107,7 +109,7 @@ func Submit(ctx context.Context, in *pb.SubmitRequest) (reply *pb.OrderStatusRep
spec := models.Spec{}
// 获取产品信息
err = models.DBService.Select("title,cover_image,cost_price,supply_id,args,gas_types").Table("mall_product").
err = impl.DBService.Select("title,cover_image,cost_price,supply_id,args,gas_types").Table("mall_product").
Where("id = ?", item.ProductID).First(&product).Error
if err != nil {
printer.Error(err.Error())
@@ -118,7 +120,7 @@ func Submit(ctx context.Context, in *pb.SubmitRequest) (reply *pb.OrderStatusRep
}
// 获取规格信息
err := models.DBService.Select("title,serial_number,price").Table("mall_product_spec").
err := impl.DBService.Select("title,serial_number,price").Table("mall_product_spec").
Where("id = ?", item.SpecID).First(&spec).Error
if err != nil {
printer.Error(err.Error())
@@ -182,7 +184,7 @@ func Submit(ctx context.Context, in *pb.SubmitRequest) (reply *pb.OrderStatusRep
keys = append(keys, StoreIdentity)
}
err = models.DBService.Transaction(func(tx *gorm.DB) error {
err = impl.DBService.Transaction(func(tx *gorm.DB) error {
// 1. 创建订单摘要
if err := tx.Create(summary).Error; err != nil {
printer.Error(err.Error())

View File

@@ -0,0 +1,29 @@
package service
import (
"bsm/full/module/ec/order/internal/impl"
"git.apinb.com/bsm-sdk/core/cache/redis"
cache "github.com/patrickmn/go-cache"
clientv3 "go.etcd.io/etcd/client/v3"
"gorm.io/gorm"
)
// Dependencies contains shared infrastructure supplied by the all module.
type Dependencies struct {
Redis *redis.RedisClient
Etcd *clientv3.Client
DB *gorm.DB
Cache *cache.Cache
}
func applyDependencies(deps Dependencies) {
if deps.Redis != nil {
impl.RedisCache = deps.Redis
}
if deps.Etcd != nil {
impl.Etcd = deps.Etcd
}
if deps.DB != nil {
impl.DBService = deps.DB
}
}

View File

@@ -10,11 +10,13 @@ import (
)
type ExposeOptions struct {
Dependencies
GRPC *grpc.Server
Gateway *gwRuntime.ServeMux
}
func Expose(options ExposeOptions) error {
applyDependencies(options.Dependencies)
server.New(options.GRPC)
ctx := context.Background()