| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- package service
- import (
- "errors"
- "xps/cache"
- "xps/datasource"
- "xps/repositories"
- "xps/viewmodels"
- )
- type InitService interface {
- CacheObjectData() error
- CacheApiData() error
- CacheDBData() error
- }
- type initService struct {
- modelObjectRepo *repositories.ModelObjectRepo
- modelObjectAttrRepo *repositories.ModelObjectAttrRepo
- apiRepo *repositories.ApiRepo
- apiTransUnitRepo *repositories.ApiTransUnitRepo
- }
- func NewInitService() InitService {
- return &initService{
- modelObjectRepo: repositories.NewModelObjectRepo(datasource.InstanceMaster()),
- modelObjectAttrRepo: repositories.NewModelObjectAttrRepo(datasource.InstanceMaster()),
- apiRepo: repositories.NewApiRepo(datasource.InstanceMaster()),
- apiTransUnitRepo: repositories.NewApiTransUnitRepo(datasource.InstanceMaster()),
- }
- }
- func (s *initService) CacheObjectData() error {
- objectList, err1 := s.modelObjectRepo.GetAll()
- if err1 != nil {
- return err1
- }
- attrsList, err2 := s.modelObjectAttrRepo.GetAll()
- if err2 != nil {
- return err2
- }
-
- for _, object := range objectList {
- objectId := object.ObjectId
-
- attrs := make([]viewmodels.ModelObjectAttrInfo, 0)
- for _, attr := range attrsList {
- if attr.ObjectId == objectId {
- attrs = append(attrs, attr)
- }
- }
-
- cacheData := &viewmodels.ModelObjectDataInfo{
- 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.SetModelObjectData(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 {
- moduleId := api.ModuleId
- apiId := api.ApiId
- trans := make([]viewmodels.ApiTransUnitInfo, 0)
- for _, tran := range transList{
- if tran.ModuleId == moduleId && tran.ApiId == apiId {
- trans = append(trans, tran)
- }
- }
-
- cacheData := &viewmodels.ApiDataInfo{
- ModuleId: api.ModuleId,
- ModuleTitle: api.ModuleTitle,
- 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 (s *initService) CacheDBData() error {
- return nil
- }
|