oc_service.go 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. package service
  2. import (
  3. "time"
  4. "xps/constant"
  5. "xps/datamodels"
  6. "xps/datasource"
  7. "xps/repositories"
  8. "xps/viewmodels"
  9. )
  10. type OcService interface {
  11. GetList(m map[string]interface{}) ([]viewmodels.OcInfo, error)
  12. GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
  13. GetById(ocId int64) (*viewmodels.OcInfo, error)
  14. Create(d *datamodels.Oc) error
  15. Update(d *datamodels.Oc) error
  16. Delete(m map[string]interface{}) error
  17. GetAdmin(ocId int64) (*viewmodels.OcAdminInfo, error)
  18. CreateAdmin(d *viewmodels.OcAdminInfo) error
  19. UpdateAdmin(d *viewmodels.OcAdminInfo) error
  20. ResetAdminPwd(ocId, accountId int64) error
  21. UpdateStatus(ocId, status int64) error
  22. UpdateLicStatus(ocId, status int64) error
  23. }
  24. type ocService struct {
  25. ocRepo *repositories.OcRepo
  26. groupCatRepo *repositories.GroupCatRepo
  27. groupRepo *repositories.GroupRepo
  28. accountRepo *repositories.AccountRepo
  29. positionRepo *repositories.PositionRepo
  30. groupMemberRepo *repositories.GroupMemberRepo
  31. groupMemberPositionRepo *repositories.GroupMemberPositionRepo
  32. roleMemberRepo *repositories.RoleMemberRepo
  33. }
  34. func NewOcService() OcService {
  35. return &ocService{
  36. ocRepo: repositories.NewOcRepo(datasource.InstanceMaster()),
  37. }
  38. }
  39. func (s *ocService) GetList(m map[string]interface{}) ([]viewmodels.OcInfo, error) {
  40. return s.ocRepo.GetList(m)
  41. }
  42. func (s *ocService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
  43. return s.ocRepo.GetPage(m)
  44. }
  45. func (s *ocService) GetById(ocId int64) (*viewmodels.OcInfo, error) {
  46. return s.ocRepo.GetById(ocId)
  47. }
  48. func (s *ocService) Create(o *datamodels.Oc) error {
  49. ocId := NewID()
  50. ocName := o.OcName
  51. userId := o.CreatedBy
  52. // 1.Create OC
  53. o.OcId = ocId
  54. o.RootId = ocId
  55. o.ParentId = 0
  56. o.GroupId = ocId
  57. o.NodeLeft = 1
  58. o.NodeRight = 2
  59. o.NodeLevel = 1
  60. o.IsLeaf = 1
  61. o.Status = 1
  62. o.CreatedAt = time.Now()
  63. err1 := s.ocRepo.Create(o)
  64. if err1 != nil {
  65. return err1
  66. }
  67. // 2.Group Cat
  68. groupCat := &datamodels.GroupCat{
  69. OcId: ocId,
  70. GroupCatId: ocId,
  71. GroupCatTitle: "公司",
  72. IsFixed: 1,
  73. GroupCatDesc: "公司",
  74. CreatedAt: time.Now(),
  75. CreatedBy: userId,
  76. }
  77. err2 := s.groupCatRepo.Create(groupCat)
  78. if err2 != nil {
  79. return err1
  80. }
  81. // 3.Group
  82. group := &datamodels.Group{
  83. OcId: ocId,
  84. GroupId: ocId,
  85. GroupName: ocName,
  86. GroupCatId: ocId,
  87. NodeLeft: 1,
  88. NodeRight: 2,
  89. NodeLevel: 1,
  90. RootId: ocId,
  91. ParentId: 0,
  92. IsFixed: 1,
  93. IsLeaf: 1,
  94. GroupCode: "",
  95. GroupPath: "",
  96. CreatedBy: userId,
  97. CreatedAt: time.Now(),
  98. }
  99. err3 := s.groupRepo.Create(group)
  100. if err3 != nil {
  101. return err3
  102. }
  103. return nil
  104. }
  105. func (s *ocService) Update(o *datamodels.Oc) error {
  106. ocId := o.OcId
  107. ocName := o.OcName
  108. userId := o.UpdatedBy
  109. // 1. Update OC
  110. o.UpdatedAt = time.Now()
  111. err1 := s.ocRepo.Update(o)
  112. if err1 != nil {
  113. return err1
  114. }
  115. // 2.Group
  116. group := &datamodels.Group{
  117. OcId: ocId,
  118. GroupId: ocId,
  119. GroupName: ocName,
  120. UpdatedAt: time.Now(),
  121. UpdatedBy: userId,
  122. }
  123. err2 := s.groupRepo.Update(group)
  124. if err2 != nil {
  125. return err2
  126. }
  127. return nil
  128. }
  129. func (s *ocService) Delete(m map[string]interface{}) error {
  130. return s.ocRepo.Delete(m)
  131. }
  132. func (s *ocService) GetAdmin(ocId int64) (*viewmodels.OcAdminInfo, error) {
  133. return s.ocRepo.GetAdmin(ocId)
  134. }
  135. func (s *ocService) CreateAdmin(a *viewmodels.OcAdminInfo) error {
  136. ocId := a.OcId
  137. adminId := ocId
  138. userId := a.CreatedBy
  139. //1.Account
  140. account := &datamodels.Account{
  141. OcId: ocId,
  142. AccountId: adminId,
  143. AccountName: a.AdminName,
  144. Password: "21218cca77804d2ba1922c33e0151105",
  145. AccountPhone: a.AdminPhone,
  146. AccountType: 0,
  147. AccountAvatar: "",
  148. IsFixed: 1,
  149. Status: 1,
  150. CreatedBy: userId,
  151. CreatedAt: time.Now(),
  152. }
  153. err1 := s.accountRepo.Create(account)
  154. if err1 != nil {
  155. return err1
  156. }
  157. //2.OC Admin
  158. oc := &datamodels.Oc{
  159. OcId: ocId,
  160. AdminId: adminId,
  161. }
  162. err2 := s.ocRepo.Update(oc)
  163. if err2 != nil {
  164. return err2
  165. }
  166. //3.Role Member
  167. roleMember := &datamodels.RoleMember{
  168. OcId: ocId,
  169. RmId: ocId,
  170. RoleId: constant.ENT_ROLE_ADMIN,
  171. AccountId: adminId,
  172. }
  173. err3 := s.roleMemberRepo.Create(roleMember)
  174. if err3 != nil {
  175. return err3
  176. }
  177. //4.Position
  178. position := &datamodels.Position{
  179. OcId: ocId,
  180. PositionId: ocId,
  181. PositionName: "管理员",
  182. PositionDesc: "管理员",
  183. IsFixed: 1,
  184. CreatedAt: time.Now(),
  185. CreatedBy: userId,
  186. }
  187. err4 := s.positionRepo.Create(position)
  188. if err4 != nil {
  189. return err4
  190. }
  191. //5.Group Member
  192. groupMember := &datamodels.GroupMember{
  193. OcId: ocId,
  194. GmId: ocId,
  195. GroupId: ocId,
  196. AccountId: adminId,
  197. IsFixed: 1,
  198. }
  199. err5 := s.groupMemberRepo.Create(groupMember)
  200. if err5 != nil {
  201. return err5
  202. }
  203. //6.Group Member Position
  204. groupMemberPosition := &datamodels.GroupMemberPosition{
  205. OcId: ocId,
  206. GmpId: ocId,
  207. GroupId: ocId,
  208. AccountId: adminId,
  209. PositionId: ocId,
  210. IsFixed: 1,
  211. }
  212. err6 := s.groupMemberPositionRepo.Create(groupMemberPosition)
  213. return err6
  214. }
  215. func (s *ocService) UpdateAdmin(a *viewmodels.OcAdminInfo) error {
  216. ocId := a.OcId
  217. adminId := a.AdminId
  218. userId := a.UpdatedBy
  219. //1. Account
  220. account := &datamodels.Account{
  221. OcId: ocId,
  222. AccountId: adminId,
  223. AccountName: a.AdminName,
  224. AccountPhone: a.AdminPhone,
  225. UpdatedBy: userId,
  226. UpdatedAt: time.Now(),
  227. }
  228. return s.accountRepo.Update(ocId, adminId, account)
  229. }
  230. func (s *ocService) ResetAdminPwd(ocId, accountId int64) error{
  231. //1. Account
  232. account := &datamodels.Account{
  233. OcId: ocId,
  234. AccountId: accountId,
  235. Password: "21218cca77804d2ba1922c33e0151105",
  236. }
  237. return s.accountRepo.Update(ocId, accountId, account)
  238. }
  239. func (s *ocService) UpdateStatus(ocId, status int64) error {
  240. oc := &datamodels.Oc{
  241. OcId: ocId,
  242. Status: status,
  243. }
  244. return s.ocRepo.Update(oc)
  245. }
  246. func (s *ocService) UpdateLicStatus(ocId, status int64) error{
  247. oc := &datamodels.Oc{
  248. OcId: ocId,
  249. IfLic: status,
  250. }
  251. return s.ocRepo.Update(oc)
  252. }