company_profile_service.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package system
  2. import (
  3. "xps/datamodels"
  4. "xps/datasource"
  5. "xps/repositories/system"
  6. )
  7. type CompanyProfileService interface{
  8. GetById(ocId int64)(*datamodels.Company, error)
  9. Update(data *datamodels.Company) error
  10. }
  11. type cmpProfileService struct {
  12. companyRepo *system.CompanyRepo
  13. ocRepo *system.OcRepo
  14. groupRepo *system.GroupRepo
  15. }
  16. func NewCompanyProfileService() CompanyProfileService{
  17. engine := datasource.InstanceMaster()
  18. return &cmpProfileService{
  19. companyRepo: system.NewCompanyRepo(engine),
  20. ocRepo: system.NewOcRepo(engine),
  21. groupRepo: system.NewGroupRepo(engine),
  22. }
  23. }
  24. func (s *cmpProfileService) GetById(ocId int64)(*datamodels.Company, error){
  25. return s.companyRepo.GetById(ocId)
  26. }
  27. func (s *cmpProfileService) Update(data *datamodels.Company) error{
  28. ocId := data.OcId
  29. oc := &datamodels.Oc{}
  30. oc.OcId = ocId
  31. oc.OcName = data.CmpName
  32. err := s.ocRepo.Update(oc)
  33. if err != nil {
  34. return err
  35. }
  36. group := &datamodels.Group{GroupName: data.CmpName}
  37. group.OcId = ocId
  38. group.GroupId = ocId
  39. group.GroupName = data.CmpName
  40. err = s.groupRepo.Update(group)
  41. if err != nil {
  42. return err
  43. }
  44. return s.companyRepo.Update(ocId, data)
  45. }