company_profile_service.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package service
  2. import (
  3. "xps/datamodel"
  4. "xps/datasource"
  5. "xps/repositories"
  6. )
  7. type CompanyProfileService interface{
  8. GetById(ocId int64)(*datamodel.Company, error)
  9. Update(data *datamodel.Company) error
  10. }
  11. type cmpProfileService struct {
  12. companyRepo *repositories.CompanyRepo
  13. ocRepo *repositories.OcRepo
  14. groupRepo *repositories.GroupRepo
  15. }
  16. func NewCompanyProfileService() CompanyProfileService {
  17. engine := datasource.InstanceMaster()
  18. return &cmpProfileService{
  19. companyRepo: repositories.NewCompanyRepo(engine),
  20. ocRepo: repositories.NewOcRepo(engine),
  21. groupRepo: repositories.NewGroupRepo(engine),
  22. }
  23. }
  24. func (s *cmpProfileService) GetById(ocId int64)(*datamodel.Company, error){
  25. return s.companyRepo.GetById(ocId)
  26. }
  27. func (s *cmpProfileService) Update(data *datamodel.Company) error{
  28. ocId := data.OcId
  29. oc := &datamodel.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 := &datamodel.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. }