diff --git a/springboot/src/main/java/com/sincre/springboot/ApiModel/Codes.java b/springboot/src/main/java/com/sincre/springboot/ApiModel/Codes.java new file mode 100644 index 0000000..526d4aa --- /dev/null +++ b/springboot/src/main/java/com/sincre/springboot/ApiModel/Codes.java @@ -0,0 +1,39 @@ +package com.sincre.springboot.ApiModel; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel +public class Codes { + @ApiModelProperty(name = "name",value = "学习到的红外名称") + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getKey_name() { + return key_name; + } + + public void setKey_name(String key_name) { + this.key_name = key_name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + @ApiModelProperty(name = "key_name",value = "学习到的红外码按键名称") + private String key_name; + @ApiModelProperty(name = "code",value = "学习到的红外码") + private String code; + +} diff --git a/springboot/src/main/java/com/sincre/springboot/ApiModel/HWCode.java b/springboot/src/main/java/com/sincre/springboot/ApiModel/HWCode.java new file mode 100644 index 0000000..b68feca --- /dev/null +++ b/springboot/src/main/java/com/sincre/springboot/ApiModel/HWCode.java @@ -0,0 +1,14 @@ +package com.sincre.springboot.ApiModel; + +public class HWCode { + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + private String code; +} diff --git a/springboot/src/main/java/com/sincre/springboot/ApiModel/TuYaInfrared.java b/springboot/src/main/java/com/sincre/springboot/ApiModel/TuYaInfrared.java index 4cebed1..0aa6736 100644 --- a/springboot/src/main/java/com/sincre/springboot/ApiModel/TuYaInfrared.java +++ b/springboot/src/main/java/com/sincre/springboot/ApiModel/TuYaInfrared.java @@ -110,4 +110,16 @@ public class TuYaInfrared { */ @ApiModelProperty(name = "remote_name",value = "遥控名称") private String remote_name; + + public Codes getCodes() { + return codes; + } + + public void setCodes(Codes codes) { + this.codes = codes; + } + + @ApiModelProperty(name = "codes",value = "保存的红外信息") + private Codes codes; + } diff --git a/springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java b/springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java index 4d7ca3c..be6fe84 100644 --- a/springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java +++ b/springboot/src/main/java/com/sincre/springboot/controller/TuYaYunController.java @@ -17,6 +17,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import springfox.documentation.spring.web.json.Json; +import javax.annotation.security.PermitAll; import java.util.HashMap; import java.util.Map; @@ -486,6 +487,137 @@ public class TuYaYunController { } + @ApiOperation("遥控器进入学习状态") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path"), + @ApiImplicitParam(name="state",value = "学习模式,true是学习模式,false非学习模式",required = true) + }) + @GetMapping("{infrared_id}/getRemoteEnterStudy") + public ServerResponse getRemoteEnterStudy(@PathVariable String infrared_id,@RequestParam String state){ + + String apiUrl = String.format("/v1.0/infrareds/%s/learning-state?state=%s",infrared_id,state); + Map map = headContent(); + String result = ApiHelper.doPut(TuYaCloudService.TuYaOpenUrl + apiUrl,map,""); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + + @ApiOperation("查询到的红外码") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path"), + @ApiImplicitParam(name="learning_time",value = "进入学习模式的时间",required = true) + }) + @GetMapping("{infrared_id}/getHWCode") + public ServerResponse getHWCode(@PathVariable String infrared_id,@RequestParam String learning_time){ + + String apiUrl = String.format("/v1.0/infrareds/%s/learning-codes?learning_time=%s",infrared_id,learning_time); + Map map = headContent(); + String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + + @ApiOperation("获取学习到的红外码(根据遥控器设备)") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path"), + @ApiImplicitParam(name="remote_id",value = "遥控器ID",required = true,paramType = "path") + }) + @GetMapping("{infrared_id}/getHWCode/{remote_id}") + public ServerResponse getHWCodeByRemoteId(@PathVariable String infrared_id,@PathVariable String remote_id){ + + String apiUrl = String.format("/v1.0/infrareds/%s/remotes/%s/learning-codes",infrared_id,remote_id); + Map map = headContent(); + String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + + @ApiOperation("退出学习模式") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path") + }) + @GetMapping("{infrared_id}/hwQuitSyudy") + public ServerResponse hwQuitSyudy(@PathVariable String infrared_id){ + + String apiUrl = String.format("/v1.0/infrareds/%s/learning-quit",infrared_id); + Map map = headContent(); + String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + + @ApiOperation("删除学习到的红外码") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path"), + @ApiImplicitParam(name="learn_id",value = "学习到的红外ID",required = true,paramType = "path") + }) + @DeleteMapping("{infrared_id}/deteleLearnCode/{learn_id}") + public ServerResponse deteleLearnCode(@PathVariable String infrared_id,@PathVariable String learn_id){ + + String apiUrl = String.format("/v1.0/infrareds/%s/learning-codes/%s",infrared_id,learn_id); + Map map = headContent(); + String result = ApiHelper.doGet(TuYaCloudService.TuYaOpenUrl + apiUrl,map); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + + @ApiOperation("保存学习到红外码") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path") + }) + @PostMapping("{infrared_id}/saveLearnCode") + public ServerResponse saveLearnCode(@PathVariable String infrared_id,@RequestBody TuYaInfrared tuYaInfrared){ + + if(tuYaInfrared==null){ + return ServerResponse.createByErrorCodeMessage(400,"参数错误"); + } + + String apiUrl = String.format("/v1.0/infrareds/%s/learning-codes",infrared_id); + Map map = headContent(); + String json = JSON.toJSONString(tuYaInfrared); + String result = ApiHelper.doPost(TuYaCloudService.TuYaOpenUrl + apiUrl,map,json); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + + @ApiOperation("更新学习到红外码") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path"), + @ApiImplicitParam(name="remote_index",value = "遥控器索引",required = true,paramType = "path") + }) + @PutMapping("{infrared_id}/editLearnCode/{remote_index}") + public ServerResponse saveLearnCode(@PathVariable String infrared_id,@PathVariable String remote_index,@RequestBody TuYaInfrared tuYaInfrared){ + + if(tuYaInfrared==null){ + return ServerResponse.createByErrorCodeMessage(400,"参数错误"); + } + + String apiUrl = String.format("/v1.0/infrareds/%s/learning-remotes/%s",infrared_id); + Map map = headContent(); + String json = JSON.toJSONString(tuYaInfrared); + String result = ApiHelper.doPut(TuYaCloudService.TuYaOpenUrl + apiUrl,map,json); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + @ApiOperation("下发到红外到的红外码") + @ApiImplicitParams({ + @ApiImplicitParam(name="infrared_id",value = "设备ID",required = true,paramType = "path"), + @ApiImplicitParam(name="remote_id",value = "遥控器设备ID(没有填TUYA)",required = true,paramType = "path"), + @ApiImplicitParam(name="code",value = "学习到的红外码",required = true) + }) + @GetMapping("{infrared_id}/getRemoteEnterStudy/{remote_id}") + public ServerResponse getRemoteEnterStudy(@PathVariable String infrared_id,@PathVariable String remote_id,@RequestParam String code){ + + String apiUrl = String.format("/v1.0/infrareds/%s/remote/%s/learning-codes",infrared_id,remote_id); + Map map = headContent(); + HWCode hwCode = new HWCode(); + hwCode.setCode(code); + String jsonResult = JSON.toJSONString(hwCode); + String result = ApiHelper.doPost(TuYaCloudService.TuYaOpenUrl + apiUrl,map,jsonResult); + TuYaResResult tuYaResResult = JSON.parseObject(result,TuYaResResult.class); + return ResultUtils.getInstance().returnResultTuYa(tuYaResResult); + } + /** * 请求头的参数 * @return -- libgit2 0.21.0