正在显示
20 个修改的文件
包含
491 行增加
和
34 行删除
| @@ -39,6 +39,7 @@ func (c CompanyServices) addCompany(param *command.SaveCompanyCommand) error { | @@ -39,6 +39,7 @@ func (c CompanyServices) addCompany(param *command.SaveCompanyCommand) error { | ||
| 39 | Status: param.Comapany.Status, | 39 | Status: param.Comapany.Status, |
| 40 | UpdateAt: nowTime, | 40 | UpdateAt: nowTime, |
| 41 | CreateAt: nowTime, | 41 | CreateAt: nowTime, |
| 42 | + ChargeUserIds: []int64{}, | ||
| 42 | DeleteAt: nil, | 43 | DeleteAt: nil, |
| 43 | } | 44 | } |
| 44 | 45 | ||
| @@ -169,3 +170,100 @@ func (c CompanyServices) editCompany(param *command.SaveCompanyCommand) error { | @@ -169,3 +170,100 @@ func (c CompanyServices) editCompany(param *command.SaveCompanyCommand) error { | ||
| 169 | } | 170 | } |
| 170 | return nil | 171 | return nil |
| 171 | } | 172 | } |
| 173 | + | ||
| 174 | +func (srv CompanyServices) setCompanyCharge(param *command.SetCompanyCharge) error { | ||
| 175 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 176 | + if err != nil { | ||
| 177 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 178 | + } | ||
| 179 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 180 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 181 | + } | ||
| 182 | + defer func() { | ||
| 183 | + _ = transactionContext.RollbackTransaction() | ||
| 184 | + }() | ||
| 185 | + | ||
| 186 | + companyRepo := factory.CreateCompanyRepository(map[string]interface{}{ | ||
| 187 | + "transactionContext": transactionContext, | ||
| 188 | + }) | ||
| 189 | + | ||
| 190 | + _, companyList, err := companyRepo.Find(map[string]interface{}{ | ||
| 191 | + "id": param.CompanyId, | ||
| 192 | + "limit": 1, | ||
| 193 | + }) | ||
| 194 | + | ||
| 195 | + if err != nil { | ||
| 196 | + return err | ||
| 197 | + } | ||
| 198 | + for i := range companyList { | ||
| 199 | + companyList[i].ChargeUserIds = param.ChargeUserIds | ||
| 200 | + companyList[i].UpdateAt = time.Now() | ||
| 201 | + _, err = companyRepo.Update(companyList[i]) | ||
| 202 | + if err != nil { | ||
| 203 | + return err | ||
| 204 | + } | ||
| 205 | + } | ||
| 206 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 207 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 208 | + } | ||
| 209 | + return nil | ||
| 210 | +} | ||
| 211 | + | ||
| 212 | +//changeAdmin | ||
| 213 | +//从BusinessAdmins 接收消息 变更主管 | ||
| 214 | +func (srv CompanyServices) changeAdmin(param *command.ChangeAdminCommand) error { | ||
| 215 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 216 | + if err != nil { | ||
| 217 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 218 | + } | ||
| 219 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 220 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 221 | + } | ||
| 222 | + defer func() { | ||
| 223 | + _ = transactionContext.RollbackTransaction() | ||
| 224 | + }() | ||
| 225 | + | ||
| 226 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
| 227 | + "transactionContext": transactionContext, | ||
| 228 | + }) | ||
| 229 | + //查找公司对应的管理员用户 | ||
| 230 | + _, userList, err := userRepo.Find(map[string]interface{}{ | ||
| 231 | + "limit": 10, | ||
| 232 | + "companyId": param.CompanyId, | ||
| 233 | + "adminType": domain.UserTypeManager, | ||
| 234 | + }) | ||
| 235 | + if err != nil { | ||
| 236 | + return err | ||
| 237 | + } | ||
| 238 | + //修改旧管理员 为普通用户 | ||
| 239 | + for i := range userList { | ||
| 240 | + userList[i].AdminType = domain.UserTypeCommon | ||
| 241 | + userList[i].UpdateAt = time.Now() | ||
| 242 | + _, err := userRepo.Update(userList[i]) | ||
| 243 | + if err != nil { | ||
| 244 | + return err | ||
| 245 | + } | ||
| 246 | + } | ||
| 247 | + //获取新管理员 | ||
| 248 | + _, userList2, err := userRepo.Find(map[string]interface{}{ | ||
| 249 | + "limit": 1, | ||
| 250 | + "companyId": param.CompanyId, | ||
| 251 | + "account": param.UserAccount, | ||
| 252 | + }) | ||
| 253 | + if err != nil { | ||
| 254 | + return err | ||
| 255 | + } | ||
| 256 | + //修改为管理员用户 | ||
| 257 | + for i := range userList2 { | ||
| 258 | + userList[i].AdminType = domain.UserTypeManager | ||
| 259 | + userList[i].UpdateAt = time.Now() | ||
| 260 | + _, err := userRepo.Update(userList[i]) | ||
| 261 | + if err != nil { | ||
| 262 | + return err | ||
| 263 | + } | ||
| 264 | + } | ||
| 265 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 266 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 267 | + } | ||
| 268 | + return nil | ||
| 269 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +type AddDepartmentCommand struct { | ||
| 4 | + Id int64 `json:"id" ` // 组织id | ||
| 5 | + CompanyId int64 `json:"company_id"` // 公司编号 | ||
| 6 | + Level int `json:"level"` // 组织名称 | ||
| 7 | + Name string `json:"name"` // 组织名称 | ||
| 8 | + ParentId int64 `json:"parent_id"` // 组织父级id | ||
| 9 | + ChargeUserIds []int64 `json:"charge"` // 主管uids | ||
| 10 | + Path string `json:"path"` // 组织路径 | ||
| 11 | +} |
| 1 | +package department | ||
| 2 | + | ||
| 3 | +type SyncDataDepartmentService struct{} | ||
| 4 | + | ||
| 5 | +//AddDepartment | ||
| 6 | +//从BusinessAdmins 接收消息 添加部门 | ||
| 7 | +//module="department" action="add" | ||
| 8 | +func (srv SyncDataDepartmentService) AddDepartment() error { | ||
| 9 | + return nil | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +//EditDepartment | ||
| 13 | +//从BusinessAdmins 接收消息 编辑部门 | ||
| 14 | +//module="department" action="edit" | ||
| 15 | +func (srv SyncDataDepartmentService) EditDepartment() error { | ||
| 16 | + return nil | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +//batchDelete | ||
| 20 | +//从BusinessAdmins 接收消息 删除部门 | ||
| 21 | +//module="department" action="batchDelete" | ||
| 22 | +func (srv SyncDataDepartmentService) batchDelete() error { | ||
| 23 | + return nil | ||
| 24 | +} | ||
| 25 | + | ||
| 26 | +//importDepartment | ||
| 27 | +//从BusinessAdmins 接收消息 导入部门数据 | ||
| 28 | +//module="department" action="import" | ||
| 29 | +func (srv SyncDataDepartmentService) importDepartment() error { | ||
| 30 | + return nil | ||
| 31 | +} |
pkg/application/user/command/batch_delete.go
0 → 100644
pkg/application/user/command/batch_forbid.go
0 → 100644
pkg/application/user/command/import_user.go
0 → 100644
| @@ -9,11 +9,12 @@ import ( | @@ -9,11 +9,12 @@ import ( | ||
| 9 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | 9 | "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" |
| 10 | ) | 10 | ) |
| 11 | 11 | ||
| 12 | -type UserService struct{} | 12 | +type SyncDataUserService struct{} |
| 13 | 13 | ||
| 14 | //AddUser | 14 | //AddUser |
| 15 | //从BusinessAdmins 接收消息 添加用户 | 15 | //从BusinessAdmins 接收消息 添加用户 |
| 16 | -func (srv UserService) addUser(param command.SaveUserCommand) error { | 16 | +//module="employee" action="add" |
| 17 | +func (srv SyncDataUserService) AddUser(param command.SaveUserCommand) error { | ||
| 17 | transactionContext, err := factory.CreateTransactionContext(nil) | 18 | transactionContext, err := factory.CreateTransactionContext(nil) |
| 18 | if err != nil { | 19 | if err != nil { |
| 19 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 20 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -52,7 +53,8 @@ func (srv UserService) addUser(param command.SaveUserCommand) error { | @@ -52,7 +53,8 @@ func (srv UserService) addUser(param command.SaveUserCommand) error { | ||
| 52 | 53 | ||
| 53 | //UpdateUser | 54 | //UpdateUser |
| 54 | //从BusinessAdmins 接收消息 更新用户 | 55 | //从BusinessAdmins 接收消息 更新用户 |
| 55 | -func (srv UserService) updateUser(param command.SaveUserCommand) error { | 56 | +//module="employee" action="edit" |
| 57 | +func (srv SyncDataUserService) UpdateUser(param command.SaveUserCommand) error { | ||
| 56 | transactionContext, err := factory.CreateTransactionContext(nil) | 58 | transactionContext, err := factory.CreateTransactionContext(nil) |
| 57 | if err != nil { | 59 | if err != nil { |
| 58 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 60 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -109,9 +111,13 @@ func (srv UserService) updateUser(param command.SaveUserCommand) error { | @@ -109,9 +111,13 @@ func (srv UserService) updateUser(param command.SaveUserCommand) error { | ||
| 109 | return nil | 111 | return nil |
| 110 | } | 112 | } |
| 111 | 113 | ||
| 112 | -//changeAdmin | ||
| 113 | -//从BusinessAdmins 接收消息 变更主管 | ||
| 114 | -func (srv UserService) changeAdmin(param *command.ChangeAdminCommand) error { | 114 | +//batchDelete |
| 115 | +//从BusinessAdmins 接收消息 删除用户 | ||
| 116 | +//module="employee" action="batchDelete" | ||
| 117 | +func (srv SyncDataUserService) batchDelete(param command.BatchDeleteCommand) error { | ||
| 118 | + if len(param.Uids) == 0 { | ||
| 119 | + return nil | ||
| 120 | + } | ||
| 115 | transactionContext, err := factory.CreateTransactionContext(nil) | 121 | transactionContext, err := factory.CreateTransactionContext(nil) |
| 116 | if err != nil { | 122 | if err != nil { |
| 117 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 123 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -122,14 +128,64 @@ func (srv UserService) changeAdmin(param *command.ChangeAdminCommand) error { | @@ -122,14 +128,64 @@ func (srv UserService) changeAdmin(param *command.ChangeAdminCommand) error { | ||
| 122 | defer func() { | 128 | defer func() { |
| 123 | _ = transactionContext.RollbackTransaction() | 129 | _ = transactionContext.RollbackTransaction() |
| 124 | }() | 130 | }() |
| 131 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
| 132 | + "transactionContext": transactionContext, | ||
| 133 | + }) | ||
| 125 | 134 | ||
| 135 | + err = userRepo.Remove(param.Uids) | ||
| 136 | + if err != nil { | ||
| 137 | + return err | ||
| 138 | + } | ||
| 126 | if err := transactionContext.CommitTransaction(); err != nil { | 139 | if err := transactionContext.CommitTransaction(); err != nil { |
| 140 | + return err | ||
| 141 | + } | ||
| 142 | + return nil | ||
| 143 | +} | ||
| 144 | + | ||
| 145 | +//batchForbid | ||
| 146 | +//从BusinessAdmins 接收消息 禁用,启用用户 | ||
| 147 | +//module="employee" action="batchForbid" | ||
| 148 | +func (srv SyncDataUserService) batchForbid(param command.BatchForbidCommand) error { | ||
| 149 | + if len(param.Uids) == 0 { | ||
| 150 | + return nil | ||
| 151 | + } | ||
| 152 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 153 | + if err != nil { | ||
| 127 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 154 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 128 | } | 155 | } |
| 156 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 157 | + return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 158 | + } | ||
| 159 | + defer func() { | ||
| 160 | + _ = transactionContext.RollbackTransaction() | ||
| 161 | + }() | ||
| 162 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
| 163 | + "transactionContext": transactionContext, | ||
| 164 | + }) | ||
| 165 | + _, userList, err := userRepo.Find(map[string]interface{}{ | ||
| 166 | + "ids": param.Uids, | ||
| 167 | + "limit": len(param.Uids), | ||
| 168 | + }) | ||
| 169 | + if err != nil { | ||
| 170 | + return err | ||
| 171 | + } | ||
| 172 | + for i := range userList { | ||
| 173 | + userList[i].Status = param.Status | ||
| 174 | + _, err = userRepo.Update(userList[i]) | ||
| 175 | + if err != nil { | ||
| 176 | + return err | ||
| 177 | + } | ||
| 178 | + } | ||
| 179 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 180 | + return err | ||
| 181 | + } | ||
| 129 | return nil | 182 | return nil |
| 130 | } | 183 | } |
| 131 | 184 | ||
| 132 | -func (srv UserService) setCompanyCharge(param *command.ChangeAdminCommand) error { | 185 | +//importUser |
| 186 | +//从BusinessAdmins 接收消息 导入用户数据 | ||
| 187 | +//module="employee" action="import" | ||
| 188 | +func (srv SyncDataUserService) importUser(param command.ImportUserCommand) error { | ||
| 133 | transactionContext, err := factory.CreateTransactionContext(nil) | 189 | transactionContext, err := factory.CreateTransactionContext(nil) |
| 134 | if err != nil { | 190 | if err != nil { |
| 135 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 191 | return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -140,9 +196,64 @@ func (srv UserService) setCompanyCharge(param *command.ChangeAdminCommand) error | @@ -140,9 +196,64 @@ func (srv UserService) setCompanyCharge(param *command.ChangeAdminCommand) error | ||
| 140 | defer func() { | 196 | defer func() { |
| 141 | _ = transactionContext.RollbackTransaction() | 197 | _ = transactionContext.RollbackTransaction() |
| 142 | }() | 198 | }() |
| 199 | + userRepo := factory.CreateUserRepository(map[string]interface{}{ | ||
| 200 | + "transactionContext": transactionContext, | ||
| 201 | + }) | ||
| 143 | 202 | ||
| 203 | + editUserMap := map[int64]command.SaveUserCommand{} | ||
| 204 | + var editUserIds []int64 | ||
| 205 | + for i := range param.EditUsers { | ||
| 206 | + editUserIds = append(editUserIds, param.EditUsers[i].Id) | ||
| 207 | + editUserMap[param.EditUsers[i].Id] = param.EditUsers[i] | ||
| 208 | + } | ||
| 209 | + _, editUserList, err := userRepo.Find(map[string]interface{}{ | ||
| 210 | + "ids": editUserIds, | ||
| 211 | + }) | ||
| 212 | + if err != nil { | ||
| 213 | + return err | ||
| 214 | + } | ||
| 215 | + nowTime := time.Now() | ||
| 216 | + for i := range editUserList { | ||
| 217 | + mVal, ok := editUserMap[editUserList[i].Id] | ||
| 218 | + if !ok { | ||
| 219 | + continue | ||
| 220 | + } | ||
| 221 | + editUserList[i].Account = mVal.Phone | ||
| 222 | + editUserList[i].AdminType = mVal.AdminType | ||
| 223 | + editUserList[i].AvatarUrl = mVal.Avatar | ||
| 224 | + editUserList[i].Name = mVal.Name | ||
| 225 | + editUserList[i].Status = mVal.Status | ||
| 226 | + editUserList[i].CompanyId = mVal.CompanyId | ||
| 227 | + editUserList[i].UpdateAt = nowTime | ||
| 228 | + _, err = userRepo.Update(editUserList[i]) | ||
| 229 | + if err != nil { | ||
| 230 | + return err | ||
| 231 | + } | ||
| 232 | + } | ||
| 233 | + var ( | ||
| 234 | + tempUser domain.User | ||
| 235 | + ) | ||
| 236 | + for i := range param.AddUsers { | ||
| 237 | + tempUser = domain.User{ | ||
| 238 | + Id: param.AddUsers[i].Id, | ||
| 239 | + Account: param.AddUsers[i].Phone, | ||
| 240 | + AvatarUrl: param.AddUsers[i].Avatar, | ||
| 241 | + CompanyId: param.AddUsers[i].CompanyId, | ||
| 242 | + AdminType: param.AddUsers[i].AdminType, | ||
| 243 | + Name: param.AddUsers[i].Name, | ||
| 244 | + Status: param.AddUsers[i].Status, | ||
| 245 | + UpdateAt: nowTime, | ||
| 246 | + DeleteAt: nil, | ||
| 247 | + CreateAt: nowTime, | ||
| 248 | + } | ||
| 249 | + _, err := userRepo.Insert(&tempUser) | ||
| 250 | + if err != nil { | ||
| 251 | + return err | ||
| 252 | + } | ||
| 253 | + } | ||
| 144 | if err := transactionContext.CommitTransaction(); err != nil { | 254 | if err := transactionContext.CommitTransaction(); err != nil { |
| 145 | - return application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 255 | + return err |
| 146 | } | 256 | } |
| 257 | + | ||
| 147 | return nil | 258 | return nil |
| 148 | } | 259 | } |
| @@ -6,6 +6,7 @@ type Company struct { | @@ -6,6 +6,7 @@ type Company struct { | ||
| 6 | Id int64 //公司编号 | 6 | Id int64 //公司编号 |
| 7 | Logo string //公司logo | 7 | Logo string //公司logo |
| 8 | Name string //公司名称 | 8 | Name string //公司名称 |
| 9 | + ChargeUserIds []int64 //公司级别的部门主管uids | ||
| 9 | Status int //公司状态,1正常 2禁用 | 10 | Status int //公司状态,1正常 2禁用 |
| 10 | UpdateAt time.Time //更新时间 | 11 | UpdateAt time.Time //更新时间 |
| 11 | CreateAt time.Time //创建时间 | 12 | CreateAt time.Time //创建时间 |
pkg/domain/department.go
0 → 100644
| 1 | +package domain | ||
| 2 | + | ||
| 3 | +import "time" | ||
| 4 | + | ||
| 5 | +type Department struct { | ||
| 6 | + Id int64 // 组织id | ||
| 7 | + CompanyId int64 // 公司编号 | ||
| 8 | + Level int // 组织级别 | ||
| 9 | + Name string // 组织名称 | ||
| 10 | + ParentId int64 // 组织父级id | ||
| 11 | + ChargeUserIds []int64 // 主管uids | ||
| 12 | + Path string // 组织路径 | ||
| 13 | + CreateAt time.Time // 创建时间 | ||
| 14 | + UpdateAt time.Time // 更新时间 | ||
| 15 | + DeleteAt *time.Time // 删除时间 | ||
| 16 | +} | ||
| 17 | +type DepartmentRepository interface { | ||
| 18 | + Insert(param *Department) (*Department, error) | ||
| 19 | + Update(param *Department) (*Department, error) | ||
| 20 | + Remove(param *Department) (*Department, error) | ||
| 21 | + FindOne(queryOptions map[string]interface{}) (*Department, error) | ||
| 22 | + Find(queryOptions map[string]interface{}) (int, []*Department, error) | ||
| 23 | +} |
pkg/domain/organization.go
已删除
100644 → 0
| 1 | -package domain | ||
| 2 | - | ||
| 3 | -import "time" | ||
| 4 | - | ||
| 5 | -type Organization struct { | ||
| 6 | - OrganizationId int64 // 组织id | ||
| 7 | - CompanyId int64 // 公司编号 | ||
| 8 | - OrganizationLevel int // 组织名称 | ||
| 9 | - OrganizationName string // 组织名称 | ||
| 10 | - OrganizationParentId int64 // 组织父级id | ||
| 11 | - OrganizationPath []int64 // 组织路径 | ||
| 12 | - ChargeUserIds []int64 // 主管uids | ||
| 13 | - Path string // 组织路径 | ||
| 14 | - CreateAt time.Time // 创建时间 | ||
| 15 | - UpdateAt time.Time // 更新时间 | ||
| 16 | -} |
| @@ -15,10 +15,16 @@ type User struct { | @@ -15,10 +15,16 @@ type User struct { | ||
| 15 | CreateAt time.Time | 15 | CreateAt time.Time |
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | +//1普通员工 2 主管理员 | ||
| 19 | +const ( | ||
| 20 | + UserTypeCommon int = 1 | ||
| 21 | + UserTypeManager int = 2 | ||
| 22 | +) | ||
| 23 | + | ||
| 18 | type UserRepository interface { | 24 | type UserRepository interface { |
| 19 | Insert(user *User) (*User, error) | 25 | Insert(user *User) (*User, error) |
| 20 | Update(user *User) (*User, error) | 26 | Update(user *User) (*User, error) |
| 21 | - Remove(user *User) (*User, error) | 27 | + Remove(userId []int64) error |
| 22 | FindOne(queryOptions map[string]interface{}) (*User, error) | 28 | FindOne(queryOptions map[string]interface{}) (*User, error) |
| 23 | Find(queryOptions map[string]interface{}) (int, []*User, error) | 29 | Find(queryOptions map[string]interface{}) (int, []*User, error) |
| 24 | } | 30 | } |
| @@ -7,6 +7,7 @@ type Company struct { | @@ -7,6 +7,7 @@ type Company struct { | ||
| 7 | Id int64 `pg:"pk:id"` //公司id | 7 | Id int64 `pg:"pk:id"` //公司id |
| 8 | Logo string //公司logo | 8 | Logo string //公司logo |
| 9 | Name string //公司名称 | 9 | Name string //公司名称 |
| 10 | + ChargeUserIds []int64 //公司级别的部门主管uids | ||
| 10 | Status int //公司状态,1正常 2禁用 | 11 | Status int //公司状态,1正常 2禁用 |
| 11 | UpdateAt time.Time //更新时间 | 12 | UpdateAt time.Time //更新时间 |
| 12 | CreateAt time.Time //创建时间 | 13 | CreateAt time.Time //创建时间 |
pkg/infrastructure/pg/models/department.go
0 → 100644
| 1 | +package models | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "time" | ||
| 5 | +) | ||
| 6 | + | ||
| 7 | +type Department struct { | ||
| 8 | + tableName struct{} `pg:"department"` | ||
| 9 | + Id int64 `pg:"pk:id"` // 组织id | ||
| 10 | + CompanyId int64 // 公司编号 | ||
| 11 | + Level int // 组织级别 | ||
| 12 | + Name string // 组织名称 | ||
| 13 | + ParentId int64 // 组织父级id | ||
| 14 | + ChargeUserIds []int64 // 主管uids | ||
| 15 | + Path string // 组织路径 | ||
| 16 | + CreateAt time.Time // 创建时间 | ||
| 17 | + UpdateAt time.Time // 更新时间 | ||
| 18 | + DeleteAt *time.Time // 删除时间 | ||
| 19 | +} |
| @@ -27,6 +27,7 @@ func (repo *CompanyRepository) Insert(u *domain.Company) (*domain.Company, error | @@ -27,6 +27,7 @@ func (repo *CompanyRepository) Insert(u *domain.Company) (*domain.Company, error | ||
| 27 | Logo: u.Logo, | 27 | Logo: u.Logo, |
| 28 | Name: u.Name, | 28 | Name: u.Name, |
| 29 | Status: u.Status, | 29 | Status: u.Status, |
| 30 | + ChargeUserIds: u.ChargeUserIds, | ||
| 30 | UpdateAt: u.UpdateAt, | 31 | UpdateAt: u.UpdateAt, |
| 31 | CreateAt: u.CreateAt, | 32 | CreateAt: u.CreateAt, |
| 32 | DeleteAt: u.DeleteAt, | 33 | DeleteAt: u.DeleteAt, |
| @@ -46,6 +47,7 @@ func (repo *CompanyRepository) Update(u *domain.Company) (*domain.Company, error | @@ -46,6 +47,7 @@ func (repo *CompanyRepository) Update(u *domain.Company) (*domain.Company, error | ||
| 46 | Logo: u.Logo, | 47 | Logo: u.Logo, |
| 47 | Name: u.Name, | 48 | Name: u.Name, |
| 48 | Status: u.Status, | 49 | Status: u.Status, |
| 50 | + ChargeUserIds: u.ChargeUserIds, | ||
| 49 | UpdateAt: u.UpdateAt, | 51 | UpdateAt: u.UpdateAt, |
| 50 | CreateAt: u.CreateAt, | 52 | CreateAt: u.CreateAt, |
| 51 | DeleteAt: u.DeleteAt, | 53 | DeleteAt: u.DeleteAt, |
| 1 | +package repository | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "time" | ||
| 5 | + | ||
| 6 | + "github.com/go-pg/pg/v10" | ||
| 7 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 8 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" | ||
| 9 | + "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/pg/models" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type DepartmentRepository struct { | ||
| 13 | + transactionContext *pgTransaction.TransactionContext | ||
| 14 | +} | ||
| 15 | + | ||
| 16 | +var _ domain.DepartmentRepository = (*DepartmentRepository)(nil) | ||
| 17 | + | ||
| 18 | +func NewDepartmentRepository(tx *pgTransaction.TransactionContext) *CompanyRepository { | ||
| 19 | + return &CompanyRepository{ | ||
| 20 | + transactionContext: tx, | ||
| 21 | + } | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +func (repo *DepartmentRepository) Insert(u *domain.Department) (*domain.Department, error) { | ||
| 25 | + departmentModel := models.Department{ | ||
| 26 | + Id: u.Id, | ||
| 27 | + CompanyId: u.CompanyId, | ||
| 28 | + Level: u.Level, | ||
| 29 | + Name: u.Name, | ||
| 30 | + ParentId: u.ParentId, | ||
| 31 | + ChargeUserIds: u.ChargeUserIds, | ||
| 32 | + Path: u.Path, | ||
| 33 | + CreateAt: u.CreateAt, | ||
| 34 | + UpdateAt: u.UpdateAt, | ||
| 35 | + DeleteAt: nil, | ||
| 36 | + } | ||
| 37 | + tx := repo.transactionContext.PgTx | ||
| 38 | + _, err := tx.Model(&departmentModel).Insert() | ||
| 39 | + if err != nil { | ||
| 40 | + return nil, err | ||
| 41 | + } | ||
| 42 | + u.Id = departmentModel.Id | ||
| 43 | + return u, nil | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +func (repo *DepartmentRepository) Update(u *domain.Department) (*domain.Department, error) { | ||
| 47 | + departmentModel := models.Department{ | ||
| 48 | + Id: u.Id, | ||
| 49 | + CompanyId: u.CompanyId, | ||
| 50 | + Level: u.Level, | ||
| 51 | + Name: u.Name, | ||
| 52 | + ParentId: u.ParentId, | ||
| 53 | + ChargeUserIds: u.ChargeUserIds, | ||
| 54 | + Path: u.Path, | ||
| 55 | + CreateAt: u.CreateAt, | ||
| 56 | + UpdateAt: u.UpdateAt, | ||
| 57 | + DeleteAt: nil, | ||
| 58 | + } | ||
| 59 | + tx := repo.transactionContext.PgTx | ||
| 60 | + _, err := tx.Model(&departmentModel).WherePK().Update() | ||
| 61 | + if err != nil { | ||
| 62 | + return nil, err | ||
| 63 | + } | ||
| 64 | + return u, nil | ||
| 65 | +} | ||
| 66 | + | ||
| 67 | +func (repo *DepartmentRepository) Remove(u *domain.Department) (*domain.Department, error) { | ||
| 68 | + nowTime := time.Now() | ||
| 69 | + u.DeleteAt = &nowTime | ||
| 70 | + _, err := repo.Update(u) | ||
| 71 | + return u, err | ||
| 72 | +} | ||
| 73 | + | ||
| 74 | +func (repo *DepartmentRepository) FindOne(queryOptions map[string]interface{}) (*domain.Department, error) { | ||
| 75 | + tx := repo.transactionContext.PgTx | ||
| 76 | + departmentModel := models.Department{} | ||
| 77 | + query := tx.Model(&departmentModel) | ||
| 78 | + if v, ok := queryOptions["id"]; ok { | ||
| 79 | + query.Where("id=?", v) | ||
| 80 | + } | ||
| 81 | + err := query.First() | ||
| 82 | + if err == pg.ErrNoRows { | ||
| 83 | + return nil, ErrNoRows | ||
| 84 | + } | ||
| 85 | + if err != nil { | ||
| 86 | + return nil, err | ||
| 87 | + } | ||
| 88 | + result := repo.TransformToCompanyDomain(&departmentModel) | ||
| 89 | + return result, nil | ||
| 90 | +} | ||
| 91 | + | ||
| 92 | +func (repo *DepartmentRepository) Find(queryOptions map[string]interface{}) (int, []*domain.Department, error) { | ||
| 93 | + tx := repo.transactionContext.PgTx | ||
| 94 | + dparmentModel := []models.Department{} | ||
| 95 | + query := tx.Model(&dparmentModel). | ||
| 96 | + Limit(20) | ||
| 97 | + if v, ok := queryOptions["id"]; ok { | ||
| 98 | + query.Where("id=?", v) | ||
| 99 | + } | ||
| 100 | + if v, ok := queryOptions["limit"]; ok { | ||
| 101 | + query.Limit(v.(int)) | ||
| 102 | + } | ||
| 103 | + if v, ok := queryOptions["offset"]; ok { | ||
| 104 | + query.Offset(v.(int)) | ||
| 105 | + } | ||
| 106 | + cnt, err := query.SelectAndCount() | ||
| 107 | + if err != nil { | ||
| 108 | + return 0, nil, err | ||
| 109 | + } | ||
| 110 | + var resultList []*domain.Department | ||
| 111 | + for i := range dparmentModel { | ||
| 112 | + result := repo.TransformToCompanyDomain(&dparmentModel[i]) | ||
| 113 | + resultList = append(resultList, result) | ||
| 114 | + } | ||
| 115 | + return cnt, resultList, nil | ||
| 116 | +} | ||
| 117 | + | ||
| 118 | +func (repo *DepartmentRepository) TransformToCompanyDomain(u *models.Department) *domain.Department { | ||
| 119 | + return &domain.Department{ | ||
| 120 | + Id: u.Id, | ||
| 121 | + CompanyId: u.CompanyId, | ||
| 122 | + Level: u.Level, | ||
| 123 | + Name: u.Name, | ||
| 124 | + ParentId: u.ParentId, | ||
| 125 | + ChargeUserIds: u.ChargeUserIds, | ||
| 126 | + Path: u.Path, | ||
| 127 | + CreateAt: u.CreateAt, | ||
| 128 | + UpdateAt: u.UpdateAt, | ||
| 129 | + DeleteAt: u.DeleteAt, | ||
| 130 | + } | ||
| 131 | +} |
| @@ -64,11 +64,15 @@ func (repo *UserRepository) Update(user *domain.User) (*domain.User, error) { | @@ -64,11 +64,15 @@ func (repo *UserRepository) Update(user *domain.User) (*domain.User, error) { | ||
| 64 | return user, nil | 64 | return user, nil |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | -func (repo *UserRepository) Remove(user *domain.User) (*domain.User, error) { | 67 | +func (repo *UserRepository) Remove(userId []int64) error { |
| 68 | nowTime := time.Now() | 68 | nowTime := time.Now() |
| 69 | - user.DeleteAt = &nowTime | ||
| 70 | - _, err := repo.Update(user) | ||
| 71 | - return user, err | 69 | + tx := repo.transactionContext.PgTx |
| 70 | + uModel := models.User{} | ||
| 71 | + _, err := tx.Model(&uModel). | ||
| 72 | + Set("delete_at", nowTime). | ||
| 73 | + Where("id in (?)", pg.In(userId)). | ||
| 74 | + Update() | ||
| 75 | + return err | ||
| 72 | } | 76 | } |
| 73 | 77 | ||
| 74 | func (repo *UserRepository) FindOne(queryOptions map[string]interface{}) (*domain.User, error) { | 78 | func (repo *UserRepository) FindOne(queryOptions map[string]interface{}) (*domain.User, error) { |
| @@ -92,17 +96,29 @@ func (repo *UserRepository) FindOne(queryOptions map[string]interface{}) (*domai | @@ -92,17 +96,29 @@ func (repo *UserRepository) FindOne(queryOptions map[string]interface{}) (*domai | ||
| 92 | func (repo *UserRepository) Find(queryOptions map[string]interface{}) (int, []*domain.User, error) { | 96 | func (repo *UserRepository) Find(queryOptions map[string]interface{}) (int, []*domain.User, error) { |
| 93 | tx := repo.transactionContext.PgTx | 97 | tx := repo.transactionContext.PgTx |
| 94 | userModel := []models.User{} | 98 | userModel := []models.User{} |
| 95 | - query := tx.Model(&userModel). | 99 | + query := tx.Model(&userModel).Where("delete_at isnull"). |
| 96 | Limit(20) | 100 | Limit(20) |
| 97 | if v, ok := queryOptions["id"]; ok { | 101 | if v, ok := queryOptions["id"]; ok { |
| 98 | query.Where("id=?", v) | 102 | query.Where("id=?", v) |
| 99 | } | 103 | } |
| 100 | - if v, ok := queryOptions["limit"]; ok { | ||
| 101 | - query.Limit(v.(int)) | 104 | + if v, ok := queryOptions["ids"]; ok { |
| 105 | + query.Where("id in(?)", pg.In(v)) | ||
| 106 | + } | ||
| 107 | + if v, ok := queryOptions["companyId"]; ok { | ||
| 108 | + query.Where("company_id=?", v) | ||
| 109 | + } | ||
| 110 | + if v, ok := queryOptions["adminType"]; ok { | ||
| 111 | + query.Where("admin_type=?", v) | ||
| 112 | + } | ||
| 113 | + if v, ok := queryOptions["account"]; ok { | ||
| 114 | + query.Where("account like ?", v) | ||
| 102 | } | 115 | } |
| 103 | if v, ok := queryOptions["offset"]; ok { | 116 | if v, ok := queryOptions["offset"]; ok { |
| 104 | query.Offset(v.(int)) | 117 | query.Offset(v.(int)) |
| 105 | } | 118 | } |
| 119 | + if v, ok := queryOptions["limit"]; ok { | ||
| 120 | + query.Limit(v.(int)) | ||
| 121 | + } | ||
| 106 | cnt, err := query.SelectAndCount() | 122 | cnt, err := query.SelectAndCount() |
| 107 | if err != nil { | 123 | if err != nil { |
| 108 | return 0, nil, err | 124 | return 0, nil, err |
| @@ -10,7 +10,9 @@ import ( | @@ -10,7 +10,9 @@ import ( | ||
| 10 | func Run() { | 10 | func Run() { |
| 11 | messageHandlerMap := make(map[string]func(message *sarama.ConsumerMessage) error) | 11 | messageHandlerMap := make(map[string]func(message *sarama.ConsumerMessage) error) |
| 12 | messageHandlerMap["demo-v1"] = Demo | 12 | messageHandlerMap["demo-v1"] = Demo |
| 13 | - saramaConsumer.StartConsume(constant.KAFKA_HOSTS, constant.SERVICE_NAME, messageHandlerMap, log.Logger) | 13 | + |
| 14 | + err := saramaConsumer.StartConsume(constant.KAFKA_HOSTS, constant.SERVICE_NAME, messageHandlerMap, log.Logger) | ||
| 15 | + log.Logger.Error(err.Error()) | ||
| 14 | } | 16 | } |
| 15 | 17 | ||
| 16 | func Demo(message *sarama.ConsumerMessage) error { | 18 | func Demo(message *sarama.ConsumerMessage) error { |
-
请 注册 或 登录 后发表评论