소스 검색

Merge remote-tracking branch 'origin/master' into eta/1.8.4

Roc 11 달 전
부모
커밋
cc8bb0c2ad

+ 38 - 0
controllers/data_manage/chart_info.go

@@ -1105,6 +1105,44 @@ func (this *ChartInfoController) ChartInfoDetail() {
 			br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
 			return
 		}
+
+		// 指标权限
+		{
+
+			classifyMap := make(map[int]*data_manage.EdbClassify)
+
+			// 分类
+			{
+				classifyIdList := make([]int, 0)
+				for _, v := range edbList {
+					classifyIdList = append(classifyIdList, v.ClassifyId)
+				}
+				classifyList, tmpErr := data_manage.GetEdbClassifyByIdList(classifyIdList)
+				if tmpErr != nil {
+					br.Msg = "获取失败"
+					br.ErrMsg = "获取分类列表失败,Err:" + tmpErr.Error()
+					return
+				}
+				for _, v := range classifyList {
+					classifyMap[v.ClassifyId] = v
+				}
+			}
+			// 获取所有有权限的指标和分类
+			permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserEdbAndClassifyPermissionList(sysUser.AdminId, 0, 0)
+			if err != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
+				return
+			}
+
+			for _, item := range edbList {
+				// 数据权限
+				if currClassify, ok := classifyMap[item.ClassifyId]; ok {
+					item.HaveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(item.IsJoinPermission, currClassify.IsJoinPermission, item.EdbInfoId, item.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
+				}
+			}
+		}
+
 		// 单位
 		if chartType == utils.CHART_TYPE_BAR && len(yDataList) > 0 {
 			chartInfo.Unit = yDataList[0].Unit

+ 2 - 2
controllers/data_manage/chart_theme.go

@@ -160,7 +160,7 @@ func (c *ChartThemeController) GetThemePreviewData() {
 		chartInfo.ChartName = "散点图"
 	case 7: // 柱形图
 		edbInfoIdList = []int{1, 2, 3, 4, 5}
-		extraConfigStr = `{"EdbInfoIdList":[{"EdbInfoId":1,"Name":"指标1","NameEn":"","Source":0},{"EdbInfoId":2,"Name":"指标2","NameEn":"","Source":0},{"EdbInfoId":3,"Name":"指标3","NameEn":"","Source":0},{"EdbInfoId":4,"Name":"指标4","NameEn":"","Source":0},{"EdbInfoId":5,"Name":"指标5","NameEn":"","Source":0}],"DateList":[{"Type":2,"Date":"","Value":100,"Color":"#00f","Name":""},{"Type":1,"Date":"","Value":0,"Color":"#f00","Name":""}],"Sort":{"Sort":0,"DateIndex":0},"XEdbList":null,"YEdbList":null,"Unit":"千桶","UnitEn":""}`
+		extraConfigStr = `{"EdbInfoIdList":[{"EdbInfoId":1,"Name":"指标1","NameEn":"","Source":0},{"EdbInfoId":2,"Name":"指标2","NameEn":"","Source":0},{"EdbInfoId":3,"Name":"指标3","NameEn":"","Source":0},{"EdbInfoId":4,"Name":"指标4","NameEn":"","Source":0},{"EdbInfoId":5,"Name":"指标5","NameEn":"","Source":0}],"DateList":[{"Type":2,"Date":"","Value":100,"Color":"","Name":""},{"Type":1,"Date":"","Value":0,"Color":"","Name":""}],"Sort":{"Sort":0,"DateIndex":0},"XEdbList":null,"YEdbList":null,"Unit":"千桶","UnitEn":""}`
 		chartInfo.ChartName = "柱形图"
 	case 10: // 截面散点图
 		edbInfoIdList = []int{9, 10, 11, 12, 13, 14, 15, 16, 17, 18}
@@ -170,7 +170,7 @@ func (c *ChartThemeController) GetThemePreviewData() {
 		edbInfoIdList = []int{19, 20, 21, 22, 23, 24}
 		chartInfo.LeftMin = "10000"
 		chartInfo.LeftMax = "60000"
-		extraConfigStr = `{"DateList":[{"Type":3,"Date":"2023-11-01","Value":0,"Color":"#00f","Name":""},{"Type":1,"Date":"","Value":0,"Color":"#f00","Name":""}]}`
+		extraConfigStr = `{"DateList":[{"Type":3,"Date":"2023-11-01","Value":0,"Color":"","Name":""},{"Type":1,"Date":"","Value":0,"Color":"","Name":""}]}`
 		chartInfo.ChartName = "雷达图"
 	default:
 		br.Msg = "暂不支持该类型"

+ 12 - 13
controllers/sys_role.go

@@ -2,7 +2,6 @@ package controllers
 
 import (
 	"eta/eta_mobile/models"
-	"eta/eta_mobile/models/company"
 	"eta/eta_mobile/models/system"
 	"eta/eta_mobile/utils"
 )
@@ -107,18 +106,18 @@ func (this *SysRoleController) SystemConfig() {
 	}
 	list = append(list, osc)
 
-	// 获取审批流设置
-	confKey := "approval_flow"
-	confTmp, e := company.GetConfigDetailByCode(confKey)
-	if e != nil {
-		br.Msg = "获取审批流配置失败"
-		br.ErrMsg = "获取审批流配置失败, Err: " + e.Error()
-		return
-	}
-	list = append(list, system.BusinessConf{
-		ConfKey: "ApprovalFlow",
-		ConfVal: confTmp.ConfigValue,
-	})
+	//// 获取审批流设置
+	//confKey := "approval_flow"
+	//confTmp, e := company.GetConfigDetailByCode(confKey)
+	//if e != nil {
+	//	br.Msg = "获取审批流配置失败"
+	//	br.ErrMsg = "获取审批流配置失败, Err: " + e.Error()
+	//	return
+	//}
+	//list = append(list, system.BusinessConf{
+	//	ConfKey: "ApprovalFlow",
+	//	ConfVal: confTmp.ConfigValue,
+	//})
 
 	br.Data = list
 	br.Ret = 200

+ 61 - 20
controllers/user_login.go

@@ -268,19 +268,7 @@ func (this *UserLoginController) Login() {
 	}
 	req.Username = strings.TrimSpace(req.Username)
 	req.Mobile = strings.TrimSpace(req.Mobile)
-	if req.Mobile != "" {
-		if !utils.ValidateMobileFormatat(req.Mobile) {
-			br.Msg = "您的手机号输入有误, 请检查"
-			return
-		}
-	}
 	req.Email = strings.TrimSpace(req.Email)
-	if req.Email != "" {
-		if !utils.ValidateEmailFormatat(req.Email) {
-			br.Msg = "您的邮箱输入有误, 请检查"
-			return
-		}
-	}
 	req.VerifyCode = strings.TrimSpace(req.VerifyCode)
 	if req.LoginType != 1 && req.LoginType != 2 && req.LoginType != 3 {
 		br.Msg = "登录方式有误"
@@ -512,7 +500,7 @@ func (this *UserLoginController) Login() {
 	account := utils.MD5(sysUser.AdminName)
 	token := utils.GenToken(account)
 	sysSession := new(system.SysSession)
-	sysSession.UserName = req.Username
+	sysSession.UserName = sysUser.AdminName
 	sysSession.SysUserId = sysUser.AdminId
 	sysSession.ExpiredTime = time.Now().AddDate(0, 0, 90)
 	sysSession.IsRemember = 0 // 均需要做过期校验
@@ -986,12 +974,12 @@ func (this *UserLoginController) CheckUserLdap() {
 	br.Msg = "操作成功"
 }
 
-// ICPLicense
-// @Title icp备案信息
-// @Description icp备案信息
+// BaseInfo
+// @Title 基础信息
+// @Description 基础信息
 // @Success 200 Ret=200 获取成功
-// @router /icp_license [get]
-func (this *UserLoginController) ICPLicense() {
+// @router /base_info [get]
+func (this *UserLoginController) BaseInfo() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
@@ -1001,14 +989,67 @@ func (this *UserLoginController) ICPLicense() {
 		this.ServeJSON()
 	}()
 
-	item, e := models.GetBusinessConfByKey("ICPLicense")
+	icp, e := models.GetBusinessConfByKey("ICPLicense")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
+		return
+	}
+
+	title, e := models.GetBusinessConfByKey("ETATitle")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
+		return
+	}
+
+	tabNameMobile, e := models.GetBusinessConfByKey("TabNameMobile")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
+		return
+	}
+
+	logoCn, e := models.GetBusinessConfByKey("LogoCN")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
+		return
+	}
+
+	logoEn, e := models.GetBusinessConfByKey("LogoEN")
 	if e != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
 		return
 	}
 
-	br.Data = item
+	logoMobile, e := models.GetBusinessConfByKey("LogoMobile")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
+		return
+	}
+
+	type BaseInfoResp struct {
+		Icp           *models.BusinessConf `description:"Icp信息"`
+		ETATitle      *models.BusinessConf `description:"eta系统名称"`
+		TabNameMobile *models.BusinessConf `description:"tab页名称"`
+		LogoCn        *models.BusinessConf `description:"中文logo"`
+		LogoEn        *models.BusinessConf `description:"英文logo"`
+		LogoMobile    *models.BusinessConf `description:"移动端logo"`
+	}
+
+	resp := BaseInfoResp{
+		Icp:           icp,
+		ETATitle:      title,
+		TabNameMobile: tabNameMobile,
+		LogoCn:        logoCn,
+		LogoEn:        logoEn,
+		LogoMobile:    logoMobile,
+	}
+
+	br.Data = resp
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 1 - 1
models/data_manage/chart_info.go

@@ -86,7 +86,7 @@ func GetChartInfoAll(sourceList []int) (items []*ChartClassifyItems, err error)
 	}
 
 	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT chart_info_id,chart_classify_id,chart_name AS chart_classify_name,
+	sql := ` SELECT chart_info_id,chart_classify_id,chart_name AS chart_classify_name,chart_name_en AS chart_classify_name_en,
              unique_code,sys_user_id,sys_user_real_name,date_type,start_date,end_date,chart_type,calendar,season_start_date,season_end_date,source
             FROM chart_info WHERE source in (` + utils.GetOrmInReplace(num) + `)  ORDER BY sort asc,chart_info_id ASC `
 	_, err = o.Raw(sql, sourceList).QueryRows(&items)

+ 2 - 0
models/data_manage/edb_info.go

@@ -1264,7 +1264,9 @@ type MoveEdbChartList struct {
 	DataId         string `description:"指标/图表唯一id"`
 	Code           string `description:"指标code"`
 	Name           string `description:"指标/图表名称"`
+	NameEn         string `description:"指标/图表名称"`
 	ClassifyName   string `description:"分类名称"`
+	ClassifyNameEn string `description:"分类名称"`
 	CreateUserId   int    `description:"创建人id"`
 	CreateUserName string `description:"创建人名称"`
 }

+ 9 - 9
routers/commentsRouter.go

@@ -6100,6 +6100,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"],
+        beego.ControllerComments{
+            Method: "BaseInfo",
+            Router: `/base_info`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"],
         beego.ControllerComments{
             Method: "ForgetAccountGet",
@@ -6136,15 +6145,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"],
-        beego.ControllerComments{
-            Method: "ICPLicense",
-            Router: `/icp_license`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"] = append(beego.GlobalControllerRouter["eta/eta_mobile/controllers:UserLoginController"],
         beego.ControllerComments{
             Method: "CheckUserLdap",

+ 20 - 4
services/data/data_manage_permission/data_move.go

@@ -257,6 +257,8 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 					Code:           v.TradeCode,
 					Name:           v.SecName,
 					ClassifyName:   v.ClassifyName,
+					NameEn:         v.SecName,
+					ClassifyNameEn: v.ClassifyName,
 					CreateUserId:   v.UserId,
 					CreateUserName: adminMap[v.UserId],
 				})
@@ -292,6 +294,7 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 				DataId: strconv.Itoa(v.BaseFromMysteelChemicalIndexId),
 				Code:   v.IndexCode,
 				Name:   v.IndexName,
+				NameEn: v.IndexName,
 				//ClassifyName: v.,
 				CreateUserId:   v.SysUserId,
 				CreateUserName: v.SysUserRealName,
@@ -299,8 +302,8 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 		}
 	case 3, 4: //ETA指标库、ETA预测指标
 		if keyword != `` {
-			condition += " AND (edb_code like ? OR edb_name like ? OR sys_user_real_name like ? ) "
-			pars = utils.GetLikeKeywordPars(pars, keyword, 3)
+			condition += " AND (edb_code like ? OR edb_name like ? OR edb_name_en like ? OR sys_user_real_name like ? ) "
+			pars = utils.GetLikeKeywordPars(pars, keyword, 4)
 		}
 		if userId > 0 {
 			condition += ` AND sys_user_id = ? `
@@ -332,6 +335,7 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 				DataId: strconv.Itoa(v.EdbInfoId),
 				Code:   v.EdbCode,
 				Name:   v.EdbName,
+				NameEn: v.EdbNameEn,
 				//ClassifyName: v.,
 				CreateUserId:   v.SysUserId,
 				CreateUserName: v.SysUserRealName,
@@ -345,8 +349,8 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 
 		// 关键字搜索
 		if keyword != `` {
-			condition += " AND (chart_name like ?  OR sys_user_real_name like ? ) "
-			pars = utils.GetLikeKeywordPars(pars, keyword, 2)
+			condition += " AND (chart_name like ? or chart_name_en like ?  OR sys_user_real_name like ? ) "
+			pars = utils.GetLikeKeywordPars(pars, keyword, 3)
 		}
 		if userId > 0 {
 			condition += ` AND sys_user_id = ? `
@@ -373,8 +377,10 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 			return
 		}
 		firstClassifyNameMap := make(map[int]string)
+		firstClassifyNameEnMap := make(map[int]string)
 		for _, v := range firstClassifyList {
 			firstClassifyNameMap[v.ChartClassifyId] = v.ChartClassifyName
+			firstClassifyNameEnMap[v.ChartClassifyId] = v.ChartClassifyNameEn
 		}
 		secondClassList, tmpErr := data_manage.GetChartClassifyAll(1)
 		if tmpErr != nil {
@@ -382,12 +388,18 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 			return
 		}
 		secondClassifyNameMap := make(map[int]string)
+		secondClassifyNameEnMap := make(map[int]string)
 		for _, v := range secondClassList {
 			firstName := firstClassifyNameMap[v.ParentId]
+			firstNameEn := firstClassifyNameEnMap[v.ParentId]
 			if firstName != `` {
 				firstName = firstName + " / "
 			}
+			if firstNameEn != `` {
+				firstNameEn = firstNameEn + " / "
+			}
 			secondClassifyNameMap[v.ChartClassifyId] = firstName + v.ChartClassifyName
+			secondClassifyNameEnMap[v.ChartClassifyId] = firstNameEn + v.ChartClassifyNameEn
 		}
 
 		for _, v := range tmpList {
@@ -395,6 +407,8 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 				DataId:         strconv.Itoa(v.ChartInfoId),
 				Name:           v.ChartName,
 				ClassifyName:   secondClassifyNameMap[v.ChartClassifyId],
+				NameEn:         v.ChartNameEn,
+				ClassifyNameEn: secondClassifyNameEnMap[v.ChartClassifyId],
 				CreateUserId:   v.SysUserId,
 				CreateUserName: v.SysUserRealName,
 			})
@@ -454,6 +468,8 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 				DataId:         strconv.Itoa(v.ExcelInfoId),
 				Name:           v.ExcelClassifyName,
 				ClassifyName:   secondClassifyNameMap[v.ExcelClassifyId],
+				NameEn:         v.ExcelClassifyName,
+				ClassifyNameEn: secondClassifyNameMap[v.ExcelClassifyId],
 				CreateUserId:   v.SysUserId,
 				CreateUserName: v.SysUserRealName,
 			})

+ 1 - 1
services/data/excel/excel_op.go

@@ -97,7 +97,7 @@ func Copy(oldExcelInfoId, excelClassifyId int, excelName string, sysUser *system
 	// 操作权限校验
 	{
 		// 数据权限
-		haveOperaAuth, tmpErr := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, sysUser.AdminId)
+		haveOperaAuth, tmpErr := data_manage_permission.CheckExcelPermissionByExcelInfoId(oldExcelInfo.ExcelInfoId, oldExcelInfo.ExcelClassifyId, oldExcelInfo.IsJoinPermission, sysUser.AdminId)
 		if err != nil {
 			errMsg = "获取ETA表格权限失败"
 			err = errors.New("获取ETA表格权限失败,Err:" + tmpErr.Error())

+ 7 - 3
utils/common.go

@@ -2090,14 +2090,18 @@ func GetColorMap() map[int]string {
 // @return bool
 // @return string
 func IsPercentage(input string) (bool, string) {
-	percentagePattern := `^(\d{1,2}(\.\d{1,2})?)%$`
+	percentagePattern := `^-?(\d+(\.\d+)?)%$`
 	match, _ := regexp.MatchString(percentagePattern, input)
 
 	if match {
-		// 提取百分比值
 		re := regexp.MustCompile(percentagePattern)
 		match := re.FindStringSubmatch(input)
-		return true, match[1]
+		// 区分负数和正数,确保返回结果包含负号(如有)
+		sign := "-"
+		if input[0] != '-' {
+			sign = ""
+		}
+		return true, sign + match[1]
 	}
 
 	return false, ""

+ 3 - 3
utils/redis/cluster_redis.go

@@ -149,12 +149,12 @@ func (rc *ClusterRedisClient) Put(key string, val interface{}, timeout time.Dura
 // @param timeout
 // @return bool
 func (rc *ClusterRedisClient) SetNX(key string, val interface{}, timeout time.Duration) bool {
-	result, err := rc.redisClient.SetEX(context.TODO(), key, val, timeout).Result()
-	if err != nil || result != "OK" {
+	result, err := rc.redisClient.SetNX(context.TODO(), key, val, timeout).Result()
+	if err != nil {
 		return false
 	}
 
-	return true
+	return result
 }
 
 // Delete

+ 3 - 3
utils/redis/standalone_redis.go

@@ -141,12 +141,12 @@ func (rc *StandaloneRedisClient) Put(key string, val interface{}, timeout time.D
 // @param timeout
 // @return bool
 func (rc *StandaloneRedisClient) SetNX(key string, val interface{}, timeout time.Duration) bool {
-	result, err := rc.redisClient.SetEX(context.TODO(), key, val, timeout).Result()
-	if err != nil || result != "OK" {
+	result, err := rc.redisClient.SetNX(context.TODO(), key, val, timeout).Result()
+	if err != nil {
 		return false
 	}
 
-	return true
+	return result
 }
 
 // Delete