| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package service
- import (
- "errors"
- "xps/cache"
- "xps/datasource"
- "xps/repositories"
- "xps/viewmodels"
- )
- type InitService interface {
- CacheObjectData() error
- CacheApiData() error
- CacheDBData() error
- }
- type initService struct {
- objectRepo *repositories.ObjectRepo
- objectAttrRepo *repositories.ObjectAttrRepo
- apiRepo *repositories.ApiRepo
- apiTransUnitRepo *repositories.ApiTransUnitRepo
- }
- func NewInitService() InitService {
- return &initService{
- objectRepo: repositories.NewObjectRepo(datasource.InstanceMaster()),
- objectAttrRepo: repositories.NewObjectAttrRepo(datasource.InstanceMaster()),
- apiRepo: repositories.NewApiRepo(datasource.InstanceMaster()),
- apiTransUnitRepo: repositories.NewApiTransUnitRepo(datasource.InstanceMaster()),
- }
- }
- func (s *initService) CacheObjectData() error {
- objectList, err1 := s.objectRepo.GetAll()
- if err1 != nil {
- return err1
- }
- attrsList, err2 := s.objectAttrRepo.GetAll()
- if err2 != nil {
- return err2
- }
-
- for _, object := range objectList {
- objectId := object.ObjectId
-
- attrs := make([]viewmodels.ObjectAttrInfo, 0)
- for _, attr := range attrsList {
- if attr.ObjectId == objectId {
- attrs = append(attrs, attr)
- }
- }
-
- cacheData := &viewmodels.ObjectDataInfo{
- ModelId: object.ModelId,
- ModelTitle: object.ModelTitle,
- ObjectId: object.ObjectId,
- ObjectType: object.ObjectType,
- ObjectTitle: object.ObjectTitle,
- ObjectCode: object.ObjectCode,
- Comment: object.Comment,
- IsFixed: object.IsFixed,
- Attrs: attrs,
- }
-
- // 缓存数据
- err3 := cache.SetObjectData(object.ObjectCode, cacheData)
- if err3 != nil {
- return errors.New("Redis缓存Object数据失败")
- }
- }
-
- return nil
- }
- func (s *initService) CacheApiData() error {
- apiList, err1 := s.apiRepo.GetAll()
- if err1 != nil {
- return nil
- }
-
- transList, err2 := s.apiTransUnitRepo.GetAll()
- if err2 != nil {
- return nil
- }
-
- for _, api := range apiList {
- apiId := api.ApiId
- trans := make([]viewmodels.ApiTransUnitInfo, 0)
- for _, tran := range transList{
- if tran.ApiId == apiId {
- trans = append(trans, tran)
- }
- }
-
- cacheData := &viewmodels.ApiDataInfo{
- ModId: api.ModId,
- ModTitle: api.ModTitle,
- ApiId: api.ApiId,
- ApiCode: api.ApiCode,
- ApiTitle: api.ApiTitle,
- ApiType: api.ApiType,
- ApiParams: api.ApiParams,
- ApiDesc: api.ApiDesc,
- Status: api.Status,
- TransUnits: trans,
- }
-
- // 缓存数据
- err3 := cache.SetApiData(api.ApiCode, cacheData)
- if err3 != nil {
- return errors.New("Redis缓存Api数据失败")
- }
- }
-
- return nil
- }
- func (i initService) CacheDBData() error {
- return nil
- }
|