package controllers import ( "eta/eta_api/models" "eta/eta_api/models/company" "eta/eta_api/models/system" "eta/eta_api/services" "eta/eta_api/utils" "fmt" "strconv" ) // CompanySellerController 销售管理 type CompanySellerController struct { BaseAuthController } // CheckListV2 // @Title 获取组长/组员下销售(根据部门、分组) // @Description 获取组长/组员下销售(根据部门、分组)接口 // @Param AllSeller query bool true "是否获取部门所有的销售信息" // @Param Status query int true "客户状态 1:流失 0:非流失" // @Param AllEnabled query bool true "是否获取包含禁用的用户" // @Success 200 {object} company.DepartmentGroupSellersResp // @router /seller/check/listV2 [get] func (this *CompanySellerController) CheckListV2() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } roleCodeTypeStr := `` productId := services.GetProductId(sysUser.RoleTypeCode) switch productId { case 1: roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_FICC_SELLER + `","` + utils.ROLE_TYPE_CODE_FICC_GROUP + `","` + utils.ROLE_TYPE_CODE_FICC_TEAM + `"` case 2: roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `"` } // ficc管理员,不要只查销售 if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN { roleCodeTypeStr = `` } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN { // 权益管理员,查看所有权益的账号 roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `","` + utils.ROLE_TYPE_CODE_RAI_RESEARCHR + `","` + utils.ROLE_TYPE_CODE_RAI_ADMIN + `"` } getAllSeller, _ := this.GetBool("AllSeller", false) status, _ := this.GetInt("Status", 0) getAllEnabled, _ := this.GetBool("AllEnabled", false) enabled := 1 //默认只获取正常状态的用户 if getAllEnabled { //获取所有状态的用户 enabled = -1 } list := make([]company.DepartmentGroupSellers, 0) if getAllSeller == false { //超管看部门、小组、销售 if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN { departmentList, err := system.GetDepartmentList() if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取部门失败,Err:" + err.Error() return } for _, department := range departmentList { departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0) item := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("department_", department.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: department.DepartmentName, ChildrenList: departmentGroupSellerList, } groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { departmentGroupSellerList = append(departmentGroupSellerList, groupItem) } } //分组为0的销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, roleCodeTypeStr) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...) } item.ChildrenList = departmentGroupSellerList if len(departmentGroupSellerList) > 0 { list = append(list, item) } } } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.Authority == 4 { //销售组长看销售 if status == 0 { directorId := sysUser.GroupId fmt.Println("directorId:", directorId) groupList, err := system.GetSysGroupByDirectorId(directorId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { list = append(list, groupItem) } } } else { departmentStr := `1,2` departmentList, err := system.GetDepartmentListByIds(departmentStr) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取部门失败,Err:" + err.Error() return } for _, department := range departmentList { departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0) item := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("department_", department.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: department.DepartmentName, ChildrenList: departmentGroupSellerList, } groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的人,不光是销售(直属分组) groupTeamSellerList, err := system.GetGroupSysUserList(group.GroupId) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { departmentGroupSellerList = append(departmentGroupSellerList, groupItem) } } //分组为0的人,不光是销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "") if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...) } item.ChildrenList = departmentGroupSellerList if len(departmentGroupSellerList) > 0 { list = append(list, item) } } } } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_COMPLIANCE || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FINANCE || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN { //合规或财务或ficc管理员 departmentStr := `2,5,7` //合规 switch sysUser.RoleTypeCode { case utils.ROLE_TYPE_CODE_FINANCE: //财务 departmentStr = `2,5,8` case utils.ROLE_TYPE_CODE_FICC_ADMIN: //ficc管理员 departmentStr = utils.GetFiccAdminDepartmentIds() } departmentList, err := system.GetDepartmentListByIds(departmentStr) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取部门失败,Err:" + err.Error() return } for _, department := range departmentList { fmt.Println(department) departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0) item := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("department_", department.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: department.DepartmentName, ChildrenList: departmentGroupSellerList, } groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { departmentGroupSellerList = append(departmentGroupSellerList, groupItem) } } //分组为0的销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, roleCodeTypeStr) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSellerList := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellerList = append(tmpDepartmentGroupSellerList, sellerItem) } //排个序 tmpDepartmentGroupSellerList = sortDepartmentGroupSellers(tmpDepartmentGroupSellerList) departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellerList...) } item.ChildrenList = departmentGroupSellerList if len(departmentGroupSellerList) > 0 { list = append(list, item) } } } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN || sysUser.Authority == 1 { //部门管理员看小组、销售 departmentId := sysUser.DepartmentId switch sysUser.RoleTypeCode { case utils.ROLE_TYPE_CODE_RAI_ADMIN: //权益管理员 departmentId = 5 case utils.ROLE_TYPE_CODE_FICC_ADMIN: //ficc管理员 departmentId = 2 } groupList, err := system.GetSysGroupByDepartmentId(departmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { list = append(list, groupItem) } } //分组为0的销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem) } tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller) list = append(list, tmpDepartmentGroupSeller...) } } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || (sysUser.Authority == 2 && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_FICC_GROUP) { // 权益组长看小组 if status == 0 { sellerList, err := system.GetTeamSysUserList(sysUser.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) list = append(list, sellerItem) } list = sortDepartmentGroupSellers(list) //正常来说没有所有人都应该在某个小组下,要不就是小组名为 无 的小组 //分组为0的销售(直属分组) //groupTeamSellerList, err := system.GetGrooupsysUserList(sysUser.GroupId, 0, roleCodeTypeStr) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //if len(groupTeamSellerList) > 0 { // tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) // for _, seller := range groupTeamSellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) // } // //排个序 // tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) // list = append(list, tmpDepartmentGroupSellersList...) //} //sellerList, err := system.GetDepartmentGroupSysUserList(sysUser.DepartmentId, sysUser.GroupId, roleCodeTypeStr) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // list = append(list, sellerItem) // list = sortDepartmentGroupSellers(list) //} } else { departmentId := 5 groupList, err := system.GetSysGroupByDepartmentId(departmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { list = append(list, groupItem) } } //分组为0的销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem) } tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller) list = append(list, tmpDepartmentGroupSeller...) } } } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.Authority == 2 { // 销售主管看小组 if status == 0 { pid, err := company.GetParentIdFromGroup(sysUser.GroupId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "查询父级id异常" + err.Error() return } var realGroupId int if pid != nil && *pid > 0 { //主管角色放在了三级分组下 realGroupId = *pid } else { //主管角色放在了二级分组下 realGroupId = sysUser.GroupId } groupList, err := system.GetSysGroupByGroupId(realGroupId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) //groupItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint("group_", group.DepartmentId), // //AdminName string `description:"系统用户名称"` // RealName: group.GroupName, // ChildrenList: groupSellerList, //} teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(realGroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } list = groupSellerList //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, groupItem) //} } //分组为0的销售(直属二级分组) //departmentSellerList, err := system.GetDepartmentGroupSysUserList(2, realGroupId, roleCodeTypeStr) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //if len(departmentSellerList) > 0 { // tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0) // for _, seller := range departmentSellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem) // } // tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller) // list = append(list, tmpDepartmentGroupSeller...) //} //pid, err := company.GetParentIdFromGroup(sysUser.GroupId) //if err != nil { // br.Msg = "获取失败" // br.ErrMsg = "查询父级id异常" + err.Error() // return //} //if pid != nil && *pid > 0 { // //主管角色放在了三级分组下 // // // // //} else { // //主管角色放在了二级分组下 // //} //ids, err := company.GetGroupIdsByParentId(*pid) //if err != nil { // br.Msg = "获取失败" // br.ErrMsg = "查询父级id异常" + err.Error() // return //} //var idSlice []string //var sid string //for _, id := range ids { // idSlice = append(idSlice, *id) //} //sid = strings.Join(idSlice, ",") //sellerList, err := system.GetTeamSysUserListByIds(sid) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // fmt.Println("seller.RealName:", seller.RealName) // list = append(list, sellerItem) //} //list = sortDepartmentGroupSellers(list) // ////分组为0的销售(直属分组) //groupTeamSellerList, err := system.GetGrooupsysUserList(sysUser.GroupId, roleCodeTypeStr) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //if len(groupTeamSellerList) > 0 { // tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) // for _, seller := range groupTeamSellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) // } // //排个序 // tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) // list = append(list, tmpDepartmentGroupSellersList...) //} //sellerList, err := system.GetDepartmentGroupSysUserList(sysUser.DepartmentId, sysUser.GroupId, roleCodeTypeStr) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // list = append(list, sellerItem) // list = sortDepartmentGroupSellers(list) //} //正常来说没有所有人都应该在某个小组下,要不就是小组名为 无 的小组 } else { //var departmentStr string //if utils.RunMode == "release" { // departmentStr = `1,2` //} else { // departmentStr = `1,2` //} departmentStr := `1,2` departmentList, err := system.GetDepartmentListByIds(departmentStr) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取部门失败,Err:" + err.Error() return } for _, department := range departmentList { departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0) item := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("department_", department.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: department.DepartmentName, ChildrenList: departmentGroupSellerList, } groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的人,不光是销售(直属分组) groupTeamSellerList, err := system.GetGroupSysUserList(group.GroupId) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { departmentGroupSellerList = append(departmentGroupSellerList, groupItem) } } //分组为0的人,不光是销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "") if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...) } item.ChildrenList = departmentGroupSellerList if len(departmentGroupSellerList) > 0 { list = append(list, item) } } } } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER && status == 1 { //var departmentStr string //if utils.RunMode == "release" { // departmentStr = `1,2` //} else { // departmentStr = `1,2` //} departmentStr := `1,2` departmentList, err := system.GetDepartmentListByIds(departmentStr) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取部门失败,Err:" + err.Error() return } for _, department := range departmentList { departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0) item := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("department_", department.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: department.DepartmentName, ChildrenList: departmentGroupSellerList, } groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的人,不光是销售(直属分组) groupTeamSellerList, err := system.GetGroupSysUserList(group.GroupId) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { departmentGroupSellerList = append(departmentGroupSellerList, groupItem) } } //分组为0的人,不光是销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "") if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...) } item.ChildrenList = departmentGroupSellerList if len(departmentGroupSellerList) > 0 { list = append(list, item) } } } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER && status == 1 { // 权益销售可以看到权益销售部的所有人 departmentId := 5 groupList, err := system.GetSysGroupByDepartmentId(departmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } //groupItem.ChildrenList = groupSellerList //if len(groupSellerList) > 0 { // list = append(list, item) //} //sellerList, err := system.GetGroupSysUserList(group.DepartmentId) //if err != nil { // br.Msg = "获取销售失败" // br.ErrMsg = "获取销售失败,Err:" + err.Error() // return //} //for _, seller := range sellerList { // sellerItem := company.DepartmentGroupSellers{ // AdminId: fmt.Sprint(seller.AdminId), // //AdminName string `description:"系统用户名称"` // RealName: seller.RealName, // Authority: seller.Authority, // RoleTypeCode: seller.RoleTypeCode, // } // groupSellerList = append(groupSellerList, sellerItem) //} //groupSellerList = sortDepartmentGroupSellers(groupSellerList) groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { list = append(list, groupItem) } } //分组为0的销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem) } tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller) list = append(list, tmpDepartmentGroupSeller...) } } else { //看自己 sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(sysUser.AdminId), //AdminName string `description:"系统用户名称"` RealName: sysUser.RealName, } list = append(list, sellerItem) } } else { departmentId := sysUser.DepartmentId switch productId { case 1: departmentId = 2 case 5: departmentId = 5 } //查询整个部门的小组、销售 groupList, err := system.GetSysGroupByDepartmentId(departmentId) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取分组失败,Err:" + err.Error() return } for _, group := range groupList { groupSellerList := make([]company.DepartmentGroupSellers, 0) groupItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("group_", group.DepartmentId), //AdminName string `description:"系统用户名称"` RealName: group.GroupName, ChildrenList: groupSellerList, } teamList, err := system.GetSysTeamByDepartmentId(group.GroupId) if err != nil { br.Msg = "获取小组失败" br.ErrMsg = "获取小组失败,Err:" + err.Error() return } for _, team := range teamList { teamSellerList := make([]company.DepartmentGroupSellers, 0) teamItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint("team_", team.GroupId), //AdminName string `description:"系统用户名称"` RealName: team.GroupName, ChildrenList: teamSellerList, } sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } for _, seller := range sellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } //fmt.Println("seller.RealName:", seller.RealName) teamSellerList = append(teamSellerList, sellerItem) } teamSellerList = sortDepartmentGroupSellers(teamSellerList) teamItem.ChildrenList = teamSellerList if len(teamSellerList) > 0 { groupSellerList = append(groupSellerList, teamItem) } } //分组为0的销售(直属分组) groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(groupTeamSellerList) > 0 { tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0) for _, seller := range groupTeamSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem) } //排个序 tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList) groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...) } groupItem.ChildrenList = groupSellerList if len(groupSellerList) > 0 { list = append(list, groupItem) } } //分组为0的销售(直属部门) departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr) if err != nil { br.Msg = "获取销售失败" br.ErrMsg = "获取销售失败,Err:" + err.Error() return } if len(departmentSellerList) > 0 { tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0) for _, seller := range departmentSellerList { sellerItem := company.DepartmentGroupSellers{ AdminId: fmt.Sprint(seller.AdminId), //AdminName string `description:"系统用户名称"` RealName: seller.RealName, Authority: seller.Authority, RoleTypeCode: seller.RoleTypeCode, } tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem) } //排个序 tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller) list = append(list, tmpDepartmentGroupSeller...) } } // 海外销售部-目前无权限, 均可见 seaDepartment, e := system.GetSysDepartmentByName("海外销售部") if e != nil && e.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取海外销售部失败, Err: " + e.Error() return } if e == nil { // 获取部门下的销售人员 seaSellers, e := system.GetDepartmentGroupSysUserList(seaDepartment.DepartmentId, 0, "") if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取海外销售失败, Err: " + e.Error() return } // 获取分组 seaGroups, e := system.GetSysGroupListByDepartmentId(seaDepartment.DepartmentId) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取海外销售部分组失败, Err: " + e.Error() return } var d company.DepartmentGroupSellers d.AdminId = fmt.Sprintf("department_%d", seaDepartment.DepartmentId) d.RealName = seaDepartment.DepartmentName children := make([]company.DepartmentGroupSellers, 0) // 无分组 if len(seaGroups) == 0 { for _, s := range seaSellers { children = append(children, company.DepartmentGroupSellers{ AdminId: strconv.Itoa(s.AdminId), RealName: s.RealName, RoleTypeCode: s.RoleTypeCode, Authority: s.Authority, }) } } // 有分组 if len(seaGroups) > 0 { // 销售map sellerMap := make(map[int][]company.DepartmentGroupSellers) for _, s := range seaSellers { sellerMap[s.GroupId] = append(sellerMap[s.GroupId], company.DepartmentGroupSellers{ AdminId: strconv.Itoa(s.AdminId), RealName: s.RealName, RoleTypeCode: s.RoleTypeCode, Authority: s.Authority, }) } // 小组map childrenMap := make(map[int][]company.DepartmentGroupSellers) for _, g := range seaGroups { if g.ParentId == 0 { continue } childrenMap[g.ParentId] = append(childrenMap[g.ParentId], company.DepartmentGroupSellers{ AdminId: fmt.Sprintf("team_%d", g.GroupId), RealName: g.GroupName, ChildrenList: sellerMap[g.GroupId], }) } // 大组 for _, g := range seaGroups { if g.ParentId > 0 { continue } c := childrenMap[g.GroupId] if len(sellerMap[g.GroupId]) > 0 { c = append(c, sellerMap[g.GroupId]...) } children = append(children, company.DepartmentGroupSellers{ AdminId: fmt.Sprintf("group_%d", g.GroupId), RealName: g.GroupName, ChildrenList: c, }) } } d.ChildrenList = children list = append(list, d) } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = company.DepartmentGroupSellersResp{ List: list, } } // sortDepartmentGroupSellers 部门用户排序 func sortDepartmentGroupSellers(adminList []company.DepartmentGroupSellers) (list []company.DepartmentGroupSellers) { sellerMap := make(map[int][]company.DepartmentGroupSellers) for _, admin := range adminList { index := 0 //0:超管,1:部门管理员,2:组长,3:普通人 switch admin.RoleTypeCode { //case utils.ROLE_TYPE_CODE_ADMIN: // index = 0 //case utils.ROLE_TYPE_CODE_FICC_ADMIN, utils.ROLE_TYPE_CODE_RAI_ADMIN: // index = 1 //case utils.ROLE_TYPE_CODE_FICC_GROUP, utils.ROLE_TYPE_CODE_RAI_GROUP: // index = 2 default: //0:无,1:部门负责人,2:小组负责人,3:超级管理员 switch admin.Authority { //case 1: // index = 1 case 2: index = 2 //case 3: // index = 0 default: index = 3 } } sellerList, ok := sellerMap[index] if !ok { sellerList = make([]company.DepartmentGroupSellers, 0) } sellerList = append(sellerList, admin) sellerMap[index] = sellerList } var indexList = []int{0, 1, 2, 3} for _, index := range indexList { sellerList, ok := sellerMap[index] if ok { list = append(list, sellerList...) } } return }