| | |
| | | import com.alibaba.fastjson.JSONArray;
|
| | | import com.alibaba.fastjson.JSONObject;
|
| | | import com.yb.config.XzConfig;
|
| | | import com.yb.helper.RsaHelper;
|
| | | import com.yb.util.EntityHttpUtil;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.stereotype.Service;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | | import java.util.Map;
|
| | |
|
| | | @Service
|
| | | public class IntentionService {
|
| | |
| | | private AgentService agentService;
|
| | | @Autowired
|
| | | private XzService xzService;
|
| | | @Autowired
|
| | | private EntityHttpUtil entityHttpUtil;
|
| | |
|
| | | public HashMap<String, Object> getFunctionMatch(String orderString) throws Exception {
|
| | | public HashMap<String, Object> getFunctionMatch(String orderString, Map<String, String> allParams) throws Exception {
|
| | | HashMap<String, Object> mapObj = new HashMap<String, Object>();
|
| | | JSONObject orderObject = JSON.parseObject(orderString);
|
| | | String name = JSONObject.parseObject(orderObject.getString("args")).getString("place");
|
| | | String func = orderObject.getString("name");
|
| | | String history = orderObject.getString("history");
|
| | |
|
| | | if (func.equals(xzConfig.funcName[0])) {
|
| | | mapObj = getPoiMap(orderObject, xzConfig.funcName[0]);
|
| | | mapObj = getPoiMap(orderObject,func);
|
| | | } else if (func.equals(xzConfig.funcName[1])) {
|
| | | mapObj = getAroundPoi(orderObject, xzConfig.funcName[1]);
|
| | | mapObj = getAroundPoi(orderObject, func);
|
| | | } else if (func.equals(xzConfig.funcName[2])) {
|
| | | mapObj = getQueryMeta(orderObject, xzConfig.funcName[2]);
|
| | | } else if (func.equals(xzConfig.funcName[2])) {
|
| | | mapObj = getQueryMeta(orderObject, xzConfig.funcName[2]);
|
| | | mapObj = getQueryMeta(orderObject, func);
|
| | | } else if (func.equals(xzConfig.funcName[3])) {
|
| | | mapObj = getQueryRelationship(orderObject, xzConfig.funcName[3]);
|
| | | mapObj = getQueryRelationship(orderObject, func);
|
| | | }else if (func.equals(xzConfig.funcName[4])) {
|
| | | mapObj = getCombatSimulate(orderObject, func);
|
| | | }else if (func.equals(xzConfig.funcName[5])) {
|
| | | mapObj = getBatEnv(orderObject, func, allParams);
|
| | | }
|
| | |
|
| | |
|
| | | return mapObj;
|
| | |
|
| | | }
|
| | |
|
| | | private HashMap<String, Object> getCombatSimulate(JSONObject orderObject, String func) {
|
| | | HashMap<String, Object> hashMap = new HashMap<String, Object>();
|
| | | hashMap.put("func", func);
|
| | | return hashMap;
|
| | | }
|
| | |
|
| | | private HashMap<String, Object> getBatEnv(JSONObject orderObject, String func, Map<String, String> allParams) throws Exception {
|
| | | HashMap<String, Object> hashMap = new HashMap<String, Object>();
|
| | | hashMap.put("func", func);
|
| | | // List list = orderObject.get("history");
|
| | | System.out.println("rec history1:" + allParams);
|
| | | String history = allParams.get("history");
|
| | | System.out.println("rec history1:" + history);
|
| | | String val = entityHttpUtil.postAgentMessage(xzConfig.battleReport, allParams);
|
| | | JSONObject js = JSONObject.parseObject(val);
|
| | | if(js == null){
|
| | | hashMap.put("msg", "报告生成失败");
|
| | | return hashMap;
|
| | | }
|
| | | System.out.println("rec history1:" + val);
|
| | | hashMap.put("msg", js.getString("content"));
|
| | |
|
| | | return hashMap;
|
| | | }
|
| | |
|
| | | //查看某个区域内各个实体/对象之间的关系
|
| | |
| | | hashMap.put("func", func);
|
| | | JSONObject argsObject = JSON.parseObject(orderObject.getString("args"));
|
| | | String place = argsObject.getString("place");
|
| | | HashMap<String,Object> poiMap = agentService.getQueryRelationship(place, xzConfig.queryFiled);
|
| | | HashMap<String, Object> poiMap = agentService.getQueryRelationship(place, xzConfig.queryFiled);
|
| | | String key = "msg";
|
| | | String msg = (String) poiMap.get(key);
|
| | | hashMap.put("msg", msg);
|
| | | hashMap.put("data", poiMap);
|
| | | return hashMap;
|
| | | }
|
| | |
| | | JSONObject metaObject = JSON.parseObject(filedString);
|
| | | JSONArray dataArray = metaObject.getJSONArray("data");
|
| | | String markDown = "| 数据类型 | 数据量 |\n|------|------|\n";
|
| | | ArrayList<HashMap<String, Object>> list = new ArrayList<>();
|
| | | for (int i = 0; i < dataArray.size(); i++) {
|
| | | JSONObject dataObj = dataArray.getJSONObject(i);
|
| | | System.out.println("rec queryMeta:" + dataObj);
|
| | | String[] filedValue = new String[2];
|
| | |
|
| | | for (String key : dataObj.keySet()) {
|
| | | System.out.println("rec 1:" + key+":"+xzConfig.typeFiled);
|
| | | String itemObj = dataObj.getString(key);
|
| | | System.out.println("rec 2:" +itemObj);
|
| | |
|
| | | if (key.equals(xzConfig.typeFiled) ) {
|
| | | filedValue[0] = dataObj.getString(key);
|
| | | }else{
|
| | | filedValue[1] = dataObj.getString(key);
|
| | | }
|
| | |
|
| | | }
|
| | | markDown += "| " + filedValue[0] + " | " + filedValue[1] + " |\n";
|
| | |
|
| | | HashMap<String, Object> listhash = new HashMap<>();
|
| | | String name = dataObj.getString(xzConfig.typeFiled);
|
| | | String count = dataObj.getString("count_" + xzConfig.typeFiled);
|
| | | ArrayList filedList = getQueryByFiledList(name);
|
| | | listhash.put("name", name);
|
| | | listhash.put("ids", filedList);
|
| | | list.add(listhash);
|
| | | markDown += "| " + name + " | " + count + " |\n";
|
| | | }
|
| | | hashMap.put("ids", list);
|
| | | hashMap.put("data", markDown);
|
| | | return hashMap;
|
| | |
|
| | | }
|
| | |
|
| | | // 关键字查询分类查询数据量
|
| | | private ArrayList getQueryByFiledList(String name) throws Exception {
|
| | | String obj = xzConfig.typeFiled + " = '" + name + "'" + "";
|
| | | String encrypt = RsaHelper.encrypt(xzService.getPublickey(), obj);
|
| | | HashMap hashMap = xzService.getHashMap(xzConfig.layerId, xzConfig.dbid, "1", "0", encrypt, null);
|
| | | String val = entityHttpUtil.getPostMessage(xzConfig.queryEntity, hashMap);
|
| | | ArrayList list = new ArrayList();
|
| | | String fObj = JSONObject.parseObject(val).getString("data");
|
| | | System.out.println("rec queryMeta:" + fObj);
|
| | | if (fObj != null) {
|
| | | JSONArray fArray = JSONArray.parseArray(JSONObject.parseObject(fObj).getString("items"));
|
| | | System.out.println("rec queryMeta:" + fArray);
|
| | | System.out.println("rec queryMeta:" + fArray.size());
|
| | | if (fArray.size() > 0) {
|
| | | for (int i = 0; i < fArray.size(); i++) {
|
| | | String sid = JSONObject.parseObject(fArray.get(i).toString()).getString("seid");
|
| | | list.add(sid);
|
| | | }
|
| | | }
|
| | | }
|
| | | return list;
|
| | | }
|
| | |
|
| | | //根据范围查询数据
|
| | |
| | | radius = Integer.parseInt(dis);
|
| | | }
|
| | | String aroundPoi = agentService.getAgentAroundPoi(place, type, radius, xzConfig.queryFiled, xzConfig.typeFiled);
|
| | | if (aroundPoi == "" || aroundPoi.isEmpty()) {
|
| | | String msg = "未查询到" + place + "相关数据。请提供更加详细数据。";
|
| | | hashMap.put("msg", msg);
|
| | | return hashMap;
|
| | | }
|
| | | JSONArray dataArray = JSONArray.parseArray(aroundPoi);
|
| | | System.out.println("aroundPoi: " + dataArray);
|
| | | hashMap.put("data", dataArray);
|
| | | String msg = "已查询到" + place + "内的" + type + "相关数据。共查询到" + dataArray.size() + "条数据。";
|
| | | hashMap.put("msg", msg);
|
| | | return hashMap;
|
| | |
|
| | | }
|
| | |
| | | JSONObject argsObject = JSON.parseObject(orderString.getString("args"));
|
| | | String place = argsObject.getString("place");
|
| | | String poiMap = agentService.getAgentPoiMap(place, xzConfig.queryFiled);
|
| | | System.out.println("poiMap: " + poiMap);
|
| | | JSONObject poiObj = JSONObject.parseObject(poiMap);
|
| | | if (poiMap == "" || poiMap.isEmpty()) {
|
| | | String msg = "未查询到" + place + "相关数据。请提供更加详细数据。";
|
| | | hashMap.put("msg", msg);
|
| | | return hashMap;
|
| | | }
|
| | | System.out.println("poiMap: " + poiObj);
|
| | | hashMap.put("func", func);
|
| | | hashMap.put("data", poiObj);
|
| | | String msg = "已查询到" + place + "相关数据。" + place + "数据已在地图上显示";
|
| | | hashMap.put("msg", msg);
|
| | | return hashMap;
|
| | | }
|
| | |
|