package examtestpage
import (
"encoding/json"
"errors"
"fmt"
"strconv"
"time"
"github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/hrsystem"
"github.com/flipped-aurora/gin-vue-admin/server/model/testpage"
"github.com/flipped-aurora/gin-vue-admin/server/model/wechat"
"github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
//集团分厂管理模块
type GroupHandleApi struct { }
//集团栏目
type GroupMap struct {
Id int64 ` json:"id" gorm:"column:g_id;type:bigint(20);;primaryKey;unique;not null;autoIncrement;index" `
Name string ` json:"name" gorm:"column:g_name;type:varchar(255);not null;comment:组织名称" ` //'组织名称',
Time int64 ` json:"time" gorm:"column:g_time;type:bigint(20) unsigned;default:0;not null;comment:编辑时间" ` //'编辑时间',
Parentid int64 ` json:"parentid" gorm:"column:g_parentid;type:bigint(20) unsigned;default:0;not null;comment:父级栏目" `
Sate int8 ` json:"state" gorm:"column:g_sate;type:tinyint(1) unsigned;default:1;not null;comment:状态" ` //'状态',
JinDieId string ` json:"jindieid" gorm:"column:g_jindie_id;type:bigint(20) unsigned;default:0;not null;comment:金蝶ID" ` //金蝶ID
}
type TableData struct {
ID int64 ` json:"id" `
Name string ` json:"name" `
Address bool ` json:"address" `
WxId string ` json:"wxId" `
JdId string ` json:"jdId" `
Attributes int8 ` json:"attributes" `
Sort int ` json:"sort" `
Date string ` json:"date" `
Children interface { } ` json:"children" `
QueryId int ` json:"queryid" `
SingId int ` json:"singid" `
ErgodicID string ` json:"ergodicid" `
}
//POST提交参数
type postGroupCanshu struct {
Id int64 ` json:"id" from:"id" `
TypeId int ` json:"typeid" from:"typeid" `
}
//集团列表
func ( g * GroupHandleApi ) GroupList ( c * gin . Context ) {
var groupStruct [ ] wechat . GroupForm //集团表结构
gormDb := global . GVA_DB_WatchDate . Model ( & groupStruct )
var requestData getGroupType
errRequest := c . ShouldBindJSON ( & requestData )
if errRequest != nil {
gormDb = gormDb . Where ( "g_parentid = ?" , 1 )
}
if requestData . Parentid == 0 {
gormDb = gormDb . Where ( "g_parentid = ?" , 1 )
} else {
gormDb = gormDb . Where ( "g_id = ?" , requestData . Parentid )
}
var groupMap [ ] GroupMap //要获取的集团架构字段
var groupMapStruct [ ] TableData
// err := global.GVA_DB_WatchDate.Model(&groupStruct).Where("g_parentid = ?", 1).Find(&groupMap).Error //获取集团信息
err := gormDb . Find ( & groupMap ) . Error
if err != nil {
fmt . Println ( err )
response . Result ( 100 , groupMapStruct , "集团架构获取失败!" , c )
return
}
var departList [ ] testpage . BranchFactoryHasMany
// err = global.GVA_DB_Master.Preload("WorkshopSectionStruct").Where("bf_group = ?", 3).Find(&departList)
// groupAry := map[int]interface{}{}
for i , v := range groupMap {
// fmt.Printf("%v\n", v.Id)
err = global . GVA_DB_Master . Preload ( "WorkshopSectionStruct" ) . Where ( "bf_group = ?" , v . Id ) . Find ( & departList ) . Error
if err == nil {
var groupTypeStruct TableData
groupTypeStruct . ID = v . Id
groupTypeStruct . Name = v . Name
groupTypeStruct . Address = true
groupTypeStruct . WxId = strconv . FormatInt ( v . Id , 10 )
groupTypeStruct . JdId = v . JinDieId
groupTypeStruct . Attributes = 1
groupTypeStruct . Sort = i + 1
groupTypeStruct . QueryId = 1
groupTypeStruct . Date = commonus . TimeStampToDate ( v . Time , 6 )
groupTypeStruct . Children = openGroupMap ( i + 1 , departList )
groupTypeStruct . SingId = i + 1 + 3
// groupAry[i] = openGroupMap(departList)
groupMapStruct = append ( groupMapStruct , groupTypeStruct )
}
}
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = groupMapStruct
// fmt.Printf("%v\n", groupMap)
// response.Ok(c)
response . Result ( 0 , sendMap , "获取成功" , c )
}
// //展开集团列表
func openGroupMap ( singid int , data [ ] testpage . BranchFactoryHasMany ) [ ] TableData {
// openMapData := map[int]interface{}{}
var mapStruct [ ] TableData
for i , v := range data {
var kk TableData
kk . ID = v . Id
kk . Name = v . Name
kk . Address = true
if v . Set != 1 {
kk . Address = false
}
kk . WxId = strconv . FormatInt ( v . WechatId , 10 )
kk . JdId = ""
kk . Attributes = v . Attribute
kk . Sort = i + 1
kk . QueryId = 2
kk . Date = commonus . TimeStampToDate ( v . Time , 6 )
var sunGroup [ ] TableData
for ii , vv := range v . WorkshopSectionStruct {
var kk_i TableData
kk_i . ID = vv . Id
kk_i . Name = vv . Name
kk_i . Address = true
if vv . Set != 1 {
kk_i . Address = false
}
kk_i . WxId = ""
kk_i . JdId = ""
kk_i . Attributes = 0
kk_i . Sort = ii + 1
kk_i . QueryId = 3
kk_i . Date = commonus . TimeStampToDate ( vv . Time , 6 )
kk_i . SingId , _ = strconv . Atoi ( strconv . Itoa ( singid ) + strconv . Itoa ( i ) + strconv . Itoa ( ii ) )
// kk_i.Children = []map[string]interface{}{}
sunGroup = append ( sunGroup , kk_i )
}
kk . Children = sunGroup
kk . SingId , _ = strconv . Atoi ( strconv . Itoa ( singid ) + strconv . Itoa ( i ) + strconv . Itoa ( 4 ) )
mapStruct = append ( mapStruct , kk )
}
return mapStruct
}
//获取集团信息
/ *
@ id 集团ID
* /
func ( g * GroupHandleApi ) GetGroupInfo ( c * gin . Context ) {
var id postGroupCanshu
_ = c . ShouldBindJSON ( & id ) //获取提交的参数
if id . Id == 0 {
response . Result ( 101 , id , "您的参数不正确!请检查您的提交!" , c )
}
var groupStruct wechat . GroupForm //集团表结构
err := global . GVA_DB_WatchDate . Where ( "g_id = ?" , id . Id ) . First ( & groupStruct ) . Error //获取集团信息
if err != nil {
response . Result ( 100 , groupStruct , "获取失败" , c )
return
}
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = groupStruct
// fmt.Printf("====>%v\n", id.Id)
response . Result ( 0 , groupStruct , "获取成功" , c )
}
/ * 获取子公司信息
@ id 子公司ID
* /
func ( g * GroupHandleApi ) GetSubsidiaryInfo ( c * gin . Context ) {
var id postGroupCanshu
_ = c . ShouldBindJSON ( & id ) //获取提交的参数
if id . Id == 0 {
response . Result ( 101 , id , "您的参数不正确!请检查您的提交!" , c )
}
var subsidiaryStruct testpage . BranchFactory //子公司表结构
err := global . GVA_DB_Master . Where ( "bf_id = ?" , id . Id ) . First ( & subsidiaryStruct ) . Error //获取子公司信息
if err != nil {
response . Result ( 100 , subsidiaryStruct , "获取失败" , c )
return
}
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = subsidiaryStruct
response . Result ( 0 , subsidiaryStruct , "获取成功" , c )
}
/ * 获取工段信息
@ id 工段ID
* /
func ( g * GroupHandleApi ) GetGroupPositionInfo ( c * gin . Context ) {
var id postGroupCanshu
_ = c . ShouldBindJSON ( & id ) //获取提交的参数
if id . Id == 0 {
response . Result ( 101 , id , "您的参数不正确!请检查您的提交!" , c )
}
var workShopesStruct testpage . WorkShopsection //工段表结构
err := global . GVA_DB_Master . Where ( "ws_id = ?" , id . Id ) . First ( & workShopesStruct ) . Error //获取工段信息
if err != nil {
response . Result ( 100 , workShopesStruct , "获取失败" , c )
return
}
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = workShopesStruct
response . Result ( 0 , workShopesStruct , "获取成功" , c )
}
/ *
删除操作
@ id 要删除的ID
@ type 要删除的类型
* /
func ( g * GroupHandleApi ) DelGroupInfo ( c * gin . Context ) {
var postInfo postGroupCanshu
err := c . ShouldBindJSON ( & postInfo )
if err != nil {
response . Result ( 100 , err , "您的参数不正确!请检查您的提交!" , c )
return
}
if postInfo . Id == 0 {
response . Result ( 101 , postInfo . Id , "您的参数不正确!请检查您的提交!" , c )
return
}
var errSun error
switch postInfo . TypeId {
case 1 :
// fmt.Println("A1")
errSun = DelDepartment ( postInfo . Id )
case 2 :
errSun = DelWorhPost ( postInfo . Id )
default :
// fmt.Println("A2")
errSun = DelterGroup ( postInfo . Id )
}
// fmt.Printf("%v===========>%T\n", postInfo.TypeId, postInfo.TypeId)
if errSun != nil {
msg := fmt . Sprintf ( "删除失败!%v" , errSun )
response . Result ( 102 , errSun , msg , c )
return
}
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = errSun
response . Result ( 0 , errSun , "获取成功" , c )
}
/ *
软删除集团信息
@ id 集团ID
* /
func DelterGroup ( id int64 ) error {
assignErr := global . GVA_DB_WatchDate . Model ( & wechat . GroupForm { } ) . Where ( "g_parentid = ? and g_id = ?" , 1 , id ) . First ( & GroupMap { } ) . Error //获取集团信息
if errors . Is ( assignErr , gorm . ErrRecordNotFound ) {
return errors . New ( "该集团不存在!" )
}
err := global . GVA_DB_WatchDate . Where ( "g_id = ?" , id ) . First ( & wechat . GroupForm { } ) . Update ( "g_sate" , 2 ) . Error
return err
}
/ *
软删除分厂信息
@ id 分厂ID
* /
func DelDepartment ( id int64 ) error {
assignErr := global . GVA_DB_Master . Where ( "bf_set = ? and bf_id = ?" , 1 , id ) . First ( & testpage . BranchFactory { } ) . Error //获取分厂或部室信息
if errors . Is ( assignErr , gorm . ErrRecordNotFound ) {
return errors . New ( "该分厂或部室不存在!" )
}
err := global . GVA_DB_Master . Where ( "bf_id = ?" , id ) . First ( & testpage . BranchFactory { } ) . Update ( "bf_set" , 3 ) . Error
return err
}
/ *
软删除分厂信息
@ id 分厂ID
* /
func DelWorhPost ( id int64 ) error {
assignErr := global . GVA_DB_Master . Where ( "ws_set = ? and ws_id = ?" , 1 , id ) . First ( & testpage . WorkShopsection { } ) . Error //获取分厂或部室信息
if errors . Is ( assignErr , gorm . ErrRecordNotFound ) {
return errors . New ( "该工段不存在!" )
}
err := global . GVA_DB_Master . Where ( "ws_id = ?" , id ) . First ( & testpage . WorkShopsection { } ) . Update ( "ws_set" , 3 ) . Error
return err
}
//添加组织架构(集团信息)
/ *
@ id 部门ID
@ name 部门名称
@ parentid 上级部门ID 。 顶级部门的上级ID为1
@ state 状态 ( 1 : 启用 ; 2 : 禁用 )
@ jindieid 金蝶ID
* /
func ( g * GroupHandleApi ) AddGroupInfo ( c * gin . Context ) {
var groupInfo GroupMap
_ = c . ShouldBindJSON ( & groupInfo ) //获取提交的参数
if groupInfo . Parentid == 0 {
response . Result ( 101 , groupInfo , "您的参数不正确!请检查您的提交!" , c )
return
}
if groupInfo . Name == "" {
response . Result ( 102 , groupInfo , "您的参数不正确!请检查您的提交!" , c )
return
}
var groupStruct wechat . GroupForm //集团表结构
var groupMap GroupMap //要获取的集团架构字段
err := global . GVA_DB_WatchDate . Model ( & groupStruct ) . Where ( "g_name = ?" , groupInfo . Name ) . First ( & groupMap ) . Error //获取集团信息
if err == nil {
response . Result ( 103 , groupMap , "该集团名称已经存在!请更换!" , c )
return
}
var dep commonus . DePartMentInfo
addId , adderr := dep . AddDepartment ( groupInfo . Parentid , groupInfo . Name )
if adderr != true {
response . Result ( 1003 , groupInfo . Name , "该集团添加失败(企业微信通讯故障!)" , c )
return
}
groupStruct . Id = addId
groupStruct . Name = groupInfo . Name
groupStruct . Parentid = groupInfo . Parentid
groupStruct . Orderes = 1
groupStruct . Time = time . Now ( ) . Unix ( )
groupStruct . Sate = 1
groupStruct . Group = ""
groupStruct . GroupSun = ""
groupStruct . JinDieId = 0
result := global . GVA_DB_WatchDate . Create ( & groupStruct ) . Error
if result != nil {
commonus . DelDepartment ( addId )
response . Result ( 1004 , groupStruct , "该集团添加失败(写入数据库错误!)" , c )
return
}
// redisClient := redishandel.RunRedis()
// redisClient.SetRedisTime(7200)
// redisClient.Set("kaifa", "1234565")
// jsh, _ := redisClient.Get("kaifa")
// fmt.Printf("%v ----------%v ********** %v\n", ton, add, id)
// fmt.Printf("%v ----------%v ********** %v\n", ton, err, jsh)
// jsonBytes, _ := json.Marshal(groupInfo)
// commonus.CurlPostJosn("111", jsonBytes)
// fmt.Printf("%v ----------%T ********** %v********** %v\n", jsonBytes, jsonBytes, addId, adderr)
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = groupStruct
response . Result ( 0 , groupStruct , "添加成功" , c )
}
/ *
修改组织架构 ( 集团信息 )
@ id 部门ID
@ name 部门名称
@ parentid 上级部门ID 。 顶级部门的上级ID为1
@ state 状态 ( 1 : 启用 ; 2 : 禁用 )
@ jindieid 金蝶ID
* /
func ( g * GroupHandleApi ) EiteGroupInfo ( c * gin . Context ) {
var groupInfo GroupMap
_ = c . ShouldBindJSON ( & groupInfo ) //获取提交的参数
if groupInfo . Id == 0 {
response . Result ( 101 , groupInfo , "您的参数不正确!请检查您的提交!" , c )
return
}
var groupStruct wechat . GroupForm //集团表结构 //要获取的集团架构字段
judgeErr := global . GVA_DB_WatchDate . Where ( "g_id = ?" , groupInfo . Id ) . First ( & groupStruct ) . Error //获取集团信息
if judgeErr != nil {
response . Result ( 101 , judgeErr , "该集团不存在!请检查你的数据!" , c )
return
}
if groupInfo . Name == "" {
response . Result ( 102 , groupInfo , "请提交修改后的集团名称!" , c )
return
} else {
groupStruct . Name = groupInfo . Name
}
if groupInfo . Parentid != 0 {
groupStruct . Parentid = groupInfo . Parentid
}
if groupInfo . Sate != 0 {
groupStruct . Sate = groupInfo . Sate
}
if groupInfo . JinDieId != "" {
jinDieId , jinDeiErr := strconv . ParseInt ( groupInfo . JinDieId , 10 , 64 )
if jinDeiErr != nil {
groupStruct . JinDieId = 0
} else {
groupStruct . JinDieId = jinDieId
}
}
groupStruct . Time = time . Now ( ) . Unix ( )
affairOperation := global . GVA_DB_WatchDate . Begin ( )
saveErr := affairOperation . Save ( groupStruct ) . Error
if saveErr != nil {
affairOperation . Rollback ( )
response . Result ( 102 , groupInfo , "数据写入失败!" , c )
return
}
var dep commonus . DePartMentInfo
_ , saveErrwe := dep . SaveDepartment ( groupStruct . Id , groupStruct . Orderes , groupStruct . Parentid , groupStruct . Name , "" )
if saveErrwe != true {
affairOperation . Rollback ( )
response . Result ( 102 , groupInfo , "与企业微信通讯失败" , c )
return
}
affairOperation . Commit ( )
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = groupStruct
response . Result ( 0 , groupStruct , "修改成功" , c )
}
//获取单个成员信息
type getOneUserSendDate struct {
UserId string ` json:"userid" from:"userid" `
}
//获取成员详细信息
func ( g * GroupHandleApi ) GetOneUserInfoAll ( c * gin . Context ) {
var groupInfo getOneUserSendDate
_ = c . ShouldBindJSON ( & groupInfo ) //获取提交的参数
if groupInfo . UserId == "" {
response . Result ( 101 , groupInfo , "您的参数不正确!请检查您的提交!" , c )
return
}
redisClient := redishandel . RunRedis ( )
isTrue , tokenInfo := redisClient . HashGet ( "deUserAry:wechat_" + global . GVA_CONFIG . RedisPrefix . Alias , "userinfo_" + "_" + groupInfo . UserId )
if isTrue != true {
userInfo , msg , _ := commonus . GetOneAddressBookMember ( groupInfo . UserId )
var callBackData commonus . WechatUserInfo
json . Unmarshal ( userInfo , & callBackData )
var us commonus . UserListStruct
json . Unmarshal ( userInfo , & us )
userMap := commonus . MapOut ( )
json . Unmarshal ( userInfo , & userMap )
jsonUser , _ := json . Marshal ( us )
redisClient . SetRedisTime ( 2678400 )
redisClient . HashSet ( "deUserAry:wechat_" + global . GVA_CONFIG . RedisPrefix . Alias , "userinfo_" + "_" + groupInfo . UserId , string ( jsonUser ) )
response . Result ( 0 , us , msg , c )
} else {
var us commonus . UserListStruct
json . Unmarshal ( [ ] byte ( tokenInfo ) , & us )
response . Result ( 0 , us , "获取成功" , c )
}
// fmt.Printf("%v=============>%v\n", kjs, userMap)
// var sendText commonus.SendText
// sendText.Touser = groupInfo.UserId
// sendText.MsgType = "text"
// appId, _ := strconv.ParseInt(global.GVA_CONFIG.WorkWechatSchool.AgentId, 10, 64)
// fmt.Printf("AppId===>%v\n", global.GVA_CONFIG.WorkWechatSchool.AgentId)
// sendText.AgentId = appId
// sendText.Text.Content = "异常规矩人员 \n人员列表\n" + callBackData.Name + " 打卡地址:" + callBackData.Address + " \n张义良 打卡地址:" + callBackData.Address + "\n<a href=\"https://www.hxgk.group\">查看详情</a>"
// sendText.DuplicateCheckInterval = 1800
// sendText.SendTextMessage()
}
//获取单个成员信息
type getDeparMentUserSendDate struct {
Id int ` json:"id" from:"id" `
FetchChild int ` json:"fetch_child" from:"fetch_child" `
}
//获取部门成员 GetDepartmentUserList
func ( g * GroupHandleApi ) GetDepartMentUserInfoAll ( c * gin . Context ) {
var groupInfo getDeparMentUserSendDate
_ = c . ShouldBindJSON ( & groupInfo ) //获取提交的参数
if groupInfo . Id == 0 {
response . Result ( 101 , groupInfo , "您的参数不正确!请检查您的提交!" , c )
return
}
redisClient := redishandel . RunRedis ( )
redisClient . SetRedisTime ( 2678400 )
isTrueStr , departmentUserList := redisClient . Get ( "deUserAry:wechat_user_list" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + strconv . Itoa ( groupInfo . Id ) )
if isTrueStr == false {
userInfo , msg , _ := commonus . GetDepartmentUserList ( groupInfo . Id )
var callBackData commonus . WechatUserInfoDepartment
json . Unmarshal ( userInfo , & callBackData )
for _ , v := range callBackData . UserList {
isTrue , _ := redisClient . HashGet ( "deUserAry:wechat_" + global . GVA_CONFIG . RedisPrefix . Alias , "userinfo_" + "_" + v . UserId )
if isTrue != true {
// var us commonus.UserListStruct
jsonBytes , _ := json . Marshal ( v )
// redisClient.SetRedisTime(7200)
redisClient . HashSet ( "deUserAry:wechat_" + global . GVA_CONFIG . RedisPrefix . Alias , "userinfo_" + "_" + v . UserId , string ( jsonBytes ) )
}
userInset := commonus . MapOut ( )
userInset [ "userid" ] = v . UserId
userInset [ "name" ] = v . Name
jsonDepartment , _ := json . Marshal ( v . Department )
userInset [ "department" ] = string ( jsonDepartment )
userInset [ "position" ] = v . Position
userInset [ "mobile" ] = v . Mobile
userInset [ "gender" ] = v . Gender
userInset [ "email" ] = v . Email
userInset [ "avatar" ] = v . Avatar
userInset [ "status" ] = v . Status
jsonExtattr , _ := json . Marshal ( v . Extattr )
userInset [ "extattr" ] = string ( jsonExtattr )
userInset [ "main_department" ] = v . MainDepartment
userInset [ "qr_code" ] = v . QrCode
jsonIsLeaderInDept , _ := json . Marshal ( v . IsLeaderInDept )
userInset [ "is_leader_in_dept" ] = string ( jsonIsLeaderInDept )
userInset [ "thumb_avatar" ] = v . ThumbAvatar
userInset [ "time" ] = time . Now ( ) . Unix ( )
var userInfoStruct wechat . WechatUsers
myErr := global . GVA_DB_WatchDate . Where ( "userid = ?" , v . UserId ) . First ( & userInfoStruct ) . Error
if myErr == nil {
saveErr := global . GVA_DB_WatchDate . Model ( & userInfoStruct ) . Where ( "userid = ?" , v . UserId ) . Save ( userInset ) . Error
if saveErr != nil {
fmt . Printf ( "%v(%v) 信息更新失败\n" , v . Name , v . UserId )
}
} else {
userInset [ "u_id" ] = commonus . GetFileNumber ( )
createErr := global . GVA_DB_WatchDate . Model ( & userInfoStruct ) . Create ( userInset ) . Error
if createErr != nil {
fmt . Printf ( "%v(%v) 信息写入失败\n" , v . Name , v . UserId )
}
}
// fmt.Printf("isTrue ====> %v\n", isTrue)
}
jsonUserStr , _ := json . Marshal ( callBackData . UserList )
redisClient . Set ( "deUserAry:wechat_user_list" + global . GVA_CONFIG . RedisPrefix . Alias + "_" + strconv . Itoa ( groupInfo . Id ) , string ( jsonUserStr ) )
msg = "获取成功!"
returnData := commonus . MapOut ( )
returnData [ "count" ] = len ( callBackData . UserList )
returnData [ "list" ] = callBackData . UserList
response . Result ( 0 , returnData , msg , c )
} else {
var userAry [ ] commonus . UserListStruct
jsonUserList := json . Unmarshal ( [ ] byte ( departmentUserList ) , & userAry )
if jsonUserList != nil {
response . Result ( 102 , jsonUserList , "部门人员列表获取错误!" , c )
return
}
msges := "获取成功!"
returnData := commonus . MapOut ( )
returnData [ "count" ] = len ( userAry )
returnData [ "list" ] = userAry
response . Result ( 203 , returnData , msges , c )
}
}
//刷新集团成员数据库
func ( g * GroupHandleApi ) RefreshDataBaseUser ( c * gin . Context ) {
var userAry [ ] wechat . WechatUsers
var weChatAry [ ] commonus . UserListStruct
userErr := global . GVA_DB_WatchDate . Find ( & userAry ) //获取数据库所有成员
redisClient := redishandel . RunRedis ( )
redisClient . SetRedisTime ( 7200 )
isTrueStr , departmentUserList := redisClient . Get ( "RefreshUserAry:wechat_user_all_" + global . GVA_CONFIG . RedisPrefix . Alias )
if isTrueStr != true {
jsonErr := json . Unmarshal ( [ ] byte ( departmentUserList ) , & weChatAry )
if jsonErr != nil {
wechatAllList , _ , isYes := commonus . GetDepartmentUserList ( 1 ) //企业微信所有成员
if isYes == true {
var callBackData commonus . WechatUserInfoDepartment
jsonErrs := json . Unmarshal ( wechatAllList , & callBackData )
if jsonErrs != nil {
response . Result ( 101 , jsonErrs , "Json解析错误!" , c )
return
}
if callBackData . Errcode != 0 {
response . Result ( 102 , callBackData . ErrMsg , "获取企业微信数据错误!" , c )
return
}
weChatAry = callBackData . UserList
jsonUserStr , _ := json . Marshal ( callBackData . UserList )
redisClient . Set ( "RefreshUserAry:wechat_user_all" + global . GVA_CONFIG . RedisPrefix . Alias , string ( jsonUserStr ) )
}
}
} else {
jsonUserList := json . Unmarshal ( [ ] byte ( departmentUserList ) , & weChatAry )
if jsonUserList != nil {
wechatAllList , _ , isYes := commonus . GetDepartmentUserList ( 1 ) //企业微信所有成员
if isYes == true {
var callBackData commonus . WechatUserInfoDepartment
jsonErrs := json . Unmarshal ( wechatAllList , & callBackData )
if jsonErrs != nil {
response . Result ( 101 , jsonErrs , "Json解析错误!" , c )
return
}
if callBackData . Errcode != 0 {
response . Result ( 102 , callBackData . ErrMsg , "获取企业微信数据错误!" , c )
return
}
weChatAry = callBackData . UserList
jsonUserStr , _ := json . Marshal ( callBackData . UserList )
redisClient . Set ( "RefreshUserAry:wechat_user_all" + global . GVA_CONFIG . RedisPrefix . Alias , string ( jsonUserStr ) )
}
}
}
var judgeUID [ ] int64
if len ( userAry ) > 0 && len ( weChatAry ) > 0 {
var userAryest [ ] wechat . WechatUsers
var saveAry [ ] wechat . WechatUsers
var delAry [ ] wechat . SignOutWechatUsers
if len ( userAry ) < len ( weChatAry ) {
for _ , c_v := range weChatAry {
panding := false
for _ , u_v := range userAry {
if c_v . UserId == u_v . Userid {
//判断是否有要更新的数据
if c_v . Status != u_v . Status || c_v . MainDepartment != int ( u_v . MainDepartment ) || c_v . Mobile != u_v . Mobile {
var saveUserAry wechat . WechatUsers
saveUserAry . Uid = u_v . Uid
saveUserAry . Userid = c_v . UserId
saveUserAry . Name = c_v . Name
jsonDepartment , departErr := json . Marshal ( c_v . Department )
if departErr == nil {
saveUserAry . Department = string ( jsonDepartment )
} else {
saveUserAry . Department = fmt . Sprintf ( "[%s]" , c_v . MainDepartment )
}
saveUserAry . Position = c_v . Position
saveUserAry . Mobile = c_v . Mobile
genderInt , genderErr := strconv . Atoi ( c_v . Gender )
if genderErr == nil {
saveUserAry . Gender = genderInt
} else {
saveUserAry . Gender = 1
}
saveUserAry . Email = c_v . Email
saveUserAry . Avatar = c_v . Avatar
saveUserAry . Status = c_v . Status
jsonExtattr , extarErr := json . Marshal ( c_v . Extattr )
if extarErr == nil {
saveUserAry . Extattr = string ( jsonExtattr )
} else {
saveUserAry . Extattr = "{\"attrs\":[]}"
}
saveUserAry . MainDepartment = int64 ( c_v . MainDepartment )
saveUserAry . QrCode = c_v . QrCode
jsonIsLeaderInDept , isErr := json . Marshal ( c_v . IsLeaderInDept )
if isErr == nil {
saveUserAry . IsLeaderInDept = string ( jsonIsLeaderInDept )
} else {
saveUserAry . IsLeaderInDept = "[0]"
}
saveUserAry . ThumbAvatar = c_v . ThumbAvatar
saveUserAry . UserNumber = u_v . UserNumber
saveUserAry . SysBf = u_v . SysBf
saveUserAry . SysWs = u_v . SysWs
saveUserAry . SysPs = u_v . SysPs
saveUserAry . WmTema = u_v . WmTema
saveUserAry . IsAdmin = u_v . IsAdmin
saveUserAry . IsRole = u_v . IsRole
saveUserAry . Pwd = u_v . Pwd
saveUserAry . Time = time . Now ( ) . Unix ( )
saveAry = append ( saveAry , saveUserAry )
}
panding = true
}
}
//数据库不存在的数据
if panding == false {
var addUserAry wechat . WechatUsers
uidVal := commonus . GetFileNumberEs ( )
if len ( judgeUID ) > 0 {
judTrue := false
for _ , judUid := range judgeUID {
if judUid == uidVal {
judTrue = true
// fmt.Printf("重复ID-------->%v\n", uidVal)
}
}
if judTrue == true {
time . Sleep ( 5 * time . Millisecond )
uidVal = commonus . GetFileNumberEs ( )
}
judgeUID = append ( judgeUID , uidVal )
} else {
judgeUID = append ( judgeUID , uidVal )
}
addUserAry . Uid = uidVal
addUserAry . Userid = c_v . UserId
addUserAry . Name = c_v . Name
jsonDepartment , departErr := json . Marshal ( c_v . Department )
if departErr == nil {
addUserAry . Department = string ( jsonDepartment )
} else {
addUserAry . Department = fmt . Sprintf ( "[%s]" , c_v . MainDepartment )
}
addUserAry . Position = c_v . Position
addUserAry . Mobile = c_v . Mobile
genderInt , genderErr := strconv . Atoi ( c_v . Gender )
if genderErr == nil {
addUserAry . Gender = genderInt
} else {
addUserAry . Gender = 1
}
addUserAry . Email = c_v . Email
addUserAry . Avatar = c_v . Avatar
addUserAry . Status = c_v . Status
jsonExtattr , extarErr := json . Marshal ( c_v . Extattr )
if extarErr == nil {
addUserAry . Extattr = string ( jsonExtattr )
} else {
addUserAry . Extattr = "{\"attrs\":[]}"
}
addUserAry . MainDepartment = int64 ( c_v . MainDepartment )
addUserAry . QrCode = c_v . QrCode
jsonIsLeaderInDept , isErr := json . Marshal ( c_v . IsLeaderInDept )
if isErr == nil {
addUserAry . IsLeaderInDept = string ( jsonIsLeaderInDept )
} else {
addUserAry . IsLeaderInDept = "[0]"
}
addUserAry . ThumbAvatar = c_v . ThumbAvatar
addUserAry . UserNumber = ""
addUserAry . SysBf = 0
addUserAry . SysWs = 0
addUserAry . SysPs = 0
addUserAry . WmTema = 0
addUserAry . IsAdmin = 1
addUserAry . IsRole = 0
addUserAry . Pwd = ""
addUserAry . Time = time . Now ( ) . Unix ( )
userAryest = append ( userAryest , addUserAry )
}
}
var addRow int64
var saveRow int64
addRow = 0
saveRow = 0
if len ( userAryest ) > 0 {
addDate := global . GVA_DB_WatchDate . Create ( & userAryest )
addRow = addDate . RowsAffected
}
if len ( saveAry ) > 0 {
saveDate := global . GVA_DB_WatchDate . Save ( & saveAry )
saveRow = saveDate . RowsAffected
}
returnUserInset := commonus . MapOut ( )
returnUserInset [ "save_len" ] = len ( saveAry )
returnUserInset [ "save" ] = saveAry
returnUserInset [ "add_len" ] = len ( userAryest )
returnUserInset [ "add" ] = userAryest
returnUserInset [ "addRow" ] = addRow
returnUserInset [ "saveRow" ] = saveRow
response . Result ( 200 , returnUserInset , "完成!" , c )
} else {
var delUid [ ] int64
//获取需要删除的信息
for _ , cd_v := range userAry {
pandingDel := false
for _ , ud_v := range weChatAry {
if cd_v . Userid == ud_v . UserId {
pandingDel = true
}
}
if pandingDel == false {
var delUserInfo wechat . SignOutWechatUsers
uidVal := commonus . GetFileNumberEs ( )
if len ( judgeUID ) > 0 {
judTrue := false
for _ , judUid := range judgeUID {
if judUid == uidVal {
judTrue = true
// fmt.Printf("重复ID-------->%v\n", uidVal)
}
}
if judTrue == true {
time . Sleep ( 5 * time . Millisecond )
uidVal = commonus . GetFileNumberEs ( )
}
judgeUID = append ( judgeUID , uidVal )
} else {
judgeUID = append ( judgeUID , uidVal )
}
delUserInfo . Uid = uidVal
delUserInfo . Userid = cd_v . Userid
delUserInfo . Name = cd_v . Name
delUserInfo . Department = cd_v . Department
delUserInfo . Position = cd_v . Position
delUserInfo . Mobile = cd_v . Mobile
delUserInfo . Gender = cd_v . Gender
delUserInfo . Email = cd_v . Email
delUserInfo . Avatar = cd_v . Avatar
delUserInfo . Status = cd_v . Status
delUserInfo . Extattr = cd_v . Extattr
delUserInfo . MainDepartment = int64 ( cd_v . MainDepartment )
delUserInfo . QrCode = cd_v . QrCode
delUserInfo . IsLeaderInDept = cd_v . IsLeaderInDept
delUserInfo . ThumbAvatar = cd_v . ThumbAvatar
delUserInfo . UserNumber = cd_v . UserNumber
delUserInfo . SysBf = cd_v . SysBf
delUserInfo . SysWs = cd_v . SysWs
delUserInfo . SysPs = cd_v . SysPs
delUserInfo . WmTema = cd_v . WmTema
delUserInfo . IsAdmin = cd_v . IsAdmin
delUserInfo . IsRole = cd_v . IsRole
delUserInfo . Pwd = cd_v . Pwd
delUserInfo . Time = time . Now ( ) . Unix ( )
delAry = append ( delAry , delUserInfo )
delUid = append ( delUid , cd_v . Uid )
}
}
var addRowDel int64
addRowDel = 0
if len ( delUid ) > 0 {
addDateDel := global . GVA_DB_WatchDate . Create ( & delAry )
addRowDel = addDateDel . RowsAffected
var delUserCont wechat . WechatUsers
global . GVA_DB_WatchDate . Delete ( & delUserCont , delUid )
}
returnUserInset := commonus . MapOut ( )
returnUserInset [ "delAry_len" ] = len ( delAry )
returnUserInset [ "delAry" ] = delAry
returnUserInset [ "addRowDel" ] = addRowDel
returnUserInset [ "judgeUID" ] = judgeUID
returnUserInset [ "judgeUID_len" ] = len ( judgeUID )
returnUserInset [ "delUid" ] = len ( delUid )
response . Result ( 2001 , returnUserInset , "完成!" , c )
}
} else {
returnUserInset := commonus . MapOut ( )
returnUserInset [ "userErr" ] = userErr
returnUserInset [ "weChatAry" ] = weChatAry
response . Result ( 1102 , returnUserInset , "您的参数不正确!请检查您的提交!" , c )
}
}
//获取集团和分厂架构
func ( g * GroupHandleApi ) GetGroupDepartMap ( c * gin . Context ) {
var requestData getGroupDepart
c . ShouldBindJSON ( & requestData )
if requestData . Id == 0 && requestData . IdStr == "" {
requestData . Id = 0
}
if requestData . IdStr != "" {
idInt64 , _ := strconv . ParseInt ( requestData . IdStr , 10 , 64 )
requestData . Id = idInt64
}
var govMap [ ] OutGovCont
gormDb := global . GVA_DB_HrDataBase . Model ( & hrsystem . AdministrativeOrganization { } ) . Select ( "administrative_organization.*,aot.name as classname,aot.level" ) . Joins ( "left join administrative_organization_type as aot on aot.id = administrative_organization.organization_type" ) . Where ( "administrative_organization.`state` = 1" )
if requestData . Level != 0 {
gormDb = gormDb . Where ( "aot.level <= ?" , requestData . Level )
}
groupErr := gormDb . Find ( & govMap ) . Error
if groupErr != nil {
response . Result ( 103 , groupErr , "数据获取失败!" , c )
return
}
var gTreeAry [ ] outGov
for i , v := range govMap {
var govInfo outGov
govInfo . ID = v . Id
govInfo . Name = v . Name
govInfo . Address = true
govInfo . WxId = strconv . FormatInt ( v . Id , 10 )
govInfo . JdId = "1"
govInfo . Attributes = 1
govInfo . Superior = v . Superior
govInfo . Sort = i + 1
govInfo . QueryId = 1
govInfo . Date = commonus . TimeStampToDate ( v . Time , 6 )
govInfo . ErgodicID = v . Number //fmt.Sprintf("%v_%v", v.Id, i)
govInfo . SingId = i + 1 + 3
govInfo . ClassName = v . ClassName
govInfo . Level = v . Level
gTreeAry = append ( gTreeAry , govInfo )
}
govMapThree := GovThreeList ( requestData . Id , gTreeAry )
response . Result ( 0 , govMapThree , "获取成功" , c )
}
//递归树
func GovThreeList ( parentId int64 , govAry [ ] outGov ) [ ] govThree {
var govMap [ ] govThree
for _ , v := range govAry {
// var zhucont govThree
if v . Superior == parentId {
child := GovThreeList ( v . ID , govAry )
govMap = append ( govMap , govThree { v , child } )
}
}
return govMap
}
// func (g *GroupHandleApi) GetGroupDepartMap(c *gin.Context) {
// var requestData getGroupDepart
// err := c.ShouldBindJSON(&requestData)
// if err != nil {
// }
// gormDb := global.GVA_DB_WatchDate.Model(&wechat.GroupForm{}).Where("`g_parentid` = 1 AND `g_sate` = 1")
// if requestData.Id != 0 {
// gormDb = gormDb.Where("`g_id` = ?", requestData.Id)
// }
// var groupMap []GroupMap
// groupErr := gormDb.Order("g_id ASC").Find(&groupMap).Error
// if groupErr != nil {
// response.Result(103, groupErr, "数据获取失败!", c)
// return
// }
// var departList []testpage.BranchFactoryHasMany
// // err = global.GVA_DB_Master.Preload("WorkshopSectionStruct").Where("bf_group = ?", 3).Find(&departList)
// // groupAry := map[int]interface{}{}
// var groupMapStruct []TableData
// for i, v := range groupMap {
// // fmt.Printf("%v\n", v.Id)
// err = global.GVA_DB_Master.Preload("WorkshopSectionStruct").Where("bf_group = ?", v.Id).Find(&departList).Error
// if err == nil {
// var groupTypeStruct TableData
// groupTypeStruct.ID = v.Id
// groupTypeStruct.Name = v.Name
// groupTypeStruct.Address = true
// groupTypeStruct.WxId = strconv.FormatInt(v.Id, 10)
// groupTypeStruct.JdId = v.JinDieId
// groupTypeStruct.Attributes = 1
// groupTypeStruct.Sort = i + 1
// groupTypeStruct.QueryId = 1
// groupTypeStruct.Date = commonus.TimeStampToDate(v.Time, 6)
// groupTypeStruct.ErgodicID = fmt.Sprintf("%v_%v", v.Id, i)
// bfErr, bfInfo := GetBranchFactoryMapEs(v.Id, i)
// if bfErr == true {
// groupTypeStruct.Children = bfInfo
// }
// groupTypeStruct.SingId = i + 1 + 3
// // groupAry[i] = openGroupMap(departList)
// groupMapStruct = append(groupMapStruct, groupTypeStruct)
// }
// }
// sendMap := commonus.MapOut()
// sendMap["list"] = groupMapStruct
// // fmt.Printf("%v\n", groupMap)
// // response.Ok(c)
// response.Result(0, sendMap, "获取成功", c)
// }
//获得分厂名称
func GetBranchFactoryMap ( id int64 ) ( isTrue bool , ContInfo [ ] testpage . BranchFactory ) {
isTrue = false
err := global . GVA_DB_Master . Where ( "bf_group = ?" , id ) . Find ( & ContInfo ) . Error
if err == nil {
isTrue = true
}
return
}
type bfMapJbqList struct {
testpage . BranchFactory
ErgodicID string ` json:"ergodicid" `
}
func GetBranchFactoryMapEs ( id int64 , jbq int ) ( isTrue bool , ContInfo [ ] bfMapJbqList ) {
isTrue = false
var ContInfoBf [ ] testpage . BranchFactory
err := global . GVA_DB_Master . Where ( "bf_group = ?" , id ) . Find ( & ContInfoBf ) . Error
if err != nil {
return
}
for index , val := range ContInfoBf {
var bfMapCont bfMapJbqList
bfMapCont . Id = val . Id
bfMapCont . Name = val . Name
bfMapCont . Set = val . Set
bfMapCont . Uid = val . Uid
bfMapCont . Time = val . Time
bfMapCont . Attribute = val . Attribute
bfMapCont . Group = val . Group
bfMapCont . WechatId = val . WechatId
bfMapCont . ErgodicID = fmt . Sprintf ( "%v_%v_%v" , val . Id , jbq , index )
ContInfo = append ( ContInfo , bfMapCont )
}
isTrue = true
return
}
//获取集团架构人员信息对照表
func ( g * GroupHandleApi ) GetGroupUser ( c * gin . Context ) {
var requestData getGroupDepart
c . ShouldBindJSON ( & requestData )
if requestData . Id == 0 && requestData . IdStr == "" {
requestData . Id = 0
}
if requestData . IdStr != "" {
idInt64 , _ := strconv . ParseInt ( requestData . IdStr , 10 , 64 )
requestData . Id = idInt64
}
var govMap [ ] OutGovCont
gormDb := global . GVA_DB_HrDataBase . Model ( & hrsystem . AdministrativeOrganization { } ) . Select ( "administrative_organization.*,aot.id as aotid,aot.name as classname,aot.level" ) . Joins ( "left join administrative_organization_type as aot on aot.id = administrative_organization.organization_type" ) . Where ( "administrative_organization.`state` = 1 AND aot.id IN (1,2,3,5)" )
if requestData . Level != 0 {
gormDb = gormDb . Where ( "aot.level <= ?" , requestData . Level )
}
groupErr := gormDb . Find ( & govMap ) . Error
if groupErr != nil {
response . Result ( 103 , groupErr , "数据获取失败!" , c )
return
}
var departAry [ ] govUserCont
for _ , v := range govMap {
var departInfo govUserCont
departInfo . ID = v . Id //`json:"id"`
departInfo . Name = v . Name //`json:"name"`
departInfo . Number = v . Number //`json:"State"`
departInfo . ClassName = v . ClassName //`json:"classname"`
departInfo . Level = v . Level //`json:"level"`
departInfo . Superior = v . Superior
departInfo . UserList = getUserList ( v . Id )
departAry = append ( departAry , departInfo )
}
govMapThree := GovUserThreeList ( requestData . Id , departAry )
response . Result ( 0 , govMapThree , "获取成功" , c )
}
func ( g * GroupHandleApi ) GetGroupUserOld ( c * gin . Context ) {
var requestData groupRequest
err := c . ShouldBindJSON ( & requestData )
if err != nil {
}
gormDb := global . GVA_DB_WatchDate . Model ( & wechat . GroupForm { } ) . Where ( "`g_parentid` = 1 AND `g_sate` = 1" )
if requestData . GroupId != 0 {
gormDb = gormDb . Where ( "`g_id` = ?" , requestData . GroupId )
}
var groupMap [ ] wechat . GroupForm
groupErr := gormDb . Order ( "g_id ASC" ) . Find ( & groupMap ) . Error
if groupErr != nil {
response . Result ( 103 , groupErr , "数据获取失败!" , c )
return
}
var groupUserMap [ ] groupUser
for _ , val := range groupMap {
var groupUserInfo groupUser
groupUserInfo . Id = strconv . FormatInt ( val . Id , 10 )
groupUserInfo . Name = val . Name
isGroupTrue , DepartMap := GetDepartMap ( val . Id )
if isGroupTrue == true {
groupUserInfo . Children = DepartMap
}
groupUserMap = append ( groupUserMap , groupUserInfo )
}
sendMap := commonus . MapOut ( )
sendMap [ "list" ] = groupUserMap
response . Result ( 0 , sendMap , "获取成功" , c )
}
//获取分厂与对应员工
func GetDepartMap ( printId int64 ) ( isTrue bool , departMap [ ] groupUser ) {
isTrue = false
var branchFactory [ ] testpage . BranchFactory
err := global . GVA_DB_Master . Where ( "bf_group = ?" , printId ) . Find ( & branchFactory ) . Error
if err != nil {
isTrue = true
}
for _ , val := range branchFactory {
var bfInf groupUser
bfInf . Id = strconv . FormatInt ( val . Id , 10 )
bfInf . Name = val . Name
isGroupTrue , DepartMap := GetBranchFactoryUser ( val . Id )
if isGroupTrue == true {
bfInf . Children = DepartMap
}
departMap = append ( departMap , bfInf )
}
isTrue = true
return
}
//获取分厂人员列表
func GetBranchFactoryUser ( printId int64 ) ( isTrue bool , departMap [ ] groupUser ) {
isTrue = false
var userInfo [ ] testpage . PersonalDetails
userErr := global . GVA_DB_Master . Model ( & testpage . WorkMan { } ) . Select ( "worker_man.*,worker_man_data.*" ) . Joins ( "left join worker_man_data on worker_man_data.wmd_key = worker_man.wm_key" ) . Where ( "`wm_bf_id` = ? AND `wm_set` = 1 AND `wm_hire_set` = 1" , printId ) . Find ( & userInfo ) . Error
if userErr != nil {
return
}
for _ , val := range userInfo {
var bfInf groupUser
bfInf . Id = strconv . FormatInt ( val . Key , 10 )
bfInf . Name = val . Name
bfInf . Number = val . Number
departMap = append ( departMap , bfInf )
}
isTrue = true
return
}
type departSelect struct {
Id string ` json:"id" `
}
//获取分厂列表
func ( g * GroupHandleApi ) GetDepartmentListOld ( c * gin . Context ) {
var requestData commonus . SetIds
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == 0 && requestData . OutId == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . OutId != "" {
idInt , inIntErr := strconv . ParseInt ( requestData . OutId , 10 , 64 )
if inIntErr == nil {
requestData . Id = idInt
}
}
var bfList [ ] testpage . BranchFactory
errData := global . GVA_DB_Master . Where ( "bf_group = ? AND bf_set = 1" , requestData . Id ) . Find ( & bfList ) . Error
if errData != nil {
response . Result ( 101 , errData , "数据获取失败!" , c )
return
}
response . Result ( 0 , bfList , "数据获取成功!" , c )
}
//获取分厂列表
func ( g * GroupHandleApi ) GetDepartmentList ( c * gin . Context ) {
var requestData getGroupDepart
c . ShouldBindJSON ( & requestData )
if requestData . Id == 0 && requestData . IdStr == "" {
requestData . Id = 0
}
if requestData . IdStr != "" {
idInt64 , _ := strconv . ParseInt ( requestData . IdStr , 10 , 64 )
requestData . Id = idInt64
}
var govMap [ ] OutGovCont
gormDb := global . GVA_DB_HrDataBase . Model ( & hrsystem . AdministrativeOrganization { } ) . Select ( "administrative_organization.*,aot.name as classname,aot.level" ) . Joins ( "left join administrative_organization_type as aot on aot.id = administrative_organization.organization_type" ) . Where ( "administrative_organization.`state` = 1" )
if requestData . Level != 0 {
gormDb = gormDb . Where ( "aot.level <= ?" , requestData . Level )
}
groupErr := gormDb . Find ( & govMap ) . Error
if groupErr != nil {
response . Result ( 103 , groupErr , "数据获取失败!" , c )
return
}
var departAry [ ] govDepart
for _ , v := range govMap {
var departInfo govDepart
departInfo . ID = v . Id //`json:"id"`
departInfo . Name = v . Name //`json:"name"`
departInfo . State = v . State //`json:"State"`
departInfo . Uid = 1 //`json:"Uid"`
departInfo . Time = v . Time //`json:"time"`
departInfo . Attributes = 1 //`json:"attributes"`
departInfo . Superior = v . Superior //`json:"superior"`
departInfo . Group = v . OrganizationType //`json:"group"`
departInfo . WechatId = strconv . FormatInt ( v . WechatOrganizationId , 10 ) //`json:"wechatid"`
departInfo . ClassName = v . ClassName //`json:"classname"`
departInfo . Level = v . Level //`json:"level"`
departAry = append ( departAry , departInfo )
}
govMapThree := GovDepartThreeList ( requestData . Id , departAry )
response . Result ( 0 , govMapThree , "获取成功" , c )
}
//递归树
func GovDepartThreeList ( parentId int64 , govAry [ ] govDepart ) [ ] govDepartThree {
var govMap [ ] govDepartThree
for _ , v := range govAry {
// var zhucont govThree
if v . Superior == parentId {
child := GovDepartThreeList ( v . ID , govAry )
govMap = append ( govMap , govDepartThree { v , child } )
}
}
return govMap
}
//递归树
func GovUserThreeList ( parentId int64 , govAry [ ] govUserCont ) [ ] govUserContThree {
var govMap [ ] govUserContThree
for _ , v := range govAry {
// var zhucont govThree
if v . Superior == parentId {
child := GovUserThreeList ( v . ID , govAry )
govMap = append ( govMap , govUserContThree { v , child } )
}
}
return govMap
}
//获取Hr人员信息
func getUserList ( departmentId int64 ) ( userList [ ] peopleList ) {
var userAry [ ] hrsystem . Personnel
err := global . GVA_DB_HrDataBase . Model ( & hrsystem . Personnel { } ) . Select ( "`id`,`number`,`name`,`wechat`,`work_wechat`,`key`" ) . Where ( "state = 1 AND FIND_IN_SET(?,`deparment`)" , departmentId ) . Find ( & userAry ) . Error
// err := global.GVA_DB_HrDataBase.Model(&hrsystem.Personnel{}).Select("`id`,`number`,`name`,`wechat`,`work_wechat`,`key`,admin_org").Where("state = 1 AND admin_org = ?", departmentId).Find(&userAry).Error
if err != nil {
return
}
for _ , v := range userAry {
var userCont peopleList
userCont . ID = v . Id //`json:"id"`
userCont . Name = v . Name //`json:"name"`
userCont . Number = v . Number //`json:"number"`
userCont . Key = strconv . FormatInt ( v . Key , 10 ) //`json:"key"`
userCont . WechatId = v . Wechat //`json:"wechatid"`
if v . WorkWechat != "" {
userCont . WechatId = v . WorkWechat
}
userList = append ( userList , userCont )
}
return
}