diff --git a/features/sys_user/service/repo_sys_user.go b/features/sys_user/service/repo_sys_user.go index 3be2623a..5cdf55ba 100644 --- a/features/sys_user/service/repo_sys_user.go +++ b/features/sys_user/service/repo_sys_user.go @@ -11,7 +11,7 @@ import ( "ems.agt/lib/core/utils/crypto" "ems.agt/lib/core/utils/date" "ems.agt/lib/core/utils/parse" - "github.com/go-admin-team/go-admin-core/logger" + "ems.agt/lib/log" ) // 实例化数据层 RepoSysUser 结构体 @@ -21,7 +21,7 @@ var NewRepoSysUser = &RepoSysUser{ u.start_time, u.end_time, u.id_card_number, u.employee_number, u.organize, u.employee_type, u.supporter_corp_name, u.real_name, u.password, u.password_sha512, u.change_password_flag,u.password_expiration, u.status, u.user_expiration, u.group_name, - u.profile, u.phone, u.create_time, u.update_time, + u.profile, u.phone, u.create_time, u.update_time, u.unit, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from user u left join sys_user_role ur on u.id = ur.user_id @@ -56,6 +56,7 @@ var NewRepoSysUser = &RepoSysUser{ "phone": "Phone", "create_time": "CreateTime", "update_time": "UpdateTime", + "unit": "Unit", }, sysRoleMap: map[string]string{ @@ -96,6 +97,10 @@ func (r *RepoSysUser) convertResultRows(rows []map[string]any) []sysUserModel.Sy } } + if sysRole.RoleKey != "" { + sysUser.Roles = append(sysUser.Roles, sysRole) + } + one := true for i, a := range arr { if a.Id == sysUser.Id { @@ -120,9 +125,9 @@ func (r *RepoSysUser) SelectUserPage(query map[string]any) map[string]any { u.start_time, u.end_time, u.id_card_number, u.employee_number, u.organize, u.employee_type, u.supporter_corp_name, u.real_name, u.change_password_flag,u.password_expiration, u.status, u.user_expiration, u.group_name, - u.profile, u.phone, u.create_time, u.update_time + u.profile, u.phone, u.create_time, u.update_time, u.unit from user u` - selectUserTotalSql := `select count(distinct u.id) as 'total' from sys_user u` + selectUserTotalSql := `select count(distinct u.id) as 'total' from user u` // 查询条件拼接 var conditions []string @@ -177,7 +182,7 @@ func (r *RepoSysUser) SelectUserPage(query map[string]any) map[string]any { totalSql := selectUserTotalSql + whereSql totalRows, err := datasource.RawDB("", totalSql, params) if err != nil { - logger.Errorf("total err => %v", err) + log.Errorf("total err => %v", err) } total := parse.Number(totalRows[0]["total"]) if total == 0 { @@ -197,7 +202,7 @@ func (r *RepoSysUser) SelectUserPage(query map[string]any) map[string]any { querySql := selectUserSql + whereSql + pageSql results, err := datasource.RawDB("", querySql, params) if err != nil { - logger.Errorf("query err => %v", err) + log.Errorf("query err => %v", err) } // 转换实体 @@ -234,7 +239,7 @@ func (r *RepoSysUser) SelectAllocatedPage(query map[string]any) map[string]any { } else { conditions = append(conditions, `(r.role_id != ? or r.role_id IS NULL) and u.id not in ( - select u.id from sys_user u + select u.id from user u inner join sys_user_role ur on u.id = ur.user_id and ur.role_id = ? )`) @@ -257,7 +262,7 @@ func (r *RepoSysUser) SelectAllocatedPage(query map[string]any) map[string]any { left join sys_role r on r.role_id = ur.role_id` totalRows, err := datasource.RawDB("", totalSql+whereSql, params) if err != nil { - logger.Errorf("total err => %v", err) + log.Errorf("total err => %v", err) } total := parse.Number(totalRows[0]["total"]) if total == 0 { @@ -277,13 +282,13 @@ func (r *RepoSysUser) SelectAllocatedPage(query map[string]any) map[string]any { querySql := `select distinct u.id, u.account_id, u.name, u.gender, u.email, u.phone, u.status, u.create_time, u.real_name - from sys_user u + from user u left join sys_user_role ur on u.id = ur.user_id left join sys_role r on r.role_id = ur.role_id` querySql = querySql + whereSql + pageSql results, err := datasource.RawDB("", querySql, params) if err != nil { - logger.Errorf("query err => %v", err) + log.Errorf("query err => %v", err) } // 转换实体 @@ -298,7 +303,7 @@ func (r *RepoSysUser) SelectAllocatedPage(query map[string]any) map[string]any { func (r *RepoSysUser) SelectUserList(sysUser sysUserModel.SysUser, dataScopeSQL string) []sysUserModel.SysUser { selectUserSql := `select u.id, u.account_id, u.name, u.real_name, u.email, u.gender, u.phone, u.create_time, u.status, u.description - from sys_user u` + from user u` // 查询条件拼接 var conditions []string @@ -308,7 +313,7 @@ func (r *RepoSysUser) SelectUserList(sysUser sysUserModel.SysUser, dataScopeSQL params = append(params, sysUser.AccountId) } if sysUser.Name != "" { - conditions = append(conditions, "u.name like concat(?, '%')") + conditions = append(conditions, "u.name like concat('%', concat(?, '%'))") params = append(params, sysUser.Name) } if sysUser.Status != "" { @@ -330,7 +335,7 @@ func (r *RepoSysUser) SelectUserList(sysUser sysUserModel.SysUser, dataScopeSQL querySql := selectUserSql + whereSql + dataScopeSQL rows, err := datasource.RawDB("", querySql, params) if err != nil { - logger.Errorf("query err => %v", err) + log.Errorf("query err => %v", err) return []sysUserModel.SysUser{} } return r.convertResultRows(rows) @@ -339,11 +344,11 @@ func (r *RepoSysUser) SelectUserList(sysUser sysUserModel.SysUser, dataScopeSQL // SelectUserByIds 通过用户ID查询用户 func (r *RepoSysUser) SelectUserByIds(userIds []string) []sysUserModel.SysUser { placeholder := datasource.KeyPlaceholderByQuery(len(userIds)) - querySql := r.selectSql + " where and u.id in (" + placeholder + ")" + querySql := r.selectSql + " where u.id in (" + placeholder + ")" parameters := datasource.ConvertIdsSlice(userIds) results, err := datasource.RawDB("", querySql, parameters) if err != nil { - logger.Errorf("query err => %v", err) + log.Errorf("query err => %v", err) return []sysUserModel.SysUser{} } // 转换实体 @@ -355,7 +360,7 @@ func (r *RepoSysUser) SelectUserByUserName(userName string) sysUserModel.SysUser querySql := r.selectSql + " where u.name = ?" results, err := datasource.RawDB("", querySql, []any{userName}) if err != nil { - logger.Errorf("query err => %v", err) + log.Errorf("query err => %v", err) return sysUserModel.SysUser{} } // 转换实体 @@ -376,21 +381,38 @@ func (r *RepoSysUser) InsertUser(sysUser sysUserModel.SysUser) string { if sysUser.Name != "" { params["name"] = sysUser.Name } - if sysUser.Status != "" { - params["status"] = sysUser.Status - } if sysUser.Sn != "" { params["sn"] = sysUser.Sn + } else { + params["sn"] = "" } - if sysUser.Email != "" { - params["email"] = sysUser.Email - } - if sysUser.Phone != "" { - params["phone"] = sysUser.Phone + if sysUser.RealName != "" { + params["real_name"] = sysUser.RealName + } else { + params["real_name"] = "" } if sysUser.Gender != "" { params["gender"] = sysUser.Gender } + if sysUser.Email != "" { + params["email"] = sysUser.Email + } else { + params["email"] = "" + } + if sysUser.Phone != "" { + params["phone"] = sysUser.Phone + } else { + params["phone"] = "" + } + if sysUser.Unit != "" { + params["unit"] = sysUser.Unit + } else { + params["unit"] = "" + } + + if sysUser.Organize != "" { + params["organize"] = sysUser.Organize + } if sysUser.Password != "" { password := crypto.BcryptHash(sysUser.Password) params["password"] = password @@ -398,9 +420,16 @@ func (r *RepoSysUser) InsertUser(sysUser sysUserModel.SysUser) string { if sysUser.Status != "" { params["status"] = sysUser.Status } - if sysUser.Description != "" { - params["description"] = sysUser.Description + if sysUser.PasswordExpiration != "" { + params["password_expiration"] = sysUser.PasswordExpiration } + if sysUser.UserExpiration != "" { + params["user_expiration"] = sysUser.UserExpiration + } + if sysUser.GroupName != "" { + params["group_name"] = sysUser.GroupName + } + params["create_time"] = time.Now() // 构建执行语句 keys, placeholder, values := datasource.KeyPlaceholderValueByInsert(params) @@ -409,7 +438,7 @@ func (r *RepoSysUser) InsertUser(sysUser sysUserModel.SysUser) string { // 执行插入 rows, err := datasource.ExecDB("", sql, values) if err != nil { - logger.Errorf("insert row : %v", err.Error()) + log.Errorf("insert row : %v", err.Error()) return "" } @@ -423,29 +452,35 @@ func (r *RepoSysUser) UpdateUser(sysUser sysUserModel.SysUser) int64 { if sysUser.Name != "" { params["name"] = sysUser.Name } + if sysUser.Sn != "" { + params["sn"] = sysUser.Sn + } else { + params["sn"] = "" + } if sysUser.RealName != "" { params["real_name"] = sysUser.RealName + } else { + params["real_name"] = "" } if sysUser.Gender != "" { params["gender"] = sysUser.Gender } - if sysUser.Sn != "" { - params["sn"] = sysUser.Sn - } if sysUser.Email != "" { - if sysUser.Email == "nil" { - params["email"] = "" - } else { - params["email"] = sysUser.Email - } + params["email"] = sysUser.Email + } else { + params["email"] = "" } if sysUser.Phone != "" { - if sysUser.Phone == "nil" { - params["phone"] = "" - } else { - params["phone"] = sysUser.Phone - } + params["phone"] = sysUser.Phone + } else { + params["phone"] = "" } + if sysUser.Unit != "" { + params["unit"] = sysUser.Unit + } else { + params["unit"] = "" + } + if sysUser.Organize != "" { params["organize"] = sysUser.Organize } @@ -456,12 +491,16 @@ func (r *RepoSysUser) UpdateUser(sysUser sysUserModel.SysUser) int64 { if sysUser.Status != "" { params["status"] = sysUser.Status } + if sysUser.PasswordExpiration != "" { + params["password_expiration"] = sysUser.PasswordExpiration + } + if sysUser.UserExpiration != "" { + params["user_expiration"] = sysUser.UserExpiration + } if sysUser.GroupName != "" { params["group_name"] = sysUser.GroupName } - if sysUser.UpdateTime != "" { - params["update_time"] = time.Now().UnixMilli() - } + params["update_time"] = time.Now() // 构建执行语句 keys, values := datasource.KeyValueByUpdate(params) @@ -471,7 +510,7 @@ func (r *RepoSysUser) UpdateUser(sysUser sysUserModel.SysUser) int64 { values = append(values, sysUser.Id) rows, err := datasource.ExecDB("", sql, values) if err != nil { - logger.Errorf("update row : %v", err.Error()) + log.Errorf("update row : %v", err.Error()) return 0 } return rows @@ -480,11 +519,11 @@ func (r *RepoSysUser) UpdateUser(sysUser sysUserModel.SysUser) int64 { // DeleteUserByIds 批量删除用户信息 func (r *RepoSysUser) DeleteUserByIds(userIds []string) int64 { placeholder := datasource.KeyPlaceholderByQuery(len(userIds)) - sql := "update user set del_flag = '1' where id in (" + placeholder + ")" + sql := "delete from user where id in (" + placeholder + ")" parameters := datasource.ConvertIdsSlice(userIds) results, err := datasource.ExecDB("", sql, parameters) if err != nil { - logger.Errorf("update err => %v", err) + log.Errorf("update err => %v", err) return 0 } return results @@ -516,7 +555,7 @@ func (r *RepoSysUser) CheckUniqueUser(sysUser sysUserModel.SysUser) string { querySql := "select id as 'str' from user " + whereSql + " limit 1" results, err := datasource.RawDB("", querySql, params) if err != nil { - logger.Errorf("query err %v", err) + log.Errorf("query err %v", err) } if len(results) > 0 { return fmt.Sprintf("%v", results[0]["str"]) diff --git a/features/sys_user/service/service_sys_user.go b/features/sys_user/service/service_sys_user.go index 5903376e..0401d304 100644 --- a/features/sys_user/service/service_sys_user.go +++ b/features/sys_user/service/service_sys_user.go @@ -117,9 +117,9 @@ func (r *ServiceSysUser) DeleteUserByIds(userIds []string) (int64, error) { } // CheckUniqueUserName 校验用户名称是否唯一 -func (r *ServiceSysUser) CheckUniqueUserName(userName, userId string) bool { +func (r *ServiceSysUser) CheckUniqueUserName(accountId, userId string) bool { uniqueId := r.sysUserRepository.CheckUniqueUser(sysUserModel.SysUser{ - Name: userName, + AccountId: accountId, }) if uniqueId == userId { return true