system_user.go 3.3 KB

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