|
@@ -7,6 +7,8 @@ import (
|
|
|
"hongze/hongze_yb/models/response"
|
|
|
"hongze/hongze_yb/models/response/purchase"
|
|
|
"hongze/hongze_yb/models/tables/chart_permission_chapter_mapping"
|
|
|
+ "hongze/hongze_yb/models/tables/chart_permission_search_key_word_mapping"
|
|
|
+ "hongze/hongze_yb/models/tables/rddp/classify"
|
|
|
"hongze/hongze_yb/models/tables/rddp/report"
|
|
|
"hongze/hongze_yb/models/tables/rddp/report_chapter"
|
|
|
"hongze/hongze_yb/models/tables/report_chapter_type"
|
|
@@ -252,4 +254,126 @@ func CheckReportPermission(userInfo user.UserInfo, reportId int) (authOk bool, p
|
|
|
}
|
|
|
authOk, permissionCheckInfo, err = company.GetCheckPermission(userInfo.CompanyID, int(userInfo.UserID), permissionIds)
|
|
|
return
|
|
|
+}
|
|
|
+
|
|
|
+// GetReportList 获取报告列表
|
|
|
+func GetReportList(user user.UserInfo, keyWord string, classifyIdFirst, classifyIdSecond, page, limit int) (ret *response.ReportList, err error) {
|
|
|
+ var errMsg string
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ global.LOG.Critical(fmt.Sprintf("GetReportList: userId=%d, err:%s, errMsg:%s", user.UserID, err.Error(), errMsg))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var condition string
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+
|
|
|
+ classifyParent, err := classify.GetByClassifyId(classifyIdFirst)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("分类查询出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if classifyParent.Id == 0 {
|
|
|
+ err = errors.New("该分类不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ condition = `classify_id_first = ?`
|
|
|
+ pars = append(pars, classifyIdFirst)
|
|
|
+ permissionMap := make(map[string][]int)
|
|
|
+ checkPermissionMap := make(map[string]bool)
|
|
|
+ if classifyIdSecond > 0 {
|
|
|
+ classifyInfo, tErr := classify.GetByClassifyId(classifyIdSecond)
|
|
|
+ if tErr != nil {
|
|
|
+ errMsg = tErr.Error()
|
|
|
+ err = errors.New("分类查询出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if classifyInfo.Id == 0 {
|
|
|
+ err = errors.New("该二级分类不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ condition += " AND classify_id_second = ?"
|
|
|
+ pars = append(pars, classifyIdSecond)
|
|
|
+ //查询二级分类对应的权限
|
|
|
+ permissionIds, tErr := chart_permission_search_key_word_mapping.GetChartPermissionIdsByKeyWord(classifyInfo.ClassifyName)
|
|
|
+ if tErr != nil {
|
|
|
+ errMsg = tErr.Error()
|
|
|
+ err = errors.New("分类权限查询出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionMap[classifyInfo.ClassifyName] = permissionIds
|
|
|
+ }else{
|
|
|
+ chartPermissions, tErr := chart_permission_search_key_word_mapping.GetChartPermissionByFrom("rddp")
|
|
|
+ if tErr != nil {
|
|
|
+ errMsg = tErr.Error()
|
|
|
+ err = errors.New("分类权限查询出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(chartPermissions) > 0 {
|
|
|
+ for _, v := range chartPermissions {
|
|
|
+ permissionMap[v.KeyWord] = append(permissionMap[v.KeyWord], v.ChartPermissionId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取有效的权限id列表
|
|
|
+ validPermissionIdList, err := company.GetValidPermissionIdListByCompany2ProductId(user.CompanyID, 1)
|
|
|
+ if err != nil && err != utils.ErrNoRow {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("查询分类出错")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(validPermissionIdList) > 0 {
|
|
|
+ for classifyName, perIds := range permissionMap {
|
|
|
+ checkLoop:
|
|
|
+ for _, checkId := range perIds{
|
|
|
+ for _, validPerid := range validPermissionIdList {
|
|
|
+ if checkId == validPerid {
|
|
|
+ checkPermissionMap[classifyName] = true
|
|
|
+ break checkLoop
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if keyWord != "" {
|
|
|
+ condition += ` AND (title LIKE ? OR abstract LIKE ?) `
|
|
|
+ pars = append(pars, "%" + keyWord + "%")
|
|
|
+ pars = append(pars, "%" + keyWord + "%")
|
|
|
+ }
|
|
|
+ offset := (page - 1) * limit
|
|
|
+ list, err := report.GetReportList(condition, pars, offset, limit)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = err.Error()
|
|
|
+ err = errors.New("报告查询出错")
|
|
|
+ }
|
|
|
+ log.Println(checkPermissionMap)
|
|
|
+ var reportList []*response.ReportListItem
|
|
|
+ if len(list) > 0 {
|
|
|
+ for _, reportInfo := range list {
|
|
|
+ reportItem := new(response.ReportListItem)
|
|
|
+ reportItem.ReportId = reportInfo.Id
|
|
|
+ reportItem.Title = reportInfo.Title
|
|
|
+ reportItem.PublishTime = reportInfo.PublishTime
|
|
|
+ reportItem.ClassifyNameFirst = reportInfo.ClassifyNameFirst
|
|
|
+ reportItem.ClassifyNameSecond = reportInfo.ClassifyNameSecond
|
|
|
+ reportItem.ClassifyIdFirst = reportInfo.ClassifyIdFirst
|
|
|
+ reportItem.ClassifyIdSecond = reportInfo.ClassifyIdSecond
|
|
|
+ reportItem.Stage = reportInfo.Stage
|
|
|
+ reportItem.Abstract = reportInfo.Abstract
|
|
|
+ reportItem.Author = reportInfo.Author
|
|
|
+ // reportItem.ReportImgUrl = classifyInfo.ReportImgUrl
|
|
|
+ if authOk,ok := checkPermissionMap[reportInfo.ClassifyNameSecond]; ok && authOk {
|
|
|
+ reportItem.VideoUrl = reportInfo.VideoUrl
|
|
|
+ reportItem.AuthOk = authOk
|
|
|
+ }
|
|
|
+ reportList = append(reportList, reportItem)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ ret = new(response.ReportList)
|
|
|
+ ret.List = reportList
|
|
|
+ return
|
|
|
}
|