system_user.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package model
  2. import (
  3. "fmt"
  4. operationPb "gitee.com/xuyiping_admin/go_proto/proto/go/backend/operation"
  5. "net/http"
  6. "strconv"
  7. "strings"
  8. "time"
  9. )
  10. const InitManagerPassword = "123456"
  11. type SystemUser struct {
  12. Id int64 `json:"id"`
  13. Name string `json:"name"`
  14. EmployeeName string `json:"employee_name"`
  15. Phone string `json:"phone"`
  16. Password string `json:"password"`
  17. RoleIds string `json:"role_ids"`
  18. CreateUser string `json:"create_user"`
  19. IsShow operationPb.IsShow_Kind `json:"is_show"`
  20. IsDelete operationPb.IsShow_Kind `json:"is_delete"`
  21. CreatedAt int64 `json:"created_at"`
  22. UpdatedAt int64 `json:"updated_at"`
  23. }
  24. func (s *SystemUser) TableName() string {
  25. return "system_user"
  26. }
  27. func (s *SystemUser) SystemUserFormat(userRoles []*SystemRole, pastures []*operationPb.UserPasture) *operationPb.UserAuth {
  28. roles := make([]*operationPb.UserRole, len(userRoles))
  29. for k, v := range userRoles {
  30. roles[k] = &operationPb.UserRole{
  31. Id: int32(v.Id),
  32. Name: v.Name,
  33. }
  34. }
  35. return &operationPb.UserAuth{
  36. Code: http.StatusOK,
  37. Msg: "ok",
  38. Data: &operationPb.UserAuthData{
  39. UserName: s.Name,
  40. Phone: s.Phone,
  41. EmployeeName: s.EmployeeName,
  42. Roles: roles,
  43. Pastures: pastures,
  44. },
  45. }
  46. }
  47. func (s *SystemUser) SystemUserRoleFormat(req *operationPb.AddSystemUser) {
  48. roleIds := ""
  49. for _, role := range req.Roles {
  50. roleIds += fmt.Sprintf("%d,", role.Id)
  51. }
  52. if roleIds != "" {
  53. s.RoleIds = strings.TrimRight(roleIds, ",")
  54. }
  55. }
  56. func (s *SystemUser) SystemUserRoleToSlice() []int {
  57. roleIds := make([]int, 0)
  58. if s.RoleIds != "" {
  59. roleIdsStr := strings.Split(s.RoleIds, ",")
  60. for _, v := range roleIdsStr {
  61. roleIdsInt, _ := strconv.Atoi(v)
  62. roleIds = append(roleIds, roleIdsInt)
  63. }
  64. }
  65. return roleIds
  66. }
  67. type SystemUserSlice []*SystemUser
  68. func (s SystemUserSlice) ToPB(roleList []*SystemRole) []*operationPb.AddSystemUser {
  69. res := make([]*operationPb.AddSystemUser, len(s))
  70. for i, v := range s {
  71. res[i] = &operationPb.AddSystemUser{
  72. Id: int32(v.Id),
  73. Name: v.Name,
  74. Phone: v.Phone,
  75. EmployeeName: v.EmployeeName,
  76. CreateUser: v.CreateUser,
  77. IsShow: v.IsShow,
  78. CreatedAt: int32(v.CreatedAt),
  79. CreatedAtFormat: time.Unix(v.CreatedAt, 0).Format(LayoutTime),
  80. RoleName: strings.TrimRight(v.UserRoleFormat(roleList), ","),
  81. }
  82. }
  83. return res
  84. }
  85. func (s *SystemUser) UserRoleFormat(roleList []*SystemRole) string {
  86. ids := strings.Split(s.RoleIds, ",")
  87. roleListName := ""
  88. for _, id := range ids {
  89. for _, r := range roleList {
  90. if fmt.Sprintf("%d", r.Id) != id {
  91. continue
  92. }
  93. roleListName += fmt.Sprintf("%s,", r.Name)
  94. }
  95. }
  96. return roleListName
  97. }
  98. func (s *SystemUser) ToPb() *operationPb.AddSystemUser {
  99. roles := make([]int32, 0)
  100. roleIds := strings.Split(s.RoleIds, ",")
  101. for _, roleId := range roleIds {
  102. id, _ := strconv.Atoi(roleId)
  103. roles = append(roles, int32(id))
  104. }
  105. return &operationPb.AddSystemUser{
  106. Id: int32(s.Id),
  107. Name: s.Name,
  108. Phone: s.Phone,
  109. CreateUser: s.CreateUser,
  110. EmployeeName: s.EmployeeName,
  111. IsShow: s.IsShow,
  112. CreatedAt: int32(s.CreatedAt),
  113. CreatedAtFormat: time.Unix(s.CreatedAt, 0).Format(LayoutTime),
  114. RoleIds: roles,
  115. }
  116. }