From cb2834887d261e1f6402e1a4359da72892d92edd Mon Sep 17 00:00:00 2001 From: zhangjun <53766543@qq.com> Date: Fri, 17 Jul 2020 16:27:13 +0800 Subject: [PATCH] =?UTF-8?q?Base=20Lua=E6=9C=BA=E6=9E=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataEX/DataexService/BaseGOProc.go | 5 +- .../DataEX/DataexService/BaseLuaProc.go | 217 ++++++++++++++++++ .../DataEX/DataexService/DataexService.go | 5 + 3 files changed, 226 insertions(+), 1 deletion(-) diff --git a/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go b/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go index 04896ab9..ff627ae1 100644 --- a/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go +++ b/dsDataex/MyService/DataEX/DataexService/BaseGOProc.go @@ -247,8 +247,11 @@ func OrgtreeProcBatch(datas []MySwagger.Data) { }else { parentID = parentMap[jsonData["area_code"].(string)] + //if parentID==""{ + // parentID = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string)) + //} if parentID==""{ - parentID = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string)) + sqls2=append(sqls2,"update t_dataex_orgtree set parent_id =(select id from t_dataex_orgtree where org_type=1 and area_id='" + jsonData["area_code"].(string) + "') where id='"+IDs[no] +"'") } } } diff --git a/dsDataex/MyService/DataEX/DataexService/BaseLuaProc.go b/dsDataex/MyService/DataEX/DataexService/BaseLuaProc.go index 7b535196..e5161f6a 100644 --- a/dsDataex/MyService/DataEX/DataexService/BaseLuaProc.go +++ b/dsDataex/MyService/DataEX/DataexService/BaseLuaProc.go @@ -1 +1,218 @@ package DataexService + +import ( + "dsDataex/MyService/DataEX/DataexDAO" + "dsDataex/MyService/MySwagger" + "dsDataex/Utils/CacheUtil" + "dsDataex/Utils/ConfigUtil" + "dsDataex/Utils/DbUtil" + "encoding/json" + "strconv" + "strings" + "time" +) + +func LuaOrgtreeProcBatch(datas []MySwagger.Data) { + + var IDs []string + var areaIDs []string + + for no := 0; no < len(datas) && no < 1000; no++ { + var jsonData map[string]interface{} + + json.Unmarshal([]byte(datas[no].Data), &jsonData) + + var id=strconv.FormatFloat(jsonData["ORG_ID"].(float64), 'f', -1, 64) + IDs =append(IDs,strings.ToLower(id)) + + if Contains(areaIDs,jsonData["area_code"].(string))==-1 { + areaIDs = append(areaIDs, jsonData["area_code"].(string)) + } + } + + result := CacheUtil.GetListByIds(IDs, CacheUtil.GetBean("t_dataex_orgtree")) + + var updateIDs []string + + for no:=0;no< len(result) ;no++{ + updateIDs=append(updateIDs,result[no]["id"].(string)) + } + + var parentMap map[string]string + parentMap =DataexDAO.GetParentID2BaseGO(areaIDs) + + var sqls []string + var sql string + //补 parent_id + var sqls2 []string + var refresh = false + + for no:=0;no< len(datas) ;no++{ + + var jsonData map[string]interface{} + json.Unmarshal([]byte(datas[no].Data), &jsonData) + + var orgType string + var schoolType string + var parentID string + + switch jsonData["ORG_TYPE"].(type) { + case float64: + orgType =strconv.FormatFloat(jsonData["ORG_TYPE"].(float64), 'f', -1, 64) + break + case string: + orgType = jsonData["ORG_TYPE"].(string) + break + } + + if orgType!="1" &&orgType!="2" &&orgType!="7" { + continue + } + + if orgType=="2"{ + //默认-1 1:小学,2:初中,3:高中,4:完全中学,5:九年一贯制,6:十二年一贯制,7:大学,8:职业,9:幼儿 10:小幼一体 11:小幼初一体 + switch jsonData["school_type"].(float64) { + case 1: + schoolType="211" + break + case 2: + schoolType="311" + break + case 3: + schoolType="342" + break + case 4: + schoolType="341" + break + case 5: + schoolType="312" + break + case 6: + schoolType="345" + break + case 7: + schoolType="411" + break + case 8: + schoolType="414" + break + case 9: + schoolType="111" + break + case 10: + schoolType="211" + break + case 11: + schoolType="312" + break + + } + } + + if ConfigUtil.ROOT_ORGNAME == jsonData["ORG_NAME"].(string) { + parentID = "-1" + } else { + if orgType=="1" { + var areaCode string + + if jsonData["area_code"].(string)[2:] == "0000" {//省级 + + areaCode="100000" + }else if jsonData["area_code"].(string)[4:] == "00" {//市级 + + areaCode = jsonData["area_code"].(string)[0:2] + "0000" + } else {//县区级 + + areaCode = jsonData["area_code"].(string)[0:4] + "00" + + //处理直辖市 + if areaCode=="110100"{ + areaCode="110000"//北京 + } + if areaCode=="120100"{ + areaCode="120000"//天津 + } + if areaCode=="310100"{ + areaCode="310000"//上海 + } + if areaCode=="500100"{ + areaCode="500000"//重庆 + } + if areaCode=="500200"{ + areaCode="500000" + } + if areaCode=="371200"{ + areaCode="370100"//济南 + } + } + + parentID = parentMap[areaCode] + + //处理教育部 + if jsonData["area_code"].(string)=="100000"{ + parentID="0" + } + + //delete by zhangjun 2020-07-17 + //if parentID==""{ + // parentID = DataexDAO.GetParentIDBaseGO(areaCode) + //} + + if parentID==""{ + sqls2=append(sqls2,"update t_dataex_orgtree set parent_id =(select id from t_dataex_orgtree where org_type=1 and area_id='" + areaCode + "') where id='"+IDs[no] +"'") + } + }else { + parentID = parentMap[jsonData["area_code"].(string)] + + //if parentID==""{ + // parentID = DataexDAO.GetParentIDBaseGO(jsonData["area_code"].(string)) + //} + + if parentID==""{ + sqls2=append(sqls2,"update t_dataex_orgtree set parent_id =(select id from t_dataex_orgtree where org_type=1 and area_id='" + jsonData["area_code"].(string) + "') where id='"+IDs[no] +"'") + } + } + } + //是否需要刷新 机构访问控制缓存 + if Contains( CacheUtil.PARENT_IDS,parentID)>-1{ + refresh=true + } + + var provinceId = jsonData["province_code"].(string) + + var cityId="" + if jsonData["city_code"].(string) == "" || jsonData["city_code"].(string) == "-1" { + cityId = jsonData["province_code"].(string) + } else { + cityId = jsonData["city_code"].(string) + } + + var areaId="" + if jsonData["district_code"].(string) == "" || jsonData["district_code"].(string) == "-1" { + areaId = cityId + } else { + areaId = jsonData["district_code"].(string) + } + + if Contains(updateIDs, IDs[no])>-1 { + + sql = "update t_dataex_orgtree set org_name = '" + jsonData["ORG_NAME"].(string)+"',org_type="+ orgType +",school_type='"+schoolType+"',parent_id ='" + parentID + "',province_id='"+provinceId+"',city_id='"+cityId+"',area_id='"+areaId+"',change_time='"+time.Now().Format("2006-01-02 15:04:05")+"' where id='" + IDs[no] + "'" + }else { + + sql = "insert into t_dataex_orgtree (id,org_name,org_type,school_type,parent_id,province_id,city_id,area_id,create_time,delete_flag,enable_flag) values ('"+ IDs[no] +"','"+jsonData["ORG_NAME"].(string)+"',"+orgType+",'"+schoolType+"','"+parentID+"','"+provinceId+"','"+cityId+"','"+areaId+"','"+time.Now().Format("2006-01-02 15:04:05")+"',-1,1)" + } + + sqls=append(sqls,sql) + } + + DbUtil.Engine.Sqls(sqls).Execute() + + if len(sqls2)>0{ + DbUtil.Engine.Sqls(sqls2).Execute() + } + + //缓存命中、缓存为空、parent_id未知 刷新缓存 + if refresh || len(CacheUtil.PARENT_IDS)==0 || len(sqls2)>0{ + CacheUtil.RefreshOrgtree() + } +} diff --git a/dsDataex/MyService/DataEX/DataexService/DataexService.go b/dsDataex/MyService/DataEX/DataexService/DataexService.go index b6865f65..9b5c1d32 100644 --- a/dsDataex/MyService/DataEX/DataexService/DataexService.go +++ b/dsDataex/MyService/DataEX/DataexService/DataexService.go @@ -210,6 +210,11 @@ func DataexSetBatch(systemID string, datas []MySwagger.Data,datasource *models.T OrgtreeProcBatch(datas) } + if datasource.DatasourceCode=="org_school_lua" && systemID=="BASE_LUA"{ + + LuaOrgtreeProcBatch(datas) + } + //开始 ES 相关数据操作!!! if datasource.DatastoreType==1 || datasource.DatastoreType==2 {