MtStarUtil.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. package com.ruoyi.demo.utils;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.crypto.SecureUtil;
  4. import cn.hutool.http.HttpUtil;
  5. import cn.hutool.json.JSONObject;
  6. import cn.hutool.json.JSONUtil;
  7. import com.ruoyi.demo.config.MtStarProperties;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Component;
  10. import java.util.Date;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. @Component
  14. public class MtStarUtil {
  15. @Autowired
  16. MtStarProperties mtStarProperties;
  17. public String sign(long l){
  18. String accesSecretMd5 = SecureUtil.md5(mtStarProperties.getSecret());
  19. // long l = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")); //10位
  20. String s = SecureUtil.md5(mtStarProperties.getAuthtoken() + accesSecretMd5 + l);
  21. return s;
  22. }
  23. public String sign2(long l){
  24. return SecureUtil.md5(mtStarProperties.getAuthtoken() + SecureUtil.md5(mtStarProperties.getSecret()) + l);
  25. }
  26. // 搜索,根据设备编号返回设备cMark
  27. public String getCMark(String equipmentCode){
  28. HashMap<String, Object> map = initMap();
  29. map.put("state", 1);
  30. map.put("startIndex", 0);
  31. map.put("queryCount", 1);
  32. map.put("select_name", equipmentCode);
  33. String post = HttpUtil.post(mtStarProperties.getUrl() + "dev_get_devs_cmarks", map);
  34. JSONObject obj = JSONUtil.parseObj(post);
  35. if (obj.get("retCode",Integer.class) == 0){
  36. List<String> list = obj.getBeanList("cMarkList", String.class);
  37. if (list != null && !list.isEmpty()){
  38. JSONObject entries = JSONUtil.parseObj(list.get(0));
  39. return entries.get("cMark", String.class);
  40. }
  41. }
  42. return "error";
  43. }
  44. public String wakeUpAndDormancy(String equipmentCode, int onoff){
  45. StringBuffer callBack = new StringBuffer();
  46. callBack.append(mtStarProperties.getUrl()).append("sendClientParams");
  47. String cMark = getCMark(equipmentCode);
  48. if ("error".equals(cMark))
  49. return "error";
  50. HashMap<String, Object> map = initMap();
  51. map.put("paramType", 17);
  52. map.put("cMarks", cMark);
  53. HashMap<String, Object> sCmd = new HashMap<>();
  54. sCmd.put("paramType", 17);
  55. sCmd.put("onoff", onoff);
  56. sCmd.put("subcmd", "ctrl_lcd_onoff_ontime");
  57. map.put("params", sCmd.toString());
  58. map.put("retry", 0);
  59. String post = HttpUtil.post(mtStarProperties.getUrl() + "sendClientParams", map);
  60. JSONObject obj = JSONUtil.parseObj(post);
  61. if (0 == obj.get("retCode", Integer.class))
  62. return "success";
  63. return "error";
  64. }
  65. // 唤醒
  66. public String wakeup(String equipmentCode){
  67. if ("success".equals(wakeUpAndDormancy(equipmentCode, 1)))
  68. return "成功";
  69. else
  70. return "失败";
  71. }
  72. // 休眠
  73. public String dormancy(String equipmentCode){
  74. if ("success".equals(wakeUpAndDormancy(equipmentCode, 0)))
  75. return "成功";
  76. else
  77. return "失败";
  78. }
  79. // 初始化请求map
  80. public HashMap<String, Object> initMap(){
  81. HashMap<String, Object> map = new HashMap<>();
  82. map.put("access_token", mtStarProperties.getAuthtoken());
  83. long l = DateUtil.currentSeconds();
  84. map.put("timestamp", l);
  85. map.put("sign", sign2(l));
  86. return map;
  87. }
  88. // 例子
  89. public String getDecive(Integer state, String selectName) {
  90. HashMap<String, Object> map = new HashMap<>();
  91. map.put("access_token", mtStarProperties.getAuthtoken());
  92. long value = DateUtil.currentSeconds();
  93. map.put("timestamp", value);
  94. map.put("sign", SecureUtil.md5(mtStarProperties.getAuthtoken() + SecureUtil.md5(mtStarProperties.getSecret()) + value));
  95. map.put("state", state);
  96. map.put("select_name", selectName);
  97. // log.info("满天星获取设备列表 请求参数 = {}", map);
  98. String post = HttpUtil.post(mtStarProperties.getUrl() + "dev_get_devs_cmarks", map);
  99. // log.info("post返回 {}", post);
  100. JSONObject jsonObject = JSONUtil.parseObj(post);
  101. if ("0".equals(jsonObject.getStr("retCode"))) {
  102. return jsonObject.getStr("cMarkList");
  103. } else {
  104. return null;
  105. }
  106. }
  107. }