open.go
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package open
import (
"context"
"github.com/zeromicro/go-zero/core/stores/redis"
"gitlab.fjmaimaimai.com/allied-creation/su-micro/cmd/ep/system/internal/pkg/db/repository"
"gitlab.fjmaimaimai.com/allied-creation/su-micro/cmd/ep/system/internal/pkg/domain"
"gitlab.fjmaimaimai.com/allied-creation/su-micro/pkg/cache"
"gitlab.fjmaimaimai.com/allied-creation/su-micro/pkg/transaction"
)
type SystemOpen interface {
User(ctx context.Context, conn transaction.Conn, id int64) (User, error)
Company(ctx context.Context, conn transaction.Conn, id int64) (Company, error)
}
type systemOpenService struct {
UserRepository domain.SysUserRepository
CompanyRepository domain.SysCompanyRepository
}
type (
User domain.SysUser
Company domain.SysCompany
)
func (s systemOpenService) User(ctx context.Context, conn transaction.Conn, id int64) (User, error) {
user, err := s.UserRepository.FindOne(ctx, conn, id)
if err != nil {
return User{}, err
}
return User(*user), err
}
func (s systemOpenService) Company(ctx context.Context, conn transaction.Conn, id int64) (Company, error) {
company, err := s.CompanyRepository.FindOne(ctx, conn, id)
if err != nil {
return Company{}, err
}
return Company(*company), nil
}
func NewSystemOpen(Redis redis.RedisConf) SystemOpen {
mlCache := cache.NewMultiLevelCache([]string{Redis.Host}, Redis.Pass)
return systemOpenService{
UserRepository: repository.NewSysUserRepository(cache.NewCachedRepository(mlCache)),
CompanyRepository: repository.NewSysCompanyRepository(cache.NewCachedRepository(mlCache)),
}
}