From e0573c03d1bae2d2402c25106c4b5b7e5f13ac5a Mon Sep 17 00:00:00 2001 From: hupeng Date: Fri, 16 Nov 2018 13:05:08 +0800 Subject: [PATCH] =?UTF-8?q?[=E7=B3=BB=E7=BB=9F][=E4=BF=AE=E5=A4=8D]:?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8D=96=E5=A4=96=E8=BF=AA=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DataTowerController.java | 9 +++ .../iformall/service/DataTowerService.java | 4 ++ .../service/impl/DataTowerServiceImpl.java | 50 ++++++++++++--- .../java/com/iformall/utils/HttpUtil.java | 64 +++++++++++++++++++ .../java/com/iformall/utils/WiwideUtil.java | 6 ++ 5 files changed, 123 insertions(+), 10 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/DataTowerController.java b/mallinkAdmin/src/main/java/com/iformall/controller/DataTowerController.java index 459606673..6dbe4570f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/DataTowerController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/DataTowerController.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -75,5 +76,13 @@ public class DataTowerController extends BaseController { return new ResultData(data); } + @ApiOperation("查询客流") + @PostMapping("/queryCustomerData") + public ResultData queryCustomerData(@RequestBody Map params) { + logger.debug("[" + getIpAddr() + "] DataTowerController::queryCustomer"); + + return dataTowerService.queryCustomerData(getTenantId(), params); + } + } diff --git a/mallinkService/src/main/java/com/iformall/service/DataTowerService.java b/mallinkService/src/main/java/com/iformall/service/DataTowerService.java index d23ff401a..46061a865 100644 --- a/mallinkService/src/main/java/com/iformall/service/DataTowerService.java +++ b/mallinkService/src/main/java/com/iformall/service/DataTowerService.java @@ -1,6 +1,8 @@ package com.iformall.service; +import com.iformall.common.ResultData; + import java.util.Map; public interface DataTowerService { @@ -15,4 +17,6 @@ public interface DataTowerService { Map queryCustomer(String tenantId); + ResultData queryCustomerData(String tenantId, 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 09b844637..832a1a532 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/DataTowerServiceImpl.java @@ -673,17 +673,10 @@ public class DataTowerServiceImpl implements DataTowerService { wxMall = list.get(0); String wiwideUrl = wxMall.getWiwideUrl(); Map datamap = new HashMap<>(2); - Date expiredTime = wxMall.getExpiredTime(); - String token = wxMall.getToken(); - if (!StringUtils.isEmpty(token) && expiredTime!=null && expiredTime.after(new Date())) { - datamap.put("token", wxMall.getToken()); - } else { - String data = WiwideUtil.queryToken(wxMall); - token = (String) JSONObject.parseObject(data).get("data"); - datamap.put("token", token); - updateToken(wxMall, token); - } + + datamap.put("token", getWiwideToken(wxMall)); datamap.put("url", wiwideUrl); + return datamap; } @@ -701,6 +694,43 @@ public class DataTowerServiceImpl implements DataTowerService { } } + private String getWiwideToken(WxMall wxMall) { + Date expiredTime = wxMall.getExpiredTime(); + String token = wxMall.getToken(); + + if (StringUtils.isEmpty(token) || expiredTime == null || expiredTime.before(new Date())) { + String data = WiwideUtil.queryToken(wxMall); + token = (String) JSONObject.parseObject(data).get("data"); + updateToken(wxMall, token); + } + return token; + } + + @Override + public ResultData queryCustomerData(String tenantId, Map params) { + + WxMall wxMall = new WxMall(); + wxMall.setTenantId(tenantId); + List list = wxMallMapper.findList(wxMall); + wxMall = list.get(0); + if (wxMall == null) + return new ResultData(ErrorCode.MALL_INFO_NOT_FOUND); + + String res = WiwideUtil.queryData(wxMall, getWiwideToken(wxMall), params); + + JSONObject result = JSONObject.parseObject(res); + + if (result.getInteger("result") == 200) + 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/utils/HttpUtil.java b/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java index 88d879594..48451260a 100644 --- a/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/HttpUtil.java @@ -137,6 +137,70 @@ public class HttpUtil { return null; } + /** + * post请求(用于key-value格式的参数,wiwide) + * @param url + * @param params + * @return + */ + public static String doPostWiwide(String url, String token, Map params){ + + // 定义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("wiwidefumaotoken", token); + + //设置参数 + 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")); + StringBuffer sb = new StringBuffer(""); + 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 diff --git a/mallinkService/src/main/java/com/iformall/utils/WiwideUtil.java b/mallinkService/src/main/java/com/iformall/utils/WiwideUtil.java index bbb9fb0c5..733fbe886 100644 --- a/mallinkService/src/main/java/com/iformall/utils/WiwideUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/WiwideUtil.java @@ -142,4 +142,10 @@ public class WiwideUtil { logger.info("商场:" + wxMall.getName() + ",返回TOKEN" + token); return token; } + + public static String queryData(WxMall wxMall, String token, Map params) { + + String data = HttpUtil.doPostWiwide(wxMall.getWiwideUrl() + "/reports/data", token, params); + return data; + } }