refactor all service dependency injection
This commit is contained in:
@@ -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
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"context"
|
||||
pb "bsm/full/module/ec/market/pb"
|
||||
"context"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/service"
|
||||
)
|
||||
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"context"
|
||||
pb "bsm/full/module/ec/market/pb"
|
||||
"context"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/service"
|
||||
)
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package data
|
||||
|
||||
import (
|
||||
"context"
|
||||
pb "bsm/full/module/ec/market/pb"
|
||||
"context"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/service"
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
29
module/ec/market/service/dependencies.go
Normal file
29
module/ec/market/service/dependencies.go
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user