Browse Source

修改分类

xyxie 1 year ago
parent
commit
732f88b14a

+ 87 - 45
controllers/english_report/english_classify.go

@@ -31,7 +31,6 @@ func (this *EnglishReportController) ListClassify() {
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
 	keyWord := this.GetString("KeyWord")
-	classifyType, _ := this.GetInt("ClassifyType", 0)
 
 	var startSize int
 	if pageSize <= 0 {
@@ -46,13 +45,21 @@ func (this *EnglishReportController) ListClassify() {
 	page := paging.GetPaging(currentIndex, pageSize, 0)
 	resp := new(models.EnglishClassifyListResp)
 
-	list, err := models.GetEnglishClassifyList(startSize, pageSize, keyWord, classifyType)
+	// 处理一级分类分页的情况
+	rootList, err := models.GetEnglishClassifyRootId(startSize, pageSize, keyWord)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	total, err := models.GetEnglishClassifyListCount(keyWord, classifyType)
+	var ids []int
+	var rootIds []int
+	rootMap := make(map[int]struct{}, 0)
+	for _, v := range rootList {
+		rootIds = append(rootIds, v.Id)
+		rootMap[v.Id] = struct{}{}
+	}
+	total, err := models.GetEnglishClassifyListCount(keyWord)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -68,65 +75,100 @@ func (this *EnglishReportController) ListClassify() {
 		br.Msg = "获取成功"
 		return
 	}
-	var parentIds []int
-	for _, v := range list {
-		parentIds = append(parentIds, v.Id)
-	}
+	page = paging.GetPaging(currentIndex, pageSize, total)
 
-	childMap := make(map[int][]*models.EnglishClassifyList)
-	tmpList, err := models.GetEnglishClassifyChildByParentIds(parentIds, keyWord, classifyType)
+	//获取相关的分类ID
+	idList, err := models.GetEnglishClassifyListByRootId(rootIds, keyWord)
 	if err != nil {
-		br.Msg = "获取二级分类失败"
-		br.ErrMsg = "获取二级分类失败,Err:" + err.Error()
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-
-	// 二级分类-品种权限
+	secondListMap := make(map[int][]*models.EnglishClassifyList)
+	thirdListMap := make(map[int][]*models.EnglishClassifyList)
+	var thirdIds []int
+	var sortChildList models.RSChildClassifyList
+	// 三级分类-品种权限
 	permissionMap := make(map[int][]int)
-	{
-		classifyIds := make([]int, 0)
+
+	if len(idList) > 0 {
+		childIdMap := make(map[int]struct{}, 0)
+		for _, v := range idList {
+			if _, ok := childIdMap[v.ParentId]; !ok {
+				ids = append(ids, v.ParentId)
+			}
+			if _, ok := childIdMap[v.Id]; !ok {
+				ids = append(ids, v.Id)
+			}
+		}
+		tmpList, err := models.GetEnglishClassifyChildByIds(ids)
+		if err != nil {
+			br.Msg = "获取二级分类失败"
+			br.ErrMsg = "获取二级分类失败,Err:" + err.Error()
+			return
+		}
 		for _, v := range tmpList {
-			classifyIds = append(classifyIds, v.Id)
+			if _, ok := rootMap[v.ParentId]; !ok {
+				thirdIds = append(thirdIds, v.Id)
+			}
 		}
-		if len(classifyIds) > 0 {
-			cond := fmt.Sprintf(` AND %s IN (%s)`, models.EnClassifyPermissionColumns.EnClassifyId, utils.GetOrmInReplace(len(classifyIds)))
-			pars := make([]interface{}, 0)
-			pars = append(pars, classifyIds)
-			ob := new(models.EnClassifyPermission)
-			items, e := ob.GetItemsByCondition(cond, pars, []string{}, "")
-			if e != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取客户权限列表失败, Err: " + e.Error()
-				return
+		{
+			classifyIds := thirdIds
+			if len(classifyIds) > 0 {
+				cond := fmt.Sprintf(` AND %s IN (%s)`, models.EnClassifyPermissionColumns.EnClassifyId, utils.GetOrmInReplace(len(classifyIds)))
+				pars := make([]interface{}, 0)
+				pars = append(pars, classifyIds)
+				ob := new(models.EnClassifyPermission)
+				items, e := ob.GetItemsByCondition(cond, pars, []string{}, "")
+				if e != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "获取客户权限列表失败, Err: " + e.Error()
+					return
+				}
+				for _, v := range items {
+					if permissionMap[v.EnClassifyId] == nil {
+						permissionMap[v.EnClassifyId] = make([]int, 0)
+					}
+					permissionMap[v.EnClassifyId] = append(permissionMap[v.EnClassifyId], v.EnPermissionId)
+				}
 			}
-			for _, v := range items {
-				if permissionMap[v.EnClassifyId] == nil {
-					permissionMap[v.EnClassifyId] = make([]int, 0)
+		}
+		// 处理三级分类
+		for _, v := range tmpList {
+			if _, ok := rootMap[v.ParentId]; !ok {
+				if p, ok1 := permissionMap[v.Id]; ok1 {
+					v.EnPermissions = p
 				}
-				permissionMap[v.EnClassifyId] = append(permissionMap[v.EnClassifyId], v.EnPermissionId)
+				thirdListMap[v.ParentId] = append(thirdListMap[v.ParentId], v)
 			}
 		}
-	}
 
-	for _, v := range tmpList {
-		v.EnPermissions = permissionMap[v.Id]
-		childMap[v.ParentId] = append(childMap[v.ParentId], v)
-	}
-	for _, v := range list {
-		if child, ok := childMap[v.Id]; ok {
-			v.Child = child
+		//处理二级分类
+		for _, v := range tmpList {
+			if _, ok := rootMap[v.ParentId]; ok {
+				if child, ok1 := thirdListMap[v.Id]; ok1 {
+					sortChildList = child
+					sort.Sort(sortChildList)
+					v.Child = sortChildList
+				}
+				secondListMap[v.ParentId] = append(secondListMap[v.ParentId], v)
+			}
 		}
 	}
+
+	//处理一级分类
 	var sortList models.RSClassifyList
-	sortList = list
+	for _, v := range rootList {
+		if child, ok := secondListMap[v.Id]; ok {
+			sortChildList = child
+			sort.Sort(sortChildList)
+			v.Child = sortChildList
+		}
+		sortList = append(sortList, v)
+	}
+
 	sort.Sort(sortList)
 
-	for _, item := range sortList {
-		var sortChildList models.RSChildClassifyList
-		sortChildList = item.Child
-		sort.Sort(sortChildList)
-		item.Child = sortChildList
-	}
 	resp.List = sortList
 	resp.Paging = page
 

+ 24 - 0
controllers/english_report/english_video.go

@@ -321,6 +321,26 @@ func (this *EnglishVideoController) List() {
 		return
 	}
 
+	// 查询分类信息
+	var classifyIdSecondSlice []int
+	for _, item := range list {
+		classifyIdSecondSlice = append(classifyIdSecondSlice, item.ClassifyIdSecond)
+	}
+	nameList, err := models.GetEnglishClassifyFullNameByIds(classifyIdSecondSlice)
+	if err != nil {
+		br.Msg = "获取分类名称失败"
+		br.ErrMsg = "获取分类名称失败, ERR:" + err.Error()
+		return
+	}
+	classifyNameMap := make(map[int]string)
+	for _, v := range nameList {
+		if v.RootId == 0 {
+			classifyNameMap[v.Id] = strings.Join([]string{v.ParentName, v.ClassifyName}, "/")
+		} else {
+			classifyNameMap[v.Id] = strings.Join([]string{v.RootName, v.ParentName, v.ClassifyName}, "/")
+		}
+	}
+
 	// todo 获取邮件配置-是否有权限群发
 	conf := new(models.EnglishReportEmailConf)
 	authKey := "english_report_email_conf"
@@ -372,6 +392,10 @@ func (this *EnglishVideoController) List() {
 		if item.PvEmail > 0 {
 			item.Pv = 0
 		}
+		//处理分类名
+		if n, ok := classifyNameMap[item.ClassifyIdSecond]; ok {
+			item.FullClassifyName = n
+		}
 	}
 	page := paging.GetPaging(currentIndex, pageSize, total)
 	resp := new(models.EnglishVideoListResp)

+ 56 - 474
models/english_report.go

@@ -23,6 +23,7 @@ type EnglishReport struct {
 	ModifyTime         time.Time `description:"修改时间"`
 	State              int       `description:"1:未发布,2:已发布"`
 	PublishTime        time.Time `description:"发布时间"`
+	PrePublishTime     time.Time `description:"预发布时间"`
 	Stage              int       `description:"期数"`
 	Content            string    `description:"内容"`
 	VideoUrl           string    `description:"音频文件URL"`
@@ -54,19 +55,6 @@ func GetEnglishReportStage(classifyIdFirst, classifyIdSecond int) (count int, er
 	return
 }
 
-func GetEnglishReportStageEdit(classifyIdFirst, classifyIdSecond, reportId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ``
-	if classifyIdSecond > 0 {
-		sql = "SELECT MAX(stage) AS max_stage FROM english_report WHERE classify_id_second=? AND id<>? "
-		o.Raw(sql, classifyIdSecond, reportId).QueryRow(&count)
-	} else {
-		sql = "SELECT MAX(stage) AS max_stage FROM english_report WHERE classify_id_first=? AND id<>? "
-		o.Raw(sql, classifyIdFirst, reportId).QueryRow(&count)
-	}
-	return
-}
-
 func AddEnglishReport(item *EnglishReport) (lastId int64, err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	lastId, err = o.Insert(item)
@@ -80,57 +68,11 @@ func ModifyEnglishReportCode(reportId int64, reportCode string) (err error) {
 	return
 }
 
-type AddEnglishReportReq struct {
-	AddType            int    `description:"新增方式:1:新增报告,2:继承报告"`
-	ClassifyIdFirst    int    `description:"一级分类id"`
-	ClassifyNameFirst  string `description:"一级分类名称"`
-	ClassifyIdSecond   int    `description:"二级分类id"`
-	ClassifyNameSecond string `description:"二级分类名称"`
-	Title              string `description:"标题"`
-	Abstract           string `description:"摘要"`
-	Author             string `description:"作者"`
-	Frequency          string `description:"频度"`
-	State              int    `description:"状态:1:未发布,2:已发布"`
-	Content            string `description:"内容"`
-	CreateTime         string `description:"创建时间"`
-	Overview           string `description:"英文概述部分"`
-}
-
 type AddEnglishReportResp struct {
 	ReportId   int64  `description:"报告id"`
 	ReportCode string `description:"报告code"`
 }
 
-type EditEnglishReportReq struct {
-	ReportId           int64  `description:"报告id"`
-	ClassifyIdFirst    int    `description:"一级分类id"`
-	ClassifyNameFirst  string `description:"一级分类名称"`
-	ClassifyIdSecond   int    `description:"二级分类id"`
-	ClassifyNameSecond string `description:"二级分类名称"`
-	Title              string `description:"标题"`
-	Abstract           string `description:"摘要"`
-	Author             string `description:"作者"`
-	Frequency          string `description:"频度"`
-	State              int    `description:"状态:1:未发布,2:已发布"`
-	Content            string `description:"内容"`
-	CreateTime         string `description:"创建时间"`
-	Overview           string `description:"英文概述部分"`
-}
-
-type EditEnglishReportFromPolicyReq struct {
-	ReportId   int64  `description:"报告id"`
-	Title      string `description:"标题"`
-	Abstract   string `description:"摘要"`
-	Author     string `description:"作者"`
-	Frequency  string `description:"频度"`
-	CreateTime string `description:"创建时间"`
-	//Overview           string `description:"英文概述部分"`
-}
-type EditEnglishReportResp struct {
-	ReportId   int64  `description:"报告id"`
-	ReportCode string `description:"报告code"`
-}
-
 type ElasticEnglishReportDetail struct {
 	Id                 string `description:"报告id或者线上路演Id"`
 	ReportId           int    `description:"报告id"`
@@ -153,222 +95,12 @@ type ElasticEnglishReportDetail struct {
 	Overview           string `description:"英文概述部分"`
 }
 
-func EditEnglishReport(item *EnglishReport, reportId int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE english_report
-			SET
-			  classify_id_first =?,
-			  classify_name_first = ?,
-			  classify_id_second = ?,
-			  classify_name_second = ?,
-			  title = ?,
-			  abstract = ?,
-			  author = ?,
-			  frequency = ?,
-			  state = ?,
-			  content = ?,
-			  content_sub = ?,
-			  stage =?,
-			  create_time = ?,
-			  modify_time = ?,
-			  overview = ?
-			WHERE id = ? `
-	_, err = o.Raw(sql, item.ClassifyIdFirst, item.ClassifyNameFirst, item.ClassifyIdSecond, item.ClassifyNameSecond, item.Title,
-		item.Abstract, item.Author, item.Frequency, item.State, item.Content, item.ContentSub, item.Stage, item.CreateTime, time.Now(), item.Overview, reportId).Exec()
-	return
-}
-
-type EnglishReportDetail struct {
-	Id                 int    `orm:"column(id)" description:"报告Id"`
-	AddType            int    `description:"新增方式:1:新增报告,2:继承报告"`
-	ClassifyIdFirst    int    `description:"一级分类id"`
-	ClassifyNameFirst  string `description:"一级分类名称"`
-	ClassifyIdSecond   int    `description:"二级分类id"`
-	ClassifyNameSecond string `description:"二级分类名称"`
-	Title              string `description:"标题"`
-	Abstract           string `description:"摘要"`
-	Author             string `description:"作者"`
-	Frequency          string `description:"频度"`
-	CreateTime         string `description:"创建时间"`
-	ModifyTime         string `description:"修改时间"`
-	State              int    `description:"1:未发布,2:已发布"`
-	PublishTime        string `description:"发布时间"`
-	Stage              int    `description:"期数"`
-	MsgIsSend          int    `description:"消息是否已发送,0:否,1:是"`
-	ReportCode         string `description:"报告唯一编码"`
-	Content            string `description:"内容"`
-	VideoUrl           string `description:"音频文件URL"`
-	VideoName          string `description:"音频文件名称"`
-	VideoPlaySeconds   string `description:"音频播放时长"`
-	ContentSub         string `description:"内容前两个章节"`
-	Pv                 int    `description:"Pv"`
-	Overview           string `description:"英文概述部分"`
-	FromReportId       int    `description:"继承的报告ID(英文策略报告ID)"`
-	KeyTakeaways       string `description:"关键点"`
-}
-
-func GetEnglishReportById(reportId int) (item *EnglishReportDetail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM english_report WHERE id=?`
-	err = o.Raw(sql, reportId).QueryRow(&item)
-	return
-}
-
-func GetEnglishReportItemById(reportId int) (item *EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM english_report WHERE id = ? LIMIT 1`
-	err = o.Raw(sql, reportId).QueryRow(&item)
-	return
-}
-
-type EnglishReportList struct {
-	Id                 int       `description:"报告Id"`
-	AddType            int       `description:"新增方式:1:新增报告,2:继承报告"`
-	ClassifyIdFirst    int       `description:"一级分类id"`
-	ClassifyNameFirst  string    `description:"一级分类名称"`
-	ClassifyIdSecond   int       `description:"二级分类id"`
-	ClassifyNameSecond string    `description:"二级分类名称"`
-	Title              string    `description:"标题"`
-	Abstract           string    `description:"摘要"`
-	Author             string    `description:"作者"`
-	Frequency          string    `description:"频度"`
-	CreateTime         string    `description:"创建时间"`
-	ModifyTime         time.Time `description:"修改时间"`
-	State              int       `description:"1:未发布,2:已发布"`
-	PublishTime        string    `description:"发布时间"`
-	Stage              int       `description:"期数"`
-	Content            string    `description:"内容"`
-	VideoUrl           string    `description:"音频文件URL"`
-	VideoName          string    `description:"音频文件名称"`
-	VideoPlaySeconds   string    `description:"音频播放时长"`
-	ContentSub         string    `description:"内容前两个章节"`
-	ReportCode         string    `description:"报告唯一编码"`
-	Pv                 int       `description:"Pv"`
-	ShareUrl           string    `description:"分享url"`
-	PvEmail            int       `description:"邮箱PV"`
-	EmailState         int       `description:"群发邮件状态: 0-未发送; 1-已发送"`
-	EmailAuth          bool      `description:"是否有权限群发邮件"`
-	EmailHasFail       bool      `description:"是否存在邮件发送失败的记录"`
-	CanEdit            bool      `description:"是否可编辑"`
-	Editor             string    `description:"编辑人"`
-	FromReportId       int       `description:"继承的报告ID(英文策略报告ID)"`
-	AdminId            int       `description:"创建者账号"`
-	AdminRealName      string    `description:"创建者姓名"`
-}
-
-type EnglishReportListResp struct {
-	List   []*EnglishReportList
-	Paging *paging.PagingItem `description:"分页数据"`
-}
-
-func GetEnglishReportListCount(condition string, pars []interface{}, companyType string) (count int, err error) {
-	//产品权限
-	companyTypeSqlStr := ``
-	if companyType == "ficc" {
-		companyTypeSqlStr = " AND classify_id_first != 40 "
-	} else if companyType == "权益" {
-		companyTypeSqlStr = " AND classify_id_first = 40 "
-	}
-
-	oRddp := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT COUNT(1) AS count  FROM english_report WHERE 1=1 ` + companyTypeSqlStr
-	if condition != "" {
-		sql += condition
-	}
-	err = oRddp.Raw(sql, pars).QueryRow(&count)
-	return
-}
-
-func GetEnglishReportList(condition string, pars []interface{}, companyType string, startSize, pageSize int) (items []*EnglishReportList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	//产品权限
-	companyTypeSqlStr := ``
-	if companyType == "ficc" {
-		companyTypeSqlStr = " AND classify_id_first != 40 "
-	} else if companyType == "权益" {
-		companyTypeSqlStr = " AND classify_id_first = 40 "
-	}
-
-	sql := `SELECT * 
-        FROM english_report WHERE 1=1  ` + companyTypeSqlStr
-	if condition != "" {
-		sql += condition
-	}
-	sql += `ORDER BY state ASC, modify_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
-	return
-}
-
-func GetEnglishReportByCondition(condition string, pars []interface{}) (items []*EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * 
-        FROM english_report WHERE 1=1  `
-	if condition != "" {
-		sql += condition
-	}
-	_, err = o.Raw(sql, pars).QueryRows(&items)
-	return
-}
-
-// 发布报告
-func PublishEnglishReportById(reportId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE english_report SET state=2,publish_time=now(),modify_time=NOW() WHERE id = ? `
-	_, err = o.Raw(sql, reportId).Exec()
-	return
-}
-
-// 取消发布报告
-func PublishCancelEnglishReport(reportIds int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` UPDATE english_report SET state=1,publish_time=null WHERE id =?  `
-	_, err = o.Raw(sql, reportIds).Exec()
-	return
-}
-
-// DeleteEnglishReportAndChapter 删除报告及章节
-//func DeleteEnglishReportAndChapter(reportInfo *EnglishReportDetail) (err error) {
-//	reportId := reportInfo.Id
-//	if reportInfo.State == 2 {
-//		err = errors.New("报告已发布,不可删除")
-//		return
-//	}
-//	err = DeleteEnglishReport(reportId)
-//	if err != nil {
-//		err = errors.New("删除失败, Err: " + err.Error())
-//		return
-//	}
-//
-//	return
-//}
-
-// 删除报告
-func DeleteEnglishReport(reportIds int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` DELETE FROM english_report WHERE id =? `
-	_, err = o.Raw(sql, reportIds).Exec()
-	return
-}
-
-func EditEnglishReportContent(reportId int, content, contentSub string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` UPDATE english_report SET content=?,content_sub=?,modify_time=NOW() WHERE id=? `
-	_, err = o.Raw(sql, content, contentSub, reportId).Exec()
-	return
-}
-
-func AddEnglishReportSaveLog(reportId, adminId int, content, contentSub, adminName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` INSERT INTO english_report_save_log(report_id, content,content_sub,admin_id,admin_name) VALUES (?,?,?,?,?) `
-	_, err = o.Raw(sql, reportId, content, contentSub, adminId, adminName).Exec()
-	return
-}
-
 type EnglishClassifyList struct {
 	Id            int       `orm:"column(id);pk"`
 	ClassifyName  string    `description:"分类名称"`
 	Sort          int       `description:"排序"`
 	ParentId      int       `description:"父级分类id"`
+	RootId        int       `description:"一级分类ID"`
 	CreateTime    time.Time `description:"创建时间"`
 	ModifyTime    time.Time `description:"修改时间"`
 	ClassifyLabel string    `description:"分类标签"`
@@ -384,84 +116,73 @@ type EnglishClassifyListResp struct {
 	Paging *paging.PagingItem `description:"分页数据"`
 }
 
-// 获取分类列表
-func GetEnglishClassifyList(startSize, pageSize int, keyWord string, classifyType int) (items []*EnglishClassifyList, err error) {
+// GetEnglishClassifyRootId 获取一级分类列表
+func GetEnglishClassifyRootId(startSize, pageSize int, keyWord string) (items []*EnglishClassifyList, err error) {
 	sql := ``
 	o := orm.NewOrmUsingDB("rddp")
 	if keyWord != "" {
 		sql = `SELECT * FROM (
-                   SELECT * FROM english_classify
-                   WHERE parent_id=0 AND classify_name LIKE '%` + keyWord + `%' AND classify_type = ?
+			                   SELECT * FROM english_classify
+                   WHERE root_id=0 AND classify_name LIKE '%` + keyWord + `%'
                    UNION
                    SELECT * FROM english_classify
                    WHERE id IN(SELECT parent_id FROM english_classify
-                   WHERE parent_id>0 AND classify_name LIKE '%` + keyWord + `%') AND classify_type = ?
+                   WHERE root_id>0 AND classify_name LIKE '%` + keyWord + `%')
                    )AS t
                    ORDER BY sort ASC,create_time ASC
                    LIMIT ?,? `
-		_, err = o.Raw(sql, classifyType, classifyType, startSize, pageSize).QueryRows(&items)
+		_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
 	} else {
-		sql = `SELECT * FROM english_classify WHERE parent_id=0 AND classify_type = ? ORDER BY sort ASC,create_time ASC LIMIT ?,? `
-		_, err = o.Raw(sql, classifyType, startSize, pageSize).QueryRows(&items)
+		sql = `SELECT * FROM english_classify WHERE root_id=0 ORDER BY sort ASC,create_time ASC LIMIT ?,? `
+		_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
 	}
 	return
 }
 
-func GetEnglishClassifyListCount(keyWord string, classifyType int) (count int, err error) {
+func GetEnglishClassifyListCount(keyWord string) (count int, err error) {
 	sqlCount := ``
 	o := orm.NewOrmUsingDB("rddp")
 	if keyWord != "" {
 		sqlCount = `SELECT  COUNT(1) AS count FROM (
                SELECT * FROM english_classify
-               WHERE parent_id=0 AND classify_name LIKE '%` + keyWord + `%' AND classify_type = ?
+               WHERE root_id=0 AND classify_name LIKE '%` + keyWord + `%'
                UNION
                SELECT * FROM english_classify
                WHERE id IN(SELECT parent_id FROM english_classify
-               WHERE parent_id>0 AND classify_name LIKE '%` + keyWord + `%' AND classify_type = ?)
+               WHERE root_id>0 AND classify_name LIKE '%` + keyWord + `%')
                )AS t `
-		err = o.Raw(sqlCount, classifyType, classifyType).QueryRow(&count)
+		err = o.Raw(sqlCount).QueryRow(&count)
 	} else {
-		sqlCount = `SELECT COUNT(1) AS count FROM english_classify WHERE parent_id=0 AND classify_type = ?`
-		err = o.Raw(sqlCount, classifyType).QueryRow(&count)
+		sqlCount = `SELECT COUNT(1) AS count FROM english_classify WHERE root_id=0`
+		err = o.Raw(sqlCount).QueryRow(&count)
 	}
 
 	return
 }
 
-func GetEnglishClassifyChild(parentId int, keyWord string, classifyType int) (items []*EnglishClassify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+func GetEnglishClassifyListByRootId(rootIds []int, keyWord string) (items []*EnglishClassifyList, err error) {
 	sql := ``
-	if keyWord != "" {
-		sql = `SELECT * FROM english_classify WHERE parent_id=? AND classify_type = ? AND classify_name LIKE '%` + keyWord + `%' ORDER BY create_time ASC `
-	} else {
-		sql = `SELECT * FROM english_classify WHERE parent_id=? AND classify_type = ? ORDER BY create_time ASC `
-	}
-	_, err = o.Raw(sql, parentId, classifyType).QueryRows(&items)
-	return
-}
-
-func GetEnglishClassifyChildByParentIds(parentIds []int, keyWord string, classifyType int) (items []*EnglishClassifyList, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := ``
 	if keyWord != "" {
-		sql = `SELECT * FROM english_classify WHERE parent_id IN (` + utils.GetOrmInReplace(len(parentIds)) + `) AND classify_type = ? AND classify_name LIKE '%` + keyWord + `%' ORDER BY create_time ASC `
+		sql = `SELECT
+	a.*
+FROM
+	english_classify a
+	LEFT JOIN english_classify b ON a.root_id = b.id
+	LEFT JOIN english_classify c ON a.parent_id = c.id
+	WHERE a.classify_name LIKE '%` + keyWord + `%' and a.root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `)`
+		_, err = o.Raw(sql, rootIds).QueryRows(&items)
 	} else {
-		sql = `SELECT * FROM english_classify WHERE parent_id IN (` + utils.GetOrmInReplace(len(parentIds)) + `) AND classify_type = ? ORDER BY create_time ASC `
+		sql = `SELECT * FROM english_classify WHERE root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `) `
+		_, err = o.Raw(sql, rootIds).QueryRows(&items)
 	}
-	_, err = o.Raw(sql, parentIds, classifyType).QueryRows(&items)
 	return
 }
 
-func GetEnglishReportDetailByClassifyId(classifyIdFirst, classifyIdSecond int) (item *EnglishReport, err error) {
+func GetEnglishClassifyChildByIds(ids []int) (items []*EnglishClassifyList, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT * FROM english_report WHERE 1=1 `
-	if classifyIdSecond > 0 {
-		sql = sql + ` AND classify_id_second=?   ORDER BY stage DESC LIMIT 1`
-		err = o.Raw(sql, classifyIdSecond).QueryRow(&item)
-	} else {
-		sql = sql + ` AND classify_id_first=?   ORDER BY stage DESC LIMIT 1`
-		err = o.Raw(sql, classifyIdFirst).QueryRow(&item)
-	}
+	sql := `SELECT * FROM english_classify WHERE id IN (` + utils.GetOrmInReplace(len(ids)) + `) ORDER BY create_time ASC `
+	_, err = o.Raw(sql, ids).QueryRows(&items)
 	return
 }
 
@@ -472,23 +193,12 @@ func (item *EnglishReport) Update(cols []string) (err error) {
 	return
 }
 
-// ModifyEnglishReportAuthor 更改英文报告作者
-func ModifyEnglishReportAuthor(condition string, pars []interface{}, authorName string) (count int, err error) {
-	//产品权限
-	oRddp := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE english_report set author = ? WHERE 1=1 `
-	if condition != "" {
-		sql += condition
-	}
-	err = oRddp.Raw(sql, authorName, pars).QueryRow(&count)
-	return
-}
-
 type EnglishClassify struct {
 	Id            int       `orm:"column(id);pk"`
 	ClassifyName  string    `description:"分类名称"`
 	Sort          int       `description:"排序"`
 	ParentId      int       `description:"父级分类id"`
+	RootId        int       `description:"一级分类ID"`
 	CreateTime    time.Time `description:"创建时间"`
 	ModifyTime    time.Time `description:"修改时间"`
 	ClassifyLabel string    `description:"分类标签"`
@@ -497,94 +207,6 @@ type EnglishClassify struct {
 	ClassifyType  int       `description:"分类类型:0英文报告,1英文线上路演"`
 }
 
-func AddEnglishClassify(item *EnglishClassify) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
-	return
-}
-
-func ModifyEnglishClassify(item *EnglishClassify) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE english_classify
-	SET
-	classify_name = ?,
-	sort = ?,
-	parent_id = ?,
-	modify_time = ? 
-	WHERE id = ? `
-	_, err = o.Raw(sql, item.ClassifyName, item.Sort, item.ParentId, item.ModifyTime, item.Id).Exec()
-	return
-}
-
-// UpdateClassify 更新分类
-func (classifyInfo *EnglishClassify) UpdateEnglishClassify(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(classifyInfo, cols...)
-
-	return
-}
-
-// DeleteEnglishClassify 删除英文分类
-func DeleteEnglishClassify(classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` DELETE FROM english_classify WHERE id =? `
-	_, err = o.Raw(sql, classifyId).Exec()
-	return
-}
-
-func GetEnglishClassifyChildCounts(parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT COUNT(1) AS count FROM english_classify WHERE parent_id=? `
-	err = o.Raw(sql, parentId).QueryRow(&count)
-	return
-}
-
-func GetEnglishReportCounts(classifyId, parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ``
-	if parentId == 0 {
-		sql = `SELECT COUNT(1) AS count FROM english_report WHERE classify_id_first=? `
-	} else {
-		sql = `SELECT COUNT(1) AS count FROM english_report WHERE classify_id_second=? `
-	}
-	err = o.Raw(sql, classifyId).QueryRow(&count)
-	return
-}
-
-func GetEnglishClassifyCountsByName(name string, parentId int, classifyType int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT COUNT(1) AS count FROM english_classify WHERE classify_name=? AND parent_id = ? AND classify_type = ? `
-	err = o.Raw(sql, name, parentId, classifyType).QueryRow(&count)
-	return
-}
-
-// 获取分类列表
-func GetEnglishFirstClassifyList(classifyType, startSize, pageSize int) (items []*EnglishClassifyList, err error) {
-	sql := ``
-
-	sql = `SELECT * FROM english_classify WHERE parent_id=0 AND classify_type = ?  ORDER BY sort ASC,create_time ASC LIMIT ?,? `
-
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, classifyType, startSize, pageSize).QueryRows(&items)
-	return
-}
-
-func GetEnglishFirstClassifyListCount(classifyType int) (count int, err error) {
-	sqlCount := ``
-	sqlCount = `SELECT COUNT(1) AS count FROM english_classify WHERE parent_id=0 AND classify_type = ? `
-
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sqlCount, classifyType).QueryRow(&count)
-	return
-}
-
-func GetEnglishReportClassifyById(classifyId int) (item *EnglishClassify, err error) {
-	sql := `SELECT * FROM english_classify WHERE id=?`
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sql, classifyId).QueryRow(&item)
-	return
-}
-
 func GetEnglishReportClassifyByIds(classifyIds []int) (list []*EnglishClassify, err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_classify WHERE id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `)`
@@ -592,38 +214,6 @@ func GetEnglishReportClassifyByIds(classifyIds []int) (list []*EnglishClassify,
 	return
 }
 
-// UpdateEnglishReportSecondClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishReportSecondClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_report SET classify_name_second = ? WHERE classify_id_second = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
-
-// UpdateEnglishReportFirstClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishReportFirstClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_report SET classify_name_first = ? WHERE classify_id_first = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
-
-// UpdateEnglishReportFirstClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishReportByClassifyId(classifyFirstName, classifySecondName string, firstClassifyId, secondClassifyId int, ids string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_report SET classify_name_first = ?,classify_name_second = ?,classify_id_first=?, classify_id_second =?  WHERE id IN (" + ids + ") "
-	_, err = o.Raw(sql, classifyFirstName, classifySecondName, firstClassifyId, secondClassifyId).Exec()
-	return
-}
-
-// FetchEnglishReportById 主键获取英文报告
-func FetchEnglishReportById(reportId int) (item *EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM english_report WHERE id=?`
-	err = o.Raw(sql, reportId).QueryRow(&item)
-	return
-}
-
 // UpdateReport 更新英文报告
 func (reportInfo *EnglishReport) UpdateReport(cols []string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
@@ -632,14 +222,6 @@ func (reportInfo *EnglishReport) UpdateReport(cols []string) (err error) {
 	return
 }
 
-// GetAllEnglishClassify 获取所有英文分类
-func GetAllEnglishClassify(classifyType int) (list []*Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT * FROM english_classify where classify_type = ? `
-	_, err = o.Raw(sql, classifyType).QueryRows(&list)
-	return
-}
-
 // GetEnglishReportByIds 根据IDs获取英文报告列表
 func GetEnglishReportByIds(reportIds []int, fieldArr []string) (list []*EnglishReport, err error) {
 	listLen := len(reportIds)
@@ -662,26 +244,6 @@ type MarkEditEnReport struct {
 	Status   int `description:"标记状态,1:编辑中,2:编辑完成"`
 }
 
-type EnglishClassifyNameParentName struct {
-	Id                 int       `description:"分类ID"`
-	ClassifyName       string    `description:"分类名称"`
-	Sort               int       `description:"排序"`
-	ParentId           int       `description:"父级分类id"`
-	CreateTime         time.Time `description:"创建时间"`
-	ModifyTime         time.Time `description:"修改时间"`
-	ClassifyLabel      string    `description:"分类标签"`
-	ShowType           int       `description:"展示类型:1-列表 2-专栏"`
-	IsShow             int       `description:"是否在小程序显示:1-显示 0-隐藏"`
-	ParentClassifyName string    `description:"父级分类名称"`
-}
-
-func GetEnglishClassifyByClassifyNameAndParentName(parentClassiyName, classifyName string) (item EnglishClassifyNameParentName, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := "SELECT c1.*, c2.classify_name as parent_classify_name FROM english_classify c1 LEFT JOIN english_classify c2 on c1.parent_id = c2.id where c1.parent_id > 0 and c2.classify_name = ? and c1.classify_name= ?"
-	err = o.Raw(sql, parentClassiyName, classifyName).QueryRow(&item)
-	return
-}
-
 type RSClassifyList []*EnglishClassifyList
 
 func (m RSClassifyList) Len() int {
@@ -710,10 +272,30 @@ func (m RSChildClassifyList) Swap(i, j int) {
 	m[i], m[j] = m[j], m[i]
 }
 
-// GetEnglishClassifyByClassifyNameParentId 获取英文分类
-func GetEnglishClassifyByClassifyNameParentId(classifyName string, parentId, classifyType int) (item *Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT * FROM english_classify where classify_name = ? and parent_id = ? and classify_type = ? `
-	err = o.Raw(sql, classifyName, parentId, classifyType).QueryRow(&item)
+type EnglishClassifyFullName struct {
+	Id           int    `description:"分类ID"`
+	ParentId     int    `description:"父级分类id"`
+	RootId       int    `description:"一级分类ID"`
+	RootName     string `description:"一级分类名"`
+	ParentName   string `description:"二级分类名"`
+	ClassifyName string `description:"分类名称"`
+}
+
+// GetEnglishClassifyFullNameByIds 获取英文分类名一级/二级/三级
+func GetEnglishClassifyFullNameByIds(classifyIds []int) (list []*EnglishClassifyFullName, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := ` SELECT
+	a.id,
+	a.parent_id,
+	a.root_id,
+	a.classify_name,
+	b.classify_name AS root_name,
+	c.classify_name AS parent_name 
+FROM
+	english_classify a
+	LEFT JOIN english_classify b ON a.root_id = b.id
+	LEFT JOIN english_classify c ON a.parent_id = c.id 
+where a.id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `)`
+	_, err = o.Raw(sql, classifyIds).QueryRows(&list)
 	return
 }

+ 1 - 0
models/english_video.go

@@ -170,6 +170,7 @@ type EnglishVideoList struct {
 	Overview           string `description:"英文概述部分"`
 	AdminId            int    `description:"上传视频的管理员账号"`
 	AdminRealName      string `description:"上传视频的管理员姓名"`
+	FullClassifyName   string `description:"顶级分类名/父级分类名/当前分类名"`
 }
 
 type EnglishVideoListResp struct {