MtStarUtil.java 4.7 KB

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