Browse Source

Merge remote-tracking branch 'origin/eta/2.0.0' into debug

Roc 7 tháng trước cách đây
mục cha
commit
c2af055a38
2 tập tin đã thay đổi với 81 bổ sung33 xóa
  1. 0 1
      controllers/data_manage/manual_edb.go
  2. 81 32
      controllers/target.go

+ 0 - 1
controllers/data_manage/manual_edb.go

@@ -482,7 +482,6 @@ func (c *ManualEdbController) EditExcelData() {
 
 	// 如果不是超管账号,那么得校验下当前用户是否有该指标的权限
 	if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN {
-		//获取账户所拥有权限的分类id集合
 		count, err := models.GetCountManualUserClassify(sysUser.AdminId, manualEdbInfo.ClassifyId)
 		if err != nil {
 			br.Msg = "获取分类数据失败"

+ 81 - 32
controllers/target.go

@@ -3275,40 +3275,84 @@ func (this *TargetController) ExcelDataAdd() {
 	updateEdbTradeMap := make(map[string]bool)
 	updateDataTradeMap := make(map[string]bool)
 	defer func() {
-		addRecordList := make([]*models.EdbinfoOpRecord, 0)
-		for tradeCode := range addEdbTradeMap {
-			addRecordList = append(addRecordList, &models.EdbinfoOpRecord{
-				TradeCode:  tradeCode,
-				Remark:     "创建指标",
-				UserId:     sysUser.AdminId,
-				UserName:   sysUser.RealName,
-				CreateTime: time.Now(),
-			})
-		}
-		for tradeCode := range updateEdbTradeMap {
-			addRecordList = append(addRecordList, &models.EdbinfoOpRecord{
-				TradeCode:  tradeCode,
-				Remark:     "编辑指标",
-				UserId:     sysUser.AdminId,
-				UserName:   sysUser.RealName,
-				CreateTime: time.Now(),
-			})
-		}
-		for tradeCode := range updateDataTradeMap {
-			addRecordList = append(addRecordList, &models.EdbinfoOpRecord{
-				TradeCode:  tradeCode,
-				Remark:     "更新数据",
-				UserId:     sysUser.AdminId,
-				UserName:   sysUser.RealName,
-				CreateTime: time.Now(),
-			})
-		}
-		if len(addRecordList) > 0 {
-			obj := models.EdbinfoOpRecord{}
-			_ = obj.MulCreate(addRecordList)
-		}
+		go func(addEdbTradeMap, updateEdbTradeMap, updateDataTradeMap map[string]bool) {
+			addRecordList := make([]*models.EdbinfoOpRecord, 0)
+			for tradeCode := range addEdbTradeMap {
+				addRecordList = append(addRecordList, &models.EdbinfoOpRecord{
+					TradeCode:  tradeCode,
+					Remark:     "创建指标",
+					UserId:     sysUser.AdminId,
+					UserName:   sysUser.RealName,
+					CreateTime: time.Now(),
+				})
+			}
+			for tradeCode := range updateEdbTradeMap {
+				addRecordList = append(addRecordList, &models.EdbinfoOpRecord{
+					TradeCode:  tradeCode,
+					Remark:     "编辑指标",
+					UserId:     sysUser.AdminId,
+					UserName:   sysUser.RealName,
+					CreateTime: time.Now(),
+				})
+			}
+			for tradeCode := range updateDataTradeMap {
+				addRecordList = append(addRecordList, &models.EdbinfoOpRecord{
+					TradeCode:  tradeCode,
+					Remark:     "更新数据",
+					UserId:     sysUser.AdminId,
+					UserName:   sysUser.RealName,
+					CreateTime: time.Now(),
+				})
+			}
+			if len(addRecordList) > 0 {
+				obj := models.EdbinfoOpRecord{}
+				_ = obj.MulCreate(addRecordList)
+			}
+
+			//将该指标的code加入到 “手工数据导入后刷新” 缓存
+			if utils.Re == nil {
+				for tradeCode := range updateDataTradeMap {
+					// 更新手工数据的最大最小值
+					data.ModifyManualEdbMaxMinDate(tradeCode)
+					//将该指标的code加入到 “手工数据导入后刷新” 缓存
+					err := utils.Rc.LPush(utils.CACHE_IMPORT_MANUAL_DATA, tradeCode)
+					if err != nil {
+						fmt.Println("CACHE_IMPORT_MANUAL_DATA LPush Err:" + err.Error())
+					}
+				}
+
+			}
+		}(addEdbTradeMap, updateEdbTradeMap, updateDataTradeMap)
 	}()
 
+	//超管账号可以查看分类下的所有频度数据
+	userId := sysUser.AdminId
+	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
+		userId = 0
+
+		// 校验下当前用户是否有该指标的权限
+		count, err := models.GetCountManualUserClassify(sysUser.AdminId, req.ClassifyId)
+		if err != nil {
+			br.Msg = "获取分类数据失败"
+			br.ErrMsg = "获取分类数据失败,err:" + err.Error()
+			return
+		}
+
+		if count <= 0 {
+			br.Msg = "无权访问"
+			br.ErrMsg = "无权访问"
+			br.IsSendEmail = false
+			return
+		}
+	}
+	//获取账户所拥有权限的分类id集合
+	classifyIdList, err := data.GetUserManualClassifyIdList(userId)
+	if err != nil {
+		br.Msg = "获取分类数据失败"
+		br.Msg = "获取拥有的分类数据失败,Err:" + err.Error()
+		return
+	}
+
 	//操作指标,新增指标及数据等
 	{
 		for i := 0; i < len(secNameList); i++ {
@@ -3391,6 +3435,11 @@ func (this *TargetController) ExcelDataAdd() {
 						}
 					}
 
+					// 没有该分类品种权限的话,那么就过滤
+					if !utils.InArrayByInt(classifyIdList, target.ClassifyId) {
+						continue
+					}
+
 					//判断指标数据是否已经存在
 					tmpDataMap, ok2 := edbCodeDataMap[target.TradeCode]
 					if !ok2 {