| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- package service
- import (
- "time"
- "xps/datamodels"
- "xps/datasource"
- "xps/repositories"
- "xps/viewmodels"
- )
- type ObjectService interface {
- GetList(m map[string]interface{}) ([]viewmodels.ObjectInfo, error)
- GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
- GetById(modelId, objectId int64) (*viewmodels.ObjectInfo, error)
- Create(d *datamodels.Object) error
- Update(d *datamodels.Object) error
- Delete(m map[string]interface{}) error
- GetObjectDataById(modelId, objectId int64) (*viewmodels.ObjectDataInfo, error)
- CreateObjectData(d *viewmodels.ObjectDataInfo) error
- UpdateObjectData(d *viewmodels.ObjectDataInfo) error
- }
- type objectService struct {
- objectRepo *repositories.ObjectRepo
- objectAttrRepo *repositories.ObjectAttrRepo
- }
- func NewObjectService() ObjectService {
- return &objectService{
- objectRepo: repositories.NewObjectRepo(datasource.InstanceMaster()),
- objectAttrRepo: repositories.NewObjectAttrRepo(datasource.InstanceMaster()),
- }
- }
- func (s *objectService) GetList(m map[string]interface{}) ([]viewmodels.ObjectInfo, error) {
- return s.objectRepo.GetList(m)
- }
- func (s *objectService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
- return s.objectRepo.GetPage(m)
- }
- func (s *objectService) GetById(modelId, objectId int64) (*viewmodels.ObjectInfo, error) {
- return s.objectRepo.GetById(modelId, objectId)
- }
- func (s *objectService) Create(Object *datamodels.Object) error {
- Object.ObjectId = NewID()
- return s.objectRepo.Create(Object)
- }
- func (s *objectService) Update(Object *datamodels.Object) error {
- return s.objectRepo.Update(Object)
- }
- func (s *objectService) Delete(m map[string]interface{}) error {
- modelId := m["modelId"].(int64)
- objectId := m["objectId"].(int64)
- err := s.objectRepo.Delete(m)
- if err != nil {
- return err
- }
- return s.objectAttrRepo.DeleteByObjectId(modelId, objectId)
- }
- func (s *objectService) GetObjectDataById(modelId, objectId int64) (*viewmodels.ObjectDataInfo, error) {
- objectInfo, err := s.objectRepo.GetById(modelId, objectId)
- if err != nil {
- return nil, err
- }
-
- attrs, err := s.objectAttrRepo.GetListById(modelId, objectId)
- if err != nil {
- return nil, err
- }
- objectDataInfo := &viewmodels.ObjectDataInfo{
- ModelId: objectInfo.ModelId,
- ObjectId: objectInfo.ObjectId,
- ObjectType: objectInfo.ObjectType,
- ObjectTitle: objectInfo.ObjectTitle,
- ObjectCode: objectInfo.ObjectCode,
- Comment: objectInfo.Comment,
- IsFixed: objectInfo.IsFixed,
- CreatedBy: objectInfo.CreatedBy,
- CreatedAt: objectInfo.CreatedAt,
- UpdatedAt: objectInfo.UpdatedAt,
- UpdatedBy: objectInfo.UpdatedBy,
- DeletedAt: objectInfo.DeletedAt,
- DeletedBy: objectInfo.DeletedBy,
- DeletedFlag: 0,
- Attrs: attrs,
- }
- return objectDataInfo, nil
- }
- func (s *objectService) CreateObjectData(o *viewmodels.ObjectDataInfo) error {
- modelId := o.ModelId
- objectId := NewID()
- createdBy := o.CreatedBy
- object := &datamodels.Object{
- ModelId: modelId,
- ObjectId: objectId,
- ObjectType: o.ObjectType,
- ObjectTitle: o.ObjectTitle,
- ObjectCode: o.ObjectCode,
- Comment: o.Comment,
- IsFixed: 0,
- CreatedBy: createdBy,
- CreatedAt: time.Now(),
- }
- err := s.objectRepo.Create(object)
- if err != nil {
- return err
- }
- for _, a := range o.Attrs {
- newId := NewID()
- objectAttr := &datamodels.ObjectAttr{
- ModelId: modelId,
- ObjectId: objectId,
- AttrId: newId,
- AttrTitle: a.AttrTitle,
- AttrCode: a.AttrCode,
- AttrType: a.AttrType,
- AttrLength: a.AttrLength,
- AttrDecimals: a.AttrDecimals,
- Comment: a.Comment,
- IsFixed: a.IsFixed,
- IsNotNull: a.IsNotNull,
- IsPKey: a.IsPKey,
- CreatedAt: time.Now(),
- CreatedBy: createdBy,
- }
- err = s.objectAttrRepo.Create(objectAttr)
- if err != nil {
- return err
- }
- }
- return nil
- }
- func (s *objectService) UpdateObjectData(o *viewmodels.ObjectDataInfo) error {
- modelId := o.ModelId
- objectId := o.ObjectId
- updatedBy := o.UpdatedBy
- object := &datamodels.Object{
- ModelId: modelId,
- ObjectId: objectId,
- ObjectType: o.ObjectType,
- ObjectTitle: o.ObjectTitle,
- ObjectCode: o.ObjectCode,
- Comment: o.Comment,
- IsFixed: 0,
- UpdatedBy: updatedBy,
- }
- err := s.objectRepo.Update(object)
- if err != nil {
- return err
- }
- err = s.objectAttrRepo.DeleteByObjectId(modelId, objectId)
- if err != nil {
- return err
- }
- for _, a := range o.Attrs {
- newId := NewID()
- objectAttr := &datamodels.ObjectAttr{
- ModelId: modelId,
- ObjectId: objectId,
- AttrId: newId,
- AttrTitle: a.AttrTitle,
- AttrCode: a.AttrCode,
- AttrType: a.AttrType,
- AttrLength: a.AttrLength,
- AttrDecimals: a.AttrDecimals,
- Comment: a.Comment,
- IsFixed: a.IsFixed,
- IsNotNull: a.IsNotNull,
- IsPKey: a.IsPKey,
- CreatedBy: updatedBy,
- }
- err = s.objectAttrRepo.Create(objectAttr)
- if err != nil {
- return err
- }
- }
- return nil
- }
|