| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package service
- import (
- "errors"
- "xps/cache"
- "xps/datamodel"
- "xps/datasource"
- "xps/repositories"
- "xps/viewmodel"
- )
- type ModelObjectAttrService interface {
- GetList(m map[string]interface{}) ([]viewmodel.ModelObjectAttrInfo, error)
- GetPage(m map[string]interface{}) (*viewmodel.PageResult, error)
- GetById(modelId, objectId, attrId int64) (*viewmodel.ModelObjectAttrInfo, error)
- GetListById(modelId, objectId int64) ([]viewmodel.ModelObjectAttrInfo, error)
- Create(d *datamodel.ModelObjectAttr) error
- Update(d *datamodel.ModelObjectAttr) error
- Delete(m map[string]interface{}) error
-
- CacheModelObjectAttrs(modelId, objectId int64) error
- }
- type modelObjectAttrService struct {
- repo *repositories.ModelObjectAttrRepo
- }
- func NewModelObjectAttrService() ModelObjectAttrService {
- return &modelObjectAttrService{
- repo: repositories.NewModelObjectAttrRepo(datasource.InstanceMaster()),
- }
- }
- func (s *modelObjectAttrService) GetList(m map[string]interface{}) ([]viewmodel.ModelObjectAttrInfo, error) {
- return s.repo.GetList(m)
- }
- func (s *modelObjectAttrService) GetPage(m map[string]interface{}) (*viewmodel.PageResult, error) {
- return s.repo.GetPage(m)
- }
- func (s *modelObjectAttrService) GetById(modelId, objectId, attrId int64) (*viewmodel.ModelObjectAttrInfo, error) {
- return s.repo.GetById(modelId, objectId, attrId)
- }
- func (s *modelObjectAttrService) GetListById(modelId, objectId int64) ([]viewmodel.ModelObjectAttrInfo, error) {
- return s.repo.GetListById(modelId, objectId)
- }
- func (s *modelObjectAttrService) Create(attr *datamodel.ModelObjectAttr) error {
- attrId := NewID()
- attr.AttrId = attrId
- err := s.repo.Create(attr)
- if err != nil {
- return err
- }
-
- modelId := attr.ModelId
- objectId := attr.ObjectId
- return s.CacheModelObjectAttrs(modelId, objectId)
- }
- func (s *modelObjectAttrService) Update(attr *datamodel.ModelObjectAttr) error {
- err := s.repo.Update(attr)
- if err != nil {
- return err
- }
-
- modelId := attr.ModelId
- objectId := attr.ObjectId
- return s.CacheModelObjectAttrs(modelId, objectId)
- }
- func (s *modelObjectAttrService) Delete(m map[string]interface{}) error {
- return s.repo.Delete(m)
- }
- func (s *modelObjectAttrService) CacheModelObjectAttrs(modelId, objectId int64) error {
- attrList, err1 := s.repo.GetListById(modelId, objectId)
- if err1 != nil {
- return err1
- }
-
- if len(attrList) <= 0 {
- return errors.New("biz Object Attrs Not Exist")
- }
- objectCode := attrList[0].ObjectCode
- err2 := cache.SetModelObjectAttrs(objectCode, attrList)
- if err2 != nil {
- return errors.New("Redis缓存Model数据失败")
- }
- return nil
- }
|