| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283 |
- package service
- import (
- "time"
- "xps/constant"
- "xps/datamodels"
- "xps/datasource"
- "xps/repositories"
- "xps/viewmodels"
- )
- type OcService interface {
- GetList(m map[string]interface{}) ([]viewmodels.OcInfo, error)
- GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
- GetById(ocId int64) (*viewmodels.OcInfo, error)
- 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 {
- 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{
- ocRepo: repositories.NewOcRepo(datasource.InstanceMaster()),
- }
- }
- func (s *ocService) GetList(m map[string]interface{}) ([]viewmodels.OcInfo, error) {
- return s.ocRepo.GetList(m)
- }
- func (s *ocService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
- return s.ocRepo.GetPage(m)
- }
- func (s *ocService) GetById(ocId int64) (*viewmodels.OcInfo, error) {
- return s.ocRepo.GetById(ocId)
- }
- 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(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.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)
- }
|