assessment_researcher.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  1. package assessment
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/system"
  7. "eta/eta_api/utils"
  8. "fmt"
  9. "github.com/rdlucklib/rdluck_tools/paging"
  10. "strconv"
  11. "strings"
  12. "time"
  13. )
  14. // AssessmentResearcherController 考核研究员
  15. type AssessmentResearcherController struct {
  16. controllers.BaseAuthController
  17. }
  18. // Add
  19. // @Title 新增研究员
  20. // @Description 新增研究员
  21. // @Param request body models.AssessmentResearcherAddReq true "type json string"
  22. // @Success 200 string "操作成功"
  23. // @router /researcher/add [post]
  24. func (this *AssessmentResearcherController) Add() {
  25. br := new(models.BaseResponse).Init()
  26. defer func() {
  27. if br.ErrMsg == "" {
  28. br.IsSendEmail = false
  29. }
  30. this.Data["json"] = br
  31. this.ServeJSON()
  32. }()
  33. sysUser := this.SysUser
  34. if sysUser == nil {
  35. br.Msg = "请登录"
  36. br.ErrMsg = "请登录,SysUser Is Empty"
  37. br.Ret = 408
  38. return
  39. }
  40. var req models.AssessmentResearcherAddReq
  41. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  42. br.Msg = "参数有误"
  43. br.ErrMsg = fmt.Sprintf("参数解析失败, %v", e)
  44. return
  45. }
  46. if req.AdminId <= 0 {
  47. br.Msg = "请选择研究员"
  48. return
  49. }
  50. // 检验是否已添加过
  51. researcherOb := new(models.AssessmentResearcher)
  52. {
  53. cond := fmt.Sprintf(` AND %s = ?`, researcherOb.Cols().AdminId)
  54. pars := make([]interface{}, 0)
  55. pars = append(pars, req.AdminId)
  56. exists, e := researcherOb.GetItemByCondition(cond, pars, "")
  57. if e != nil && !utils.IsErrNoRow(e) {
  58. br.Msg = "操作失败"
  59. br.ErrMsg = fmt.Sprintf("获取研究员失败, %v", e)
  60. return
  61. }
  62. if exists != nil && exists.AssessmentResearcherId > 0 {
  63. br.Msg = "该研究员已添加,请勿重复添加"
  64. return
  65. }
  66. }
  67. sysAdmin, e := system.GetSysAdminById(req.AdminId)
  68. if e != nil {
  69. if utils.IsErrNoRow(e) {
  70. br.Msg = "该用户不存在,请重新选择"
  71. return
  72. }
  73. br.Msg = "操作失败"
  74. br.ErrMsg = fmt.Sprintf("获取系统用户失败, %v", e)
  75. return
  76. }
  77. if sysAdmin.Enabled != 1 {
  78. br.Msg = "该用户被禁用,请重新选择"
  79. return
  80. }
  81. newResearcher := new(models.AssessmentResearcher)
  82. newResearcher.AdminId = req.AdminId
  83. newResearcher.RealName = sysAdmin.RealName
  84. newResearcher.Enabled = sysAdmin.Enabled
  85. newResearcher.CreateTime = time.Now().Local()
  86. newResearcher.ModifyTime = time.Now().Local()
  87. if e = newResearcher.Create(); e != nil {
  88. br.Msg = "操作失败"
  89. br.ErrMsg = fmt.Sprintf("新增研究员失败, %v", e)
  90. return
  91. }
  92. // 查看/统计权限
  93. mappings := make([]*models.AssessmentResearcherAdminMapping, 0)
  94. if len(req.ViewAdminIds) > 0 {
  95. for _, v := range req.ViewAdminIds {
  96. m := new(models.AssessmentResearcherAdminMapping)
  97. m.AssessmentResearcherId = newResearcher.AssessmentResearcherId
  98. m.AdminId = req.AdminId
  99. m.AuthAdminId = v
  100. m.AuthType = models.AssessmentResearcherAdminAuthTypeView
  101. mappings = append(mappings, m)
  102. }
  103. }
  104. if len(req.AssessmentAdminIds) > 0 {
  105. for _, v := range req.AssessmentAdminIds {
  106. m := new(models.AssessmentResearcherAdminMapping)
  107. m.AssessmentResearcherId = newResearcher.AssessmentResearcherId
  108. m.AdminId = req.AdminId
  109. m.AuthAdminId = v
  110. m.AuthType = models.AssessmentResearcherAdminAuthTypeStatistics
  111. mappings = append(mappings, m)
  112. }
  113. }
  114. if len(mappings) > 0 {
  115. mappingOb := new(models.AssessmentResearcherAdminMapping)
  116. if e = mappingOb.CreateMulti(mappings); e != nil {
  117. br.Msg = "操作失败"
  118. br.ErrMsg = fmt.Sprintf("批量新增权限失败, %v", e)
  119. return
  120. }
  121. }
  122. br.Ret = 200
  123. br.Success = true
  124. br.Msg = "操作成功"
  125. }
  126. // Edit
  127. // @Title 编辑研究员
  128. // @Description 编辑研究员
  129. // @Param request body models.AssessmentResearcherEditReq true "type json string"
  130. // @Success 200 string "操作成功"
  131. // @router /researcher/edit [post]
  132. func (this *AssessmentResearcherController) Edit() {
  133. br := new(models.BaseResponse).Init()
  134. defer func() {
  135. if br.ErrMsg == "" {
  136. br.IsSendEmail = false
  137. }
  138. this.Data["json"] = br
  139. this.ServeJSON()
  140. }()
  141. sysUser := this.SysUser
  142. if sysUser == nil {
  143. br.Msg = "请登录"
  144. br.ErrMsg = "请登录,SysUser Is Empty"
  145. br.Ret = 408
  146. return
  147. }
  148. var req models.AssessmentResearcherEditReq
  149. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  150. br.Msg = "参数有误"
  151. br.ErrMsg = fmt.Sprintf("参数解析失败, %v", e)
  152. return
  153. }
  154. if req.AssessmentResearcherId <= 0 {
  155. br.Msg = "参数有误"
  156. br.ErrMsg = fmt.Sprintf("参数有误, AssessmentResearcherId: %d", req.AssessmentResearcherId)
  157. return
  158. }
  159. researcherOb := new(models.AssessmentResearcher)
  160. researcher, e := researcherOb.GetItemById(req.AssessmentResearcherId)
  161. if e != nil {
  162. if utils.IsErrNoRow(e) {
  163. br.Msg = "研究员不存在,请刷新页面"
  164. return
  165. }
  166. br.Msg = "操作失败"
  167. br.ErrMsg = fmt.Sprintf("获取研究员失败, %v", e)
  168. return
  169. }
  170. // 查看/统计权限
  171. mappings := make([]*models.AssessmentResearcherAdminMapping, 0)
  172. if len(req.ViewAdminIds) > 0 {
  173. for _, v := range req.ViewAdminIds {
  174. m := new(models.AssessmentResearcherAdminMapping)
  175. m.AssessmentResearcherId = researcher.AssessmentResearcherId
  176. m.AdminId = researcher.AdminId
  177. m.AuthAdminId = v
  178. m.AuthType = models.AssessmentResearcherAdminAuthTypeView
  179. mappings = append(mappings, m)
  180. }
  181. }
  182. if len(req.AssessmentAdminIds) > 0 {
  183. for _, v := range req.AssessmentAdminIds {
  184. m := new(models.AssessmentResearcherAdminMapping)
  185. m.AssessmentResearcherId = researcher.AssessmentResearcherId
  186. m.AdminId = researcher.AdminId
  187. m.AuthAdminId = v
  188. m.AuthType = models.AssessmentResearcherAdminAuthTypeStatistics
  189. mappings = append(mappings, m)
  190. }
  191. }
  192. // 清空关联后新增
  193. mappingOb := new(models.AssessmentResearcherAdminMapping)
  194. {
  195. cond := fmt.Sprintf(`%s = ?`, mappingOb.Cols().AdminId)
  196. pars := make([]interface{}, 0)
  197. pars = append(pars, researcher.AdminId)
  198. if e = mappingOb.RemoveByCondition(cond, pars); e != nil {
  199. br.Msg = "操作失败"
  200. br.ErrMsg = fmt.Sprintf("清空权限失败, %v", e)
  201. return
  202. }
  203. }
  204. if len(mappings) > 0 {
  205. if e = mappingOb.CreateMulti(mappings); e != nil {
  206. br.Msg = "操作失败"
  207. br.ErrMsg = fmt.Sprintf("批量新增权限失败, %v", e)
  208. return
  209. }
  210. }
  211. br.Ret = 200
  212. br.Success = true
  213. br.Msg = "操作成功"
  214. }
  215. // Remove
  216. // @Title 删除研究员
  217. // @Description 删除研究员
  218. // @Param request body models.AssessmentResearcherRemoveReq true "type json string"
  219. // @Success 200 string "操作成功"
  220. // @router /researcher/remove [post]
  221. func (this *AssessmentResearcherController) Remove() {
  222. br := new(models.BaseResponse).Init()
  223. defer func() {
  224. if br.ErrMsg == "" {
  225. br.IsSendEmail = false
  226. }
  227. this.Data["json"] = br
  228. this.ServeJSON()
  229. }()
  230. sysUser := this.SysUser
  231. if sysUser == nil {
  232. br.Msg = "请登录"
  233. br.ErrMsg = "请登录,SysUser Is Empty"
  234. br.Ret = 408
  235. return
  236. }
  237. var req models.AssessmentResearcherRemoveReq
  238. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
  239. br.Msg = "参数有误"
  240. br.ErrMsg = fmt.Sprintf("参数解析失败, %v", e)
  241. return
  242. }
  243. if req.AssessmentResearcherId <= 0 {
  244. br.Msg = "参数有误"
  245. br.ErrMsg = fmt.Sprintf("参数有误, AssessmentResearcherId: %d", req.AssessmentResearcherId)
  246. return
  247. }
  248. researcherOb := new(models.AssessmentResearcher)
  249. researcher, e := researcherOb.GetItemById(req.AssessmentResearcherId)
  250. if e != nil {
  251. if utils.IsErrNoRow(e) {
  252. br.Ret = 200
  253. br.Success = true
  254. br.Msg = "操作成功"
  255. return
  256. }
  257. br.Msg = "操作失败"
  258. br.ErrMsg = fmt.Sprintf("获取研究员失败, %v", e)
  259. return
  260. }
  261. if e = researcher.Remove(); e != nil {
  262. br.Msg = "操作失败"
  263. br.ErrMsg = fmt.Sprintf("删除研究员失败, %v", e)
  264. return
  265. }
  266. // 清空关联
  267. adminMappingOb := new(models.AssessmentResearcherAdminMapping)
  268. {
  269. cond := fmt.Sprintf(`%s = ?`, adminMappingOb.Cols().AdminId)
  270. pars := make([]interface{}, 0)
  271. pars = append(pars, researcher.AdminId)
  272. if e = adminMappingOb.RemoveByCondition(cond, pars); e != nil {
  273. br.Msg = "操作失败"
  274. br.ErrMsg = fmt.Sprintf("清空权限失败, %v", e)
  275. return
  276. }
  277. }
  278. varietyMappingOb := new(models.AssessmentResearcherVarietyMapping)
  279. {
  280. cond := fmt.Sprintf(`%s = ?`, varietyMappingOb.Cols().AdminId)
  281. pars := make([]interface{}, 0)
  282. pars = append(pars, researcher.AdminId)
  283. if e = varietyMappingOb.RemoveByCondition(cond, pars); e != nil {
  284. br.Msg = "操作失败"
  285. br.ErrMsg = fmt.Sprintf("清空品种关联失败, %v", e)
  286. return
  287. }
  288. }
  289. br.Ret = 200
  290. br.Success = true
  291. br.Msg = "操作成功"
  292. }
  293. // Detail
  294. // @Title 研究员详情
  295. // @Description 研究员详情
  296. // @Param AssessmentResearcherId query int true "研究员ID"
  297. // @Success 200 string "操作成功"
  298. // @router /researcher/detail [get]
  299. func (this *AssessmentResearcherController) Detail() {
  300. br := new(models.BaseResponse).Init()
  301. defer func() {
  302. if br.ErrMsg == "" {
  303. br.IsSendEmail = false
  304. }
  305. this.Data["json"] = br
  306. this.ServeJSON()
  307. }()
  308. sysUser := this.SysUser
  309. if sysUser == nil {
  310. br.Msg = "请登录"
  311. br.ErrMsg = "请登录,SysUser Is Empty"
  312. br.Ret = 408
  313. return
  314. }
  315. researcherId, _ := this.GetInt("AssessmentResearcherId")
  316. if researcherId <= 0 {
  317. br.Msg = "参数有误"
  318. br.ErrMsg = fmt.Sprintf("参数有误, AssessmentResearcherId: %d", researcherId)
  319. return
  320. }
  321. researcherOb := new(models.AssessmentResearcher)
  322. researcher, e := researcherOb.GetItemById(researcherId)
  323. if e != nil {
  324. if utils.IsErrNoRow(e) {
  325. br.Msg = "研究员不存在,请重新页面"
  326. return
  327. }
  328. br.Msg = "获取失败"
  329. br.ErrMsg = fmt.Sprintf("获取研究员失败, %v", e)
  330. return
  331. }
  332. resp := researcher.Format2Detail()
  333. // 获取系统用户
  334. adminMapping := make(map[int]*system.Admin)
  335. {
  336. admins, e := system.GetSysAdminList(``, make([]interface{}, 0), []string{}, "")
  337. if e != nil {
  338. br.Msg = "获取失败"
  339. br.ErrMsg = fmt.Sprintf("获取系统用户失败, %v", e)
  340. return
  341. }
  342. for _, v := range admins {
  343. adminMapping[v.AdminId] = v
  344. }
  345. }
  346. mappings := make([]*models.AssessmentResearcherAdminMapping, 0)
  347. {
  348. mappingOb := new(models.AssessmentResearcherAdminMapping)
  349. cond := fmt.Sprintf(` AND %s = ?`, mappingOb.Cols().AdminId)
  350. pars := make([]interface{}, 0)
  351. pars = append(pars, researcher.AdminId)
  352. list, e := mappingOb.GetItemsByCondition(cond, pars, []string{}, "")
  353. if e != nil {
  354. br.Msg = "获取失败"
  355. br.ErrMsg = fmt.Sprintf("获取研究员用户权限关系失败, %v", e)
  356. return
  357. }
  358. mappings = list
  359. }
  360. for _, m := range mappings {
  361. ad := adminMapping[m.AuthAdminId]
  362. if ad == nil {
  363. continue
  364. }
  365. ar := models.AssessmentResearcherDetail{
  366. AdminId: m.AuthAdminId,
  367. RealName: ad.RealName,
  368. Enabled: ad.Enabled,
  369. }
  370. if m.AuthType == models.AssessmentResearcherAdminAuthTypeView {
  371. resp.ViewAdmins = append(resp.ViewAdmins, ar)
  372. continue
  373. }
  374. resp.AssessmentAdmins = append(resp.AssessmentAdmins, ar)
  375. }
  376. br.Data = resp
  377. br.Ret = 200
  378. br.Success = true
  379. br.Msg = "获取成功"
  380. }
  381. // PageList
  382. // @Title 研究员列表-分页
  383. // @Description 研究员列表-分页
  384. // @Param request body models.AssessmentResearcherPageListReq true "type json string"
  385. // @Success 200 string "操作成功"
  386. // @router /researcher/page_list [get]
  387. func (this *AssessmentResearcherController) PageList() {
  388. br := new(models.BaseResponse).Init()
  389. defer func() {
  390. if br.ErrMsg == "" {
  391. br.IsSendEmail = false
  392. }
  393. this.Data["json"] = br
  394. this.ServeJSON()
  395. }()
  396. sysUser := this.SysUser
  397. if sysUser == nil {
  398. br.Msg = "请登录"
  399. br.ErrMsg = "请登录,SysUser Is Empty"
  400. br.Ret = 408
  401. return
  402. }
  403. params := new(models.AssessmentResearcherPageListReq)
  404. if e := this.ParseForm(params); e != nil {
  405. br.Msg = "获取失败"
  406. br.ErrMsg = "参数解析失败, Err: " + e.Error()
  407. return
  408. }
  409. params.RealName = strings.TrimSpace(params.RealName)
  410. resp := new(models.AssessmentResearcherPageListResp)
  411. resp.List = make([]*models.AssessmentResearcherDetail, 0)
  412. // 分页
  413. var startSize int
  414. if params.PageSize <= 0 {
  415. params.PageSize = utils.PageSize20
  416. }
  417. if params.CurrentIndex <= 0 {
  418. params.CurrentIndex = 1
  419. }
  420. startSize = utils.StartIndex(params.CurrentIndex, params.PageSize)
  421. // 筛选条件
  422. researcherOb := new(models.AssessmentResearcher)
  423. cond := fmt.Sprintf(` AND %s = ?`, researcherOb.Cols().Enabled)
  424. pars := make([]interface{}, 0)
  425. pars = append(pars, models.AssessmentResearcherEnabled)
  426. {
  427. // 研究员姓名
  428. if params.RealName != "" {
  429. kw := fmt.Sprint("%", params.RealName, "%")
  430. cond += fmt.Sprintf(` AND %s LIKE ?`, researcherOb.Cols().RealName)
  431. pars = append(pars, kw)
  432. }
  433. // 研究员IDs
  434. if params.AssessmentResearcherIds != "" {
  435. var researcherIds []int
  436. arr := strings.Split(params.AssessmentResearcherIds, ",")
  437. for _, v := range arr {
  438. i, _ := strconv.Atoi(v)
  439. if i > 0 {
  440. researcherIds = append(researcherIds, i)
  441. }
  442. }
  443. if len(researcherIds) == 0 {
  444. resp.Paging = paging.GetPaging(params.CurrentIndex, params.PageSize, 0)
  445. br.Data = resp
  446. br.Ret = 200
  447. br.Success = true
  448. br.Msg = "获取成功"
  449. return
  450. }
  451. cond += fmt.Sprintf(` AND %s IN (?)`, researcherOb.Cols().PrimaryId)
  452. pars = append(pars, researcherIds)
  453. }
  454. // 仅获取自己有权限的,与研究员IDs条件冲突
  455. if params.AssessmentResearcherIds == "" && params.ResearcherAuthType > 0 {
  456. // 自己如果是研究员的话要把自己也加进去
  457. var researcherIds []int
  458. condResearcher := fmt.Sprintf(` AND %s = ?`, researcherOb.Cols().AdminId)
  459. parsResearcher := make([]interface{}, 0)
  460. parsResearcher = append(parsResearcher, sysUser.AdminId)
  461. researcher, e := researcherOb.GetItemByCondition(condResearcher, parsResearcher, "")
  462. if e != nil && !utils.IsErrNoRow(e) {
  463. br.Msg = "获取失败"
  464. br.ErrMsg = fmt.Sprintf("获取研究员失败, %v", e)
  465. return
  466. }
  467. if researcher != nil && researcher.AssessmentResearcherId > 0 {
  468. researcherIds = append(researcherIds, researcher.AssessmentResearcherId)
  469. }
  470. mappingOb := new(models.AssessmentResearcherAdminMapping)
  471. condMapping := fmt.Sprintf(` AND %s = ? AND %s = ?`, mappingOb.Cols().AuthAdminId, mappingOb.Cols().AuthType)
  472. parsMapping := make([]interface{}, 0)
  473. parsMapping = append(parsMapping, sysUser.AdminId, params.ResearcherAuthType)
  474. list, e := mappingOb.GetItemsByCondition(condMapping, parsMapping, []string{}, "")
  475. if e != nil {
  476. br.Msg = "获取失败"
  477. br.ErrMsg = fmt.Sprintf("获取用户有权限的研究员失败, %v", e)
  478. return
  479. }
  480. for _, v := range list {
  481. researcherIds = append(researcherIds, v.AssessmentResearcherId)
  482. }
  483. if len(researcherIds) == 0 {
  484. resp.Paging = paging.GetPaging(params.CurrentIndex, params.PageSize, 0)
  485. br.Data = resp
  486. br.Ret = 200
  487. br.Success = true
  488. br.Msg = "获取成功"
  489. return
  490. }
  491. cond += fmt.Sprintf(` AND %s IN (?)`, researcherOb.Cols().PrimaryId)
  492. pars = append(pars, researcherIds)
  493. }
  494. }
  495. // 分页列表
  496. total, e := researcherOb.GetCountByCondition(cond, pars)
  497. if e != nil {
  498. br.Msg = "获取失败"
  499. br.ErrMsg = fmt.Sprintf("获取研究员列表总数失败, %v", e)
  500. return
  501. }
  502. researchers, e := researcherOb.GetPageItemsByCondition(cond, pars, []string{}, "", startSize, params.PageSize)
  503. if e != nil {
  504. br.Msg = "获取失败"
  505. br.ErrMsg = fmt.Sprintf("获取研究员失败, %v", e)
  506. return
  507. }
  508. var adminIds []int
  509. for _, v := range researchers {
  510. adminIds = append(adminIds, v.AdminId)
  511. }
  512. if total == 0 || len(adminIds) == 0 {
  513. resp.Paging = paging.GetPaging(params.CurrentIndex, params.PageSize, 0)
  514. br.Data = resp
  515. br.Ret = 200
  516. br.Success = true
  517. br.Msg = "获取成功"
  518. return
  519. }
  520. // 获取系统用户
  521. adminMapping := make(map[int]*system.Admin)
  522. {
  523. admins, e := system.GetSysAdminList(``, make([]interface{}, 0), []string{}, "")
  524. if e != nil {
  525. br.Msg = "获取失败"
  526. br.ErrMsg = fmt.Sprintf("获取系统用户失败, %v", e)
  527. return
  528. }
  529. for _, v := range admins {
  530. adminMapping[v.AdminId] = v
  531. }
  532. }
  533. // 研究员关联权限
  534. viewAdminMappings, assessmentAdminMappings := make(map[int][]models.AssessmentResearcherDetail), make(map[int][]models.AssessmentResearcherDetail)
  535. {
  536. mappingOb := new(models.AssessmentResearcherAdminMapping)
  537. condMapping := fmt.Sprintf(` AND %s IN (?)`, mappingOb.Cols().AdminId)
  538. parsMapping := make([]interface{}, 0)
  539. parsMapping = append(parsMapping, adminIds)
  540. list, e := mappingOb.GetItemsByCondition(condMapping, parsMapping, []string{}, "")
  541. if e != nil {
  542. br.Msg = "获取失败"
  543. br.ErrMsg = fmt.Sprintf("获取研究员用户权限关系失败, %v", e)
  544. return
  545. }
  546. for _, v := range list {
  547. ad := adminMapping[v.AuthAdminId]
  548. if ad == nil {
  549. continue
  550. }
  551. ar := models.AssessmentResearcherDetail{
  552. AdminId: v.AuthAdminId,
  553. RealName: ad.RealName,
  554. Enabled: ad.Enabled,
  555. }
  556. if v.AuthType == models.AssessmentResearcherAdminAuthTypeView {
  557. viewAdminMappings[v.AdminId] = append(viewAdminMappings[v.AdminId], ar)
  558. continue
  559. }
  560. assessmentAdminMappings[v.AdminId] = append(assessmentAdminMappings[v.AdminId], ar)
  561. }
  562. }
  563. for _, v := range researchers {
  564. t := v.Format2Detail()
  565. t.ViewAdmins = viewAdminMappings[v.AdminId]
  566. t.AssessmentAdmins = assessmentAdminMappings[v.AdminId]
  567. resp.List = append(resp.List, t)
  568. }
  569. resp.Paging = paging.GetPaging(params.CurrentIndex, params.PageSize, total)
  570. br.Data = resp
  571. br.Ret = 200
  572. br.Success = true
  573. br.Msg = "获取成功"
  574. }