From a000ef39409f0e64f71a2d59da190e2f54ad2ad6 Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 4 Mar 2021 12:29:44 +0800 Subject: [PATCH] rent wiwidi --- .../datatower/DataTowerController.java | 7 +- .../iformall/service/DataTowerService.java | 1 + .../service/impl/DataTowerServiceImpl.java | 44 +++++++++--- .../com/iformall/sms/wiwide/WiwideUtil.java | 6 ++ .../java/com/iformall/utils/HttpUtil.java | 67 +++++++++++++++++++ 5 files changed, 116 insertions(+), 9 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/DataTowerController.java b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/DataTowerController.java index a23be42dc..cd4fb5943 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/datatower/DataTowerController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/datatower/DataTowerController.java @@ -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 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); } } diff --git a/mallinkService/src/main/java/com/iformall/service/DataTowerService.java b/mallinkService/src/main/java/com/iformall/service/DataTowerService.java index 5c5ee3144..7772da604 100644 --- a/mallinkService/src/main/java/com/iformall/service/DataTowerService.java +++ b/mallinkService/src/main/java/com/iformall/service/DataTowerService.java @@ -21,4 +21,5 @@ public interface DataTowerService { ResultData queryCustomerData(TenantEntity tenantEntity, Map params); + ResultData queryWiWideDataUrl(TenantEntity tenantInfo, String url, Map params); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java index 89ec91369..39a1038cc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java @@ -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 params) { + WxWiWideInfo wiWideInfo = new WxWiWideInfo(); + wiWideInfo.updateTenantInfo(tenantEntity); + List 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 timemap = new TreeMap(); timemap.put("06:00", 0); diff --git a/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java b/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java index 308ee2a02..f8776cb87 100644 --- a/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java +++ b/mallinkService/src/main/java/com/iformall/sms/wiwide/WiwideUtil.java @@ -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 params) { + + String data = HttpUtil.doPostWiwideNew(url, sign, params); + return data; + } public static void main(String[] args) { Map params = new HashMap<>(2); diff --git a/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java b/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java index ee8e3e6c0..957397c63 100644 --- a/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java @@ -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 nvps = new ArrayList(); + 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