123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package controllers
- import (
- "eta/eta_forum_admin/models"
- "eta/eta_forum_admin/models/system"
- "eta/eta_forum_admin/services"
- "eta/eta_forum_admin/utils"
- "fmt"
- )
- // 销售管理
- type CompanySellerController struct {
- BaseAuthController
- }
- // RoadshowFiccList
- // @Title 路演FICC销售列表
- // @Description 路演FICC销售列表
- // @Success 200 {object} system.RoadshowGroupResp
- // @router /seller/roadshow_ficc/list [get]
- func (this *CompanySellerController) RoadshowFiccList() {
- br := new(models.BaseResponse).Init()
- defer func() {
- if br.ErrMsg == "" {
- br.IsSendEmail = false
- }
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- resp := new(system.RoadshowGroupResp)
- productId := services.GetProductId(sysUser.RoleTypeCode)
- if productId == utils.COMPANY_PRODUCT_RAI_ID {
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- return
- }
- // 分组
- departmentId := 2
- groups, e := system.GetGroupByDepartmentId(departmentId)
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取FICC分组失败, Err: " + e.Error()
- return
- }
- teamGroupId := make(map[int]int, 0) // 小组ID对应的大组ID
- var list []system.RoadshowGroups
- for _, g := range groups {
- if g.ParentId > 0 {
- teamGroupId[g.GroupId] = g.ParentId
- continue
- }
- // 大组
- list = append(list, system.RoadshowGroups{
- GroupId: g.GroupId,
- GroupName: g.GroupName,
- })
- }
- // 销售
- roleArr := []string{
- utils.ROLE_TYPE_CODE_FICC_ADMIN, utils.ROLE_TYPE_CODE_FICC_DEPARTMENT, utils.ROLE_TYPE_CODE_FICC_GROUP,
- utils.ROLE_TYPE_CODE_FICC_TEAM, utils.ROLE_TYPE_CODE_FICC_SELLER,
- }
- cond := fmt.Sprintf(` AND role_type_code IN (%s) AND enabled = 1`, utils.GetOrmInReplace(len(roleArr)))
- pars := make([]interface{}, 0)
- pars = append(pars, roleArr)
- sellers, e := system.GetSysUserItemsOrderByCreated(cond, pars)
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取FICC销售失败, Err: " + e.Error()
- return
- }
- groupIdChild := make(map[int][]system.RoadshowGroupSellers) // 大组ID对应的销售
- for _, s := range sellers {
- var seller system.RoadshowGroupSellers
- seller.AdminId = s.AdminId
- seller.AdminName = s.RealName
- gid := teamGroupId[s.GroupId]
- if gid > 0 {
- // 小组
- seller.GroupId = gid
- seller.TeamId = s.GroupId
- } else {
- // 大组
- seller.GroupId = s.GroupId
- }
- groupIdChild[seller.GroupId] = append(groupIdChild[seller.GroupId], seller)
- }
- // 根据当前角色过滤可选项
- for _, v := range list {
- // 如果是销售、组长、主管, 那么过滤掉自己大组外的其他组
- if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER {
- if sysUser.GroupId != v.GroupId && teamGroupId[sysUser.GroupId] != v.GroupId {
- continue
- }
- }
- child := groupIdChild[v.GroupId]
- // 如果是小组长, 那么只能看到自己小组的信息
- if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM {
- var team []system.RoadshowGroupSellers
- for _, c := range child {
- if c.TeamId == sysUser.GroupId {
- team = append(team, c)
- }
- }
- v.Child = team
- resp.List = append(resp.List, v)
- continue
- }
- // 如果是普通销售, 那么只能看到分组中的自己
- if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER {
- var self []system.RoadshowGroupSellers
- for _, c := range child {
- if c.AdminId == sysUser.AdminId {
- self = append(self, c)
- break
- }
- }
- v.Child = self
- resp.List = append(resp.List, v)
- continue
- }
- // 非以上两种情况, 可见该大组所有销售
- v.Child = child
- resp.List = append(resp.List, v)
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
|