正在显示
11 个修改的文件
包含
78 行增加
和
9 行删除
| @@ -41,6 +41,10 @@ type CreateUserCommand struct { | @@ -41,6 +41,10 @@ type CreateUserCommand struct { | ||
| 41 | Avatar string `cname:"头像" json:"avatar"` | 41 | Avatar string `cname:"头像" json:"avatar"` |
| 42 | // 邮箱 | 42 | // 邮箱 |
| 43 | Email string `cname:"邮箱" json:"email"` | 43 | Email string `cname:"邮箱" json:"email"` |
| 44 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
| 45 | + EmployeeType int `cname:"员工类型" json:"employeeType" valid:"Required"` | ||
| 46 | + // IC卡号 | ||
| 47 | + IcCardNumber string `cname:"IC卡号" json:"icCardNumber,omitempty"` | ||
| 44 | 48 | ||
| 45 | // 运营管理扩展 | 49 | // 运营管理扩展 |
| 46 | // 部门 | 50 | // 部门 |
| @@ -36,6 +36,10 @@ type UpdateUserCommand struct { | @@ -36,6 +36,10 @@ type UpdateUserCommand struct { | ||
| 36 | Avatar string `cname:"头像" json:"avatar"` | 36 | Avatar string `cname:"头像" json:"avatar"` |
| 37 | // 邮箱 | 37 | // 邮箱 |
| 38 | Email string `cname:"邮箱" json:"email"` | 38 | Email string `cname:"邮箱" json:"email"` |
| 39 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
| 40 | + EmployeeType int `name:"员工类型" json:"employeeType" valid:"Required"` | ||
| 41 | + // IC卡号 | ||
| 42 | + IcCardNumber string `json:"icCardNumber,omitempty"` | ||
| 39 | 43 | ||
| 40 | // 运营管理扩展 | 44 | // 运营管理扩展 |
| 41 | // 部门 | 45 | // 部门 |
| @@ -71,9 +71,14 @@ func (dto *UserDto) LoadDto(user *domain.User, company *domain.Company) error { | @@ -71,9 +71,14 @@ func (dto *UserDto) LoadDto(user *domain.User, company *domain.Company) error { | ||
| 71 | } | 71 | } |
| 72 | if user.UserInfo == nil { | 72 | if user.UserInfo == nil { |
| 73 | dto.UserInfo = &domain.UserInfo{ | 73 | dto.UserInfo = &domain.UserInfo{ |
| 74 | - UserName: user.Ext.UserName, | ||
| 75 | - Phone: user.Ext.Phone, | 74 | + UserName: user.Ext.UserName, |
| 75 | + Phone: user.Ext.Phone, | ||
| 76 | + IcCardNumber: user.Ext.IcCardNumber, | ||
| 77 | + EmployeeType: user.Ext.EmployeeType, | ||
| 76 | } | 78 | } |
| 79 | + } else { | ||
| 80 | + dto.UserInfo.IcCardNumber = user.Ext.IcCardNumber | ||
| 81 | + dto.UserInfo.EmployeeType = user.Ext.EmployeeType | ||
| 77 | } | 82 | } |
| 78 | if len(dto.UserRole) == 0 { | 83 | if len(dto.UserRole) == 0 { |
| 79 | dto.UserRole = make([]*domain.Role, 0) | 84 | dto.UserRole = make([]*domain.Role, 0) |
| @@ -271,9 +271,11 @@ func (userService *UserService) CreateUser(createUserCommand *command.CreateUser | @@ -271,9 +271,11 @@ func (userService *UserService) CreateUser(createUserCommand *command.CreateUser | ||
| 271 | UserInfo: nweUserInfo, | 271 | UserInfo: nweUserInfo, |
| 272 | EnableStatus: createUserCommand.EnableStatus, | 272 | EnableStatus: createUserCommand.EnableStatus, |
| 273 | Ext: &domain.Ext{ | 273 | Ext: &domain.Ext{ |
| 274 | - Phone: createUserCommand.Phone, | ||
| 275 | - UserName: createUserCommand.UserName, | ||
| 276 | - DepName: createUserCommand.DepartmentName, | 274 | + Phone: createUserCommand.Phone, |
| 275 | + UserName: createUserCommand.UserName, | ||
| 276 | + DepName: createUserCommand.DepartmentName, | ||
| 277 | + IcCardNumber: createUserCommand.IcCardNumber, | ||
| 278 | + EmployeeType: createUserCommand.EmployeeType, | ||
| 277 | }, | 279 | }, |
| 278 | CreatedAt: time.Now(), | 280 | CreatedAt: time.Now(), |
| 279 | UpdatedAt: time.Now(), | 281 | UpdatedAt: time.Now(), |
| @@ -705,7 +707,7 @@ func (userService *UserService) UpdateUser(updateUserCommand *command.UpdateUser | @@ -705,7 +707,7 @@ func (userService *UserService) UpdateUser(updateUserCommand *command.UpdateUser | ||
| 705 | defer func() { | 707 | defer func() { |
| 706 | transactionContext.RollbackTransaction() | 708 | transactionContext.RollbackTransaction() |
| 707 | }() | 709 | }() |
| 708 | - _, user, err := factory.FastPgUser(transactionContext, updateUserCommand.UserId, factory.WithDataAuthRequired(), factory.WithOperator(updateUserCommand.OperateInfo)) | 710 | + _, user, err := factory.FastPgUser(transactionContext, updateUserCommand.UserId, factory.WithOperator(updateUserCommand.OperateInfo)) //, factory.WithDataAuthRequired() |
| 709 | if err != nil { | 711 | if err != nil { |
| 710 | return nil, err | 712 | return nil, err |
| 711 | } | 713 | } |
| @@ -729,6 +731,8 @@ func (userService *UserService) UpdateUser(updateUserCommand *command.UpdateUser | @@ -729,6 +731,8 @@ func (userService *UserService) UpdateUser(updateUserCommand *command.UpdateUser | ||
| 729 | Email: updateUserCommand.Email, | 731 | Email: updateUserCommand.Email, |
| 730 | DepartmentName: updateUserCommand.DepartmentName, | 732 | DepartmentName: updateUserCommand.DepartmentName, |
| 731 | } | 733 | } |
| 734 | + user.Ext.EmployeeType = updateUserCommand.EmployeeType | ||
| 735 | + user.Ext.IcCardNumber = updateUserCommand.IcCardNumber | ||
| 732 | 736 | ||
| 733 | updateUserService, _ := factory.CreatePgUpdateUserService(map[string]interface{}{ | 737 | updateUserService, _ := factory.CreatePgUpdateUserService(map[string]interface{}{ |
| 734 | "transactionContext": transactionContext, | 738 | "transactionContext": transactionContext, |
| @@ -12,4 +12,9 @@ type Ext struct { | @@ -12,4 +12,9 @@ type Ext struct { | ||
| 12 | DepName string `json:"depName,omitempty"` | 12 | DepName string `json:"depName,omitempty"` |
| 13 | // 父级部门名称 | 13 | // 父级部门名称 |
| 14 | ParentDepName string `json:"parentDepName,omitempty"` | 14 | ParentDepName string `json:"parentDepName,omitempty"` |
| 15 | + | ||
| 16 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
| 17 | + EmployeeType int `json:"employeeType,omitempty"` | ||
| 18 | + // IC卡号 | ||
| 19 | + IcCardNumber string `json:"icCardNumber,omitempty"` | ||
| 15 | } | 20 | } |
| @@ -314,6 +314,10 @@ type BatchAddUserItem struct { | @@ -314,6 +314,10 @@ type BatchAddUserItem struct { | ||
| 314 | CooperationCompany string `json:"cooperationCompany"` | 314 | CooperationCompany string `json:"cooperationCompany"` |
| 315 | // 共创到期时间 (yyyy-MM-dd) cooperationDeadline | 315 | // 共创到期时间 (yyyy-MM-dd) cooperationDeadline |
| 316 | CooperationDeadline string `json:"cooperationDeadline"` | 316 | CooperationDeadline string `json:"cooperationDeadline"` |
| 317 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
| 318 | + EmployeeType string `json:"employeeType,omitempty"` | ||
| 319 | + // IC卡号 | ||
| 320 | + IcCardNumber string `json:"icCardNumber,omitempty"` | ||
| 317 | 321 | ||
| 318 | // 失败理由 | 322 | // 失败理由 |
| 319 | FailReason string `json:"failReason"` | 323 | FailReason string `json:"failReason"` |
| @@ -328,3 +332,16 @@ func (item *BatchAddUserItem) Status() int { | @@ -328,3 +332,16 @@ func (item *BatchAddUserItem) Status() int { | ||
| 328 | } | 332 | } |
| 329 | return 1 | 333 | return 1 |
| 330 | } | 334 | } |
| 335 | + | ||
| 336 | +func (item *BatchAddUserItem) GetEmployeeType() int { | ||
| 337 | + if item.EmployeeType == "固定" { | ||
| 338 | + return 1 | ||
| 339 | + } | ||
| 340 | + if item.EmployeeType == "派遣" { | ||
| 341 | + return 2 | ||
| 342 | + } | ||
| 343 | + if item.EmployeeType == "临时" { | ||
| 344 | + return 3 | ||
| 345 | + } | ||
| 346 | + return 1 | ||
| 347 | +} |
| @@ -11,6 +11,11 @@ type UserInfo struct { | @@ -11,6 +11,11 @@ type UserInfo struct { | ||
| 11 | // 邮箱 | 11 | // 邮箱 |
| 12 | Email string `json:"email,omitempty"` | 12 | Email string `json:"email,omitempty"` |
| 13 | 13 | ||
| 14 | + // 员工类型 1:固定 2:派遣 3.临时 | ||
| 15 | + EmployeeType int `json:"employeeType,omitempty"` | ||
| 16 | + // IC卡号 | ||
| 17 | + IcCardNumber string `json:"icCardNumber,omitempty"` | ||
| 18 | + | ||
| 14 | Referer string `json:"-"` | 19 | Referer string `json:"-"` |
| 15 | // 部门 | 20 | // 部门 |
| 16 | DepartmentName string `cname:"部门" json:"-"` | 21 | DepartmentName string `cname:"部门" json:"-"` |
| @@ -139,9 +139,11 @@ func (ptr *PgBatchAddUserService) BatchAddUser2(optUser *domain.OperateInfo, use | @@ -139,9 +139,11 @@ func (ptr *PgBatchAddUserService) BatchAddUser2(optUser *domain.OperateInfo, use | ||
| 139 | }, | 139 | }, |
| 140 | EnableStatus: user.Status(), | 140 | EnableStatus: user.Status(), |
| 141 | Ext: &domain.Ext{ | 141 | Ext: &domain.Ext{ |
| 142 | - Phone: user.Phone, | ||
| 143 | - UserName: user.UserName, | ||
| 144 | - OrgName: org.OrgName, | 142 | + Phone: user.Phone, |
| 143 | + UserName: user.UserName, | ||
| 144 | + OrgName: org.OrgName, | ||
| 145 | + EmployeeType: user.GetEmployeeType(), | ||
| 146 | + IcCardNumber: user.IcCardNumber, | ||
| 145 | }, | 147 | }, |
| 146 | CreatedAt: time.Now(), | 148 | CreatedAt: time.Now(), |
| 147 | UpdatedAt: time.Now(), | 149 | UpdatedAt: time.Now(), |
| @@ -202,6 +204,12 @@ func (ptr *PgBatchAddUserService) preCheck2(user *domain.BatchAddUserItem) error | @@ -202,6 +204,12 @@ func (ptr *PgBatchAddUserService) preCheck2(user *domain.BatchAddUserItem) error | ||
| 202 | if len(user.Phone) == 0 || len(user.Phone) != 11 { | 204 | if len(user.Phone) == 0 || len(user.Phone) != 11 { |
| 203 | return fmt.Errorf("导入的手机号不是有效手机号") | 205 | return fmt.Errorf("导入的手机号不是有效手机号") |
| 204 | } | 206 | } |
| 207 | + if len(user.EmployeeType) == 0 { | ||
| 208 | + return fmt.Errorf("导入的员工类型为空值") | ||
| 209 | + } | ||
| 210 | + if !(user.EmployeeType == "固定" || user.EmployeeType == "派遣" || user.EmployeeType == "临时") { | ||
| 211 | + return fmt.Errorf("导入的员工类型有误") | ||
| 212 | + } | ||
| 205 | return nil | 213 | return nil |
| 206 | } | 214 | } |
| 207 | 215 |
| @@ -68,6 +68,13 @@ func (ptr *PgCreateUserService) CreateUser(optUser *domain.User, newUser *domain | @@ -68,6 +68,13 @@ func (ptr *PgCreateUserService) CreateUser(optUser *domain.User, newUser *domain | ||
| 68 | } | 68 | } |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | + // 判断企业内IC卡号唯一 | ||
| 72 | + if len(newUser.Ext.IcCardNumber) > 0 { | ||
| 73 | + if u, e := userRepository.FindOne(map[string]interface{}{"companyId": newUser.CompanyId, "icCardNumber": newUser.Ext.IcCardNumber}); e == nil && u != nil { | ||
| 74 | + return nil, fmt.Errorf("IC卡号在该企业内已存在,请重新输入") | ||
| 75 | + } | ||
| 76 | + } | ||
| 77 | + | ||
| 71 | // 3.建账号 | 78 | // 3.建账号 |
| 72 | if userBase == nil { | 79 | if userBase == nil { |
| 73 | createUserAccountService, _ := NewPgCreateUserAccountService(ptr.transactionContext) | 80 | createUserAccountService, _ := NewPgCreateUserAccountService(ptr.transactionContext) |
| @@ -80,6 +80,13 @@ func (ptr *PgUpdateUserService) UpdateUser(optUser *domain.OperateInfo, user *do | @@ -80,6 +80,13 @@ func (ptr *PgUpdateUserService) UpdateUser(optUser *domain.OperateInfo, user *do | ||
| 80 | return nil, fmt.Errorf("用户编号在该企业内已存在,请重新输入") | 80 | return nil, fmt.Errorf("用户编号在该企业内已存在,请重新输入") |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | + // 判断企业内IC卡号唯一 | ||
| 84 | + if len(user.Ext.IcCardNumber) > 0 { | ||
| 85 | + if u, e := userRepository.FindOne(map[string]interface{}{"companyId": user.CompanyId, "icCardNumber": user.Ext.IcCardNumber}); e == nil && u != nil && u.UserId != user.UserId { | ||
| 86 | + return nil, fmt.Errorf("IC卡号在该企业内已存在,请重新输入") | ||
| 87 | + } | ||
| 88 | + } | ||
| 89 | + | ||
| 83 | user.UserRole = userRole | 90 | user.UserRole = userRole |
| 84 | user.UserOrg = userOrg | 91 | user.UserOrg = userOrg |
| 85 | if org != nil { | 92 | if org != nil { |
| @@ -92,6 +99,8 @@ func (ptr *PgUpdateUserService) UpdateUser(optUser *domain.OperateInfo, user *do | @@ -92,6 +99,8 @@ func (ptr *PgUpdateUserService) UpdateUser(optUser *domain.OperateInfo, user *do | ||
| 92 | } | 99 | } |
| 93 | user.Ext.Phone = userBase.UserInfo.Phone | 100 | user.Ext.Phone = userBase.UserInfo.Phone |
| 94 | user.Ext.UserName = userBase.UserInfo.UserName | 101 | user.Ext.UserName = userBase.UserInfo.UserName |
| 102 | + //user.Ext.EmployeeType = userInfo.EmployeeType | ||
| 103 | + //user.Ext.IcCardNumber = userInfo.IcCardNumber | ||
| 95 | user.UpdatedAt = time.Now() | 104 | user.UpdatedAt = time.Now() |
| 96 | if err = user.SetEnableStatus(enableStatus); err != nil { | 105 | if err = user.SetEnableStatus(enableStatus); err != nil { |
| 97 | return nil, err | 106 | return nil, err |
| @@ -169,6 +169,7 @@ func (repository *UserRepository) FindOne(queryOptions map[string]interface{}) ( | @@ -169,6 +169,7 @@ func (repository *UserRepository) FindOne(queryOptions map[string]interface{}) ( | ||
| 169 | query.SetWhereByQueryOption("user_code = ?", "userCode") | 169 | query.SetWhereByQueryOption("user_code = ?", "userCode") |
| 170 | query.SetWhereByQueryOption("user_id != ?", "notEqualUserId") | 170 | query.SetWhereByQueryOption("user_id != ?", "notEqualUserId") |
| 171 | query.SetWhereByQueryOption("user_type & ? > 0", "userType") | 171 | query.SetWhereByQueryOption("user_type & ? > 0", "userType") |
| 172 | + query.SetWhereByQueryOption("ext->>'icCardNumber'=?", "icCardNumber") | ||
| 172 | if err := query.First(); err != nil { | 173 | if err := query.First(); err != nil { |
| 173 | if err.Error() == "pg: no rows in result set" { | 174 | if err.Error() == "pg: no rows in result set" { |
| 174 | return nil, fmt.Errorf("没有此资源") | 175 | return nil, fmt.Errorf("没有此资源") |
-
请 注册 或 登录 后发表评论