Commit f06e2b0e3d5c0f53dd5c6223a8ea9c210adc21cb

Authored by baishou_zjx
1 parent 7539135b
Exists in master

涂鸦接口对接完成

springboot/src/main/java/com/sincre/springboot/ApiModel/TuYaAirCondition.java 0 → 100644
... ... @@ -0,0 +1,100 @@
  1 +package com.sincre.springboot.ApiModel;
  2 +
  3 +import com.fasterxml.jackson.annotation.JsonInclude;
  4 +import io.swagger.annotations.ApiModel;
  5 +import io.swagger.annotations.ApiModelProperty;
  6 +
  7 +@JsonInclude(JsonInclude.Include.NON_EMPTY)
  8 +@ApiModel
  9 +public class TuYaAirCondition {
  10 +
  11 + @ApiModelProperty(name = "remote_index",value="遥控器索引",required = true)
  12 + private String remote_index;
  13 + @ApiModelProperty(name = "remote_id",value="遥控器标识",required = true)
  14 + private String remote_id;
  15 +
  16 + /**
  17 + * 开关(1:开,0:关)
  18 + */
  19 + @ApiModelProperty(name = "power",value="开关(1:开,0:关)",required = true)
  20 + private String power;
  21 + /**
  22 + * 模式(0:制冷,1:制热,2:自动,3:送风,4:除湿)
  23 + */
  24 + @ApiModelProperty(name = "power",value="开关(1:开,0:关)")
  25 + private String mode;
  26 +
  27 + /**
  28 + * 温度(16-30)
  29 + */
  30 + @ApiModelProperty(name = "temp",value="温度(16-30)")
  31 + private String temp;
  32 +
  33 + /**
  34 + * 风速(0:自动,1:低,2:中,3:高)
  35 + */
  36 + @ApiModelProperty(name = "wind",value = "风速(0:自动,1:低,2:中,3:高)")
  37 + private String wind;
  38 +
  39 + public String getRemote_index() {
  40 + return remote_index;
  41 + }
  42 +
  43 + public void setRemote_index(String remote_index) {
  44 + this.remote_index = remote_index;
  45 + }
  46 +
  47 + public String getRemote_id() {
  48 + return remote_id;
  49 + }
  50 +
  51 + public void setRemote_id(String remote_id) {
  52 + this.remote_id = remote_id;
  53 + }
  54 +
  55 + public String getPower() {
  56 + return power;
  57 + }
  58 +
  59 + public void setPower(String power) {
  60 + this.power = power;
  61 + }
  62 +
  63 + public String getMode() {
  64 + return mode;
  65 + }
  66 +
  67 + public void setMode(String mode) {
  68 + this.mode = mode;
  69 + }
  70 +
  71 + public String getTemp() {
  72 + return temp;
  73 + }
  74 +
  75 + public void setTemp(String temp) {
  76 + this.temp = temp;
  77 + }
  78 +
  79 + public String getWind() {
  80 + return wind;
  81 + }
  82 +
  83 + public void setWind(String wind) {
  84 + this.wind = wind;
  85 + }
  86 +
  87 + public String getSwing() {
  88 + return swing;
  89 + }
  90 +
  91 + public void setSwing(String swing) {
  92 + this.swing = swing;
  93 + }
  94 +
  95 + /**
  96 + * 风向(暂时不支持)
  97 + */
  98 + @ApiModelProperty(name = "swing",value = "风向(暂时不支持)")
  99 + private String swing;
  100 +}
... ...
springboot/src/main/java/com/sincre/springboot/ApiModel/TuYaInfrared.java
1 1 package com.sincre.springboot.ApiModel;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonInclude;
  4 +import io.swagger.annotations.ApiModel;
  5 +import io.swagger.annotations.ApiModelProperty;
4 6  
5 7 /**
6 8 * 红外所需要的类
7 9 */
8 10  
9 11 @JsonInclude(JsonInclude.Include.NON_EMPTY)
  12 +@ApiModel
10 13 public class TuYaInfrared {
11 14  
  15 + /**
  16 + * 类型ID
  17 + */
  18 + @ApiModelProperty(name = "category_id",value = "类型ID")
12 19 private String category_id;
13 20  
14 21 public String getCategory_id() {
... ... @@ -27,6 +34,7 @@ public class TuYaInfrared {
27 34 this.category_name = category_name;
28 35 }
29 36  
  37 +
30 38 public String getBrand_id() {
31 39 return brand_id;
32 40 }
... ... @@ -51,14 +59,34 @@ public class TuYaInfrared {
51 59 this.remote_index = remote_index;
52 60 }
53 61  
54   -
  62 + /**
  63 + * 类型名称
  64 + */
  65 + @ApiModelProperty(name = "category_name",value = "类型名称")
55 66 private String category_name;
56 67  
  68 + /**
  69 + * 商品标识
  70 + * @return
  71 + */
  72 + @ApiModelProperty(name = "brand_id",value = "商标标识")
57 73 private String brand_id;
58 74  
  75 + /**
  76 + * 商品名称
  77 + */
  78 + @ApiModelProperty(name="brand_name",value = "商品名称")
59 79 private String brand_name;
60 80  
  81 + /**
  82 + * 遥控索引
  83 + */
  84 + @ApiModelProperty(name="remote_index",value = "遥控索引")
61 85 private String remote_index;
  86 + /**
  87 + * 遥控标识
  88 + */
  89 + @ApiModelProperty(name = "remote_id",value = "遥控标识")
62 90 private String remote_id;
63 91  
64 92 public String getRemote_id() {
... ... @@ -77,5 +105,9 @@ public class TuYaInfrared {
77 105 this.remote_name = remote_name;
78 106 }
79 107  
  108 + /**
  109 + * 遥控名称
  110 + */
  111 + @ApiModelProperty(name = "remote_name",value = "遥控名称")
80 112 private String remote_name;
81 113 }
... ...
springboot/src/main/java/com/sincre/springboot/common/ServerResponse.java
... ... @@ -2,6 +2,8 @@ package com.sincre.springboot.common;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonIgnore;
4 4 import com.fasterxml.jackson.annotation.JsonInclude;
  5 +import io.swagger.annotations.ApiModel;
  6 +import io.swagger.annotations.ApiModelProperty;
5 7  
6 8  
7 9 import java.io.Serializable;
... ... @@ -10,24 +12,28 @@ import java.io.Serializable;
10 12 * Created by Ziv
11 13 */
12 14 @JsonInclude(JsonInclude.Include.NON_EMPTY)
13   -
  15 +@ApiModel
14 16 public class ServerResponse<T> implements Serializable {
15 17  
16 18 /**
17 19 * 分页时用到的总数量
18 20 */
  21 + @ApiModelProperty(name="total",value = "分页时用到的总数量,当返回的是集合对象的时候,才有该值,否者该值不存在")
19 22 private String total;
20 23 /**
21 24 * 操作状态码
22 25 */
  26 + @ApiModelProperty(name="code",value = "操作状态码")
23 27 private int code;
24 28 /**
25 29 * 状态信息
26 30 */
  31 + @ApiModelProperty(name="msg",value = "状态信息")
27 32 private String msg;
28 33 /**
29 34 * 返回的数据包
30 35 */
  36 + @ApiModelProperty(name="data",value = "返回的数据包")
31 37 private T data;
32 38  
33 39 private ServerResponse(int code) {
... ...
springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java
... ... @@ -440,6 +440,45 @@ public class TuYaYunController {
440 440 TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
441 441 return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
442 442 }
  443 +
  444 + @ApiOperation("同步空调当前状态")
  445 + @ApiImplicitParams({
  446 + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path"),
  447 + @ApiImplicitParam(name="remote_id",value = "设备ID",required = true,paramType = "path")
  448 + })
  449 + @GetMapping("{infrared_id}/getHWAirStatus/{remote_id}")
  450 + public ServerResponse getHWAirStatus(@PathVariable String infrared_id,@PathVariable String remote_id){
  451 +
  452 + String apiUrl = String.format("/v1.0/infrareds/%s/remotes/%s/ac/status",infrared_id,remote_id);
  453 + Map<String,String> map = headContent();
  454 + String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map);
  455 + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
  456 + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
  457 + }
  458 +
  459 + @ApiOperation("下发空调红外码")
  460 + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path")
  461 + @PostMapping("{infrared_id}/addAirCode")
  462 + public ServerResponse addAirCode(@RequestBody TuYaAirCondition tuYaAirCondition,@PathVariable String infrared_id){
  463 +
  464 + if(StringUtils.isBlank(infrared_id)||tuYaAirCondition==null){
  465 + return ServerResponse.createByErrorCodeMessage(400,"参数错误");
  466 + }
  467 + else{
  468 + if(StringUtils.isBlank(tuYaAirCondition.getRemote_id())||StringUtils.isBlank(tuYaAirCondition.getRemote_index())){
  469 + return ServerResponse.createByErrorCodeMessage(400,"参数错误");
  470 + }
  471 + }
  472 + String apiUrl = String.format("/v1.0/infrareds/%s/ac/send-keys",infrared_id);
  473 + Map<String,String> map = headContent();
  474 +
  475 + String json = JSON.toJSONString(tuYaAirCondition);
  476 + String result = ApiHelper.doPost(TuYaCloudService.TuYaOpenUrl + apiUrl,map,json);
  477 + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class);
  478 + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult);
  479 + }
  480 +
  481 +
443 482 /**
444 483 * 请求头的参数
445 484 * @return
... ...