package model import ( "fmt" operationPb "kpt-tmr-group/proto/go/backend/operation" "strconv" "strings" "time" ) type SystemUser struct { Id int64 `json:"id"` Name string `json:"name"` EmployeeName string `json:"employee_name"` Phone string `json:"phone"` Password string `json:"password"` RoleIds string `json:"role_ids"` CreateUser string `json:"create_user"` IsShow operationPb.IsShow_Kind `json:"is_show"` IsDelete operationPb.IsShow_Kind `json:"is_delete"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` } func (s *SystemUser) TableName() string { return "system_user" } func (s *SystemUser) SystemUserFormat(userRoles []*SystemRole) *operationPb.UserAuth { roles := make([]*operationPb.UserRole, len(userRoles)) for k, v := range userRoles { roles[k] = &operationPb.UserRole{ Id: v.Id, Name: v.Name, } } return &operationPb.UserAuth{ UserName: s.Name, Phone: s.Phone, EmployeeName: s.EmployeeName, Roles: roles, } } func (s *SystemUser) SystemUserRoleFormat(req *operationPb.AddSystemUser) { roleIds := "" for _, role := range req.Roles { roleIds += fmt.Sprintf("%d,", role.Id) } if roleIds != "" { s.RoleIds = strings.TrimRight(roleIds, ",") } } func (s *SystemUser) SystemUserRoleToSlice() []int { roleIds := make([]int, 0) if s.RoleIds != "" { roleIdsStr := strings.Split(s.RoleIds, ",") for _, v := range roleIdsStr { roleIdsInt, _ := strconv.Atoi(v) roleIds = append(roleIds, roleIdsInt) } } return roleIds } type SystemUserSlice []*SystemUser func (s SystemUserSlice) ToPB() []*operationPb.AddSystemUser { res := make([]*operationPb.AddSystemUser, len(s)) for i, v := range s { res[i] = &operationPb.AddSystemUser{ Id: v.Id, Name: v.Name, Phone: v.Phone, EmployeeName: v.EmployeeName, CreateUser: v.CreateUser, IsShow: v.IsShow, CreatedAt: v.CreatedAt, CreatedAtFormat: time.Unix(v.CreatedAt, 0).Format(LayoutTime), } } return res } func (s *SystemUser) ToPb() *operationPb.AddSystemUser { return &operationPb.AddSystemUser{ Id: s.Id, Name: s.Name, Phone: s.Phone, CreateUser: s.CreateUser, EmployeeName: s.EmployeeName, IsShow: s.IsShow, CreatedAt: s.CreatedAt, } } type SystemUserResponse struct { Page int32 `json:"page"` Total int32 `json:"total"` List []*operationPb.AddSystemUser `json:"list"` } func (s *SystemUserResponse) ToPB() *operationPb.SearchUserResponse { return &operationPb.SearchUserResponse{ Page: s.Page, Total: s.Total, List: s.List, } }