diff --git a/cloud-mart-server/pom.xml b/cloud-mart-server/pom.xml
index 8716a04..0f7ba8f 100644
--- a/cloud-mart-server/pom.xml
+++ b/cloud-mart-server/pom.xml
@@ -106,14 +106,19 @@
commons-logging
1.2
-
net.sf.json-lib
json-lib
2.4
jdk13
-
+
+
+ net.sf.json-lib
+ json-lib
+ 2.2.3
+ jdk15
+
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/Demo65.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/Demo65.java
new file mode 100644
index 0000000..3c898d0
--- /dev/null
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/Demo65.java
@@ -0,0 +1,249 @@
+package com.muyu.cloud.mart.config;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+/**
+ * @Author:chaiyapeng
+ * @Package:com.muyu.cloud.mart.config
+ * @Project:cloud-mart
+ * @name:Demo65
+ * @Date:2024/8/23 9:59
+ * 老黄历
+ */
+public class Demo65 {
+ //接口请求地址
+ public static final String CAlENDAR_URL = "http://v.juhe.cn/laohuangli/d?key=%s&date=%s";
+ public static final String HOUR_URL = "http://v.juhe.cn/laohuangli/h?key=%s&date=%s";
+ //申请接口的请求key
+ // TODO: 您需要改为自己的请求key
+ public static final String KEY = "您需要改为自己的请求key";
+
+
+ public static void main(String[] args) {
+
+ // TODO: 日期
+ String date = "2020-11-10";
+
+
+ //日期接口
+ System.out.println("------------日期接口-----------------");
+ printCalendar(date);
+ //时辰接口
+ System.out.println("------------时辰接口-----------------");
+ printHour(date);
+ }
+
+
+ /**
+ * 时辰
+ *
+ * @param date String 日期
+ */
+ public static void printHour(String date) {
+ //发送http请求的url
+ String url = String.format(HOUR_URL, KEY, date);
+
+ final String response = doGet(url);
+ System.out.println("接口返回:" + response);
+ try {
+ JSONObject jsonObject = JSONObject.fromObject(response);
+ int error_code = jsonObject.getInt("error_code");
+ if (error_code == 0) {
+ System.out.println("调用接口成功");
+ JSONArray result = jsonObject.getJSONArray("result");
+ result.stream().map(JSONObject::fromObject).forEach(hour -> {
+ System.out.println("阳历:" + ((JSONObject) hour).getString("yangli"));
+ System.out.println("时间段:" + ((JSONObject) hour).getString("hours"));
+ System.out.println("描述:" + ((JSONObject) hour).getString("des"));
+ System.out.println("宜:" + ((JSONObject) hour).getString("yi"));
+ System.out.println("忌:" + ((JSONObject) hour).getString("ji"));
+ });
+
+ } else {
+ System.out.println("调用接口失败:" + jsonObject.getString("reason"));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 日期
+ *
+ * @param date String 日期
+ */
+ public static void printCalendar(String date) {
+ //发送http请求的url
+ String url = String.format(CAlENDAR_URL, KEY, date);
+
+ final String response = doGet(url);
+ System.out.println("接口返回:" + response);
+ try {
+ JSONObject jsonObject = JSONObject.fromObject(response);
+ int error_code = jsonObject.getInt("error_code");
+ if (error_code == 0) {
+ System.out.println("调用接口成功");
+ JSONObject result = jsonObject.getJSONObject("result");
+ System.out.println("阳历:" + result.getString("yangli"));
+ System.out.println("阴历:" + result.getString("yinli"));
+ System.out.println("五行:" + result.getString("wuxing"));
+ System.out.println("冲煞:" + result.getString("chongsha"));
+ System.out.println("彭祖百忌:" + result.getString("baiji"));
+ System.out.println("吉神宜趋:" + result.getString("jishen"));
+ System.out.println("宜:" + result.getString("yi"));
+ System.out.println("凶神宜忌:" + result.getString("xiongshen"));
+ System.out.println("忌:" + result.getString("ji"));
+ } else {
+ System.out.println("调用接口失败:" + jsonObject.getString("reason"));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * get方式的http请求
+ *
+ * @param httpUrl 请求地址
+ * @return 返回结果
+ */
+ public static String doGet(String httpUrl) {
+ HttpURLConnection connection = null;
+ InputStream inputStream = null;
+ BufferedReader bufferedReader = null;
+ String result = null;// 返回结果字符串
+ try {
+ // 创建远程url连接对象
+ URL url = new URL(httpUrl);
+ // 通过远程url连接对象打开一个连接,强转成httpURLConnection类
+ connection = (HttpURLConnection) url.openConnection();
+ // 设置连接方式:get
+ connection.setRequestMethod("GET");
+ // 设置连接主机服务器的超时时间:15000毫秒
+ connection.setConnectTimeout(15000);
+ // 设置读取远程返回的数据时间:60000毫秒
+ connection.setReadTimeout(60000);
+ // 发送请求
+ connection.connect();
+ // 通过connection连接,获取输入流
+ if (connection.getResponseCode() == 200) {
+ inputStream = connection.getInputStream();
+ // 封装输入流,并指定字符集
+ bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
+ // 存放数据
+ StringBuilder sbf = new StringBuilder();
+ String temp;
+ while ((temp = bufferedReader.readLine()) != null) {
+ sbf.append(temp);
+ sbf.append(System.getProperty("line.separator"));
+ }
+ result = sbf.toString();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 关闭资源
+ if (null != bufferedReader) {
+ try {
+ bufferedReader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != inputStream) {
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (connection != null) {
+ connection.disconnect();// 关闭远程连接
+ }
+ }
+ return result;
+ }
+
+
+ /**
+ * post方式的http请求
+ *
+ * @param httpUrl 请求地址
+ * @param param 请求参数
+ * @return 返回结果
+ */
+ public static String doPost(String httpUrl, String param) {
+ HttpURLConnection connection = null;
+ InputStream inputStream = null;
+ OutputStream outputStream = null;
+ BufferedReader bufferedReader = null;
+ String result = null;
+ try {
+ URL url = new URL(httpUrl);
+ // 通过远程url连接对象打开连接
+ connection = (HttpURLConnection) url.openConnection();
+ // 设置连接请求方式
+ connection.setRequestMethod("POST");
+ // 设置连接主机服务器超时时间:15000毫秒
+ connection.setConnectTimeout(15000);
+ // 设置读取主机服务器返回数据超时时间:60000毫秒
+ connection.setReadTimeout(60000);
+ // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
+ connection.setDoOutput(true);
+ // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
+ connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+ // 通过连接对象获取一个输出流
+ outputStream = connection.getOutputStream();
+ // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
+ outputStream.write(param.getBytes());
+ // 通过连接对象获取一个输入流,向远程读取
+ if (connection.getResponseCode() == 200) {
+ inputStream = connection.getInputStream();
+ // 对输入流对象进行包装:charset根据工作项目组的要求来设置
+ bufferedReader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
+ StringBuilder sbf = new StringBuilder();
+ String temp;
+ // 循环遍历一行一行读取数据
+ while ((temp = bufferedReader.readLine()) != null) {
+ sbf.append(temp);
+ sbf.append(System.getProperty("line.separator"));
+ }
+ result = sbf.toString();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ // 关闭资源
+ if (null != bufferedReader) {
+ try {
+ bufferedReader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != outputStream) {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != inputStream) {
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (connection != null) {
+ connection.disconnect();
+ }
+ }
+ return result;
+ }
+}
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/IPLocation.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/IPLocation.java
new file mode 100644
index 0000000..d0f85e5
--- /dev/null
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/IPLocation.java
@@ -0,0 +1,53 @@
+package com.muyu.cloud.mart.config;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Author:chaiyapeng
+ * @Package:com.muyu.cloud.mart.config
+ * @Project:cloud-mart
+ * @name:IPLocation
+ * @Date:2024/8/23 9:48
+ * IP查询归属地接口
+ */
+public class IPLocation {
+ public static void main(String[] args) throws Exception {
+ String apiKey = "e84b7d13a9fb87b4ebcc9813e4518955";
+ String apiUrl = "http://apis.juhe.cn/ip/ipNewV3";
+
+ HashMap map = new HashMap<>();
+ map.put("key", apiKey);
+ map.put("ip", "47.116.182.215");
+
+ URL url = new URL(String.format(apiUrl + "?" + params(map)));
+ BufferedReader in = new BufferedReader(new InputStreamReader((url.openConnection()).getInputStream()));
+ String inputLine;
+ StringBuffer response = new StringBuffer();
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ in.close();
+ System.out.println(response);
+ }
+
+ public static String params(Map map) {
+ return map.entrySet().stream()
+ .map(entry -> {
+ try {
+ return entry.getKey() + "=" + URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8.toString());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return entry.getKey() + "=" + entry.getValue();
+ }
+ })
+ .collect(Collectors.joining("&"));
+ }
+
+}
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/MobileLocation.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/MobileLocation.java
index 9a6d548..5f7cdc2 100644
--- a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/MobileLocation.java
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/MobileLocation.java
@@ -14,6 +14,9 @@ import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
+/**
+ * 手机号查询归属地接口
+ */
public class MobileLocation {
// 手机归属地查询接口地址
// http://apis.juhe.cn/mobile/get http://127.0.0.1:8369/query?mobile
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/NewsInterface.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/NewsInterface.java
new file mode 100644
index 0000000..b27016b
--- /dev/null
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/NewsInterface.java
@@ -0,0 +1,54 @@
+package com.muyu.cloud.mart.config;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+/**
+ * @Author:chaiyapeng
+ * @Package:com.muyu.cloud.mart.config
+ * @Project:cloud-mart
+ * @name:NewsLocation
+ * @Date:2024/8/23 9:52
+ * 新闻头条接口
+ */
+public class NewsInterface {
+ public static void main(String[] args) throws Exception {
+ String apiKey = "cdbb93769c75054e6beda4c1dc0b6a0b";
+ String apiUrl = "http://v.juhe.cn/toutiao/index";
+
+ HashMap map = new HashMap<>();
+ map.put("key", apiKey);
+ map.put("type", "top");
+ map.put("page", "20");
+ map.put("page_size", "");
+ map.put("is_filter", "");
+
+ URL url = new URL(String.format(apiUrl + "?" + params(map)));
+ BufferedReader in = new BufferedReader(new InputStreamReader((url.openConnection()).getInputStream()));
+ String inputLine;
+ StringBuffer response = new StringBuffer();
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ in.close();
+ System.out.println(response);
+ }
+
+ public static String params(Map map) {
+ return map.entrySet().stream()
+ .map(entry -> {
+ try {
+ return entry.getKey() + "=" + URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8.toString());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return entry.getKey() + "=" + entry.getValue();
+ }
+ })
+ .collect(Collectors.joining("&"));
+ }
+}
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/WeatherInterface.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/WeatherInterface.java
new file mode 100644
index 0000000..ed3f133
--- /dev/null
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/config/WeatherInterface.java
@@ -0,0 +1,50 @@
+package com.muyu.cloud.mart.config;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.stream.Collectors;
+/**
+ * @Author:chaiyapeng
+ * @Package:com.muyu.cloud.mart.config
+ * @Project:cloud-mart
+ * @name:WeatherInterface
+ * @Date:2024/8/23 10:11
+ * 气象预警接口
+ */
+public class WeatherInterface {
+ public static void main(String[] args) throws Exception {
+ String apiKey = "80e78ee9adaded8b1f42ec9cbdf69ac9";
+ String apiUrl = "https://apis.juhe.cn/fapig/alarm/citys";
+
+ HashMap map = new HashMap<>();
+ map.put("key", apiKey);
+
+ URL url = new URL(String.format(apiUrl + "?" + params(map)));
+ BufferedReader in = new BufferedReader(new InputStreamReader((url.openConnection()).getInputStream()));
+ String inputLine;
+ StringBuffer response = new StringBuffer();
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ in.close();
+ System.out.println(response);
+ }
+
+ public static String params(Map map) {
+ return map.entrySet().stream()
+ .map(entry -> {
+ try {
+ return entry.getKey() + "=" + URLEncoder.encode(entry.getValue(), StandardCharsets.UTF_8.toString());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return entry.getKey() + "=" + entry.getValue();
+ }
+ })
+ .collect(Collectors.joining("&"));
+ }
+}
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/controller/MarketController.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/controller/MarketController.java
index b1d9cad..c5d5bf9 100644
--- a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/controller/MarketController.java
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/controller/MarketController.java
@@ -1,23 +1,20 @@
package com.muyu.cloud.mart.controller;
import com.alibaba.fastjson.JSON;
-import com.dtflys.forest.annotation.Post;
+import com.muyu.cloud.mart.config.IPLocation;
import com.muyu.cloud.mart.service.MarketService;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.web.page.TableDataInfo;
-import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.domain.Market;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* @Author:chaiyapeng
@@ -63,9 +60,16 @@ public class MarketController extends BaseController {
/**
* 手机号查询归属地
*/
-
- @PostMapping("getPhonePlace")
- public Result getPhonePlace(@RequestBody String tel){
- return marketService.getPhonePlace(tel);
+ @GetMapping("getPhonePlace")
+ public void getPhonePlace(@RequestParam(name = "tel") String tel){
+ marketService.getPhonePlace(tel);
}
+ /**
+ * IP查询归属地
+ */
+ @GetMapping("getIpPlace")
+ public Result getIpPlace(@RequestParam(name = "ip") String ip){
+ return marketService.getIpPlace(ip);
+ }
+
}
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/MarketService.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/MarketService.java
index fa9509e..1022d3e 100644
--- a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/MarketService.java
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/MarketService.java
@@ -16,5 +16,7 @@ import java.util.List;
public interface MarketService extends IService {
List findMarketList();
- Result getPhonePlace(String tel);
+ void getPhonePlace(String tel);
+
+ Result getIpPlace(String ip);
}
diff --git a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/impl/MarketServiceImpl.java b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/impl/MarketServiceImpl.java
index 1109b31..4538fe7 100644
--- a/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/impl/MarketServiceImpl.java
+++ b/cloud-mart-server/src/main/java/com/muyu/cloud/mart/service/impl/MarketServiceImpl.java
@@ -14,9 +14,16 @@ import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
import java.util.List;
import java.util.Locale;
+import static com.muyu.cloud.mart.config.IPLocation.params;
+
/**
* @Author:chaiyapeng
* @Package:com.muyu.cloud.etl.service.impl
@@ -38,10 +45,40 @@ public class MarketServiceImpl extends ServiceImpl impleme
}
// public static final PhoneNumberOfflineGeocoder GEOCODER = PhoneNumberOfflineGeocoder.getInstance();
- public static final int COUNTRY_CODE = 86;
+ /**
+ * 手机号查询归属地
+ * @param tel
+ */
@Override
- public Result getPhonePlace(String tel) {
+ public void getPhonePlace(String tel) {
MobileLocation.queryMobileLocation(tel);
- return null;
+ }
+
+ /**
+ * IP查询归属地
+ * @param ip
+ * @return
+ */
+ @Override
+ public Result getIpPlace(String ip) {
+ String apiKey = "e84b7d13a9fb87b4ebcc9813e4518955";
+ String apiUrl = "http://apis.juhe.cn/ip/ipNewV3";
+ HashMap map = new HashMap<>();
+ map.put("key", apiKey);
+ map.put("ip", ip);
+ try {
+ URL url = new URL(String.format(apiUrl + "?" + params(map)));
+ BufferedReader in = new BufferedReader(new InputStreamReader((url.openConnection()).getInputStream()));
+ String inputLine;
+ StringBuffer stringBuffer = new StringBuffer();
+ while ((inputLine = in.readLine()) != null){
+ stringBuffer.append(inputLine);
+ }
+ in.close();
+ System.out.println(stringBuffer);
+ return Result.success(stringBuffer);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
}