123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- package services
- import (
- "eta/eta_api/global"
- "eta/eta_api/models/company"
- "eta/eta_api/models/roadshow"
- "eta/eta_api/models/system"
- "eta/eta_api/utils"
- "fmt"
- )
- func GetRoleTypeCode(roleType string) string {
- var roleTypeCode string
- switch roleType {
- case utils.ROLE_TYPE_ADMIN:
- roleTypeCode = utils.ROLE_TYPE_CODE_ADMIN
- case utils.ROLE_TYPE_FICC_ADMIN:
- roleTypeCode = utils.ROLE_TYPE_CODE_FICC_ADMIN
- case utils.ROLE_TYPE_FICC_SELLER:
- roleTypeCode = utils.ROLE_TYPE_CODE_FICC_SELLER
- case utils.ROLE_TYPE_RAI_ADMIN:
- roleTypeCode = utils.ROLE_TYPE_CODE_RAI_ADMIN
- case utils.ROLE_TYPE_FICC_GROUP, utils.ROLE_TYPE_FICC_MANAGER:
- roleTypeCode = utils.ROLE_TYPE_CODE_FICC_GROUP
- case utils.ROLE_TYPE_RAI_GROUP:
- roleTypeCode = utils.ROLE_TYPE_CODE_RAI_GROUP
- case utils.ROLE_TYPE_FICC_DEPARTMENT:
- roleTypeCode = utils.ROLE_TYPE_CODE_FICC_DEPARTMENT
- case utils.ROLE_TYPE_RAI_DEPARTMENT:
- roleTypeCode = utils.ROLE_TYPE_CODE_RAI_DEPARTMENT
- case utils.ROLE_TYPE_FICC_RESEARCHR:
- roleTypeCode = utils.ROLE_TYPE_CODE_FICC_RESEARCHR
- case utils.ROLE_TYPE_RAI_RESEARCHR:
- roleTypeCode = utils.ROLE_TYPE_CODE_RAI_RESEARCHR
- default:
- roleTypeCode = utils.ROLE_TYPE_ADMIN
- }
- return roleTypeCode
- }
- type AdminGroup struct {
- GroupId int `description:"分组id"`
- GroupName string `description:"分组名称"`
- ResearcherList []*roadshow.Researcher
- }
- // CheckAdminIsSameBigGroup 判断是否两个系统用户是否同一个大组内
- func CheckAdminIsSameBigGroup(adminInfo1, adminInfo2 *system.Admin) (isSame bool, err error) {
- // 如果销售和创建人是同一个小组
- if adminInfo1.GroupId == adminInfo2.GroupId {
- isSame = true
- return
- }
- var admin1BigGroupId, admin2BigGroupId int
- //获取第一个系统用户的大组id
- {
- //获取该账号的大组id
- pid, tmpErr := company.GetParentIdFromGroup(adminInfo1.GroupId)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- if pid != nil && *pid > 0 {
- //该账号放在了三级分组下
- admin1BigGroupId = *pid
- } else {
- //该账号放在了二级分组下
- admin1BigGroupId = adminInfo1.GroupId
- }
- }
- //获取第二个系统用户的大组id
- {
- //获取该账号的大组id
- pid, tmpErr := company.GetParentIdFromGroup(adminInfo2.GroupId)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- if pid != nil && *pid > 0 {
- //该账号放在了三级分组下
- admin2BigGroupId = *pid
- } else {
- //该账号放在了二级分组下
- admin2BigGroupId = adminInfo2.GroupId
- }
- }
- if admin1BigGroupId == admin2BigGroupId {
- isSame = true
- return
- }
- return
- }
- // CheckRaiAdmin 判断是否为权益内部人员
- func CheckRaiAdmin(adminId int) (isRai bool, err error) {
- raiAdmins, e := system.GetRaiAdmin()
- if e != nil {
- err = fmt.Errorf("获取权益内部人员失败, GetRaiAdmin Err: %s", e.Error())
- return
- }
- for _, r := range raiAdmins {
- if adminId == r.AdminId {
- isRai = true
- break
- }
- }
- return
- }
- // GetMenuTreeRecursive 递归菜单树
- func GetMenuTreeRecursive(list []*system.SysMenuItem, parentId int) []*system.SysMenuItem {
- res := make([]*system.SysMenuItem, 0)
- for _, v := range list {
- if v.ParentId == parentId {
- v.Children = GetMenuTreeRecursive(list, v.MenuId)
- res = append(res, v)
- }
- }
- return res
- }
- type GroupNode struct{
- GroupId int
- GroupName string
- Child []*GroupNode
- }
- func BuildGroupTree(list []*system.SysFullGroup,current,depth int,node *GroupNode) {
- if current == depth {
- utils.FileLog.Info("到达组织最深层,停止递归")
- return
- }
- for _, v := range list {
- if v.ParentId == node.GroupId {
- subNode:= &GroupNode{
- GroupId: v.GroupId,
- GroupName: v.GroupName,
- Child: make([]*GroupNode, 0),
- }
- node.Child = append(node.Child, subNode)
- BuildGroupTree(list, current+1, depth, subNode)
- }
- }
- }
- func DeleteSysGroupByIds(ids []int)(err error) {
- tx:=global.DbMap[utils.DbNameMaster].Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- }else{
- tx.Commit()
- }
- }()
- err=system.DeleteSysGroupByIds(tx,ids)
- if err!=nil{
- return
- }
- err=system.ClearSysUserGroupByIds(tx,ids)
- return
- }
|