Commit 7dc3d7c7448729ca77028e8c8db9a12bd1709072

Authored by baishou
1 parent f0110d44
Exists in master

接口返回数据的处理demo 获取子账号信息列表接口

springboot/src/main/java/com/sincre/springboot/ApiModel/Page.java
1   -package com.zjx.springboot02.apimodel;
  1 +package com.sincre.springboot.ApiModel;
2 2  
3 3 public class Page {
4 4 public Integer getTotal() {
5 5 return total;
6 6 }
  7 + public Integer getPage() {
  8 + return page;
  9 + }
7 10  
8   - public void setTotal(Integer total) {
9   - this.total = total;
  11 + public Integer getSize() {
  12 + return size;
10 13 }
11 14  
12   - public Integer getPage() {
13   - return page;
  15 + public void setTotal(Integer total) {
  16 + this.total = total;
14 17 }
15 18  
16 19 public void setPage(Integer page) {
17 20 this.page = page;
18 21 }
19 22  
20   - public Integer getSize() {
21   - return size;
22   - }
23   -
24 23 public void setSize(Integer size) {
25 24 this.size = size;
26 25 }
... ...
springboot/src/main/java/com/sincre/springboot/ApiModel/YinShiResResult.java
1 1 package com.sincre.springboot.ApiModel;
2 2  
  3 +
3 4 /**
4 5 * 萤石接口返回的Model
5 6 * @param <T>
... ... @@ -17,11 +18,11 @@ public class YinShiResResult&lt;T&gt; {
17 18 this.data = data;
18 19 }
19 20  
20   - public String getCode() {
  21 + public Integer getCode() {
21 22 return code;
22 23 }
23 24  
24   - public void setCode(String code) {
  25 + public void setCode(Integer code) {
25 26 this.code = code;
26 27 }
27 28  
... ... @@ -40,7 +41,7 @@ public class YinShiResResult&lt;T&gt; {
40 41 public void setPage(Page page) {
41 42 this.page = page;
42 43 }
43   - private String code;
  44 + private Integer code;
44 45 private String msg;
45 46 }
46 47  
... ...
springboot/src/main/java/com/sincre/springboot/ApiPlatform/YinShiServiceConfig.java
... ... @@ -11,6 +11,9 @@ public class YinShiServiceConfig {
11 11 */
12 12 public static String appKey = "3780bdecb44c4b608367ba469d6d52ea";
13 13 public static String appSecret = "35c83d24b5a39b171572f6eae4ded9a7";
  14 + /**
  15 + * 用于管理员获取accessToken
  16 + */
14 17 public static String AccessToken = "";
15 18  
16 19  
... ...
springboot/src/main/java/com/sincre/springboot/common/ResponseCode.java
1   -package com.zjx.springboot02.Common;
  1 +package com.sincre.springboot.common;
2 2  
3 3 /**
4 4 * Created by Ziv
... ...
springboot/src/main/java/com/sincre/springboot/common/ServerResponse.java
1   -package com.zjx.springboot02.Common;
  1 +package com.sincre.springboot.common;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 4 import com.fasterxml.jackson.annotation.JsonInclude;
... ... @@ -16,7 +16,7 @@ public class ServerResponse&lt;T&gt; implements Serializable {
16 16 /**
17 17 * 分页时用到的总数量
18 18 */
19   - private int total;
  19 + private String total;
20 20 /**
21 21 * 操作状态码
22 22 */
... ... @@ -45,7 +45,7 @@ public class ServerResponse&lt;T&gt; implements Serializable {
45 45 this.data = data;
46 46 }
47 47  
48   - private ServerResponse(int total,int code, String msg, T data) {
  48 + private ServerResponse(String total,int code, String msg, T data) {
49 49 this.total = total;
50 50 this.code = code;
51 51 this.msg = msg;
... ... @@ -62,7 +62,7 @@ public class ServerResponse&lt;T&gt; implements Serializable {
62 62 return this.code == ResponseCode.SUCCESS.getCode();
63 63 }
64 64  
65   - public int getTotal() {
  65 + public String getTotal() {
66 66 return total;
67 67 }
68 68 public int getCode() {
... ... @@ -100,7 +100,7 @@ public class ServerResponse&lt;T&gt; implements Serializable {
100 100 return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(), msg, data);
101 101 }
102 102  
103   - public static <T> ServerResponse<T> createBySuccess(Integer total,String msg, T data) {
  103 + public static <T> ServerResponse<T> createBySuccess(String total,String msg, T data) {
104 104 return new ServerResponse<T>(total,ResponseCode.SUCCESS.getCode(), msg, data);
105 105 }
106 106  
... ...
springboot/src/main/java/com/sincre/springboot/controller/YinShiController.java
... ... @@ -28,27 +28,13 @@ import com.sincre.springboot.ApiPlatform.YinShiServiceConfig;
28 28 @Api(value = "YinShiController", tags = "萤石对接接口")
29 29 public class YinShiController {
30 30  
31   - private static String AccessToken = "at.2scte32926nu6q7j6adhlabg28emicz6-58f6w0596w-1ppubtz-uxh6dnv5x";
32   -
33 31 @ApiOperation(value = "用于管理员获取accessToken")
34 32 @GetMapping("/token")
35   - public String GetYinShiToken() {
36   - String appKey = YinShiServiceConfig.appKey;
37   - String appSecret = YinShiServiceConfig.appSecret;
  33 + public ServerResponse GetYinShiToken() {
38 34  
39   - String url = YinShiServiceConfig.HostUrl + "lapp/token/get";
40   - Map<String, Object> map = new HashMap<>();
  35 + CacheHelper.GetYinShiToken();
41 36  
42   - map.put("appKey", appKey);
43   - map.put("appSecret", appSecret);
44   - String result = ApiHelper.doPost(url, new HashMap<String, String>(), map);
45   - JSONObject jsonObject = new JSONObject(result);
46   - JSONObject data = jsonObject.optJSONObject("data");
47   - YinShiServiceConfig.AccessToken = data.optString("accessToken");
48   - Date date = new Date();
49   - Date dateFu = new Date(data.optLong("expireTime"));
50   - CacheHelper.putYingshiYunToken(YinShiServiceConfig.AccessToken, (int) ((dateFu.getTime()-date.getTime())/1000));
51   - return ResultUtils.getInstance().resturnResultYingshi(result);
  37 + return ServerResponse.createBySuccessMessage(ResponseCode.SUCCESS.getDesc());
52 38 }
53 39  
54 40 @ApiOperation(value = "增加子账号")
... ... @@ -68,7 +54,7 @@ public class YinShiController {
68 54 map.put("accountName", accountName);
69 55 map.put("password", password);
70 56 String result = ApiHelper.doPost(url, new HashMap<String, String>(), map);
71   - return ResultUtils.getInstance().resturnResultYingshi(result);
  57 + return result;//ResultUtils.getInstance().resturnResultYingshi(result);
72 58 }
73 59  
74 60 @ApiOperation(value = "获取单个子账户信息")
... ... @@ -77,7 +63,7 @@ public class YinShiController {
77 63  
78 64 String url = YinShiServiceConfig.HostUrl + "lapp/ram/account/get";
79 65 Map<String, Object> map = new HashMap<>();
80   - //子账户密码,LowerCase(MD5(AppKey#密码明文))
  66 +
81 67 map.put("accessToken", YinShiServiceConfig.AccessToken);
82 68 map.put("accountId", accountId);
83 69 map.put("accountName", accountName);
... ... @@ -92,16 +78,16 @@ public class YinShiController {
92 78  
93 79 String url = YinShiServiceConfig.HostUrl + "lapp/ram/account/list";
94 80 Map<String, Object> map = new HashMap<>();
95   - //子账户密码,LowerCase(MD5(AppKey#密码明文))
96 81  
97 82 map.put("accessToken", YinShiServiceConfig.AccessToken);
98 83 map.put("pageStart", pageIndex);
99 84 map.put("pageSize", pageSize);
100   - String result = ApiHelper.doPost(url, new HashMap<String, String>(), map);
  85 + String result = ApiHelper.doPost(url, new HashMap<String,String>(), map);
101 86  
  87 + System.out.println(result);
102 88 YinShiResResult yinShiResResult = JSON.parseObject(result,YinShiResResult.class);
103   - System.out.println(yinShiResResult.getPage().getTotal());
104   - return ServerResponse.createBySuccess(yinShiResResult.getPage().getTotal(), ResponseCode.SUCCESS.getDesc(),yinShiResResult.getData());
  89 +
  90 + return ResultUtils.getInstance().resturnResultYingshi(yinShiResResult);
105 91 }
106 92  
107 93 @ApiOperation(value = "修改当前子账户密码")
... ... @@ -110,7 +96,6 @@ public class YinShiController {
110 96  
111 97 String url = YinShiServiceConfig.HostUrl + "lapp/ram/account/updatePassword";
112 98 Map<String, Object> map = new HashMap<>();
113   - //子账户密码,LowerCase(MD5(AppKey#密码明文))
114 99  
115 100 oldPassword = YinShiServiceConfig.appKey + "#" + oldPassword;
116 101 newPassword = YinShiServiceConfig.appKey + "#" + newPassword;
... ... @@ -202,7 +187,4 @@ public class YinShiController {
202 187  
203 188 return result;
204 189 }
205   -
206   -
207   -
208 190 }
... ...
springboot/src/main/java/com/sincre/springboot/utils/CacheHelper.java
... ... @@ -8,6 +8,7 @@ import com.sincre.springboot.ApiPlatform.TuYaCloudService;
8 8 import com.sincre.springboot.ApiPlatform.YinShiServiceConfig;
9 9 import com.sincre.springboot.common.EhcacheUtil;
10 10 import org.apache.commons.lang3.StringUtils;
  11 +import org.json.JSONObject;
11 12  
12 13 import java.util.HashMap;
13 14 import java.util.Map;
... ... @@ -18,6 +19,7 @@ public class CacheHelper {
18 19 static String TuYaTokenKey = "TuYa_Token";
19 20 static String TuYaRefreshTokenKey = "TuYa_Re_Token";
20 21  
  22 +
21 23 private static void setTuYaToken(){
22 24  
23 25 String apiUrl = "/v1.0/token?grant_type=1";
... ... @@ -110,4 +112,23 @@ public class CacheHelper {
110 112 public static void putYingshiYunToken(String token,int time){
111 113 ehcacheUtil.setex(YinShiServiceConfig.accessToken,token,time);
112 114 }
  115 +
  116 + /**
  117 + * 获得萤石管理权限的Token
  118 + */
  119 + public static void GetYinShiToken() {
  120 + String appKey = YinShiServiceConfig.appKey;
  121 + String appSecret = YinShiServiceConfig.appSecret;
  122 +
  123 + String url = YinShiServiceConfig.HostUrl + "lapp/token/get";
  124 + Map<String, Object> map = new HashMap<>();
  125 +
  126 + map.put("appKey", appKey);
  127 + map.put("appSecret", appSecret);
  128 + String result = ApiHelper.doPost(url, new HashMap<String, String>(), map);
  129 + JSONObject jsonObject = new JSONObject(result);
  130 + JSONObject data = jsonObject.optJSONObject("data");
  131 + YinShiServiceConfig.AccessToken = data.optString("accessToken");
  132 + }
  133 +
113 134 }
... ...
springboot/src/main/java/com/sincre/springboot/utils/ResultUtils.java
1 1 package com.sincre.springboot.utils;
2 2  
3 3  
4   -import com.sincre.springboot.controller.YinShiController;
  4 +import com.sincre.springboot.ApiModel.YinShiResResult;
  5 +import com.sincre.springboot.common.ResponseCode;
  6 +import com.sincre.springboot.common.ServerResponse;
5 7 import com.sincre.springboot.model.ResultModelObj;
6 8 import org.json.JSONObject;
7   -import org.springframework.http.codec.json.Jackson2JsonDecoder;
8 9  
9 10 /**
10 11 * 结果返回工具类
... ... @@ -30,26 +31,43 @@ public class ResultUtils {
30 31  
31 32 /**
32 33 * 萤石统一结果回调
33   - * @param result data为对象的字符串
  34 + * @param yinShiResResult 萤石接口返回对象的字符串
34 35 * @return 返回的data可以是对象或者集合,都以字符串形式返回
35 36 */
36   - public String resturnResultYingshi(String result) {
37   - JSONObject jsonObject = new JSONObject(result);
38   - ResultModelObj resultModelObj = new ResultModelObj();
39   - long code = jsonObject.optLong("code");
40   - if (code==10002){//accesstoken过期
41   - new YinShiController().GetYinShiToken();
  37 + public ServerResponse resturnResultYingshi(YinShiResResult yinShiResResult) {
  38 +// JSONObject jsonObject = new JSONObject(result);
  39 +// ResultModelObj resultModelObj = new ResultModelObj();
  40 +// long code = jsonObject.optLong("code");
  41 +// if (code==10002){//accesstoken过期
  42 +// new YinShiController().GetYinShiToken();
  43 +// try {
  44 +// Thread.sleep(1000);
  45 +// } catch (InterruptedException e) {
  46 +// e.printStackTrace();
  47 +// }
  48 +// }
  49 +// resultModelObj.setCode(code);
  50 +// resultModelObj.setData(jsonObject.optString("data"));
  51 +// resultModelObj.setMsg(jsonObject.optString("msg"));
  52 +// resultModelObj.setTotal(jsonObject.optInt("page"));
  53 +// return resultModelObj.toString();
  54 +
  55 + int code = yinShiResResult.getCode();
  56 + System.out.println(yinShiResResult.getPage().getTotal());
  57 + if(code == 200){
  58 + return ServerResponse.createBySuccess(yinShiResResult.getPage().getTotal().toString(), ResponseCode.SUCCESS.getDesc(),yinShiResResult.getData());
  59 + }
  60 + else {
  61 + if (code==10002){//accessToken过期或异常
  62 + CacheHelper.GetYinShiToken();
42 63 try {
43 64 Thread.sleep(1000);
44 65 } catch (InterruptedException e) {
45 66 e.printStackTrace();
46 67 }
47 68 }
48   - resultModelObj.setCode(code);
49   - resultModelObj.setData(jsonObject.optString("data"));
50   - resultModelObj.setMsg(jsonObject.optString("msg"));
51   - resultModelObj.setTotal(jsonObject.optInt("page"));
52   - return resultModelObj.toString();
  69 + return ServerResponse.createByErrorMessage(yinShiResResult.getMsg());
  70 + }
53 71 }
54 72  
55 73 private void getYinShiToken(){
... ...