|
|
@@ -1,6 +1,8 @@
|
|
|
package service
|
|
|
|
|
|
import (
|
|
|
+ "time"
|
|
|
+ "xps/constant"
|
|
|
"xps/datamodels"
|
|
|
"xps/datasource"
|
|
|
"xps/repositories"
|
|
|
@@ -14,39 +16,268 @@ type OcService interface {
|
|
|
Create(d *datamodels.Oc) error
|
|
|
Update(d *datamodels.Oc) error
|
|
|
Delete(m map[string]interface{}) error
|
|
|
+
|
|
|
+ GetAdmin(ocId int64) (*viewmodels.OcAdminInfo, error)
|
|
|
+ CreateAdmin(d *viewmodels.OcAdminInfo) error
|
|
|
+ UpdateAdmin(d *viewmodels.OcAdminInfo) error
|
|
|
+ ResetAdminPwd(ocId, accountId int64) error
|
|
|
+
|
|
|
+ UpdateStatus(ocId, status int64) error
|
|
|
+ UpdateLicStatus(ocId, status int64) error
|
|
|
}
|
|
|
|
|
|
type ocService struct {
|
|
|
- repo *repositories.OcRepo
|
|
|
+ ocRepo *repositories.OcRepo
|
|
|
+ groupCatRepo *repositories.GroupCatRepo
|
|
|
+ groupRepo *repositories.GroupRepo
|
|
|
+ accountRepo *repositories.AccountRepo
|
|
|
+ positionRepo *repositories.PositionRepo
|
|
|
+ groupMemberRepo *repositories.GroupMemberRepo
|
|
|
+ groupMemberPositionRepo *repositories.GroupMemberPositionRepo
|
|
|
+ roleMemberRepo *repositories.RoleMemberRepo
|
|
|
}
|
|
|
|
|
|
func NewOcService() OcService {
|
|
|
return &ocService{
|
|
|
- repo: repositories.NewOcRepo(datasource.InstanceMaster()),
|
|
|
+ ocRepo: repositories.NewOcRepo(datasource.InstanceMaster()),
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func (s *ocService) GetList(m map[string]interface{}) ([]viewmodels.OcInfo, error) {
|
|
|
- return s.repo.GetList(m)
|
|
|
+ return s.ocRepo.GetList(m)
|
|
|
}
|
|
|
|
|
|
func (s *ocService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
|
|
|
- return s.repo.GetPage(m)
|
|
|
+ return s.ocRepo.GetPage(m)
|
|
|
}
|
|
|
|
|
|
func (s *ocService) GetById(ocId int64) (*viewmodels.OcInfo, error) {
|
|
|
- return s.repo.GetById(ocId)
|
|
|
+ return s.ocRepo.GetById(ocId)
|
|
|
}
|
|
|
|
|
|
-func (s *ocService) Create(Oc *datamodels.Oc) error {
|
|
|
- Oc.OcId = NewID()
|
|
|
- return s.repo.Create(Oc)
|
|
|
+func (s *ocService) Create(o *datamodels.Oc) error {
|
|
|
+ ocId := NewID()
|
|
|
+ ocName := o.OcName
|
|
|
+ userId := o.CreatedBy
|
|
|
+
|
|
|
+ // 1.Create OC
|
|
|
+ o.OcId = ocId
|
|
|
+ o.RootId = ocId
|
|
|
+ o.ParentId = 0
|
|
|
+ o.GroupId = ocId
|
|
|
+ o.NodeLeft = 1
|
|
|
+ o.NodeRight = 2
|
|
|
+ o.NodeLevel = 1
|
|
|
+ o.IsLeaf = 1
|
|
|
+ o.Status = 1
|
|
|
+ o.CreatedAt = time.Now()
|
|
|
+ err1 := s.ocRepo.Create(o)
|
|
|
+ if err1 != nil {
|
|
|
+ return err1
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2.Group Cat
|
|
|
+ groupCat := &datamodels.GroupCat{
|
|
|
+ OcId: ocId,
|
|
|
+ GroupCatId: ocId,
|
|
|
+ GroupCatTitle: "公司",
|
|
|
+ IsFixed: 1,
|
|
|
+ GroupCatDesc: "公司",
|
|
|
+ CreatedAt: time.Now(),
|
|
|
+ CreatedBy: userId,
|
|
|
+ }
|
|
|
+ err2 := s.groupCatRepo.Create(groupCat)
|
|
|
+ if err2 != nil {
|
|
|
+ return err1
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3.Group
|
|
|
+ group := &datamodels.Group{
|
|
|
+ OcId: ocId,
|
|
|
+ GroupId: ocId,
|
|
|
+ GroupName: ocName,
|
|
|
+ GroupCatId: ocId,
|
|
|
+ NodeLeft: 1,
|
|
|
+ NodeRight: 2,
|
|
|
+ NodeLevel: 1,
|
|
|
+ RootId: ocId,
|
|
|
+ ParentId: 0,
|
|
|
+ IsFixed: 1,
|
|
|
+ IsLeaf: 1,
|
|
|
+ GroupCode: "",
|
|
|
+ GroupPath: "",
|
|
|
+ CreatedBy: userId,
|
|
|
+ CreatedAt: time.Now(),
|
|
|
+ }
|
|
|
+ err3 := s.groupRepo.Create(group)
|
|
|
+ if err3 != nil {
|
|
|
+ return err3
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
-func (s *ocService) Update(Oc *datamodels.Oc) error {
|
|
|
- return s.repo.Update(Oc)
|
|
|
+func (s *ocService) Update(o *datamodels.Oc) error {
|
|
|
+ ocId := o.OcId
|
|
|
+ ocName := o.OcName
|
|
|
+ userId := o.UpdatedBy
|
|
|
+
|
|
|
+ // 1. Update OC
|
|
|
+ o.UpdatedAt = time.Now()
|
|
|
+ err1 := s.ocRepo.Update(o)
|
|
|
+ if err1 != nil {
|
|
|
+ return err1
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2.Group
|
|
|
+ group := &datamodels.Group{
|
|
|
+ OcId: ocId,
|
|
|
+ GroupId: ocId,
|
|
|
+ GroupName: ocName,
|
|
|
+ UpdatedAt: time.Now(),
|
|
|
+ UpdatedBy: userId,
|
|
|
+ }
|
|
|
+ err2 := s.groupRepo.Update(group)
|
|
|
+ if err2 != nil {
|
|
|
+ return err2
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
func (s *ocService) Delete(m map[string]interface{}) error {
|
|
|
- return s.repo.Delete(m)
|
|
|
+ return s.ocRepo.Delete(m)
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ocService) GetAdmin(ocId int64) (*viewmodels.OcAdminInfo, error) {
|
|
|
+ return s.ocRepo.GetAdmin(ocId)
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ocService) CreateAdmin(a *viewmodels.OcAdminInfo) error {
|
|
|
+ ocId := a.OcId
|
|
|
+ adminId := ocId
|
|
|
+ userId := a.CreatedBy
|
|
|
+
|
|
|
+ //1.Account
|
|
|
+ account := &datamodels.Account{
|
|
|
+ OcId: ocId,
|
|
|
+ AccountId: adminId,
|
|
|
+ AccountName: a.AdminName,
|
|
|
+ Password: "21218cca77804d2ba1922c33e0151105",
|
|
|
+ AccountPhone: a.AdminPhone,
|
|
|
+ AccountType: 0,
|
|
|
+ AccountAvatar: "",
|
|
|
+ IsFixed: 1,
|
|
|
+ Status: 1,
|
|
|
+ CreatedBy: userId,
|
|
|
+ CreatedAt: time.Now(),
|
|
|
+ }
|
|
|
+ err1 := s.accountRepo.Create(account)
|
|
|
+ if err1 != nil {
|
|
|
+ return err1
|
|
|
+ }
|
|
|
+
|
|
|
+ //2.OC Admin
|
|
|
+ oc := &datamodels.Oc{
|
|
|
+ OcId: ocId,
|
|
|
+ AdminId: adminId,
|
|
|
+ }
|
|
|
+ err2 := s.ocRepo.Update(oc)
|
|
|
+ if err2 != nil {
|
|
|
+ return err2
|
|
|
+ }
|
|
|
+
|
|
|
+ //3.Role Member
|
|
|
+ roleMember := &datamodels.RoleMember{
|
|
|
+ OcId: ocId,
|
|
|
+ RmId: ocId,
|
|
|
+ RoleId: constant.ENT_ROLE_ADMIN,
|
|
|
+ AccountId: adminId,
|
|
|
+ }
|
|
|
+ err3 := s.roleMemberRepo.Create(roleMember)
|
|
|
+ if err3 != nil {
|
|
|
+ return err3
|
|
|
+ }
|
|
|
+
|
|
|
+ //4.Position
|
|
|
+ position := &datamodels.Position{
|
|
|
+ OcId: ocId,
|
|
|
+ PositionId: ocId,
|
|
|
+ PositionName: "管理员",
|
|
|
+ PositionDesc: "管理员",
|
|
|
+ IsFixed: 1,
|
|
|
+ CreatedAt: time.Now(),
|
|
|
+ CreatedBy: userId,
|
|
|
+ }
|
|
|
+ err4 := s.positionRepo.Create(position)
|
|
|
+ if err4 != nil {
|
|
|
+ return err4
|
|
|
+ }
|
|
|
+
|
|
|
+ //5.Group Member
|
|
|
+ groupMember := &datamodels.GroupMember{
|
|
|
+ OcId: ocId,
|
|
|
+ GmId: ocId,
|
|
|
+ GroupId: ocId,
|
|
|
+ AccountId: adminId,
|
|
|
+ IsFixed: 1,
|
|
|
+ }
|
|
|
+ err5 := s.groupMemberRepo.Create(groupMember)
|
|
|
+ if err5 != nil {
|
|
|
+ return err5
|
|
|
+ }
|
|
|
+
|
|
|
+ //6.Group Member Position
|
|
|
+ groupMemberPosition := &datamodels.GroupMemberPosition{
|
|
|
+ OcId: ocId,
|
|
|
+ GmpId: ocId,
|
|
|
+ GroupId: ocId,
|
|
|
+ AccountId: adminId,
|
|
|
+ PositionId: ocId,
|
|
|
+ IsFixed: 1,
|
|
|
+ }
|
|
|
+ err6 := s.groupMemberPositionRepo.Create(groupMemberPosition)
|
|
|
+ return err6
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ocService) UpdateAdmin(a *viewmodels.OcAdminInfo) error {
|
|
|
+ ocId := a.OcId
|
|
|
+ adminId := a.AdminId
|
|
|
+ userId := a.UpdatedBy
|
|
|
+
|
|
|
+ //1. Account
|
|
|
+ account := &datamodels.Account{
|
|
|
+ OcId: ocId,
|
|
|
+ AccountId: adminId,
|
|
|
+ AccountName: a.AdminName,
|
|
|
+ AccountPhone: a.AdminPhone,
|
|
|
+ UpdatedBy: userId,
|
|
|
+ UpdatedAt: time.Now(),
|
|
|
+ }
|
|
|
+ return s.accountRepo.Update(ocId, adminId, account)
|
|
|
}
|
|
|
+
|
|
|
+func (s *ocService) ResetAdminPwd(ocId, accountId int64) error{
|
|
|
+ //1. Account
|
|
|
+ account := &datamodels.Account{
|
|
|
+ OcId: ocId,
|
|
|
+ AccountId: accountId,
|
|
|
+ Password: "21218cca77804d2ba1922c33e0151105",
|
|
|
+ }
|
|
|
+ return s.accountRepo.Update(ocId, accountId, account)
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ocService) UpdateStatus(ocId, status int64) error {
|
|
|
+ oc := &datamodels.Oc{
|
|
|
+ OcId: ocId,
|
|
|
+ Status: status,
|
|
|
+ }
|
|
|
+ return s.ocRepo.Update(oc)
|
|
|
+}
|
|
|
+
|
|
|
+func (s *ocService) UpdateLicStatus(ocId, status int64) error{
|
|
|
+ oc := &datamodels.Oc{
|
|
|
+ OcId: ocId,
|
|
|
+ IfLic: status,
|
|
|
+ }
|
|
|
+ return s.ocRepo.Update(oc)
|
|
|
+}
|