Commit 7dc3d7c7448729ca77028e8c8db9a12bd1709072
1 parent
f0110d44
Exists in
master
接口返回数据的处理demo 获取子账号信息列表接口
Showing
8 changed files
with
83 additions
and
59 deletions
Show diff stats
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<T> { |
| 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<T> { |
| 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
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<T> 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<T> 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<T> 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<T> 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(){ | ... | ... |