package dockingorganization import ( "fmt" "hr_server/models" "hr_server/overall" "hr_server/overall/overallhandle" "io/ioutil" "net/http" "strings" "time" "gorm.io/gorm" ) func GetUrl(sendUrl string) (respBody []byte, err error) { req, err := http.NewRequest("GET", sendUrl, nil) client := &http.Client{Timeout: 500 * time.Second} // 设置请求超时时长5s resp, err := client.Do(req) if err != nil { errmsg := fmt.Sprintf("访问请求[%v] http.DefaultClient.Do() err: %v", sendUrl, err) overallhandle.WriteLog("e", errmsg) return } defer resp.Body.Close() respBody, err = ioutil.ReadAll(resp.Body) return } /* * @ 作者: 秦东 @ 时间: 2025-04-17 10:29:31 @ 功能: 三方库统一添加角色 @ 参数 # @ 返回值 # @ 方法原型 # */ func AddRolePeople(roleId string) { var userId []int64 overall.CONSTANT_DB_HR.Model(&models.PersonArchives{}).Select("`id`").Find(&userId) if len(userId) > 0 { var guoduId []int64 for i, v := range userId { //分组启动携程 if (i+1)%500 == 0 { synPro.Add(1) go SynAddNewRole(guoduId, roleId) guoduId = []int64{} } else { guoduId = append(guoduId, v) } } if len(guoduId) > 0 { synPro.Add(1) go SynAddNewRole(guoduId, roleId) } synPro.Wait() } fmt.Println("数据校验完成!") } /* * @ 作者: 秦东 @ 时间: 2025-04-17 10:32:35 @ 功能: 协程处理角色添加问题 #userId 要处理人的ID #roleId 要添加的角色ID */ func SynAddNewRole(userIdAry []int64, roleId string) { defer synPro.Done() var userAry []models.PersonArchives overall.CONSTANT_DB_HR.Model(&models.PersonArchives{}).Select("`id`,`key`,`role`").Where("`id` IN ?", userIdAry).Find(&userAry) if len(userAry) > 0 { for _, v := range userAry { editUserRole(overall.CONSTANT_DB_HR, v, roleId) editUserRole(overall.CONSTANT_Hr_Server, v, roleId) editUserRole(overall.CONSTANT_HRSERVER_DATABASE, v, roleId) } } } /* * @ 作者: 秦东 @ 时间: 2025-04-02 11:36:47 @ 功能: 编辑附属人员信息 */ func editUserRole(gormDb *gorm.DB, userInfo models.PersonArchives, roleId string) { allRoleMap := []string{roleId} if userInfo.Role != "" { oldRoleAry := strings.Split(userInfo.Role, ",") allRoleMap = append(allRoleMap, oldRoleAry...) } saveData := overallhandle.MapOut() saveData["role"] = strings.Join(allRoleMap, ",") saveData["eite_time"] = time.Now().Unix() gormDb.Model(&models.PersonArchives{}).Where("`key` = ?", userInfo.Key).Updates(saveData) }