|
@@ -7,7 +7,6 @@ import (
|
|
|
"eta/eta_api/services"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
- "time"
|
|
|
)
|
|
|
|
|
|
// 分类
|
|
@@ -52,174 +51,18 @@ func (this *ClassifyController) Add() {
|
|
|
br.Msg = "分类名称不可为空"
|
|
|
return
|
|
|
}
|
|
|
- /*if menuMap[system.MenuSpecialHandleClassifyShowType] && req.ParentId != 0 && req.ShowType == 0 {
|
|
|
- br.Msg = "展示类型不可为空"
|
|
|
- return
|
|
|
- }
|
|
|
- if menuMap[system.MenuSpecialHandleClassifyChildMenu] && len(req.MenuList) > 0 && req.ParentId != 0 {
|
|
|
- br.Msg = "非一级分类不可添加子目录"
|
|
|
- return
|
|
|
- }
|
|
|
- if menuMap[system.MenuSpecialHandleClassifyReportImgs] && (req.ShowType == 1 || req.ShowType == 3) && req.YbRightBanner == "" && req.ParentId == 0 { //当一级报告分类为列表、品种时,增加“报告合集配图”的配置项
|
|
|
- br.Msg = "报告合集配图不可为空"
|
|
|
- return
|
|
|
- }*/
|
|
|
|
|
|
- item, err := models.GetClassifyByName(req.ClassifyName, req.ParentId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取分类信息失败"
|
|
|
- br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if item != nil {
|
|
|
- br.Msg = "分类名称:" + req.ClassifyName + "已存在"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- nowTime := time.Now().Local()
|
|
|
- classify := new(models.Classify)
|
|
|
-
|
|
|
- maxSort, e := classify.GetMaxSort()
|
|
|
- if e != nil {
|
|
|
- br.Msg = "操作失败"
|
|
|
- br.ErrMsg = "查询品种排序失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- classify.ClassifyName = req.ClassifyName
|
|
|
- classify.ParentId = req.ParentId
|
|
|
- classify.CreateTime = nowTime
|
|
|
- classify.ModifyTime = nowTime
|
|
|
- classify.Sort = maxSort + 1
|
|
|
- classify.Enabled = 1
|
|
|
- classify.ShowType = 1 //默认列表格式
|
|
|
- classify.IsShow = 1
|
|
|
- /*classify.Abstract = req.Abstract
|
|
|
- classify.Descript = req.Descript
|
|
|
- classify.Abstract = req.Abstract
|
|
|
- classify.Descript = req.Descript
|
|
|
- classify.ReportAuthor = req.ReportAuthor
|
|
|
- classify.AuthorDescript = req.AuthorDescript
|
|
|
- classify.ColumnImgUrl = req.ColumnImgUrl
|
|
|
- classify.ReportImgUrl = req.ReportImgUrl
|
|
|
- classify.HeadImgUrl = req.HeadImgUrl
|
|
|
- classify.AvatarImgUrl = req.AvatarImgUrl
|
|
|
- classify.HomeImgUrl = req.HomeImgUrl
|
|
|
- classify.ClassifyLabel = req.ClassifyLabel
|
|
|
- classify.ShowType = req.ShowType
|
|
|
- classify.HasTeleconference = req.HasTeleconference
|
|
|
- classify.VipTitle = req.VipTitle
|
|
|
-
|
|
|
- classify.IsShow = req.IsShow
|
|
|
- classify.YbFiccSort = req.YbFiccSort
|
|
|
- classify.YbFiccIcon = req.YbFiccIcon
|
|
|
- classify.YbFiccPcIcon = req.YbFiccPcIcon
|
|
|
- classify.YbIconUrl = req.YbIconUrl
|
|
|
- classify.YbBgUrl = req.YbBgUrl
|
|
|
- classify.YbListImg = req.YbListImg
|
|
|
- classify.YbShareBgImg = req.YbShareBgImg
|
|
|
- classify.YbRightBanner = req.YbRightBanner
|
|
|
- classify.RelateTel = req.RelateTel
|
|
|
- classify.RelateVideo = req.RelateVideo
|
|
|
- if req.ParentId > 0 {
|
|
|
- parentClassify := new(models.Classify)
|
|
|
- if parentClassify, err = models.GetClassifyById(req.ParentId); err != nil {
|
|
|
- br.Msg = "获取父级分类信息失败"
|
|
|
- br.ErrMsg = "获取父级分类信息失败, Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- updateParent := false
|
|
|
- updateCols := make([]string, 0)
|
|
|
- updateCols = append(updateCols, "HasTeleconference")
|
|
|
- if req.HasTeleconference == 1 {
|
|
|
- // 二级分类包含电话会,则一级分类也默认包含电话会
|
|
|
- if parentClassify.HasTeleconference == 0 {
|
|
|
- parentClassify.HasTeleconference = 1
|
|
|
- updateParent = true
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 二级分类均无电话会,则一级分类也无电话会
|
|
|
- if parentClassify.HasTeleconference == 1 {
|
|
|
- child, err := models.GetClassifyChild(parentClassify.Id, "")
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取子分类失败"
|
|
|
- br.ErrMsg = "获取子分类失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- // 存在同一级分类下的二级分类有电话会则不变动
|
|
|
- hasTel := false
|
|
|
- for i := 0; i < len(child); i++ {
|
|
|
- if child[i].HasTeleconference == 1 {
|
|
|
- hasTel = true
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- if !hasTel {
|
|
|
- parentClassify.HasTeleconference = 0
|
|
|
- updateParent = true
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if updateParent {
|
|
|
- if err = parentClassify.UpdateClassify(updateCols); err != nil {
|
|
|
- br.Msg = "更新父级分类失败"
|
|
|
- br.ErrMsg = "更新父级分类失败, Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
- err = models.AddClassify(classify)
|
|
|
+ // 新增分类
|
|
|
+ err, errMsg, isSentEmail := services.AddReportClassify(req.ClassifyName, req.ParentId, req.ChartPermissionIdList)
|
|
|
if err != nil {
|
|
|
- br.Msg = "新增失败"
|
|
|
- br.ErrMsg = "新增失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 一级分类-新增子目录
|
|
|
- /*if classify.ParentId == 0 && len(req.MenuList) > 0 {
|
|
|
- menus := make([]*models.ClassifyMenu, 0)
|
|
|
- for i := range req.MenuList {
|
|
|
- menus = append(menus, &models.ClassifyMenu{
|
|
|
- MenuName: req.MenuList[i].MenuName,
|
|
|
- ClassifyId: classify.Id,
|
|
|
- Sort: i + 1,
|
|
|
- CreateTime: nowTime,
|
|
|
- ModifyTime: nowTime,
|
|
|
- })
|
|
|
- }
|
|
|
- menuObj := new(models.ClassifyMenu)
|
|
|
- if e := menuObj.InsertMulti(menus); e != nil {
|
|
|
- br.Msg = "新增子目录失败"
|
|
|
- br.ErrMsg = "批量新增子目录失败, Err:" + e.Error()
|
|
|
- return
|
|
|
+ br.Msg = "添加失败"
|
|
|
+ if errMsg != "" {
|
|
|
+ br.Msg = errMsg
|
|
|
}
|
|
|
+ br.ErrMsg = "添加失败,Err:" + err.Error()
|
|
|
+ br.IsSendEmail = isSentEmail
|
|
|
+ return
|
|
|
}
|
|
|
- // 二级分类-新增子目录关联
|
|
|
- if classify.ParentId > 0 && req.ClassifyMenuId > 0 {
|
|
|
- if e := models.DeleteAndInsertClassifyMenuRelation(classify.Id, req.ClassifyMenuId); e != nil {
|
|
|
- br.Msg = "新增子目录关联失败"
|
|
|
- br.ErrMsg = "新增子目录关联失败, Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }*/
|
|
|
- //获取报告分类权限列表
|
|
|
- if classify.ParentId > 0 { //二级分类才能修改权限
|
|
|
- err = models.EditChartPermissionSearchKeyWordMappingMulti(req.ClassifyName, req.ChartPermissionIdList, classify.Id)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "修改分类权限失败"
|
|
|
- br.ErrMsg = "修改分类权限失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- go func() {
|
|
|
- _ = services.EditClassifyChartPermissionSync(req.ClassifyName, classify.Id)
|
|
|
- }()
|
|
|
- }
|
|
|
-
|
|
|
- // 新增关联了电话会的二级分类时, 同步FICC活动分类
|
|
|
- //if req.ParentId > 0 && req.RelateTel == 1 {
|
|
|
- // go func() {
|
|
|
- // _ = yb.SyncClassifyAndFiccActivityType()
|
|
|
- // }()
|
|
|
- //}
|
|
|
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -360,6 +203,11 @@ func (this *ClassifyController) Delete() {
|
|
|
br.Msg = "参数错误"
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ br.Msg = "报告分类不允许删除"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+
|
|
|
item, err := models.GetClassifyById(req.ClassifyId)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
@@ -407,20 +255,6 @@ func (this *ClassifyController) Edit() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 获取系统菜单, 如果没有对应的字段的特殊处理项, 则忽略必填
|
|
|
- /*menus, e := system.GetSysMenuItemsByCondition(` AND hidden = 0`, make([]interface{}, 0), []string{}, ``)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "保存失败"
|
|
|
- br.ErrMsg = "获取菜单列表失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- menuMap := make(map[string]bool)
|
|
|
- for _, m := range menus {
|
|
|
- if m.ButtonCode != "" {
|
|
|
- menuMap[m.ButtonCode] = true
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
if req.ClassifyId <= 0 {
|
|
|
br.Msg = "参数错误"
|
|
|
return
|
|
@@ -429,193 +263,18 @@ func (this *ClassifyController) Edit() {
|
|
|
br.Msg = "分类名称不可为空"
|
|
|
return
|
|
|
}
|
|
|
- /*if menuMap[system.MenuSpecialHandleClassifyShowType] && req.ParentId != 0 && req.ShowType == 0 {
|
|
|
- br.Msg = "展示类型不可为空"
|
|
|
- return
|
|
|
- }
|
|
|
- if req.ParentId == req.ClassifyId {
|
|
|
- br.Msg = "上级分类不能选择自己"
|
|
|
- return
|
|
|
- }
|
|
|
- if menuMap[system.MenuSpecialHandleClassifyReportImgs] && (req.ShowType == 1 || req.ShowType == 3) && req.YbRightBanner == "" && req.ParentId == 0 { //当一级报告分类为列表、品种时,增加“报告合集配图”的配置项
|
|
|
- br.Msg = "报告合集配图不可为空"
|
|
|
- return
|
|
|
- }*/
|
|
|
|
|
|
- item, err := models.GetClassifyById(req.ClassifyId)
|
|
|
+ // 修改分类
|
|
|
+ err, errMsg, isSentEmail := services.EditReportClassify(req.ClassifyId, req.ClassifyName, req.ChartPermissionIdList)
|
|
|
if err != nil {
|
|
|
- if err.Error() == utils.ErrNoRow() {
|
|
|
- br.Msg = "分类不存在, 或已被删除"
|
|
|
- br.ErrMsg = "获取分类信息失败, Err: " + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- originName := item.ClassifyName
|
|
|
- oldParentId := item.ParentId
|
|
|
- //originRelateTel := item.RelateTel
|
|
|
-
|
|
|
- // 重名校验
|
|
|
- existName, e := models.GetClassifyByName(req.ClassifyName, item.ParentId)
|
|
|
- if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取重名分类失败, Err: " + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if existName != nil && existName.Id != item.Id {
|
|
|
- br.Msg = "分类名称:" + req.ClassifyName + "已存在"
|
|
|
- return
|
|
|
- }
|
|
|
- item.ClassifyName = req.ClassifyName
|
|
|
- item.ParentId = req.ParentId
|
|
|
- item.ModifyTime = time.Now().Local()
|
|
|
- cols := make([]string, 0)
|
|
|
- cols = append(cols, "ClassifyName", "ParentId", "ModifyTime")
|
|
|
- if e := item.UpdateClassify(cols); e != nil {
|
|
|
br.Msg = "修改失败"
|
|
|
- br.ErrMsg = "修改失败,Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- /*
|
|
|
- item.Abstract = req.Abstract
|
|
|
- item.Descript = req.Descript
|
|
|
- item.ReportAuthor = req.ReportAuthor
|
|
|
- item.AuthorDescript = req.AuthorDescript
|
|
|
- item.ColumnImgUrl = req.ColumnImgUrl
|
|
|
- item.HeadImgUrl = req.HeadImgUrl
|
|
|
- item.AvatarImgUrl = req.AvatarImgUrl
|
|
|
- item.ReportImgUrl = req.ReportImgUrl
|
|
|
- item.HomeImgUrl = req.HomeImgUrl
|
|
|
- item.ClassifyLabel = req.ClassifyLabel
|
|
|
- item.ShowType = req.ShowType
|
|
|
- item.HasTeleconference = req.HasTeleconference
|
|
|
- item.VipTitle = req.VipTitle
|
|
|
- // item.Sort = req.Sort
|
|
|
- item.IsShow = req.IsShow
|
|
|
- item.YbFiccSort = req.YbFiccSort
|
|
|
- item.YbFiccIcon = req.YbFiccIcon
|
|
|
- item.YbFiccPcIcon = req.YbFiccPcIcon
|
|
|
- item.YbIconUrl = req.YbIconUrl
|
|
|
- item.YbBgUrl = req.YbBgUrl
|
|
|
- item.YbListImg = req.YbListImg
|
|
|
- item.YbShareBgImg = req.YbShareBgImg
|
|
|
- item.YbRightBanner = req.YbRightBanner
|
|
|
- item.RelateTel = req.RelateTel
|
|
|
- item.RelateVideo = req.RelateVideo
|
|
|
- item.ModifyTime = time.Now().Local()
|
|
|
- cols := make([]string, 0)
|
|
|
- cols = append(cols, "ClassifyName", "Abstract", "ParentId", "Descript", "ReportAuthor", "AuthorDescript", "ColumnImgUrl",
|
|
|
- "HeadImgUrl", "AvatarImgUrl", "ReportImgUrl", "HomeImgUrl", "ClassifyLabel", "ShowType", "HasTeleconference", "VipTitle", "Sort",
|
|
|
- "IsShow", "YbFiccSort", "YbFiccIcon", "YbFiccPcIcon", "YbIconUrl", "YbBgUrl", "YbListImg", "YbShareBgImg", "YbRightBanner",
|
|
|
- "RelateTel", "RelateVideo", "ModifyTime")
|
|
|
- if e := item.UpdateClassify(cols); e != nil {
|
|
|
- br.Msg = "修改失败"
|
|
|
- br.ErrMsg = "修改失败,Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- // 一级分类关联设置会强制修改二级分类的所有关联设置
|
|
|
- if item.ParentId == 0 {
|
|
|
- if e = models.UpdateChildClassifyRelateSetting(item.Id, req.RelateTel, req.RelateVideo); e != nil {
|
|
|
- br.Msg = "更新二级分类关联设置失败"
|
|
|
- br.ErrMsg = "更新二级分类关联设置失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- */
|
|
|
- // 为二级分类时, 更新父级分类是否含电话会字段
|
|
|
- if req.ParentId > 0 {
|
|
|
- //二级分类才能修改权限
|
|
|
- err = models.EditChartPermissionSearchKeyWordMappingMulti(item.ClassifyName, req.ChartPermissionIdList, req.ClassifyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "修改分类权限失败"
|
|
|
- br.ErrMsg = "修改分类权限失败,Err:" + err.Error()
|
|
|
- return
|
|
|
+ if errMsg != "" {
|
|
|
+ br.Msg = errMsg
|
|
|
}
|
|
|
- go func() {
|
|
|
- _ = services.EditClassifyChartPermissionSync(item.ClassifyName, req.ClassifyId)
|
|
|
- }()
|
|
|
- /*go func() {
|
|
|
- _ = services.UpdateParentClassifyHasTel(req.ClassifyId, req.ParentId, req.HasTeleconference)
|
|
|
- }()*/
|
|
|
- }
|
|
|
-
|
|
|
- // 更新报告分类名称/父级分类后
|
|
|
- go func() {
|
|
|
- _ = services.AfterUpdateClassifyNameOrParent(item.Id, item.ParentId, oldParentId, originName, item.ClassifyName)
|
|
|
- }()
|
|
|
-
|
|
|
- // 获取编辑前子目录列表
|
|
|
- /*classifyId := item.Id
|
|
|
- var menuCond string
|
|
|
- var menuPars []interface{}
|
|
|
- menuCond += ` AND classify_id = ?`
|
|
|
- menuPars = append(menuPars, classifyId)
|
|
|
- menuList, e := models.GetClassifyMenuList(menuCond, menuPars)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "保存失败"
|
|
|
- br.ErrMsg = "获取分类子目录列表失败, Err:" + e.Error()
|
|
|
+ br.ErrMsg = "修改失败,Err:" + err.Error()
|
|
|
+ br.IsSendEmail = isSentEmail
|
|
|
return
|
|
|
}
|
|
|
- oriMenuIds := make([]int, 0)
|
|
|
- for i := range menuList {
|
|
|
- oriMenuIds = append(oriMenuIds, menuList[i].MenuId)
|
|
|
- }
|
|
|
-
|
|
|
- // 一级分类-新增/编辑/删除子目录
|
|
|
- if item.ParentId == 0 && len(req.MenuList) > 0 {
|
|
|
- nowTime := time.Now().Local()
|
|
|
- insertMenus := make([]*models.ClassifyMenu, 0)
|
|
|
- editMenus := make([]*models.ClassifyMenu, 0)
|
|
|
- deleteMenuIds := make([]int, 0)
|
|
|
- menuIds := make([]int, 0)
|
|
|
- for i := range req.MenuList {
|
|
|
- m := req.MenuList[i]
|
|
|
-
|
|
|
- v := new(models.ClassifyMenu)
|
|
|
- v.MenuName = req.MenuList[i].MenuName
|
|
|
- v.ClassifyId = classifyId
|
|
|
- v.Sort = i + 1
|
|
|
- v.MenuId = m.MenuId
|
|
|
- v.ModifyTime = nowTime
|
|
|
- if v.MenuId > 0 {
|
|
|
- // 编辑
|
|
|
- editMenus = append(editMenus, v)
|
|
|
- menuIds = append(menuIds, m.MenuId)
|
|
|
- } else {
|
|
|
- // 新增
|
|
|
- v.CreateTime = nowTime
|
|
|
- insertMenus = append(insertMenus, v)
|
|
|
- }
|
|
|
- }
|
|
|
- // 编辑前存在子目录则取"编辑前子目录IDs与编辑时子目录IDs的差集"作为删除IDs
|
|
|
- if len(oriMenuIds) > 0 {
|
|
|
- deleteMenuIds = utils.MinusInt(oriMenuIds, menuIds)
|
|
|
- }
|
|
|
- if e = models.InsertAndUpdateClassifyMenu(insertMenus, editMenus, deleteMenuIds); e != nil {
|
|
|
- br.Msg = "保存失败"
|
|
|
- br.ErrMsg = "新增/编辑/删除分类子目录失败, Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 二级分类-新增子目录关联
|
|
|
- if item.ParentId > 0 {
|
|
|
- if e := models.DeleteAndInsertClassifyMenuRelation(classifyId, req.ClassifyMenuId); e != nil {
|
|
|
- br.Msg = "新增子目录关联失败"
|
|
|
- br.ErrMsg = "新增子目录关联失败, Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }*/
|
|
|
-
|
|
|
- // 关联电话会选项被更改时, 同步FICC活动分类
|
|
|
- //if originRelateTel != req.RelateTel {
|
|
|
- // go func() {
|
|
|
- // _ = yb.SyncClassifyAndFiccActivityType()
|
|
|
- // }()
|
|
|
- //}
|
|
|
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|