|
@@ -10,11 +10,12 @@ import (
|
|
|
etaBusinessService "eta/eta_forum_admin/services/eta_business"
|
|
|
"eta/eta_forum_admin/utils"
|
|
|
"fmt"
|
|
|
- "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"sort"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
+
|
|
|
+ "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
)
|
|
|
|
|
|
// EtaBusinessController ETA商家
|
|
@@ -2037,3 +2038,221 @@ func (this *EtaBusinessController) AddReportPermission() {
|
|
|
br.IsAddLog = true
|
|
|
br.Msg = "操作成功"
|
|
|
}
|
|
|
+
|
|
|
+// @Title 设置社区AI预测模型分类权限
|
|
|
+// @Description 设置社区AI预测模型分类权限
|
|
|
+// @Param request body eta_business.AddBusinessAiPredictModelPermissionReq true "type json string"
|
|
|
+// @Success 200 {object} system.SysRoleListResp
|
|
|
+// @router /add_ai_predict_model_permission [post]
|
|
|
+func (this *EtaBusinessController) AddAiPredictModelPermission() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var req eta_business.AddBusinessAiPredictModelPermissionReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.EtaBusinessId <= 0 {
|
|
|
+ br.Msg = "请选择商户"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 权限校验
|
|
|
+ ok, e := etaBusinessService.CheckEtaBusinessOperateAuth(sysUser.RoleTypeCode)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作权限校验失败, ErrMsg: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !ok {
|
|
|
+ br.Msg = "无权操作"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ ob := new(eta_business.EtaBusiness)
|
|
|
+ businessInfo, e := ob.GetItemById(req.EtaBusinessId)
|
|
|
+ if e != nil {
|
|
|
+ if e.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "商家不存在, 请刷新页面"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "获取商家信息失败"
|
|
|
+ br.ErrMsg = "获取商家信息失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyIds := strings.Split(req.AiPredictModelClassifyIds, ",")
|
|
|
+ addList := make([]*eta_business.BusinessAiPredictModelPermission, 0)
|
|
|
+ for _, v := range classifyIds {
|
|
|
+ if v == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ classifyId, e := strconv.Atoi(v)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "设置AI预测模型权限失败"
|
|
|
+ br.ErrMsg = "classifyId 解析失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := new(eta_business.BusinessAiPredictModelPermission)
|
|
|
+ item.AiPredictModelClassifyId = classifyId
|
|
|
+ item.BusinessCode = businessInfo.BusinessCode
|
|
|
+ item.EtaBusinessId = req.EtaBusinessId
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ item.AdminId = sysUser.AdminId
|
|
|
+ addList = append(addList, item)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = eta_business.AddBusinessAiPredictModelPermission(addList, businessInfo.BusinessCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "设置AI预测模型权限失败"
|
|
|
+ br.ErrMsg = "设置AI预测模型权限失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.IsAddLog = true
|
|
|
+ br.Msg = "设置成功"
|
|
|
+}
|
|
|
+
|
|
|
+// @Title 获取社区AI预测模型分类权限
|
|
|
+// @Description 获取社区AI预测模型分类权限
|
|
|
+// @Param request body eta_business.AddBusinessAiPredictModelPermissionReq true "type json string"
|
|
|
+// @Success 200 {object} system.SysRoleListResp
|
|
|
+// @router /get_ai_predict_model_permission [get]
|
|
|
+func (this *EtaBusinessController) GetAiPredictModelPermission() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ keyword := this.GetString("Keyword")
|
|
|
+ etaBusinessId, _ := this.GetInt("EtaBusinessId")
|
|
|
+ if etaBusinessId <= 0 {
|
|
|
+ br.Msg = "请选择商户"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 权限校验
|
|
|
+ ok, e := etaBusinessService.CheckEtaBusinessOperateAuth(sysUser.RoleTypeCode)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作权限校验失败, ErrMsg: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !ok {
|
|
|
+ br.Msg = "无权操作"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ ob := new(eta_business.EtaBusiness)
|
|
|
+ businessInfo, e := ob.GetItemById(etaBusinessId)
|
|
|
+ if e != nil {
|
|
|
+ if e.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "商家不存在, 请刷新页面"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "获取商家信息失败"
|
|
|
+ br.ErrMsg = "获取商家信息失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionList, err := eta_business.GetBusinessAiPredictModelPermission(businessInfo.EtaBusinessId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取AI预测模型权限失败"
|
|
|
+ br.ErrMsg = "获取AI预测模型权限失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionClassifyIdsMap := make(map[int]struct{})
|
|
|
+ checkList := make([]int, 0)
|
|
|
+ for _, v := range permissionList {
|
|
|
+ if _, ok1 := permissionClassifyIdsMap[v.AiPredictModelClassifyId]; !ok1 {
|
|
|
+ permissionClassifyIdsMap[v.AiPredictModelClassifyId] = struct{}{}
|
|
|
+ checkList = append(checkList, v.AiPredictModelClassifyId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ allList := make([]*models.AiPredictModelClassifyItems, 0)
|
|
|
+ keywordClassifyIdMap := make(map[int]struct{})
|
|
|
+ keywordClassifyIds := make([]int, 0)
|
|
|
+ if keyword != "" {
|
|
|
+ keywordList, e := models.GetAiPredictModelClassifyListByKeyword(keyword)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range keywordList {
|
|
|
+ if _, ok1 := keywordClassifyIdMap[v.AiPredictModelClassifyId]; !ok1 {
|
|
|
+ keywordClassifyIdMap[v.AiPredictModelClassifyId] = struct{}{}
|
|
|
+ // 解析当前的父级路径,找到路径下的所有分类
|
|
|
+ if v.LevelPath == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err: 分类的父级路径为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ paths := strings.Split(v.LevelPath, ",")
|
|
|
+ for _, path := range paths {
|
|
|
+ if path != "" {
|
|
|
+ pathInt, _ := strconv.Atoi(path)
|
|
|
+ if _, ok2 := keywordClassifyIdMap[pathInt]; !ok2 {
|
|
|
+ keywordClassifyIdMap[pathInt] = struct{}{}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for k := range keywordClassifyIdMap {
|
|
|
+ keywordClassifyIds = append(keywordClassifyIds, k)
|
|
|
+ }
|
|
|
+ if len(keywordClassifyIds) > 0 {
|
|
|
+ allList, err = models.GetAiPredictModelClassifyItemsByIdList(keywordClassifyIds)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ allList, err = models.GetAiPredictModelClassify()
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ nodeAll := make([]*models.AiPredictModelClassifyItems, 0)
|
|
|
+ list := make([]*models.AiPredictModelClassifyItems, 0)
|
|
|
+ var sortList models.AiPredictModelClassifyItemList
|
|
|
+
|
|
|
+ if len(allList) > 0 {
|
|
|
+ nodeAll = services.GetAiPredictModelClassifyTreeRecursive(allList, 0)
|
|
|
+ //根据sort值排序
|
|
|
+ sortList = nodeAll
|
|
|
+ sort.Sort(sortList)
|
|
|
+ }
|
|
|
+
|
|
|
+ list = append(list, sortList...)
|
|
|
+ resp := new(models.BusinessAiPredictModelClassifyResp)
|
|
|
+ resp.List = list
|
|
|
+ resp.CheckList = checkList
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|