| @@ -1,6 +1,7 @@ | |||
| package com.iformall.controller.datatower; | |||
| import com.iformall.annotation.SystemControllerLog; | |||
| import com.iformall.common.ErrorCode; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.base.TenantEntity; | |||
| @@ -107,7 +108,11 @@ public class DataTowerController extends BaseController { | |||
| public ResultData queryWiWideData(@RequestBody Map<String,String> params) { | |||
| logger.debug("[" + getIpAddr() + "] DataTowerController::queryWiWideData"); | |||
| String url = params.get("url"); | |||
| return null; | |||
| if(StringUtils.isBlank(url)){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL,"url不能为空"); | |||
| } | |||
| params.remove("url"); | |||
| return dataTowerService.queryWiWideDataUrl(getTenantInfo(),url,params); | |||
| } | |||
| } | |||
| @@ -21,4 +21,5 @@ public interface DataTowerService { | |||
| ResultData queryCustomerData(TenantEntity tenantEntity, Map<String, String> params); | |||
| ResultData queryWiWideDataUrl(TenantEntity tenantInfo, String url, Map<String, String> params); | |||
| } | |||
| @@ -793,7 +793,8 @@ public class DataTowerServiceImpl implements DataTowerService { | |||
| if(list.size()>0){ | |||
| wiWideInfo = list.get(0); | |||
| String wiwideUrl = wiWideInfo.getWiwideUrl(); | |||
| datamap.put("token", getWiwideSercret(wiWideInfo)); | |||
| // datamap.put("token", getWiwideSercret(wiWideInfo)); | |||
| getWiwideSercret(wiWideInfo); | |||
| datamap.put("sign", WiwideEntry.encrypt(wiWideInfo)); | |||
| datamap.put("url", wiwideUrl); | |||
| datamap.put("capability", wiWideInfo.getCapability()); | |||
| @@ -819,14 +820,12 @@ public class DataTowerServiceImpl implements DataTowerService { | |||
| } | |||
| private void updateSercret(WxWiWideInfo wiWideInfo,WiwideSercret sercret) { | |||
| WxWiWideInfo record = new WxWiWideInfo(); | |||
| record.setId(wiWideInfo.getId()); | |||
| record.setWiwideId(sercret.getSecretId()); | |||
| record.setWiwideKey(sercret.getSecretKey()); | |||
| wiWideInfo.setWiwideId(sercret.getSecretId()); | |||
| wiWideInfo.setWiwideKey(sercret.getSecretKey()); | |||
| try { | |||
| logger.info("要更新的数据before>>>>>>>>>>"+JSONObject.toJSONString(record)); | |||
| wxWiwideInfoMapper.updateSercret(record); | |||
| logger.info("要更新的数据after>>>>>>>>>>"+JSONObject.toJSONString(record)); | |||
| // logger.info("要更新的数据before>>>>>>>>>>"+JSONObject.toJSONString(record)); | |||
| wxWiwideInfoMapper.updateSercret(wiWideInfo); | |||
| logger.info("要更新的数据after>>>>>>>>>>"+JSONObject.toJSONString(wiWideInfo)); | |||
| } catch (MallinkException e) { | |||
| logger.info("更新TOKEN失败:商场" + wiWideInfo.getTenantId()); | |||
| } | |||
| @@ -898,6 +897,35 @@ public class DataTowerServiceImpl implements DataTowerService { | |||
| } | |||
| } | |||
| @Override | |||
| public ResultData queryWiWideDataUrl(TenantEntity tenantEntity, String url, Map<String, String> params) { | |||
| WxWiWideInfo wiWideInfo = new WxWiWideInfo(); | |||
| wiWideInfo.updateTenantInfo(tenantEntity); | |||
| List<WxWiWideInfo> list = wxWiwideInfoMapper.findList(wiWideInfo); | |||
| if (list.isEmpty()){ | |||
| return new ResultData(ErrorCode.WIWIDE_INFO_NOT_FOUND); | |||
| } | |||
| wiWideInfo = list.get(0); | |||
| String wiwideUrl = wiWideInfo.getWiwideUrl(); | |||
| wiwideUrl += wiwideUrl + url; | |||
| WiwideSercret wiwideSercret = getWiwideSercret(wiWideInfo); | |||
| if(wiwideSercret == null){ | |||
| return new ResultData(ErrorCode.WIWIDE_INFO_NOT_READY); | |||
| } | |||
| String sign = WiwideEntry.encrypt(wiWideInfo); | |||
| logger.info("迈外迪访问接口["+wiwideUrl+"]参数:" + params); | |||
| String res = WiwideUtil.queryDataNew(wiwideUrl,sign,params); | |||
| JSONObject result = JSONObject.parseObject(res); | |||
| if (result == null) | |||
| return new ResultData(ErrorCode.WIWIDE_INFO_NOT_READY); | |||
| if (result.getInteger("result") == 0){ | |||
| return new ResultData(result.getInteger("result"),result.getString("msg"), | |||
| result.getJSONObject("data")); | |||
| } else{ | |||
| return new ResultData(result.getInteger("result"),result.getString("msg")); | |||
| } | |||
| } | |||
| public TreeMap getTimeTreeMap() { | |||
| TreeMap<Object, Object> timemap = new TreeMap(); | |||
| timemap.put("06:00", 0); | |||
| @@ -214,6 +214,12 @@ public class WiwideUtil implements SMSExcutor { | |||
| String data = HttpUtil.doPostWiwide(wiWideInfo.getWiwideUrl() + "/reports/data", token, params); | |||
| return data; | |||
| } | |||
| public static String queryDataNew(String url, String sign, Map<String, String> params) { | |||
| String data = HttpUtil.doPostWiwideNew(url, sign, params); | |||
| return data; | |||
| } | |||
| public static void main(String[] args) { | |||
| Map<String, String> params = new HashMap<>(2); | |||
| @@ -206,6 +206,73 @@ public class HttpUtil { | |||
| return null; | |||
| } | |||
| /** | |||
| * post请求(用于key-value格式的参数,wiwide) | |||
| * @param url | |||
| * @param params | |||
| * @return | |||
| */ | |||
| public static String doPostWiwideNew(String url, String cookie, Map params){ | |||
| //CookieStore store= new BasicCookieStore(); | |||
| //HttpClients.custom().setDefaultCookieStore(store).build(); | |||
| // 定义HttpClient | |||
| CloseableHttpClient client = HttpClients.createDefault(); | |||
| BufferedReader in = null; | |||
| try { | |||
| // 实例化HTTP方法 | |||
| HttpPost request = new HttpPost(); | |||
| request.setURI(new URI(url)); | |||
| request.setHeader("Content-Type", "application/x-www-form-urlencoded"); | |||
| request.setHeader("Accept-Charset", "utf-8"); | |||
| request.setHeader("Cookie", "Signature="+cookie); | |||
| //设置参数 | |||
| List<NameValuePair> nvps = new ArrayList<NameValuePair>(); | |||
| for (Iterator iter = params.keySet().iterator(); iter.hasNext();) { | |||
| String name = (String) iter.next(); | |||
| String value = String.valueOf(params.get(name)); | |||
| nvps.add(new BasicNameValuePair(name, value)); | |||
| //System.out.println(name +"-"+value); | |||
| } | |||
| request.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8)); | |||
| HttpResponse response = client.execute(request); | |||
| int code = response.getStatusLine().getStatusCode(); | |||
| if(code == 200){ //请求成功 | |||
| in = new BufferedReader(new InputStreamReader(response.getEntity() | |||
| .getContent(),"utf-8")); | |||
| StringBuilder sb = new StringBuilder(""); | |||
| String line = ""; | |||
| String NL = System.getProperty("line.separator"); | |||
| while ((line = in.readLine()) != null) { | |||
| sb.append(line + NL); | |||
| } | |||
| in.close(); | |||
| client.close(); | |||
| return sb.toString(); | |||
| } | |||
| else{ // | |||
| logger.info("状态码:" + code); | |||
| client.close(); | |||
| } | |||
| } | |||
| catch(Exception e){ | |||
| logger.error(e.getMessage()); | |||
| return null; | |||
| } | |||
| return null; | |||
| } | |||
| /** | |||
| * post请求(用于请求json格式的参数) | |||
| * @param url | |||