company_seller.go 90 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502
  1. package controllers
  2. import (
  3. "fmt"
  4. "hongze/hz_crm_api/models"
  5. "hongze/hz_crm_api/models/company"
  6. "hongze/hz_crm_api/models/system"
  7. "hongze/hz_crm_api/services"
  8. "hongze/hz_crm_api/utils"
  9. "strconv"
  10. "strings"
  11. )
  12. // 销售管理
  13. type CompanySellerController struct {
  14. BaseAuthController
  15. }
  16. // @Title 获取所有销售信息
  17. // @Description 获取所有销售信息接口
  18. // @Param SellerType query int false "销售类型: 0-所有; 1-FICC; 2-权益"
  19. // @Success 200 {object} company.CompanySellerResp
  20. // @router /seller/list [get]
  21. func (this *CompanySellerController) List() {
  22. br := new(models.BaseResponse).Init()
  23. defer func() {
  24. this.Data["json"] = br
  25. this.ServeJSON()
  26. }()
  27. sysUser := this.SysUser
  28. if sysUser == nil {
  29. br.Msg = "请登录"
  30. br.ErrMsg = "请登录,SysUser Is Empty"
  31. br.Ret = 408
  32. return
  33. }
  34. sellerType, _ := this.GetInt("SellerType", 0)
  35. ficcRoles := []string{
  36. utils.ROLE_TYPE_CODE_FICC_ADMIN,
  37. utils.ROLE_TYPE_CODE_FICC_DEPARTMENT,
  38. utils.ROLE_TYPE_CODE_FICC_GROUP,
  39. utils.ROLE_TYPE_CODE_FICC_TEAM,
  40. utils.ROLE_TYPE_CODE_FICC_SELLER,
  41. }
  42. raiRoles := []string{
  43. utils.ROLE_TYPE_CODE_RAI_ADMIN,
  44. utils.ROLE_TYPE_CODE_RAI_DEPARTMENT,
  45. utils.ROLE_TYPE_CODE_RAI_GROUP,
  46. utils.ROLE_TYPE_CODE_RAI_SELLER,
  47. }
  48. otherRoles := []string{
  49. utils.ROLE_TYPE_CODE_ADMIN,
  50. utils.ROLE_TYPE_CODE_RESEARCHR,
  51. }
  52. roleCodeArr := make([]string, 0)
  53. switch sellerType {
  54. case 1:
  55. roleCodeArr = append(roleCodeArr, ficcRoles...)
  56. case 2:
  57. roleCodeArr = append(roleCodeArr, raiRoles...)
  58. default:
  59. roleCodeArr = append(roleCodeArr, ficcRoles...)
  60. roleCodeArr = append(roleCodeArr, raiRoles...)
  61. if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  62. roleCodeArr = append(roleCodeArr, otherRoles...)
  63. }
  64. }
  65. resp := new(company.CompanySellerResp)
  66. //roleTypeCodeStr := `'ficc_admin','ficc_seller','rai_admin','rai_seller','ficc_group','rai_group','ficc_department','rai_department','ficc_sell_team'`
  67. //if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  68. // roleTypeCodeStr = roleTypeCodeStr + `,'researcher','admin'`
  69. //}
  70. //items, err := company.GetCompanySeller(roleTypeCodeStr)
  71. items, err := company.GetCompanySellerByRoleCodes(roleCodeArr)
  72. if err != nil {
  73. br.Msg = "获取失败"
  74. br.ErrMsg = "获取失败,Err:" + err.Error()
  75. return
  76. }
  77. resp.List = items
  78. br.Ret = 200
  79. br.Success = true
  80. br.Msg = "获取成功"
  81. br.Data = resp
  82. }
  83. // @Title 获取组长/组员下销售
  84. // @Description 获取组长/组员下销售接口
  85. // @Param AllSeller query bool true "是否获取部门所有的销售信息"
  86. // @Success 200 {object} company.CompanySellerResp
  87. // @router /seller/check/list [get]
  88. func (this *CompanySellerController) CheckList() {
  89. br := new(models.BaseResponse).Init()
  90. defer func() {
  91. this.Data["json"] = br
  92. this.ServeJSON()
  93. }()
  94. sysUser := this.SysUser
  95. if sysUser == nil {
  96. br.Msg = "请登录"
  97. br.ErrMsg = "请登录,SysUser Is Empty"
  98. br.Ret = 408
  99. return
  100. }
  101. authority := sysUser.Authority
  102. getAllSeller, _ := this.GetBool("AllSeller", false)
  103. var condition string
  104. var pars []interface{}
  105. if getAllSeller != true {
  106. if authority == 1 {
  107. condition += ` AND a.department_id=? `
  108. pars = append(pars, sysUser.DepartmentId)
  109. } else if authority == 2 {
  110. condition += ` AND a.group_id=? `
  111. pars = append(pars, sysUser.GroupId)
  112. }
  113. } else {
  114. productId := services.GetProductId(sysUser.RoleTypeCode)
  115. fmt.Println("productId:", productId)
  116. switch productId {
  117. case 1:
  118. roleTypeCodeList := []string{utils.ROLE_TYPE_CODE_FICC_SELLER, utils.ROLE_TYPE_CODE_FICC_GROUP}
  119. roleTypeCodeListStr := strings.Join(roleTypeCodeList, `","`)
  120. condition += ` AND b.role_type_code IN("` + roleTypeCodeListStr + `") `
  121. case 2:
  122. roleTypeCodeList := []string{utils.ROLE_TYPE_CODE_RAI_SELLER, utils.ROLE_TYPE_CODE_RAI_GROUP}
  123. roleTypeCodeListStr := strings.Join(roleTypeCodeList, `","`)
  124. condition += ` AND b.role_type_code IN("` + roleTypeCodeListStr + `") `
  125. }
  126. }
  127. resp := new(company.CompanySellerResp)
  128. items, err := company.GetCompanyCheckSeller(condition, pars)
  129. if err != nil {
  130. br.Msg = "获取失败"
  131. br.ErrMsg = "获取失败,Err:" + err.Error()
  132. return
  133. }
  134. if len(items) == 0 {
  135. items = make([]*company.CompanySellers, 0)
  136. }
  137. resp.List = items
  138. br.Ret = 200
  139. br.Success = true
  140. br.Msg = "获取成功"
  141. br.Data = resp
  142. }
  143. // CheckListV2
  144. // @Title 获取组长/组员下销售(根据部门、分组)
  145. // @Description 获取组长/组员下销售(根据部门、分组)接口
  146. // @Param AllSeller query bool true "是否获取部门所有的销售信息"
  147. // @Param Status query int true "客户状态 1:流失 0:非流失"
  148. // @Param AllEnabled query bool true "是否获取包含禁用的用户"
  149. // @Success 200 {object} company.DepartmentGroupSellersResp
  150. // @router /seller/check/listV2 [get]
  151. func (this *CompanySellerController) CheckListV2() {
  152. br := new(models.BaseResponse).Init()
  153. defer func() {
  154. this.Data["json"] = br
  155. this.ServeJSON()
  156. }()
  157. sysUser := this.SysUser
  158. if sysUser == nil {
  159. br.Msg = "请登录"
  160. br.ErrMsg = "请登录,SysUser Is Empty"
  161. br.Ret = 408
  162. return
  163. }
  164. roleCodeTypeStr := ``
  165. productId := services.GetProductId(sysUser.RoleTypeCode)
  166. switch productId {
  167. case 1:
  168. roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_FICC_SELLER + `","` + utils.ROLE_TYPE_CODE_FICC_GROUP + `","` + utils.ROLE_TYPE_CODE_FICC_TEAM + `"`
  169. case 2:
  170. roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `"`
  171. }
  172. // ficc管理员,不要只查销售
  173. if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
  174. roleCodeTypeStr = ``
  175. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
  176. // 权益管理员,查看所有权益的账号
  177. 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 + `"`
  178. }
  179. getAllSeller, _ := this.GetBool("AllSeller", false)
  180. status, _ := this.GetInt("Status", 0)
  181. getAllEnabled, _ := this.GetBool("AllEnabled", false)
  182. enabled := 1 //默认只获取正常状态的用户
  183. if getAllEnabled { //获取所有状态的用户
  184. enabled = -1
  185. }
  186. list := make([]company.DepartmentGroupSellers, 0)
  187. if getAllSeller == false {
  188. //超管看部门、小组、销售
  189. if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
  190. departmentList, err := system.GetDepartmentList()
  191. if err != nil {
  192. br.Msg = "获取失败"
  193. br.ErrMsg = "获取部门失败,Err:" + err.Error()
  194. return
  195. }
  196. for _, department := range departmentList {
  197. departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
  198. item := company.DepartmentGroupSellers{
  199. AdminId: fmt.Sprint("department_", department.DepartmentId),
  200. //AdminName string `description:"系统用户名称"`
  201. RealName: department.DepartmentName,
  202. ChildrenList: departmentGroupSellerList,
  203. }
  204. groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId)
  205. if err != nil {
  206. br.Msg = "获取失败"
  207. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  208. return
  209. }
  210. for _, group := range groupList {
  211. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  212. groupItem := company.DepartmentGroupSellers{
  213. AdminId: fmt.Sprint("group_", group.DepartmentId),
  214. //AdminName string `description:"系统用户名称"`
  215. RealName: group.GroupName,
  216. ChildrenList: groupSellerList,
  217. }
  218. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  219. if err != nil {
  220. br.Msg = "获取小组失败"
  221. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  222. return
  223. }
  224. for _, team := range teamList {
  225. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  226. teamItem := company.DepartmentGroupSellers{
  227. AdminId: fmt.Sprint("team_", team.GroupId),
  228. //AdminName string `description:"系统用户名称"`
  229. RealName: team.GroupName,
  230. ChildrenList: teamSellerList,
  231. }
  232. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  233. if err != nil {
  234. br.Msg = "获取销售失败"
  235. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  236. return
  237. }
  238. for _, seller := range sellerList {
  239. sellerItem := company.DepartmentGroupSellers{
  240. AdminId: fmt.Sprint(seller.AdminId),
  241. //AdminName string `description:"系统用户名称"`
  242. RealName: seller.RealName,
  243. Authority: seller.Authority,
  244. RoleTypeCode: seller.RoleTypeCode,
  245. }
  246. //fmt.Println("seller.RealName:", seller.RealName)
  247. teamSellerList = append(teamSellerList, sellerItem)
  248. }
  249. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  250. teamItem.ChildrenList = teamSellerList
  251. if len(teamSellerList) > 0 {
  252. groupSellerList = append(groupSellerList, teamItem)
  253. }
  254. }
  255. //分组为0的销售(直属分组)
  256. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
  257. if err != nil {
  258. br.Msg = "获取销售失败"
  259. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  260. return
  261. }
  262. if len(groupTeamSellerList) > 0 {
  263. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  264. for _, seller := range groupTeamSellerList {
  265. sellerItem := company.DepartmentGroupSellers{
  266. AdminId: fmt.Sprint(seller.AdminId),
  267. //AdminName string `description:"系统用户名称"`
  268. RealName: seller.RealName,
  269. Authority: seller.Authority,
  270. RoleTypeCode: seller.RoleTypeCode,
  271. }
  272. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  273. }
  274. //排个序
  275. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  276. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  277. }
  278. //groupItem.ChildrenList = groupSellerList
  279. //if len(groupSellerList) > 0 {
  280. // list = append(list, item)
  281. //}
  282. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  283. //if err != nil {
  284. // br.Msg = "获取销售失败"
  285. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  286. // return
  287. //}
  288. //for _, seller := range sellerList {
  289. // sellerItem := company.DepartmentGroupSellers{
  290. // AdminId: fmt.Sprint(seller.AdminId),
  291. // //AdminName string `description:"系统用户名称"`
  292. // RealName: seller.RealName,
  293. // Authority: seller.Authority,
  294. // RoleTypeCode: seller.RoleTypeCode,
  295. // }
  296. // groupSellerList = append(groupSellerList, sellerItem)
  297. //}
  298. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  299. groupItem.ChildrenList = groupSellerList
  300. if len(groupSellerList) > 0 {
  301. departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
  302. }
  303. }
  304. //分组为0的销售(直属部门)
  305. departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, roleCodeTypeStr)
  306. if err != nil {
  307. br.Msg = "获取销售失败"
  308. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  309. return
  310. }
  311. if len(departmentSellerList) > 0 {
  312. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  313. for _, seller := range departmentSellerList {
  314. sellerItem := company.DepartmentGroupSellers{
  315. AdminId: fmt.Sprint(seller.AdminId),
  316. //AdminName string `description:"系统用户名称"`
  317. RealName: seller.RealName,
  318. Authority: seller.Authority,
  319. RoleTypeCode: seller.RoleTypeCode,
  320. }
  321. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  322. }
  323. //排个序
  324. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  325. departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...)
  326. }
  327. item.ChildrenList = departmentGroupSellerList
  328. if len(departmentGroupSellerList) > 0 {
  329. list = append(list, item)
  330. }
  331. }
  332. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.Authority == 4 {
  333. //销售组长看销售
  334. if status == 0 {
  335. directorId := sysUser.GroupId
  336. fmt.Println("directorId:", directorId)
  337. groupList, err := system.GetSysGroupByDirectorId(directorId)
  338. if err != nil {
  339. br.Msg = "获取失败"
  340. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  341. return
  342. }
  343. for _, group := range groupList {
  344. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  345. groupItem := company.DepartmentGroupSellers{
  346. AdminId: fmt.Sprint("group_", group.DepartmentId),
  347. //AdminName string `description:"系统用户名称"`
  348. RealName: group.GroupName,
  349. ChildrenList: groupSellerList,
  350. }
  351. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  352. if err != nil {
  353. br.Msg = "获取小组失败"
  354. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  355. return
  356. }
  357. for _, team := range teamList {
  358. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  359. teamItem := company.DepartmentGroupSellers{
  360. AdminId: fmt.Sprint("team_", team.GroupId),
  361. //AdminName string `description:"系统用户名称"`
  362. RealName: team.GroupName,
  363. ChildrenList: teamSellerList,
  364. }
  365. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  366. if err != nil {
  367. br.Msg = "获取销售失败"
  368. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  369. return
  370. }
  371. for _, seller := range sellerList {
  372. sellerItem := company.DepartmentGroupSellers{
  373. AdminId: fmt.Sprint(seller.AdminId),
  374. //AdminName string `description:"系统用户名称"`
  375. RealName: seller.RealName,
  376. Authority: seller.Authority,
  377. RoleTypeCode: seller.RoleTypeCode,
  378. }
  379. //fmt.Println("seller.RealName:", seller.RealName)
  380. teamSellerList = append(teamSellerList, sellerItem)
  381. }
  382. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  383. teamItem.ChildrenList = teamSellerList
  384. if len(teamSellerList) > 0 {
  385. groupSellerList = append(groupSellerList, teamItem)
  386. }
  387. }
  388. //分组为0的销售(直属分组)
  389. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
  390. if err != nil {
  391. br.Msg = "获取销售失败"
  392. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  393. return
  394. }
  395. if len(groupTeamSellerList) > 0 {
  396. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  397. for _, seller := range groupTeamSellerList {
  398. sellerItem := company.DepartmentGroupSellers{
  399. AdminId: fmt.Sprint(seller.AdminId),
  400. //AdminName string `description:"系统用户名称"`
  401. RealName: seller.RealName,
  402. Authority: seller.Authority,
  403. RoleTypeCode: seller.RoleTypeCode,
  404. }
  405. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  406. }
  407. //排个序
  408. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  409. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  410. }
  411. groupItem.ChildrenList = groupSellerList
  412. if len(groupSellerList) > 0 {
  413. list = append(list, groupItem)
  414. }
  415. }
  416. } else {
  417. departmentStr := `1,2`
  418. departmentList, err := system.GetDepartmentListByIds(departmentStr)
  419. if err != nil {
  420. br.Msg = "获取失败"
  421. br.ErrMsg = "获取部门失败,Err:" + err.Error()
  422. return
  423. }
  424. for _, department := range departmentList {
  425. departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
  426. item := company.DepartmentGroupSellers{
  427. AdminId: fmt.Sprint("department_", department.DepartmentId),
  428. //AdminName string `description:"系统用户名称"`
  429. RealName: department.DepartmentName,
  430. ChildrenList: departmentGroupSellerList,
  431. }
  432. groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId)
  433. if err != nil {
  434. br.Msg = "获取失败"
  435. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  436. return
  437. }
  438. for _, group := range groupList {
  439. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  440. groupItem := company.DepartmentGroupSellers{
  441. AdminId: fmt.Sprint("group_", group.DepartmentId),
  442. //AdminName string `description:"系统用户名称"`
  443. RealName: group.GroupName,
  444. ChildrenList: groupSellerList,
  445. }
  446. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  447. if err != nil {
  448. br.Msg = "获取小组失败"
  449. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  450. return
  451. }
  452. for _, team := range teamList {
  453. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  454. teamItem := company.DepartmentGroupSellers{
  455. AdminId: fmt.Sprint("team_", team.GroupId),
  456. //AdminName string `description:"系统用户名称"`
  457. RealName: team.GroupName,
  458. ChildrenList: teamSellerList,
  459. }
  460. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  461. if err != nil {
  462. br.Msg = "获取销售失败"
  463. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  464. return
  465. }
  466. for _, seller := range sellerList {
  467. sellerItem := company.DepartmentGroupSellers{
  468. AdminId: fmt.Sprint(seller.AdminId),
  469. //AdminName string `description:"系统用户名称"`
  470. RealName: seller.RealName,
  471. Authority: seller.Authority,
  472. RoleTypeCode: seller.RoleTypeCode,
  473. }
  474. //fmt.Println("seller.RealName:", seller.RealName)
  475. teamSellerList = append(teamSellerList, sellerItem)
  476. }
  477. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  478. teamItem.ChildrenList = teamSellerList
  479. if len(teamSellerList) > 0 {
  480. groupSellerList = append(groupSellerList, teamItem)
  481. }
  482. }
  483. //分组为0的人,不光是销售(直属分组)
  484. groupTeamSellerList, err := system.GetGroupSysUserList(group.GroupId)
  485. if err != nil {
  486. br.Msg = "获取销售失败"
  487. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  488. return
  489. }
  490. if len(groupTeamSellerList) > 0 {
  491. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  492. for _, seller := range groupTeamSellerList {
  493. sellerItem := company.DepartmentGroupSellers{
  494. AdminId: fmt.Sprint(seller.AdminId),
  495. //AdminName string `description:"系统用户名称"`
  496. RealName: seller.RealName,
  497. Authority: seller.Authority,
  498. RoleTypeCode: seller.RoleTypeCode,
  499. }
  500. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  501. }
  502. //排个序
  503. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  504. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  505. }
  506. //groupItem.ChildrenList = groupSellerList
  507. //if len(groupSellerList) > 0 {
  508. // list = append(list, item)
  509. //}
  510. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  511. //if err != nil {
  512. // br.Msg = "获取销售失败"
  513. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  514. // return
  515. //}
  516. //for _, seller := range sellerList {
  517. // sellerItem := company.DepartmentGroupSellers{
  518. // AdminId: fmt.Sprint(seller.AdminId),
  519. // //AdminName string `description:"系统用户名称"`
  520. // RealName: seller.RealName,
  521. // Authority: seller.Authority,
  522. // RoleTypeCode: seller.RoleTypeCode,
  523. // }
  524. // groupSellerList = append(groupSellerList, sellerItem)
  525. //}
  526. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  527. groupItem.ChildrenList = groupSellerList
  528. if len(groupSellerList) > 0 {
  529. departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
  530. }
  531. }
  532. //分组为0的人,不光是销售(直属部门)
  533. departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "")
  534. if err != nil {
  535. br.Msg = "获取销售失败"
  536. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  537. return
  538. }
  539. if len(departmentSellerList) > 0 {
  540. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  541. for _, seller := range departmentSellerList {
  542. sellerItem := company.DepartmentGroupSellers{
  543. AdminId: fmt.Sprint(seller.AdminId),
  544. //AdminName string `description:"系统用户名称"`
  545. RealName: seller.RealName,
  546. Authority: seller.Authority,
  547. RoleTypeCode: seller.RoleTypeCode,
  548. }
  549. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  550. }
  551. //排个序
  552. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  553. departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...)
  554. }
  555. item.ChildrenList = departmentGroupSellerList
  556. if len(departmentGroupSellerList) > 0 {
  557. list = append(list, item)
  558. }
  559. }
  560. }
  561. } 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管理员
  562. departmentStr := `2,5,7` //合规
  563. switch sysUser.RoleTypeCode {
  564. case utils.ROLE_TYPE_CODE_FINANCE: //财务
  565. departmentStr = `2,5,8`
  566. case utils.ROLE_TYPE_CODE_FICC_ADMIN: //ficc管理员
  567. departmentStr = utils.GetFiccAdminDepartmentIds()
  568. }
  569. departmentList, err := system.GetDepartmentListByIds(departmentStr)
  570. if err != nil {
  571. br.Msg = "获取失败"
  572. br.ErrMsg = "获取部门失败,Err:" + err.Error()
  573. return
  574. }
  575. for _, department := range departmentList {
  576. fmt.Println(department)
  577. departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
  578. item := company.DepartmentGroupSellers{
  579. AdminId: fmt.Sprint("department_", department.DepartmentId),
  580. //AdminName string `description:"系统用户名称"`
  581. RealName: department.DepartmentName,
  582. ChildrenList: departmentGroupSellerList,
  583. }
  584. groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId)
  585. if err != nil {
  586. br.Msg = "获取失败"
  587. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  588. return
  589. }
  590. for _, group := range groupList {
  591. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  592. groupItem := company.DepartmentGroupSellers{
  593. AdminId: fmt.Sprint("group_", group.DepartmentId),
  594. //AdminName string `description:"系统用户名称"`
  595. RealName: group.GroupName,
  596. ChildrenList: groupSellerList,
  597. }
  598. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  599. if err != nil {
  600. br.Msg = "获取小组失败"
  601. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  602. return
  603. }
  604. for _, team := range teamList {
  605. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  606. teamItem := company.DepartmentGroupSellers{
  607. AdminId: fmt.Sprint("team_", team.GroupId),
  608. //AdminName string `description:"系统用户名称"`
  609. RealName: team.GroupName,
  610. ChildrenList: teamSellerList,
  611. }
  612. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  613. if err != nil {
  614. br.Msg = "获取销售失败"
  615. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  616. return
  617. }
  618. for _, seller := range sellerList {
  619. sellerItem := company.DepartmentGroupSellers{
  620. AdminId: fmt.Sprint(seller.AdminId),
  621. //AdminName string `description:"系统用户名称"`
  622. RealName: seller.RealName,
  623. Authority: seller.Authority,
  624. RoleTypeCode: seller.RoleTypeCode,
  625. }
  626. //fmt.Println("seller.RealName:", seller.RealName)
  627. teamSellerList = append(teamSellerList, sellerItem)
  628. }
  629. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  630. teamItem.ChildrenList = teamSellerList
  631. if len(teamSellerList) > 0 {
  632. groupSellerList = append(groupSellerList, teamItem)
  633. }
  634. }
  635. //分组为0的销售(直属分组)
  636. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
  637. if err != nil {
  638. br.Msg = "获取销售失败"
  639. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  640. return
  641. }
  642. if len(groupTeamSellerList) > 0 {
  643. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  644. for _, seller := range groupTeamSellerList {
  645. sellerItem := company.DepartmentGroupSellers{
  646. AdminId: fmt.Sprint(seller.AdminId),
  647. //AdminName string `description:"系统用户名称"`
  648. RealName: seller.RealName,
  649. Authority: seller.Authority,
  650. RoleTypeCode: seller.RoleTypeCode,
  651. }
  652. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  653. }
  654. //排个序
  655. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  656. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  657. }
  658. //groupItem.ChildrenList = groupSellerList
  659. //if len(groupSellerList) > 0 {
  660. // list = append(list, item)
  661. //}
  662. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  663. //if err != nil {
  664. // br.Msg = "获取销售失败"
  665. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  666. // return
  667. //}
  668. //for _, seller := range sellerList {
  669. // sellerItem := company.DepartmentGroupSellers{
  670. // AdminId: fmt.Sprint(seller.AdminId),
  671. // //AdminName string `description:"系统用户名称"`
  672. // RealName: seller.RealName,
  673. // Authority: seller.Authority,
  674. // RoleTypeCode: seller.RoleTypeCode,
  675. // }
  676. // groupSellerList = append(groupSellerList, sellerItem)
  677. //}
  678. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  679. groupItem.ChildrenList = groupSellerList
  680. if len(groupSellerList) > 0 {
  681. departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
  682. }
  683. }
  684. //分组为0的销售(直属部门)
  685. departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, roleCodeTypeStr)
  686. if err != nil {
  687. br.Msg = "获取销售失败"
  688. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  689. return
  690. }
  691. if len(departmentSellerList) > 0 {
  692. tmpDepartmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
  693. for _, seller := range departmentSellerList {
  694. sellerItem := company.DepartmentGroupSellers{
  695. AdminId: fmt.Sprint(seller.AdminId),
  696. //AdminName string `description:"系统用户名称"`
  697. RealName: seller.RealName,
  698. Authority: seller.Authority,
  699. RoleTypeCode: seller.RoleTypeCode,
  700. }
  701. tmpDepartmentGroupSellerList = append(tmpDepartmentGroupSellerList, sellerItem)
  702. }
  703. //排个序
  704. tmpDepartmentGroupSellerList = sortDepartmentGroupSellers(tmpDepartmentGroupSellerList)
  705. departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellerList...)
  706. }
  707. item.ChildrenList = departmentGroupSellerList
  708. if len(departmentGroupSellerList) > 0 {
  709. list = append(list, item)
  710. }
  711. }
  712. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN || sysUser.Authority == 1 {
  713. //部门管理员看小组、销售
  714. departmentId := sysUser.DepartmentId
  715. switch sysUser.RoleTypeCode {
  716. case utils.ROLE_TYPE_CODE_RAI_ADMIN: //权益管理员
  717. departmentId = 5
  718. case utils.ROLE_TYPE_CODE_FICC_ADMIN: //ficc管理员
  719. departmentId = 2
  720. }
  721. groupList, err := system.GetSysGroupByDepartmentId(departmentId)
  722. if err != nil {
  723. br.Msg = "获取失败"
  724. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  725. return
  726. }
  727. for _, group := range groupList {
  728. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  729. groupItem := company.DepartmentGroupSellers{
  730. AdminId: fmt.Sprint("group_", group.DepartmentId),
  731. //AdminName string `description:"系统用户名称"`
  732. RealName: group.GroupName,
  733. ChildrenList: groupSellerList,
  734. }
  735. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  736. if err != nil {
  737. br.Msg = "获取小组失败"
  738. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  739. return
  740. }
  741. for _, team := range teamList {
  742. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  743. teamItem := company.DepartmentGroupSellers{
  744. AdminId: fmt.Sprint("team_", team.GroupId),
  745. //AdminName string `description:"系统用户名称"`
  746. RealName: team.GroupName,
  747. ChildrenList: teamSellerList,
  748. }
  749. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  750. if err != nil {
  751. br.Msg = "获取销售失败"
  752. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  753. return
  754. }
  755. for _, seller := range sellerList {
  756. sellerItem := company.DepartmentGroupSellers{
  757. AdminId: fmt.Sprint(seller.AdminId),
  758. //AdminName string `description:"系统用户名称"`
  759. RealName: seller.RealName,
  760. Authority: seller.Authority,
  761. RoleTypeCode: seller.RoleTypeCode,
  762. }
  763. //fmt.Println("seller.RealName:", seller.RealName)
  764. teamSellerList = append(teamSellerList, sellerItem)
  765. }
  766. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  767. teamItem.ChildrenList = teamSellerList
  768. if len(teamSellerList) > 0 {
  769. groupSellerList = append(groupSellerList, teamItem)
  770. }
  771. }
  772. //分组为0的销售(直属分组)
  773. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
  774. if err != nil {
  775. br.Msg = "获取销售失败"
  776. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  777. return
  778. }
  779. if len(groupTeamSellerList) > 0 {
  780. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  781. for _, seller := range groupTeamSellerList {
  782. sellerItem := company.DepartmentGroupSellers{
  783. AdminId: fmt.Sprint(seller.AdminId),
  784. //AdminName string `description:"系统用户名称"`
  785. RealName: seller.RealName,
  786. Authority: seller.Authority,
  787. RoleTypeCode: seller.RoleTypeCode,
  788. }
  789. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  790. }
  791. //排个序
  792. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  793. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  794. }
  795. //groupItem.ChildrenList = groupSellerList
  796. //if len(groupSellerList) > 0 {
  797. // list = append(list, item)
  798. //}
  799. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  800. //if err != nil {
  801. // br.Msg = "获取销售失败"
  802. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  803. // return
  804. //}
  805. //for _, seller := range sellerList {
  806. // sellerItem := company.DepartmentGroupSellers{
  807. // AdminId: fmt.Sprint(seller.AdminId),
  808. // //AdminName string `description:"系统用户名称"`
  809. // RealName: seller.RealName,
  810. // Authority: seller.Authority,
  811. // RoleTypeCode: seller.RoleTypeCode,
  812. // }
  813. // groupSellerList = append(groupSellerList, sellerItem)
  814. //}
  815. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  816. groupItem.ChildrenList = groupSellerList
  817. if len(groupSellerList) > 0 {
  818. list = append(list, groupItem)
  819. }
  820. }
  821. //分组为0的销售(直属部门)
  822. departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
  823. if err != nil {
  824. br.Msg = "获取销售失败"
  825. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  826. return
  827. }
  828. if len(departmentSellerList) > 0 {
  829. tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0)
  830. for _, seller := range departmentSellerList {
  831. sellerItem := company.DepartmentGroupSellers{
  832. AdminId: fmt.Sprint(seller.AdminId),
  833. //AdminName string `description:"系统用户名称"`
  834. RealName: seller.RealName,
  835. Authority: seller.Authority,
  836. RoleTypeCode: seller.RoleTypeCode,
  837. }
  838. tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
  839. }
  840. tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
  841. list = append(list, tmpDepartmentGroupSeller...)
  842. }
  843. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || (sysUser.Authority == 2 && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_FICC_GROUP) {
  844. // 权益组长看小组
  845. if status == 0 {
  846. sellerList, err := system.GetTeamSysUserList(sysUser.GroupId, enabled)
  847. if err != nil {
  848. br.Msg = "获取销售失败"
  849. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  850. return
  851. }
  852. for _, seller := range sellerList {
  853. sellerItem := company.DepartmentGroupSellers{
  854. AdminId: fmt.Sprint(seller.AdminId),
  855. //AdminName string `description:"系统用户名称"`
  856. RealName: seller.RealName,
  857. Authority: seller.Authority,
  858. RoleTypeCode: seller.RoleTypeCode,
  859. }
  860. //fmt.Println("seller.RealName:", seller.RealName)
  861. list = append(list, sellerItem)
  862. }
  863. list = sortDepartmentGroupSellers(list)
  864. //正常来说没有所有人都应该在某个小组下,要不就是小组名为 无 的小组
  865. //分组为0的销售(直属分组)
  866. //groupTeamSellerList, err := system.GetGrooupsysUserList(sysUser.GroupId, 0, roleCodeTypeStr)
  867. //if err != nil {
  868. // br.Msg = "获取销售失败"
  869. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  870. // return
  871. //}
  872. //if len(groupTeamSellerList) > 0 {
  873. // tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  874. // for _, seller := range groupTeamSellerList {
  875. // sellerItem := company.DepartmentGroupSellers{
  876. // AdminId: fmt.Sprint(seller.AdminId),
  877. // //AdminName string `description:"系统用户名称"`
  878. // RealName: seller.RealName,
  879. // Authority: seller.Authority,
  880. // RoleTypeCode: seller.RoleTypeCode,
  881. // }
  882. // tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  883. // }
  884. // //排个序
  885. // tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  886. // list = append(list, tmpDepartmentGroupSellersList...)
  887. //}
  888. //sellerList, err := system.GetDepartmentGroupSysUserList(sysUser.DepartmentId, sysUser.GroupId, roleCodeTypeStr)
  889. //if err != nil {
  890. // br.Msg = "获取销售失败"
  891. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  892. // return
  893. //}
  894. //for _, seller := range sellerList {
  895. // sellerItem := company.DepartmentGroupSellers{
  896. // AdminId: fmt.Sprint(seller.AdminId),
  897. // //AdminName string `description:"系统用户名称"`
  898. // RealName: seller.RealName,
  899. // Authority: seller.Authority,
  900. // RoleTypeCode: seller.RoleTypeCode,
  901. // }
  902. // list = append(list, sellerItem)
  903. // list = sortDepartmentGroupSellers(list)
  904. //}
  905. } else {
  906. departmentId := 5
  907. groupList, err := system.GetSysGroupByDepartmentId(departmentId)
  908. if err != nil {
  909. br.Msg = "获取失败"
  910. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  911. return
  912. }
  913. for _, group := range groupList {
  914. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  915. groupItem := company.DepartmentGroupSellers{
  916. AdminId: fmt.Sprint("group_", group.DepartmentId),
  917. //AdminName string `description:"系统用户名称"`
  918. RealName: group.GroupName,
  919. ChildrenList: groupSellerList,
  920. }
  921. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  922. if err != nil {
  923. br.Msg = "获取小组失败"
  924. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  925. return
  926. }
  927. for _, team := range teamList {
  928. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  929. teamItem := company.DepartmentGroupSellers{
  930. AdminId: fmt.Sprint("team_", team.GroupId),
  931. //AdminName string `description:"系统用户名称"`
  932. RealName: team.GroupName,
  933. ChildrenList: teamSellerList,
  934. }
  935. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  936. if err != nil {
  937. br.Msg = "获取销售失败"
  938. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  939. return
  940. }
  941. for _, seller := range sellerList {
  942. sellerItem := company.DepartmentGroupSellers{
  943. AdminId: fmt.Sprint(seller.AdminId),
  944. //AdminName string `description:"系统用户名称"`
  945. RealName: seller.RealName,
  946. Authority: seller.Authority,
  947. RoleTypeCode: seller.RoleTypeCode,
  948. }
  949. //fmt.Println("seller.RealName:", seller.RealName)
  950. teamSellerList = append(teamSellerList, sellerItem)
  951. }
  952. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  953. teamItem.ChildrenList = teamSellerList
  954. if len(teamSellerList) > 0 {
  955. groupSellerList = append(groupSellerList, teamItem)
  956. }
  957. }
  958. //分组为0的销售(直属分组)
  959. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
  960. if err != nil {
  961. br.Msg = "获取销售失败"
  962. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  963. return
  964. }
  965. if len(groupTeamSellerList) > 0 {
  966. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  967. for _, seller := range groupTeamSellerList {
  968. sellerItem := company.DepartmentGroupSellers{
  969. AdminId: fmt.Sprint(seller.AdminId),
  970. //AdminName string `description:"系统用户名称"`
  971. RealName: seller.RealName,
  972. Authority: seller.Authority,
  973. RoleTypeCode: seller.RoleTypeCode,
  974. }
  975. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  976. }
  977. //排个序
  978. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  979. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  980. }
  981. //groupItem.ChildrenList = groupSellerList
  982. //if len(groupSellerList) > 0 {
  983. // list = append(list, item)
  984. //}
  985. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  986. //if err != nil {
  987. // br.Msg = "获取销售失败"
  988. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  989. // return
  990. //}
  991. //for _, seller := range sellerList {
  992. // sellerItem := company.DepartmentGroupSellers{
  993. // AdminId: fmt.Sprint(seller.AdminId),
  994. // //AdminName string `description:"系统用户名称"`
  995. // RealName: seller.RealName,
  996. // Authority: seller.Authority,
  997. // RoleTypeCode: seller.RoleTypeCode,
  998. // }
  999. // groupSellerList = append(groupSellerList, sellerItem)
  1000. //}
  1001. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  1002. groupItem.ChildrenList = groupSellerList
  1003. if len(groupSellerList) > 0 {
  1004. list = append(list, groupItem)
  1005. }
  1006. }
  1007. //分组为0的销售(直属部门)
  1008. departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
  1009. if err != nil {
  1010. br.Msg = "获取销售失败"
  1011. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1012. return
  1013. }
  1014. if len(departmentSellerList) > 0 {
  1015. tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0)
  1016. for _, seller := range departmentSellerList {
  1017. sellerItem := company.DepartmentGroupSellers{
  1018. AdminId: fmt.Sprint(seller.AdminId),
  1019. //AdminName string `description:"系统用户名称"`
  1020. RealName: seller.RealName,
  1021. Authority: seller.Authority,
  1022. RoleTypeCode: seller.RoleTypeCode,
  1023. }
  1024. tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
  1025. }
  1026. tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
  1027. list = append(list, tmpDepartmentGroupSeller...)
  1028. }
  1029. }
  1030. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.Authority == 2 {
  1031. // 销售主管看小组
  1032. if status == 0 {
  1033. pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
  1034. if err != nil {
  1035. br.Msg = "获取失败"
  1036. br.ErrMsg = "查询父级id异常" + err.Error()
  1037. return
  1038. }
  1039. var realGroupId int
  1040. if pid != nil && *pid > 0 {
  1041. //主管角色放在了三级分组下
  1042. realGroupId = *pid
  1043. } else {
  1044. //主管角色放在了二级分组下
  1045. realGroupId = sysUser.GroupId
  1046. }
  1047. groupList, err := system.GetSysGroupByGroupId(realGroupId)
  1048. if err != nil {
  1049. br.Msg = "获取失败"
  1050. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  1051. return
  1052. }
  1053. for _, group := range groupList {
  1054. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  1055. //groupItem := company.DepartmentGroupSellers{
  1056. // AdminId: fmt.Sprint("group_", group.DepartmentId),
  1057. // //AdminName string `description:"系统用户名称"`
  1058. // RealName: group.GroupName,
  1059. // ChildrenList: groupSellerList,
  1060. //}
  1061. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  1062. if err != nil {
  1063. br.Msg = "获取小组失败"
  1064. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  1065. return
  1066. }
  1067. for _, team := range teamList {
  1068. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  1069. teamItem := company.DepartmentGroupSellers{
  1070. AdminId: fmt.Sprint("team_", team.GroupId),
  1071. //AdminName string `description:"系统用户名称"`
  1072. RealName: team.GroupName,
  1073. ChildrenList: teamSellerList,
  1074. }
  1075. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  1076. if err != nil {
  1077. br.Msg = "获取销售失败"
  1078. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1079. return
  1080. }
  1081. for _, seller := range sellerList {
  1082. sellerItem := company.DepartmentGroupSellers{
  1083. AdminId: fmt.Sprint(seller.AdminId),
  1084. //AdminName string `description:"系统用户名称"`
  1085. RealName: seller.RealName,
  1086. Authority: seller.Authority,
  1087. RoleTypeCode: seller.RoleTypeCode,
  1088. }
  1089. //fmt.Println("seller.RealName:", seller.RealName)
  1090. teamSellerList = append(teamSellerList, sellerItem)
  1091. }
  1092. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  1093. teamItem.ChildrenList = teamSellerList
  1094. if len(teamSellerList) > 0 {
  1095. groupSellerList = append(groupSellerList, teamItem)
  1096. }
  1097. }
  1098. //分组为0的销售(直属分组)
  1099. groupTeamSellerList, err := system.GetGrooupsysUserList(realGroupId, roleCodeTypeStr, enabled)
  1100. if err != nil {
  1101. br.Msg = "获取销售失败"
  1102. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1103. return
  1104. }
  1105. if len(groupTeamSellerList) > 0 {
  1106. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1107. for _, seller := range groupTeamSellerList {
  1108. sellerItem := company.DepartmentGroupSellers{
  1109. AdminId: fmt.Sprint(seller.AdminId),
  1110. //AdminName string `description:"系统用户名称"`
  1111. RealName: seller.RealName,
  1112. Authority: seller.Authority,
  1113. RoleTypeCode: seller.RoleTypeCode,
  1114. }
  1115. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1116. }
  1117. //排个序
  1118. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1119. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  1120. }
  1121. list = groupSellerList
  1122. //groupItem.ChildrenList = groupSellerList
  1123. //if len(groupSellerList) > 0 {
  1124. // list = append(list, item)
  1125. //}
  1126. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  1127. //if err != nil {
  1128. // br.Msg = "获取销售失败"
  1129. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1130. // return
  1131. //}
  1132. //for _, seller := range sellerList {
  1133. // sellerItem := company.DepartmentGroupSellers{
  1134. // AdminId: fmt.Sprint(seller.AdminId),
  1135. // //AdminName string `description:"系统用户名称"`
  1136. // RealName: seller.RealName,
  1137. // Authority: seller.Authority,
  1138. // RoleTypeCode: seller.RoleTypeCode,
  1139. // }
  1140. // groupSellerList = append(groupSellerList, sellerItem)
  1141. //}
  1142. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  1143. //groupItem.ChildrenList = groupSellerList
  1144. //if len(groupSellerList) > 0 {
  1145. // list = append(list, groupItem)
  1146. //}
  1147. }
  1148. //分组为0的销售(直属二级分组)
  1149. //departmentSellerList, err := system.GetDepartmentGroupSysUserList(2, realGroupId, roleCodeTypeStr)
  1150. //if err != nil {
  1151. // br.Msg = "获取销售失败"
  1152. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1153. // return
  1154. //}
  1155. //if len(departmentSellerList) > 0 {
  1156. // tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0)
  1157. // for _, seller := range departmentSellerList {
  1158. // sellerItem := company.DepartmentGroupSellers{
  1159. // AdminId: fmt.Sprint(seller.AdminId),
  1160. // //AdminName string `description:"系统用户名称"`
  1161. // RealName: seller.RealName,
  1162. // Authority: seller.Authority,
  1163. // RoleTypeCode: seller.RoleTypeCode,
  1164. // }
  1165. // tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
  1166. // }
  1167. // tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
  1168. // list = append(list, tmpDepartmentGroupSeller...)
  1169. //}
  1170. //pid, err := company.GetParentIdFromGroup(sysUser.GroupId)
  1171. //if err != nil {
  1172. // br.Msg = "获取失败"
  1173. // br.ErrMsg = "查询父级id异常" + err.Error()
  1174. // return
  1175. //}
  1176. //if pid != nil && *pid > 0 {
  1177. // //主管角色放在了三级分组下
  1178. // //
  1179. //
  1180. //
  1181. //} else {
  1182. // //主管角色放在了二级分组下
  1183. //
  1184. //}
  1185. //ids, err := company.GetGroupIdsByParentId(*pid)
  1186. //if err != nil {
  1187. // br.Msg = "获取失败"
  1188. // br.ErrMsg = "查询父级id异常" + err.Error()
  1189. // return
  1190. //}
  1191. //var idSlice []string
  1192. //var sid string
  1193. //for _, id := range ids {
  1194. // idSlice = append(idSlice, *id)
  1195. //}
  1196. //sid = strings.Join(idSlice, ",")
  1197. //sellerList, err := system.GetTeamSysUserListByIds(sid)
  1198. //if err != nil {
  1199. // br.Msg = "获取销售失败"
  1200. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1201. // return
  1202. //}
  1203. //for _, seller := range sellerList {
  1204. // sellerItem := company.DepartmentGroupSellers{
  1205. // AdminId: fmt.Sprint(seller.AdminId),
  1206. // //AdminName string `description:"系统用户名称"`
  1207. // RealName: seller.RealName,
  1208. // Authority: seller.Authority,
  1209. // RoleTypeCode: seller.RoleTypeCode,
  1210. // }
  1211. // fmt.Println("seller.RealName:", seller.RealName)
  1212. // list = append(list, sellerItem)
  1213. //}
  1214. //list = sortDepartmentGroupSellers(list)
  1215. //
  1216. ////分组为0的销售(直属分组)
  1217. //groupTeamSellerList, err := system.GetGrooupsysUserList(sysUser.GroupId, roleCodeTypeStr)
  1218. //if err != nil {
  1219. // br.Msg = "获取销售失败"
  1220. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1221. // return
  1222. //}
  1223. //if len(groupTeamSellerList) > 0 {
  1224. // tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1225. // for _, seller := range groupTeamSellerList {
  1226. // sellerItem := company.DepartmentGroupSellers{
  1227. // AdminId: fmt.Sprint(seller.AdminId),
  1228. // //AdminName string `description:"系统用户名称"`
  1229. // RealName: seller.RealName,
  1230. // Authority: seller.Authority,
  1231. // RoleTypeCode: seller.RoleTypeCode,
  1232. // }
  1233. // tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1234. // }
  1235. // //排个序
  1236. // tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1237. // list = append(list, tmpDepartmentGroupSellersList...)
  1238. //}
  1239. //sellerList, err := system.GetDepartmentGroupSysUserList(sysUser.DepartmentId, sysUser.GroupId, roleCodeTypeStr)
  1240. //if err != nil {
  1241. // br.Msg = "获取销售失败"
  1242. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1243. // return
  1244. //}
  1245. //for _, seller := range sellerList {
  1246. // sellerItem := company.DepartmentGroupSellers{
  1247. // AdminId: fmt.Sprint(seller.AdminId),
  1248. // //AdminName string `description:"系统用户名称"`
  1249. // RealName: seller.RealName,
  1250. // Authority: seller.Authority,
  1251. // RoleTypeCode: seller.RoleTypeCode,
  1252. // }
  1253. // list = append(list, sellerItem)
  1254. // list = sortDepartmentGroupSellers(list)
  1255. //}
  1256. //正常来说没有所有人都应该在某个小组下,要不就是小组名为 无 的小组
  1257. } else {
  1258. //var departmentStr string
  1259. //if utils.RunMode == "release" {
  1260. // departmentStr = `1,2`
  1261. //} else {
  1262. // departmentStr = `1,2`
  1263. //}
  1264. departmentStr := `1,2`
  1265. departmentList, err := system.GetDepartmentListByIds(departmentStr)
  1266. if err != nil {
  1267. br.Msg = "获取失败"
  1268. br.ErrMsg = "获取部门失败,Err:" + err.Error()
  1269. return
  1270. }
  1271. for _, department := range departmentList {
  1272. departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
  1273. item := company.DepartmentGroupSellers{
  1274. AdminId: fmt.Sprint("department_", department.DepartmentId),
  1275. //AdminName string `description:"系统用户名称"`
  1276. RealName: department.DepartmentName,
  1277. ChildrenList: departmentGroupSellerList,
  1278. }
  1279. groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId)
  1280. if err != nil {
  1281. br.Msg = "获取失败"
  1282. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  1283. return
  1284. }
  1285. for _, group := range groupList {
  1286. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  1287. groupItem := company.DepartmentGroupSellers{
  1288. AdminId: fmt.Sprint("group_", group.DepartmentId),
  1289. //AdminName string `description:"系统用户名称"`
  1290. RealName: group.GroupName,
  1291. ChildrenList: groupSellerList,
  1292. }
  1293. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  1294. if err != nil {
  1295. br.Msg = "获取小组失败"
  1296. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  1297. return
  1298. }
  1299. for _, team := range teamList {
  1300. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  1301. teamItem := company.DepartmentGroupSellers{
  1302. AdminId: fmt.Sprint("team_", team.GroupId),
  1303. //AdminName string `description:"系统用户名称"`
  1304. RealName: team.GroupName,
  1305. ChildrenList: teamSellerList,
  1306. }
  1307. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  1308. if err != nil {
  1309. br.Msg = "获取销售失败"
  1310. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1311. return
  1312. }
  1313. for _, seller := range sellerList {
  1314. sellerItem := company.DepartmentGroupSellers{
  1315. AdminId: fmt.Sprint(seller.AdminId),
  1316. //AdminName string `description:"系统用户名称"`
  1317. RealName: seller.RealName,
  1318. Authority: seller.Authority,
  1319. RoleTypeCode: seller.RoleTypeCode,
  1320. }
  1321. //fmt.Println("seller.RealName:", seller.RealName)
  1322. teamSellerList = append(teamSellerList, sellerItem)
  1323. }
  1324. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  1325. teamItem.ChildrenList = teamSellerList
  1326. if len(teamSellerList) > 0 {
  1327. groupSellerList = append(groupSellerList, teamItem)
  1328. }
  1329. }
  1330. //分组为0的人,不光是销售(直属分组)
  1331. groupTeamSellerList, err := system.GetGroupSysUserList(group.GroupId)
  1332. if err != nil {
  1333. br.Msg = "获取销售失败"
  1334. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1335. return
  1336. }
  1337. if len(groupTeamSellerList) > 0 {
  1338. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1339. for _, seller := range groupTeamSellerList {
  1340. sellerItem := company.DepartmentGroupSellers{
  1341. AdminId: fmt.Sprint(seller.AdminId),
  1342. //AdminName string `description:"系统用户名称"`
  1343. RealName: seller.RealName,
  1344. Authority: seller.Authority,
  1345. RoleTypeCode: seller.RoleTypeCode,
  1346. }
  1347. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1348. }
  1349. //排个序
  1350. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1351. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  1352. }
  1353. //groupItem.ChildrenList = groupSellerList
  1354. //if len(groupSellerList) > 0 {
  1355. // list = append(list, item)
  1356. //}
  1357. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  1358. //if err != nil {
  1359. // br.Msg = "获取销售失败"
  1360. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1361. // return
  1362. //}
  1363. //for _, seller := range sellerList {
  1364. // sellerItem := company.DepartmentGroupSellers{
  1365. // AdminId: fmt.Sprint(seller.AdminId),
  1366. // //AdminName string `description:"系统用户名称"`
  1367. // RealName: seller.RealName,
  1368. // Authority: seller.Authority,
  1369. // RoleTypeCode: seller.RoleTypeCode,
  1370. // }
  1371. // groupSellerList = append(groupSellerList, sellerItem)
  1372. //}
  1373. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  1374. groupItem.ChildrenList = groupSellerList
  1375. if len(groupSellerList) > 0 {
  1376. departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
  1377. }
  1378. }
  1379. //分组为0的人,不光是销售(直属部门)
  1380. departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "")
  1381. if err != nil {
  1382. br.Msg = "获取销售失败"
  1383. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1384. return
  1385. }
  1386. if len(departmentSellerList) > 0 {
  1387. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1388. for _, seller := range departmentSellerList {
  1389. sellerItem := company.DepartmentGroupSellers{
  1390. AdminId: fmt.Sprint(seller.AdminId),
  1391. //AdminName string `description:"系统用户名称"`
  1392. RealName: seller.RealName,
  1393. Authority: seller.Authority,
  1394. RoleTypeCode: seller.RoleTypeCode,
  1395. }
  1396. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1397. }
  1398. //排个序
  1399. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1400. departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...)
  1401. }
  1402. item.ChildrenList = departmentGroupSellerList
  1403. if len(departmentGroupSellerList) > 0 {
  1404. list = append(list, item)
  1405. }
  1406. }
  1407. }
  1408. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER && status == 1 {
  1409. //var departmentStr string
  1410. //if utils.RunMode == "release" {
  1411. // departmentStr = `1,2`
  1412. //} else {
  1413. // departmentStr = `1,2`
  1414. //}
  1415. departmentStr := `1,2`
  1416. departmentList, err := system.GetDepartmentListByIds(departmentStr)
  1417. if err != nil {
  1418. br.Msg = "获取失败"
  1419. br.ErrMsg = "获取部门失败,Err:" + err.Error()
  1420. return
  1421. }
  1422. for _, department := range departmentList {
  1423. departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
  1424. item := company.DepartmentGroupSellers{
  1425. AdminId: fmt.Sprint("department_", department.DepartmentId),
  1426. //AdminName string `description:"系统用户名称"`
  1427. RealName: department.DepartmentName,
  1428. ChildrenList: departmentGroupSellerList,
  1429. }
  1430. groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId)
  1431. if err != nil {
  1432. br.Msg = "获取失败"
  1433. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  1434. return
  1435. }
  1436. for _, group := range groupList {
  1437. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  1438. groupItem := company.DepartmentGroupSellers{
  1439. AdminId: fmt.Sprint("group_", group.DepartmentId),
  1440. //AdminName string `description:"系统用户名称"`
  1441. RealName: group.GroupName,
  1442. ChildrenList: groupSellerList,
  1443. }
  1444. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  1445. if err != nil {
  1446. br.Msg = "获取小组失败"
  1447. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  1448. return
  1449. }
  1450. for _, team := range teamList {
  1451. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  1452. teamItem := company.DepartmentGroupSellers{
  1453. AdminId: fmt.Sprint("team_", team.GroupId),
  1454. //AdminName string `description:"系统用户名称"`
  1455. RealName: team.GroupName,
  1456. ChildrenList: teamSellerList,
  1457. }
  1458. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  1459. if err != nil {
  1460. br.Msg = "获取销售失败"
  1461. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1462. return
  1463. }
  1464. for _, seller := range sellerList {
  1465. sellerItem := company.DepartmentGroupSellers{
  1466. AdminId: fmt.Sprint(seller.AdminId),
  1467. //AdminName string `description:"系统用户名称"`
  1468. RealName: seller.RealName,
  1469. Authority: seller.Authority,
  1470. RoleTypeCode: seller.RoleTypeCode,
  1471. }
  1472. //fmt.Println("seller.RealName:", seller.RealName)
  1473. teamSellerList = append(teamSellerList, sellerItem)
  1474. }
  1475. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  1476. teamItem.ChildrenList = teamSellerList
  1477. if len(teamSellerList) > 0 {
  1478. groupSellerList = append(groupSellerList, teamItem)
  1479. }
  1480. }
  1481. //分组为0的人,不光是销售(直属分组)
  1482. groupTeamSellerList, err := system.GetGroupSysUserList(group.GroupId)
  1483. if err != nil {
  1484. br.Msg = "获取销售失败"
  1485. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1486. return
  1487. }
  1488. if len(groupTeamSellerList) > 0 {
  1489. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1490. for _, seller := range groupTeamSellerList {
  1491. sellerItem := company.DepartmentGroupSellers{
  1492. AdminId: fmt.Sprint(seller.AdminId),
  1493. //AdminName string `description:"系统用户名称"`
  1494. RealName: seller.RealName,
  1495. Authority: seller.Authority,
  1496. RoleTypeCode: seller.RoleTypeCode,
  1497. }
  1498. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1499. }
  1500. //排个序
  1501. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1502. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  1503. }
  1504. //groupItem.ChildrenList = groupSellerList
  1505. //if len(groupSellerList) > 0 {
  1506. // list = append(list, item)
  1507. //}
  1508. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  1509. //if err != nil {
  1510. // br.Msg = "获取销售失败"
  1511. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1512. // return
  1513. //}
  1514. //for _, seller := range sellerList {
  1515. // sellerItem := company.DepartmentGroupSellers{
  1516. // AdminId: fmt.Sprint(seller.AdminId),
  1517. // //AdminName string `description:"系统用户名称"`
  1518. // RealName: seller.RealName,
  1519. // Authority: seller.Authority,
  1520. // RoleTypeCode: seller.RoleTypeCode,
  1521. // }
  1522. // groupSellerList = append(groupSellerList, sellerItem)
  1523. //}
  1524. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  1525. groupItem.ChildrenList = groupSellerList
  1526. if len(groupSellerList) > 0 {
  1527. departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
  1528. }
  1529. }
  1530. //分组为0的人,不光是销售(直属部门)
  1531. departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, "")
  1532. if err != nil {
  1533. br.Msg = "获取销售失败"
  1534. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1535. return
  1536. }
  1537. if len(departmentSellerList) > 0 {
  1538. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1539. for _, seller := range departmentSellerList {
  1540. sellerItem := company.DepartmentGroupSellers{
  1541. AdminId: fmt.Sprint(seller.AdminId),
  1542. //AdminName string `description:"系统用户名称"`
  1543. RealName: seller.RealName,
  1544. Authority: seller.Authority,
  1545. RoleTypeCode: seller.RoleTypeCode,
  1546. }
  1547. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1548. }
  1549. //排个序
  1550. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1551. departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...)
  1552. }
  1553. item.ChildrenList = departmentGroupSellerList
  1554. if len(departmentGroupSellerList) > 0 {
  1555. list = append(list, item)
  1556. }
  1557. }
  1558. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER && status == 1 {
  1559. // 权益销售可以看到权益销售部的所有人
  1560. departmentId := 5
  1561. groupList, err := system.GetSysGroupByDepartmentId(departmentId)
  1562. if err != nil {
  1563. br.Msg = "获取失败"
  1564. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  1565. return
  1566. }
  1567. for _, group := range groupList {
  1568. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  1569. groupItem := company.DepartmentGroupSellers{
  1570. AdminId: fmt.Sprint("group_", group.DepartmentId),
  1571. //AdminName string `description:"系统用户名称"`
  1572. RealName: group.GroupName,
  1573. ChildrenList: groupSellerList,
  1574. }
  1575. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  1576. if err != nil {
  1577. br.Msg = "获取小组失败"
  1578. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  1579. return
  1580. }
  1581. for _, team := range teamList {
  1582. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  1583. teamItem := company.DepartmentGroupSellers{
  1584. AdminId: fmt.Sprint("team_", team.GroupId),
  1585. //AdminName string `description:"系统用户名称"`
  1586. RealName: team.GroupName,
  1587. ChildrenList: teamSellerList,
  1588. }
  1589. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  1590. if err != nil {
  1591. br.Msg = "获取销售失败"
  1592. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1593. return
  1594. }
  1595. for _, seller := range sellerList {
  1596. sellerItem := company.DepartmentGroupSellers{
  1597. AdminId: fmt.Sprint(seller.AdminId),
  1598. //AdminName string `description:"系统用户名称"`
  1599. RealName: seller.RealName,
  1600. Authority: seller.Authority,
  1601. RoleTypeCode: seller.RoleTypeCode,
  1602. }
  1603. //fmt.Println("seller.RealName:", seller.RealName)
  1604. teamSellerList = append(teamSellerList, sellerItem)
  1605. }
  1606. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  1607. teamItem.ChildrenList = teamSellerList
  1608. if len(teamSellerList) > 0 {
  1609. groupSellerList = append(groupSellerList, teamItem)
  1610. }
  1611. }
  1612. //分组为0的销售(直属分组)
  1613. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
  1614. if err != nil {
  1615. br.Msg = "获取销售失败"
  1616. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1617. return
  1618. }
  1619. if len(groupTeamSellerList) > 0 {
  1620. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1621. for _, seller := range groupTeamSellerList {
  1622. sellerItem := company.DepartmentGroupSellers{
  1623. AdminId: fmt.Sprint(seller.AdminId),
  1624. //AdminName string `description:"系统用户名称"`
  1625. RealName: seller.RealName,
  1626. Authority: seller.Authority,
  1627. RoleTypeCode: seller.RoleTypeCode,
  1628. }
  1629. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1630. }
  1631. //排个序
  1632. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1633. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  1634. }
  1635. //groupItem.ChildrenList = groupSellerList
  1636. //if len(groupSellerList) > 0 {
  1637. // list = append(list, item)
  1638. //}
  1639. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  1640. //if err != nil {
  1641. // br.Msg = "获取销售失败"
  1642. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1643. // return
  1644. //}
  1645. //for _, seller := range sellerList {
  1646. // sellerItem := company.DepartmentGroupSellers{
  1647. // AdminId: fmt.Sprint(seller.AdminId),
  1648. // //AdminName string `description:"系统用户名称"`
  1649. // RealName: seller.RealName,
  1650. // Authority: seller.Authority,
  1651. // RoleTypeCode: seller.RoleTypeCode,
  1652. // }
  1653. // groupSellerList = append(groupSellerList, sellerItem)
  1654. //}
  1655. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  1656. groupItem.ChildrenList = groupSellerList
  1657. if len(groupSellerList) > 0 {
  1658. list = append(list, groupItem)
  1659. }
  1660. }
  1661. //分组为0的销售(直属部门)
  1662. departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
  1663. if err != nil {
  1664. br.Msg = "获取销售失败"
  1665. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1666. return
  1667. }
  1668. if len(departmentSellerList) > 0 {
  1669. tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0)
  1670. for _, seller := range departmentSellerList {
  1671. sellerItem := company.DepartmentGroupSellers{
  1672. AdminId: fmt.Sprint(seller.AdminId),
  1673. //AdminName string `description:"系统用户名称"`
  1674. RealName: seller.RealName,
  1675. Authority: seller.Authority,
  1676. RoleTypeCode: seller.RoleTypeCode,
  1677. }
  1678. tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
  1679. }
  1680. tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
  1681. list = append(list, tmpDepartmentGroupSeller...)
  1682. }
  1683. } else {
  1684. //看自己
  1685. sellerItem := company.DepartmentGroupSellers{
  1686. AdminId: fmt.Sprint(sysUser.AdminId),
  1687. //AdminName string `description:"系统用户名称"`
  1688. RealName: sysUser.RealName,
  1689. }
  1690. list = append(list, sellerItem)
  1691. }
  1692. } else {
  1693. departmentId := sysUser.DepartmentId
  1694. switch productId {
  1695. case 1:
  1696. departmentId = 2
  1697. case 5:
  1698. departmentId = 5
  1699. }
  1700. //查询整个部门的小组、销售
  1701. groupList, err := system.GetSysGroupByDepartmentId(departmentId)
  1702. if err != nil {
  1703. br.Msg = "获取失败"
  1704. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  1705. return
  1706. }
  1707. for _, group := range groupList {
  1708. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  1709. groupItem := company.DepartmentGroupSellers{
  1710. AdminId: fmt.Sprint("group_", group.DepartmentId),
  1711. //AdminName string `description:"系统用户名称"`
  1712. RealName: group.GroupName,
  1713. ChildrenList: groupSellerList,
  1714. }
  1715. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  1716. if err != nil {
  1717. br.Msg = "获取小组失败"
  1718. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  1719. return
  1720. }
  1721. for _, team := range teamList {
  1722. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  1723. teamItem := company.DepartmentGroupSellers{
  1724. AdminId: fmt.Sprint("team_", team.GroupId),
  1725. //AdminName string `description:"系统用户名称"`
  1726. RealName: team.GroupName,
  1727. ChildrenList: teamSellerList,
  1728. }
  1729. sellerList, err := system.GetTeamSysUserList(team.GroupId, enabled)
  1730. if err != nil {
  1731. br.Msg = "获取销售失败"
  1732. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1733. return
  1734. }
  1735. for _, seller := range sellerList {
  1736. sellerItem := company.DepartmentGroupSellers{
  1737. AdminId: fmt.Sprint(seller.AdminId),
  1738. //AdminName string `description:"系统用户名称"`
  1739. RealName: seller.RealName,
  1740. Authority: seller.Authority,
  1741. RoleTypeCode: seller.RoleTypeCode,
  1742. }
  1743. //fmt.Println("seller.RealName:", seller.RealName)
  1744. teamSellerList = append(teamSellerList, sellerItem)
  1745. }
  1746. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  1747. teamItem.ChildrenList = teamSellerList
  1748. if len(teamSellerList) > 0 {
  1749. groupSellerList = append(groupSellerList, teamItem)
  1750. }
  1751. }
  1752. //分组为0的销售(直属分组)
  1753. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, enabled)
  1754. if err != nil {
  1755. br.Msg = "获取销售失败"
  1756. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1757. return
  1758. }
  1759. if len(groupTeamSellerList) > 0 {
  1760. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  1761. for _, seller := range groupTeamSellerList {
  1762. sellerItem := company.DepartmentGroupSellers{
  1763. AdminId: fmt.Sprint(seller.AdminId),
  1764. //AdminName string `description:"系统用户名称"`
  1765. RealName: seller.RealName,
  1766. Authority: seller.Authority,
  1767. RoleTypeCode: seller.RoleTypeCode,
  1768. }
  1769. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  1770. }
  1771. //排个序
  1772. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  1773. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  1774. }
  1775. groupItem.ChildrenList = groupSellerList
  1776. if len(groupSellerList) > 0 {
  1777. list = append(list, groupItem)
  1778. }
  1779. }
  1780. //分组为0的销售(直属部门)
  1781. departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
  1782. if err != nil {
  1783. br.Msg = "获取销售失败"
  1784. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  1785. return
  1786. }
  1787. if len(departmentSellerList) > 0 {
  1788. tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0)
  1789. for _, seller := range departmentSellerList {
  1790. sellerItem := company.DepartmentGroupSellers{
  1791. AdminId: fmt.Sprint(seller.AdminId),
  1792. //AdminName string `description:"系统用户名称"`
  1793. RealName: seller.RealName,
  1794. Authority: seller.Authority,
  1795. RoleTypeCode: seller.RoleTypeCode,
  1796. }
  1797. tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
  1798. }
  1799. //排个序
  1800. tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
  1801. list = append(list, tmpDepartmentGroupSeller...)
  1802. }
  1803. }
  1804. // 海外销售部-目前无权限, 均可见
  1805. seaDepartment, e := system.GetSysDepartmentByName("海外销售部")
  1806. if e != nil && e.Error() != utils.ErrNoRow() {
  1807. br.Msg = "获取失败"
  1808. br.ErrMsg = "获取海外销售部失败, Err: " + e.Error()
  1809. return
  1810. }
  1811. if e == nil {
  1812. // 获取部门下的销售人员
  1813. seaSellers, e := system.GetDepartmentGroupSysUserList(seaDepartment.DepartmentId, 0, "")
  1814. if e != nil {
  1815. br.Msg = "获取失败"
  1816. br.ErrMsg = "获取海外销售失败, Err: " + e.Error()
  1817. return
  1818. }
  1819. // 获取分组
  1820. seaGroups, e := system.GetSysGroupListByDepartmentId(seaDepartment.DepartmentId)
  1821. if e != nil {
  1822. br.Msg = "获取失败"
  1823. br.ErrMsg = "获取海外销售部分组失败, Err: " + e.Error()
  1824. return
  1825. }
  1826. var d company.DepartmentGroupSellers
  1827. d.AdminId = fmt.Sprintf("department_%d", seaDepartment.DepartmentId)
  1828. d.RealName = seaDepartment.DepartmentName
  1829. children := make([]company.DepartmentGroupSellers, 0)
  1830. // 无分组
  1831. if len(seaGroups) == 0 {
  1832. for _, s := range seaSellers {
  1833. children = append(children, company.DepartmentGroupSellers{
  1834. AdminId: strconv.Itoa(s.AdminId),
  1835. RealName: s.RealName,
  1836. RoleTypeCode: s.RoleTypeCode,
  1837. Authority: s.Authority,
  1838. })
  1839. }
  1840. }
  1841. // 有分组
  1842. if len(seaGroups) > 0 {
  1843. // 销售map
  1844. sellerMap := make(map[int][]company.DepartmentGroupSellers)
  1845. for _, s := range seaSellers {
  1846. sellerMap[s.GroupId] = append(sellerMap[s.GroupId], company.DepartmentGroupSellers{
  1847. AdminId: strconv.Itoa(s.AdminId),
  1848. RealName: s.RealName,
  1849. RoleTypeCode: s.RoleTypeCode,
  1850. Authority: s.Authority,
  1851. })
  1852. }
  1853. // 小组map
  1854. childrenMap := make(map[int][]company.DepartmentGroupSellers)
  1855. for _, g := range seaGroups {
  1856. if g.ParentId == 0 {
  1857. continue
  1858. }
  1859. childrenMap[g.ParentId] = append(childrenMap[g.ParentId], company.DepartmentGroupSellers{
  1860. AdminId: fmt.Sprintf("team_%d", g.GroupId),
  1861. RealName: g.GroupName,
  1862. ChildrenList: sellerMap[g.GroupId],
  1863. })
  1864. }
  1865. // 大组
  1866. for _, g := range seaGroups {
  1867. if g.ParentId > 0 {
  1868. continue
  1869. }
  1870. c := childrenMap[g.GroupId]
  1871. if len(sellerMap[g.GroupId]) > 0 {
  1872. c = append(c, sellerMap[g.GroupId]...)
  1873. }
  1874. children = append(children, company.DepartmentGroupSellers{
  1875. AdminId: fmt.Sprintf("group_%d", g.GroupId),
  1876. RealName: g.GroupName,
  1877. ChildrenList: c,
  1878. })
  1879. }
  1880. }
  1881. d.ChildrenList = children
  1882. list = append(list, d)
  1883. }
  1884. br.Ret = 200
  1885. br.Success = true
  1886. br.Msg = "获取成功"
  1887. br.Data = company.DepartmentGroupSellersResp{
  1888. List: list,
  1889. }
  1890. }
  1891. // sortDepartmentGroupSellers 部门用户排序
  1892. func sortDepartmentGroupSellers(adminList []company.DepartmentGroupSellers) (list []company.DepartmentGroupSellers) {
  1893. sellerMap := make(map[int][]company.DepartmentGroupSellers)
  1894. for _, admin := range adminList {
  1895. index := 0 //0:超管,1:部门管理员,2:组长,3:普通人
  1896. switch admin.RoleTypeCode {
  1897. //case utils.ROLE_TYPE_CODE_ADMIN:
  1898. // index = 0
  1899. //case utils.ROLE_TYPE_CODE_FICC_ADMIN, utils.ROLE_TYPE_CODE_RAI_ADMIN:
  1900. // index = 1
  1901. //case utils.ROLE_TYPE_CODE_FICC_GROUP, utils.ROLE_TYPE_CODE_RAI_GROUP:
  1902. // index = 2
  1903. default:
  1904. //0:无,1:部门负责人,2:小组负责人,3:超级管理员
  1905. switch admin.Authority {
  1906. //case 1:
  1907. // index = 1
  1908. case 2:
  1909. index = 2
  1910. //case 3:
  1911. // index = 0
  1912. default:
  1913. index = 3
  1914. }
  1915. }
  1916. sellerList, ok := sellerMap[index]
  1917. if !ok {
  1918. sellerList = make([]company.DepartmentGroupSellers, 0)
  1919. }
  1920. sellerList = append(sellerList, admin)
  1921. sellerMap[index] = sellerList
  1922. }
  1923. var indexList = []int{0, 1, 2, 3}
  1924. for _, index := range indexList {
  1925. sellerList, ok := sellerMap[index]
  1926. if ok {
  1927. list = append(list, sellerList...)
  1928. }
  1929. }
  1930. return
  1931. }
  1932. // CheckListForLose
  1933. // @Title 获取销售查看流失客户时的筛选框
  1934. // @Description 获取销售查看流失客户时的筛选框 接口
  1935. // @Success 200 {object} company.DepartmentGroupSellersResp
  1936. // @router /seller/checkListForLose [get]
  1937. func (this *CompanySellerController) CheckListForLose() {
  1938. br := new(models.BaseResponse).Init()
  1939. defer func() {
  1940. this.Data["json"] = br
  1941. this.ServeJSON()
  1942. }()
  1943. sysUser := this.SysUser
  1944. if sysUser == nil {
  1945. br.Msg = "请登录"
  1946. br.ErrMsg = "请登录,SysUser Is Empty"
  1947. br.Ret = 408
  1948. return
  1949. }
  1950. roleCodeTypeStr := ``
  1951. //productId := services.GetProductId(sysUser.RoleTypeCode)
  1952. //switch productId {
  1953. //case 1:
  1954. // roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_FICC_SELLER + `","` + utils.ROLE_TYPE_CODE_FICC_GROUP + `","` + utils.ROLE_TYPE_CODE_FICC_TEAM + `"`
  1955. //case 2:
  1956. // roleCodeTypeStr = `"` + utils.ROLE_TYPE_CODE_RAI_SELLER + `","` + utils.ROLE_TYPE_CODE_RAI_GROUP + `"`
  1957. //}
  1958. list := make([]company.DepartmentGroupSellers, 0)
  1959. // ficc销售,组长,主管 可以看到ficc研究部和ficc销售部的所有人
  1960. if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP {
  1961. //var departmentStr string
  1962. //if utils.RunMode == "release" {
  1963. // departmentStr = `1,2`
  1964. //} else {
  1965. // departmentStr = `1,2`
  1966. //}
  1967. departmentStr := `1,2`
  1968. departmentList, err := system.GetDepartmentListByIds(departmentStr)
  1969. if err != nil {
  1970. br.Msg = "获取失败"
  1971. br.ErrMsg = "获取部门失败,Err:" + err.Error()
  1972. return
  1973. }
  1974. for _, department := range departmentList {
  1975. departmentGroupSellerList := make([]company.DepartmentGroupSellers, 0)
  1976. item := company.DepartmentGroupSellers{
  1977. AdminId: fmt.Sprint("department_", department.DepartmentId),
  1978. //AdminName string `description:"系统用户名称"`
  1979. RealName: department.DepartmentName,
  1980. ChildrenList: departmentGroupSellerList,
  1981. }
  1982. groupList, err := system.GetSysGroupByDepartmentId(department.DepartmentId)
  1983. if err != nil {
  1984. br.Msg = "获取失败"
  1985. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  1986. return
  1987. }
  1988. for _, group := range groupList {
  1989. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  1990. groupItem := company.DepartmentGroupSellers{
  1991. AdminId: fmt.Sprint("group_", group.DepartmentId),
  1992. //AdminName string `description:"系统用户名称"`
  1993. RealName: group.GroupName,
  1994. ChildrenList: groupSellerList,
  1995. }
  1996. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  1997. if err != nil {
  1998. br.Msg = "获取小组失败"
  1999. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  2000. return
  2001. }
  2002. for _, team := range teamList {
  2003. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  2004. teamItem := company.DepartmentGroupSellers{
  2005. AdminId: fmt.Sprint("team_", team.GroupId),
  2006. //AdminName string `description:"系统用户名称"`
  2007. RealName: team.GroupName,
  2008. ChildrenList: teamSellerList,
  2009. }
  2010. sellerList, err := system.GetTeamSysUserList(team.GroupId, 1)
  2011. if err != nil {
  2012. br.Msg = "获取销售失败"
  2013. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2014. return
  2015. }
  2016. for _, seller := range sellerList {
  2017. sellerItem := company.DepartmentGroupSellers{
  2018. AdminId: fmt.Sprint(seller.AdminId),
  2019. //AdminName string `description:"系统用户名称"`
  2020. RealName: seller.RealName,
  2021. Authority: seller.Authority,
  2022. RoleTypeCode: seller.RoleTypeCode,
  2023. }
  2024. //fmt.Println("seller.RealName:", seller.RealName)
  2025. teamSellerList = append(teamSellerList, sellerItem)
  2026. }
  2027. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  2028. teamItem.ChildrenList = teamSellerList
  2029. if len(teamSellerList) > 0 {
  2030. groupSellerList = append(groupSellerList, teamItem)
  2031. }
  2032. }
  2033. //分组为0的销售(直属分组)
  2034. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, 1)
  2035. if err != nil {
  2036. br.Msg = "获取销售失败"
  2037. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2038. return
  2039. }
  2040. if len(groupTeamSellerList) > 0 {
  2041. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  2042. for _, seller := range groupTeamSellerList {
  2043. sellerItem := company.DepartmentGroupSellers{
  2044. AdminId: fmt.Sprint(seller.AdminId),
  2045. //AdminName string `description:"系统用户名称"`
  2046. RealName: seller.RealName,
  2047. Authority: seller.Authority,
  2048. RoleTypeCode: seller.RoleTypeCode,
  2049. }
  2050. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  2051. }
  2052. //排个序
  2053. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  2054. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  2055. }
  2056. //groupItem.ChildrenList = groupSellerList
  2057. //if len(groupSellerList) > 0 {
  2058. // list = append(list, item)
  2059. //}
  2060. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  2061. //if err != nil {
  2062. // br.Msg = "获取销售失败"
  2063. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2064. // return
  2065. //}
  2066. //for _, seller := range sellerList {
  2067. // sellerItem := company.DepartmentGroupSellers{
  2068. // AdminId: fmt.Sprint(seller.AdminId),
  2069. // //AdminName string `description:"系统用户名称"`
  2070. // RealName: seller.RealName,
  2071. // Authority: seller.Authority,
  2072. // RoleTypeCode: seller.RoleTypeCode,
  2073. // }
  2074. // groupSellerList = append(groupSellerList, sellerItem)
  2075. //}
  2076. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  2077. groupItem.ChildrenList = groupSellerList
  2078. if len(groupSellerList) > 0 {
  2079. departmentGroupSellerList = append(departmentGroupSellerList, groupItem)
  2080. }
  2081. }
  2082. //分组为0的销售(直属部门)
  2083. departmentSellerList, err := system.GetDepartmentGroupSysUserList(department.DepartmentId, 0, roleCodeTypeStr)
  2084. if err != nil {
  2085. br.Msg = "获取销售失败"
  2086. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2087. return
  2088. }
  2089. if len(departmentSellerList) > 0 {
  2090. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  2091. for _, seller := range departmentSellerList {
  2092. sellerItem := company.DepartmentGroupSellers{
  2093. AdminId: fmt.Sprint(seller.AdminId),
  2094. //AdminName string `description:"系统用户名称"`
  2095. RealName: seller.RealName,
  2096. Authority: seller.Authority,
  2097. RoleTypeCode: seller.RoleTypeCode,
  2098. }
  2099. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  2100. }
  2101. //排个序
  2102. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  2103. departmentGroupSellerList = append(departmentGroupSellerList, tmpDepartmentGroupSellersList...)
  2104. }
  2105. item.ChildrenList = departmentGroupSellerList
  2106. if len(departmentGroupSellerList) > 0 {
  2107. list = append(list, item)
  2108. }
  2109. }
  2110. } else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
  2111. // 权益销售可以看到权益销售部的所有人
  2112. departmentId := 5
  2113. groupList, err := system.GetSysGroupByDepartmentId(departmentId)
  2114. if err != nil {
  2115. br.Msg = "获取失败"
  2116. br.ErrMsg = "获取分组失败,Err:" + err.Error()
  2117. return
  2118. }
  2119. for _, group := range groupList {
  2120. groupSellerList := make([]company.DepartmentGroupSellers, 0)
  2121. groupItem := company.DepartmentGroupSellers{
  2122. AdminId: fmt.Sprint("group_", group.DepartmentId),
  2123. //AdminName string `description:"系统用户名称"`
  2124. RealName: group.GroupName,
  2125. ChildrenList: groupSellerList,
  2126. }
  2127. teamList, err := system.GetSysTeamByDepartmentId(group.GroupId)
  2128. if err != nil {
  2129. br.Msg = "获取小组失败"
  2130. br.ErrMsg = "获取小组失败,Err:" + err.Error()
  2131. return
  2132. }
  2133. for _, team := range teamList {
  2134. teamSellerList := make([]company.DepartmentGroupSellers, 0)
  2135. teamItem := company.DepartmentGroupSellers{
  2136. AdminId: fmt.Sprint("team_", team.GroupId),
  2137. //AdminName string `description:"系统用户名称"`
  2138. RealName: team.GroupName,
  2139. ChildrenList: teamSellerList,
  2140. }
  2141. sellerList, err := system.GetTeamSysUserList(team.GroupId, 1)
  2142. if err != nil {
  2143. br.Msg = "获取销售失败"
  2144. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2145. return
  2146. }
  2147. for _, seller := range sellerList {
  2148. sellerItem := company.DepartmentGroupSellers{
  2149. AdminId: fmt.Sprint(seller.AdminId),
  2150. //AdminName string `description:"系统用户名称"`
  2151. RealName: seller.RealName,
  2152. Authority: seller.Authority,
  2153. RoleTypeCode: seller.RoleTypeCode,
  2154. }
  2155. //fmt.Println("seller.RealName:", seller.RealName)
  2156. teamSellerList = append(teamSellerList, sellerItem)
  2157. }
  2158. teamSellerList = sortDepartmentGroupSellers(teamSellerList)
  2159. teamItem.ChildrenList = teamSellerList
  2160. if len(teamSellerList) > 0 {
  2161. groupSellerList = append(groupSellerList, teamItem)
  2162. }
  2163. }
  2164. //分组为0的销售(直属分组)
  2165. groupTeamSellerList, err := system.GetGrooupsysUserList(group.GroupId, roleCodeTypeStr, 1)
  2166. if err != nil {
  2167. br.Msg = "获取销售失败"
  2168. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2169. return
  2170. }
  2171. if len(groupTeamSellerList) > 0 {
  2172. tmpDepartmentGroupSellersList := make([]company.DepartmentGroupSellers, 0)
  2173. for _, seller := range groupTeamSellerList {
  2174. sellerItem := company.DepartmentGroupSellers{
  2175. AdminId: fmt.Sprint(seller.AdminId),
  2176. //AdminName string `description:"系统用户名称"`
  2177. RealName: seller.RealName,
  2178. Authority: seller.Authority,
  2179. RoleTypeCode: seller.RoleTypeCode,
  2180. }
  2181. tmpDepartmentGroupSellersList = append(tmpDepartmentGroupSellersList, sellerItem)
  2182. }
  2183. //排个序
  2184. tmpDepartmentGroupSellersList = sortDepartmentGroupSellers(tmpDepartmentGroupSellersList)
  2185. groupSellerList = append(groupSellerList, tmpDepartmentGroupSellersList...)
  2186. }
  2187. //groupItem.ChildrenList = groupSellerList
  2188. //if len(groupSellerList) > 0 {
  2189. // list = append(list, item)
  2190. //}
  2191. //sellerList, err := system.GetGroupSysUserList(group.DepartmentId)
  2192. //if err != nil {
  2193. // br.Msg = "获取销售失败"
  2194. // br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2195. // return
  2196. //}
  2197. //for _, seller := range sellerList {
  2198. // sellerItem := company.DepartmentGroupSellers{
  2199. // AdminId: fmt.Sprint(seller.AdminId),
  2200. // //AdminName string `description:"系统用户名称"`
  2201. // RealName: seller.RealName,
  2202. // Authority: seller.Authority,
  2203. // RoleTypeCode: seller.RoleTypeCode,
  2204. // }
  2205. // groupSellerList = append(groupSellerList, sellerItem)
  2206. //}
  2207. //groupSellerList = sortDepartmentGroupSellers(groupSellerList)
  2208. groupItem.ChildrenList = groupSellerList
  2209. if len(groupSellerList) > 0 {
  2210. list = append(list, groupItem)
  2211. }
  2212. }
  2213. //分组为0的销售(直属部门)
  2214. departmentSellerList, err := system.GetDepartmentGroupSysUserList(departmentId, 0, roleCodeTypeStr)
  2215. if err != nil {
  2216. br.Msg = "获取销售失败"
  2217. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2218. return
  2219. }
  2220. if len(departmentSellerList) > 0 {
  2221. tmpDepartmentGroupSeller := make([]company.DepartmentGroupSellers, 0)
  2222. for _, seller := range departmentSellerList {
  2223. sellerItem := company.DepartmentGroupSellers{
  2224. AdminId: fmt.Sprint(seller.AdminId),
  2225. //AdminName string `description:"系统用户名称"`
  2226. RealName: seller.RealName,
  2227. Authority: seller.Authority,
  2228. RoleTypeCode: seller.RoleTypeCode,
  2229. }
  2230. tmpDepartmentGroupSeller = append(tmpDepartmentGroupSeller, sellerItem)
  2231. }
  2232. tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
  2233. list = append(list, tmpDepartmentGroupSeller...)
  2234. }
  2235. }
  2236. br.Ret = 200
  2237. br.Success = true
  2238. br.Msg = "获取成功"
  2239. br.Data = company.DepartmentGroupSellersResp{
  2240. List: list,
  2241. }
  2242. }
  2243. // ShareSellerList
  2244. // @Title 获取共享客户销售列表
  2245. // @Description 获取共享客户销售列表 接口
  2246. // @Success 200 {object} company.DepartmentGroupSellersResp
  2247. // @router /seller/share/list [get]
  2248. func (this *CompanySellerController) ShareSellerList() {
  2249. br := new(models.BaseResponse).Init()
  2250. defer func() {
  2251. this.Data["json"] = br
  2252. this.ServeJSON()
  2253. }()
  2254. sysUser := this.SysUser
  2255. if sysUser == nil {
  2256. br.Msg = "请登录"
  2257. br.ErrMsg = "请登录,SysUser Is Empty"
  2258. br.Ret = 408
  2259. return
  2260. }
  2261. groupId := 0
  2262. if utils.RunMode == "release" {
  2263. groupId = 37
  2264. } else {
  2265. groupId = 61
  2266. }
  2267. subAdmins, err := system.GetAdminByGroupId(groupId)
  2268. if err != nil && err.Error() != utils.ErrNoRow() {
  2269. br.Msg = "获取销售失败"
  2270. br.ErrMsg = "获取销售失败,Err:" + err.Error()
  2271. return
  2272. }
  2273. resp := make([]company.DepartmentGroupSellers, 0)
  2274. for _, seller := range subAdmins {
  2275. sellerItem := company.DepartmentGroupSellers{
  2276. AdminId: fmt.Sprint(seller.AdminId),
  2277. //AdminName string `description:"系统用户名称"`
  2278. RealName: seller.RealName,
  2279. Authority: seller.Authority,
  2280. RoleTypeCode: seller.RoleTypeCode,
  2281. }
  2282. resp = append(resp, sellerItem)
  2283. }
  2284. br.Ret = 200
  2285. br.Success = true
  2286. br.Msg = "获取成功"
  2287. br.Data = resp
  2288. }
  2289. // RoadshowFiccList
  2290. // @Title 路演FICC销售列表
  2291. // @Description 路演FICC销售列表
  2292. // @Success 200 {object} system.RoadshowGroupResp
  2293. // @router /seller/roadshow_ficc/list [get]
  2294. func (this *CompanySellerController) RoadshowFiccList() {
  2295. br := new(models.BaseResponse).Init()
  2296. defer func() {
  2297. if br.ErrMsg == "" {
  2298. br.IsSendEmail = false
  2299. }
  2300. this.Data["json"] = br
  2301. this.ServeJSON()
  2302. }()
  2303. sysUser := this.SysUser
  2304. if sysUser == nil {
  2305. br.Msg = "请登录"
  2306. br.ErrMsg = "请登录,SysUser Is Empty"
  2307. br.Ret = 408
  2308. return
  2309. }
  2310. resp := new(system.RoadshowGroupResp)
  2311. productId := services.GetProductId(sysUser.RoleTypeCode)
  2312. if productId == utils.COMPANY_PRODUCT_RAI_ID {
  2313. br.Ret = 200
  2314. br.Success = true
  2315. br.Msg = "获取成功"
  2316. br.Data = resp
  2317. return
  2318. }
  2319. // 分组
  2320. departmentId := 2
  2321. groups, e := system.GetGroupByDepartmentId(departmentId)
  2322. if e != nil {
  2323. br.Msg = "获取失败"
  2324. br.ErrMsg = "获取FICC分组失败, Err: " + e.Error()
  2325. return
  2326. }
  2327. teamGroupId := make(map[int]int, 0) // 小组ID对应的大组ID
  2328. var list []system.RoadshowGroups
  2329. for _, g := range groups {
  2330. if g.ParentId > 0 {
  2331. teamGroupId[g.GroupId] = g.ParentId
  2332. continue
  2333. }
  2334. // 大组
  2335. list = append(list, system.RoadshowGroups{
  2336. GroupId: g.GroupId,
  2337. GroupName: g.GroupName,
  2338. })
  2339. }
  2340. // 销售
  2341. roleArr := []string{
  2342. utils.ROLE_TYPE_CODE_FICC_ADMIN, utils.ROLE_TYPE_CODE_FICC_DEPARTMENT, utils.ROLE_TYPE_CODE_FICC_GROUP,
  2343. utils.ROLE_TYPE_CODE_FICC_TEAM, utils.ROLE_TYPE_CODE_FICC_SELLER,
  2344. }
  2345. cond := fmt.Sprintf(` AND role_type_code IN (%s)`, utils.GetOrmInReplace(len(roleArr)))
  2346. pars := make([]interface{}, 0)
  2347. pars = append(pars, roleArr)
  2348. sellers, e := system.GetSysUserItemsOrderByCreated(cond, pars)
  2349. if e != nil {
  2350. br.Msg = "获取失败"
  2351. br.ErrMsg = "获取FICC销售失败, Err: " + e.Error()
  2352. return
  2353. }
  2354. groupIdChild := make(map[int][]system.RoadshowGroupSellers) // 大组ID对应的销售
  2355. for _, s := range sellers {
  2356. var seller system.RoadshowGroupSellers
  2357. seller.AdminId = s.AdminId
  2358. seller.AdminName = s.RealName
  2359. gid := teamGroupId[s.GroupId]
  2360. if gid > 0 {
  2361. // 小组
  2362. seller.GroupId = gid
  2363. seller.TeamId = s.GroupId
  2364. } else {
  2365. // 大组
  2366. seller.GroupId = s.GroupId
  2367. }
  2368. groupIdChild[seller.GroupId] = append(groupIdChild[seller.GroupId], seller)
  2369. }
  2370. // 根据当前角色过滤可选项
  2371. for _, v := range list {
  2372. // 如果是销售、组长、主管, 那么过滤掉自己大组外的其他组
  2373. 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 {
  2374. if sysUser.GroupId != v.GroupId && teamGroupId[sysUser.GroupId] != v.GroupId {
  2375. continue
  2376. }
  2377. }
  2378. child := groupIdChild[v.GroupId]
  2379. // 如果是小组长, 那么只能看到自己小组的信息
  2380. if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM {
  2381. var team []system.RoadshowGroupSellers
  2382. for _, c := range child {
  2383. if c.TeamId == sysUser.GroupId {
  2384. team = append(team, c)
  2385. }
  2386. }
  2387. v.Child = team
  2388. resp.List = append(resp.List, v)
  2389. continue
  2390. }
  2391. // 如果是普通销售, 那么只能看到分组中的自己
  2392. if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER {
  2393. var self []system.RoadshowGroupSellers
  2394. for _, c := range child {
  2395. if c.AdminId == sysUser.AdminId {
  2396. self = append(self, c)
  2397. break
  2398. }
  2399. }
  2400. v.Child = self
  2401. resp.List = append(resp.List, v)
  2402. continue
  2403. }
  2404. // 非以上两种情况, 可见该大组所有销售
  2405. v.Child = child
  2406. resp.List = append(resp.List, v)
  2407. }
  2408. br.Ret = 200
  2409. br.Success = true
  2410. br.Msg = "获取成功"
  2411. br.Data = resp
  2412. }