TuYaYunController.java
8.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
package com.sincre.springboot.controller;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sincre.springboot.ApiModel.*;
import com.sincre.springboot.ApiPlatform.TuYaCloudService;
import com.sincre.springboot.common.ServerResponse;
import com.sincre.springboot.utils.ApiHelper;
import com.sincre.springboot.utils.CacheHelper;
import com.sincre.springboot.utils.ResultUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping(value = "/TuYa/*")
@Api(tags = "涂鸦云服务API调用")
public class TuYaYunController {
@GetMapping("GetDevicesInfo")
public ServerResponse getTuYaDevicesInfo(){
String apiUrl = "/v1.0/devices?device_ids=";
Long t = System.currentTimeMillis();
String access_Token = CacheHelper.getTuYaToken();
String sign = TuYaCloudService.createSign(TuYaCloudService.ClientId+access_Token+t,TuYaCloudService.Secret);
Map<String,String> map = new HashMap();
map.put("client_id", TuYaCloudService.ClientId);
map.put("access_token",access_Token);
map.put("sign",sign);
map.put("sign_method",TuYaCloudService.Sign_method);
map.put("t",t.toString());
String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map);
// TuYaResResult<TuYaDevicesList> resResult = null;
// try{
// ObjectMapper objectMapper = new ObjectMapper();
// TypeReference<TuYaResResult<TuYaDevicesList>> reference = new TypeReference<TuYaResResult<TuYaDevicesList>>(){};
// resResult = objectMapper.readValue(result,reference);
// } catch(Exception ex){
// System.out.println(ex.getMessage());
// }
System.out.println(result);
TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
}
/**
* 根据schema分页获取开发者App下的用户列表
* @param AppId 应用标识
* @param pageIndex 页码
* @param pageSize 大小
* @return
*/
@ApiOperation(value = "获取用户信息列表")
@ApiImplicitParams({
@ApiImplicitParam(name="pageIndex", value = "分页起始页,从1开始",required = true),
@ApiImplicitParam(name="pageSize", value = "分页大小,默认为10,最大为50")
})
@GetMapping("{AppId}/GetTuYaAPPUser")
public ServerResponse getTuYaAPPUser(@PathVariable("AppId") String AppId, @RequestParam int pageIndex, @RequestParam(defaultValue = "10") int pageSize){
String apiUrl = String.format("/v1.0/apps/%s/users?page_no=%d&page_size=%d",AppId,pageIndex,pageSize);//iotshunzhi
Long t = System.currentTimeMillis();
String access_Token = CacheHelper.getTuYaToken();
//Token获取后的签名
String sign = TuYaCloudService.createSign(TuYaCloudService.ClientId+access_Token+t,TuYaCloudService.Secret);
Map<String,String> headMap = new HashMap();
headMap.put("client_id", TuYaCloudService.ClientId);
headMap.put("access_token",access_Token);
headMap.put("sign",sign);
headMap.put("sign_method",TuYaCloudService.Sign_method);
headMap.put("t",t.toString());
String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,headMap);
TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
}
@PostMapping("{AppId}/AddTuYaAPPUser")
public ServerResponse addTuYaAPPUser(@PathVariable("AppId") String AppId, @RequestBody UserInfo userInfo){
String apiUrl = String.format("/v1.0/apps/%s/user",AppId);//应用标识iotshunzhi
Long t = System.currentTimeMillis();
String access_Token = CacheHelper.getTuYaToken();
//Token获取后的签名
String sign = TuYaCloudService.createSign(TuYaCloudService.ClientId+access_Token+t,TuYaCloudService.Secret);
Map<String,String> headMap = new HashMap();
headMap.put("client_id", TuYaCloudService.ClientId);
headMap.put("access_token",access_Token);
headMap.put("sign",sign);
headMap.put("sign_method",TuYaCloudService.Sign_method);
headMap.put("t",t.toString());
ObjectMapper objectMapper = new ObjectMapper();
String jsonResult = "";
try {
jsonResult = objectMapper.writeValueAsString(userInfo);
}catch (com.fasterxml.jackson.core.JsonProcessingException ex){
ex.printStackTrace();
}
String result = ApiHelper.doPost(TuYaCloudService.TuYaOpenUrl + apiUrl,headMap,jsonResult);
TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
}
/**
* 根据用户ID来获取用户账号下的所有设备
* @param uid
* @return
*/
@GetMapping("{uid}/GetDevicesByUid")
public ServerResponse getDevicesByUid(@PathVariable("uid") String uid){
String apiUrl = String.format("/v1.0/users/%s/devices",uid);
Long t = System.currentTimeMillis();
String access_Token = CacheHelper.getTuYaToken();
//Token获取后的签名
String sign = TuYaCloudService.createSign(TuYaCloudService.ClientId+access_Token+t,TuYaCloudService.Secret);
Map<String,String> map = new HashMap();
map.put("client_id", TuYaCloudService.ClientId);
map.put("access_token",access_Token);
map.put("sign",sign);
map.put("sign_method",TuYaCloudService.Sign_method);
map.put("t",t.toString());
String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map);
System.out.println(result);
TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
}
/**
* 生成配网的Token
* @return
*/
@GetMapping("AddDevicesToken")
public ServerResponse addDevicesToken(@RequestParam String UId){
String apiUrl = String.format("/v1.0/devices/token");
Long t = System.currentTimeMillis();
String access_Token = CacheHelper.getTuYaToken();
//Token获取后的签名
String sign = TuYaCloudService.createSign(TuYaCloudService.ClientId+access_Token+t,TuYaCloudService.Secret);
Map<String,String> map = new HashMap();
map.put("client_id", TuYaCloudService.ClientId);
map.put("access_token",access_Token);
map.put("sign",sign);
map.put("sign_method",TuYaCloudService.Sign_method);
map.put("t",t.toString());
ObjectMapper objectMapper = new ObjectMapper();
DeviceToken deviceToken = new DeviceToken();
deviceToken.setUid(UId);
deviceToken.setTimeZoneId("Asia/ZheJiang");
String jsonResult = "";
try {
jsonResult = objectMapper.writeValueAsString(deviceToken);
}catch (com.fasterxml.jackson.core.JsonProcessingException ex){
ex.printStackTrace();
}
String result = ApiHelper.doPost(TuYaCloudService.TuYaOpenUrl + apiUrl,map,jsonResult);
TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
}
@GetMapping("{token}/GetDevicesByToken")
public ServerResponse getDevicesByToken(@PathVariable("token") String token){
String apiUrl = String.format("/v1.0/devices/tokens/%s",token);
Long t = System.currentTimeMillis();
String access_Token = CacheHelper.getTuYaToken();
//Token获取后的签名
String sign = TuYaCloudService.createSign(TuYaCloudService.ClientId+access_Token+t,TuYaCloudService.Secret);
Map<String,String> map = new HashMap();
map.put("client_id", TuYaCloudService.ClientId);
map.put("access_token",access_Token);
map.put("sign",sign);
map.put("sign_method",TuYaCloudService.Sign_method);
map.put("t",t.toString());
String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map);
TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
}
}