package com.dsideal.base.DataEase.Model; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.util.ArrayList; import java.util.List; public class DataEaseModel { //DataEase数据库名称 public static final String DB_NAME = "dataease"; /** * 获取当前人员可以看到哪些数据集 * * @param identity_id 身份id * @return 数据集列表 */ public List getDataSet(int identity_id) { String sql = "select * from t_dp_dataset where owner_id=? order by dataease_id desc"; return Db.find(sql, identity_id); } /** * 获取数据集对应的表 * * @param dataset_id 数据集id * @return */ public List getDataSetTableContent(int dataset_id) { Record record = getTableName(dataset_id); if (record == null) return null; String sql = "select * from `" + record.getStr("table_name") + "`"; List list = Db.use(DB_NAME).find(sql); return list; } /** * 根据数据集id获取表名 * * @param dataset_id 数据集id * @return 表对象 */ public Record getTableName(int dataset_id) { String sql = "select * from t_dp_dataset where id=?"; return Db.findFirst(sql, dataset_id); } /** * 保存数据集对应的表 * * @param dataset_id 数据集id * @param ja json数组 */ public void saveDataSetTable(int identity_id, int dataset_id, String xmqh, JSONArray ja) { System.out.println(ja); String tableName = getTableName(dataset_id).getStr("table_name"); if (identity_id > 1) { String sql = "delete from dataease.`" + tableName + "` where `行政区划`=?"; Db.update(sql, xmqh); } else { String sql = "delete from dataease.`" + tableName + "`"; Db.update(sql); } List list = new ArrayList<>(); for (int i = 0; i < ja.size(); i++) { JSONObject jsonObject = ja.getJSONObject(i); //遍历jo的每一个属性 // 或者使用keySet和for-each循环遍历 Record record = new Record(); for (Object key : jsonObject.keySet()) { Object value = jsonObject.get(key); if (value.equals("null")) value = null; record.set(key.toString(), value); } list.add(record); } Db.use("dataease").batchSave(tableName, list, 100); } /** * 更新DataEase中大屏中的行政区划 * * @param xzqhId 行政区划ID */ public void updateCity(String xzqhId) { //取出大屏的ID值 String sql = "select * from dataease.data_visualization_info where name ='黄海测试的市州地图'"; Record dataVisualizationInfo = Db.findFirst(sql); long bigScreenId = dataVisualizationInfo.getLong("id"); // 配置的内容 sql = "select id,custom_attr from dataease.core_chart_view where scene_id=? and type='map'"; List list = Db.find(sql, bigScreenId); for (Record record : list) { long id = record.getLong("id"); JSONObject jo = JSONObject.fromObject(record.getStr("custom_attr")); jo.getJSONObject("map").put("id", xzqhId); System.out.println(jo.getJSONObject("map")); //回写到数据库 String jsonString = jo.toString(); Db.update("update dataease.core_chart_view set custom_attr=? where id=?", jsonString, id); } /** * json格式化工具 * https://www.uutils.com/format/json.htm * * 互联网:2023年,省市县行政区划名称及编码对照表、最新省市区表1 * https://blog.csdn.net/isworking/article/details/128630487 */ } }