123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package english_report
- import (
- "eta/eta_mobile/controllers"
- "eta/eta_mobile/models"
- "eta/eta_mobile/utils"
- "fmt"
- "strings"
- )
- // EnPermissionController 英文权限
- type EnPermissionController struct {
- controllers.BaseAuthController
- }
- // List
- // @Title 品种列表
- // @Description 品种列表
- // @Param Keyword query string false "关键词"
- // @Param ReportId query int false "报告ID-用于邮件推送时过滤掉无权限的品种"
- // @Param VideoId query int false "路演视频ID-用于邮件推送时过滤掉无权限的品种"
- // @Success 200 Ret=200 操作成功
- // @router /list [get]
- func (this *EnPermissionController) List() {
- br := new(models.BaseResponse).Init()
- defer func() {
- if br.ErrMsg == "" {
- br.IsSendEmail = false
- }
- this.Data["json"] = br
- this.ServeJSON()
- }()
- sysUser := this.SysUser
- if sysUser == nil {
- br.Msg = "请登录"
- br.ErrMsg = "请登录,SysUser Is Empty"
- br.Ret = 408
- return
- }
- keyword := this.GetString("Keyword", "")
- keyword = strings.TrimSpace(keyword)
- // 禁用指定报告、指定路演无权限的品种
- reportId, _ := this.GetInt("ReportId", 0)
- videoId, _ := this.GetInt("VideoId", 0)
- limitIds := make([]int, 0)
- if reportId > 0 {
- ps, e := models.GetEnPermissionIdsByEnglishReportId(reportId)
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取报告权限品种失败, Err: " + e.Error()
- return
- }
- limitIds = ps
- }
- if videoId > 0 {
- ps, e := models.GetEnPermissionIdsByEnglishVideoId(videoId)
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取视频权限品种失败, Err: " + e.Error()
- return
- }
- limitIds = ps
- }
- cond := ``
- pars := make([]interface{}, 0)
- if keyword != "" {
- k := fmt.Sprint("%", keyword, "%")
- cond += fmt.Sprintf(` AND %s LIKE ?`, models.EnPermissionColumns.EnPermissionName)
- pars = append(pars, k)
- }
- list, e := models.GetEnPermissionUnionList(cond, pars)
- if e != nil {
- br.Msg = "获取失败"
- br.ErrMsg = "获取品种Union列表失败, Err: " + e.Error()
- return
- }
- // 品种树
- resp := make([]*models.EnPermissionItem, 0)
- childMap := make(map[int][]*models.EnPermissionItem)
- for _, v := range list {
- t := new(models.EnPermissionItem)
- t.EnPermissionId = v.EnPermissionId
- t.EnPermissionName = v.EnPermissionName
- t.CnPermissionName = v.CnPermissionName
- t.ParentId = v.ParentId
- t.Sort = v.Sort
- t.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
- t.Child = make([]*models.EnPermissionItem, 0)
- if v.ParentId == 0 {
- resp = append(resp, t)
- continue
- }
- if v.ParentId > 0 {
- if childMap[v.ParentId] == nil {
- childMap[v.ParentId] = make([]*models.EnPermissionItem, 0)
- }
- // 无权限则隐藏
- if (reportId > 0 || videoId > 0) && !utils.InArrayByInt(limitIds, t.EnPermissionId) {
- continue
- }
- childMap[v.ParentId] = append(childMap[v.ParentId], t)
- }
- }
- for _, r := range resp {
- r.Child = childMap[r.EnPermissionId]
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "获取成功"
- br.Data = resp
- }
|