HR管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
2.4 KiB

package dockingorganization
import (
"fmt"
7 months ago
"hr_server/models"
"hr_server/overall"
"hr_server/overall/overallhandle"
"io/ioutil"
"net/http"
7 months ago
"strings"
"time"
7 months ago
"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
}
7 months ago
/*
*
@ 作者: 秦东
@ 时间: 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)
}