DeviceController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. package cn.efunbox.audio.controller;
  2. //import cn.efunbox.audio.clients.UserFeign;
  3. import cn.efunbox.audio.clients.AudioHttp;
  4. import cn.efunbox.audio.clients.UserHttp;
  5. import cn.efunbox.audio.entity.Channel;
  6. import cn.efunbox.audio.entity.Device;
  7. import cn.efunbox.audio.service.ChannelService;
  8. import cn.efunbox.audio.service.DeviceService;
  9. import cn.efunbox.audio.utils.ApiCode;
  10. import cn.efunbox.audio.utils.ApiResult;
  11. import cn.efunbox.audio.utils.Encrypt;
  12. import cn.efunbox.audio.utils.HttpUtil;
  13. import com.alibaba.fastjson.JSONArray;
  14. import com.alibaba.fastjson.JSONObject;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.beans.factory.annotation.Value;
  19. import org.springframework.data.domain.Page;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RequestMethod;
  22. import org.springframework.web.bind.annotation.RequestParam;
  23. import org.springframework.web.bind.annotation.RestController;
  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpServletResponse;
  26. import java.sql.Timestamp;
  27. import java.util.*;
  28. /**
  29. * Created by yao on 17-9-26.
  30. */
  31. @RestController
  32. @Slf4j
  33. @RequestMapping(value = "/device")
  34. public class DeviceController {
  35. @Autowired
  36. DeviceService deviceService;
  37. @Autowired
  38. ChannelService channelService;
  39. // @Autowired
  40. // UserFeign userFeign;
  41. @Autowired
  42. UserHttp userHttp;
  43. @Autowired
  44. AudioHttp audioHttp;
  45. @Value("${iaas.user.register}")
  46. private String urlRegister;
  47. @Value("${iaas.user.audio.bizCode}")
  48. private String bizCode;
  49. @Value("${iaas.user.audio.appCode}")
  50. private String appCode;
  51. @Value("${iaas.user.audio.platform}")
  52. private String platform;
  53. @Value("${iaas.user.audio.os}")
  54. private String os;
  55. @Value("${iaas.user.audio.appVer}")
  56. private String appVer;
  57. @Value("${iaas.user.audio.terminal}")
  58. private String terminal;
  59. @Value("${iaas.user.audio.entryType}")
  60. private String entryType;
  61. @Value("${interface.sign.key}")
  62. private String signKey;
  63. @RequestMapping(value = "/feign")
  64. public void Feigh(HttpServletRequest request, HttpServletResponse response,
  65. @RequestParam("idChannel")String idChannel, @RequestParam("mobile")String mobile){
  66. String res = audioHttp.SearchByIdResource("653f6a0c-b997-11e7-9771-080027fcfc4b");
  67. System.out.println(res);
  68. Map map = JSONObject.parseObject(res);
  69. if(map.get("code").toString().equalsIgnoreCase("200")){
  70. map = JSONObject.parseObject(map.get("data").toString());
  71. JSONArray array = JSONArray.parseArray(map.get("audios").toString());
  72. map = JSONObject.parseObject(array.get(0).toString());
  73. String path = map.get("path").toString();
  74. System.out.println(path);
  75. }
  76. // String ip = HttpUtil.getIpAddress(request);
  77. // System.out.println("start:"+ip);
  78. // String res = userHttp.Register(UUID.randomUUID().toString().substring(0, 31),
  79. // idChannel, ip, mobile, mobile);
  80. // String res = userFeign.Register(
  81. //// "application/json",
  82. // bizCode,
  83. //// UUID.randomUUID().toString().substring(0, 31),
  84. // "8723-4327-64238-asdkja",
  85. // appCode,
  86. // platform,
  87. // os,
  88. // "1111",
  89. // "123.126.111.3",
  90. // appVer,
  91. // terminal,
  92. // mobile,
  93. // entryType,
  94. // "123456",
  95. // "",
  96. // ""
  97. // );
  98. // System.out.println(res);
  99. // Map map = JSONObject.parseObject(res);
  100. // HttpUtil.responseOkData(request, response, map);
  101. // System.out.println("res:"+res);
  102. // String res = userFeign.getUser("c26ceb09-4e85-40ba-a81d-1535d142cc43");
  103. // System.out.println(res);
  104. }
  105. @RequestMapping(value = "/token" ,method = RequestMethod.POST)
  106. public void Login(HttpServletRequest request, HttpServletResponse response, @RequestParam long id, @RequestParam String token){
  107. Device device = deviceService.Login(id, token);
  108. if(device==null){
  109. HttpUtil.responseApiCode(request, response, ApiCode.INVALID_TOKEN);
  110. return;
  111. }
  112. device.setIaas_eid("");
  113. device.setIaas_name("");
  114. device.setIaas_uid("");
  115. device.setIaas_token("");
  116. device.setIaas_pwd("");
  117. device.setTokenOld("");
  118. HttpUtil.responseOkData(request, response, device);
  119. return;
  120. }
  121. @RequestMapping(value = "/register" ,method = RequestMethod.POST)
  122. public void Register(HttpServletRequest request, HttpServletResponse response){
  123. String idChannel = request.getParameter("idChannel");
  124. String idDevice = request.getParameter("idDevice");
  125. if(idChannel==null || idDevice==null){
  126. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  127. return;
  128. }
  129. if(deviceService.CheckRegister(Long.valueOf(idChannel), idDevice)) {
  130. HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
  131. return;
  132. }
  133. List<Channel> channelList = channelService.SearchById(Long.valueOf(idChannel));
  134. if(channelList==null || channelList.size()<1){
  135. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  136. return;
  137. }
  138. //向云平台注册设备
  139. String ip = HttpUtil.getIpAddress(request);
  140. System.out.println("start:"+ip);
  141. String res = userHttp.Register(UUID.randomUUID().toString().substring(0, 31),
  142. idChannel, ip, idDevice, idDevice);
  143. System.out.println(res);
  144. Map mapRes = JSONObject.parseObject(res);
  145. System.out.println(mapRes.toString());
  146. if(Integer.valueOf(mapRes.get("code").toString())!=200){
  147. HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
  148. return;
  149. }
  150. mapRes = JSONObject.parseObject(mapRes.get("data").toString());
  151. Device device = deviceService.Register(Long.valueOf(idChannel), idDevice);
  152. if(device!=null){
  153. //记录云平台的账号信息
  154. device.setIaas_eid(mapRes.get("eid").toString());
  155. device.setIaas_uid(mapRes.get("uid").toString());
  156. device.setIaas_name(idDevice);
  157. device.setIaas_pwd(idDevice);
  158. device.setIaas_token(mapRes.get("token").toString());
  159. device.setIaas_expiration(new Timestamp(Long.valueOf(mapRes.get("expiration").toString())));
  160. device = deviceService.Update(device);
  161. device.setIaas_eid("");
  162. device.setIaas_name("");
  163. device.setIaas_uid("");
  164. device.setIaas_token("");
  165. device.setIaas_pwd("");
  166. device.setTokenOld("");
  167. HttpUtil.responseOkData(request, response, device);
  168. }
  169. return;
  170. }
  171. @RequestMapping(value = "/token",method = RequestMethod.GET)
  172. public void token(HttpServletRequest request, HttpServletResponse response){
  173. String idChannel = request.getParameter("idChannel");
  174. String idDevice = request.getParameter("idDevice");
  175. String sign = request.getParameter("sign");
  176. if(StringUtils.isBlank(idChannel) || StringUtils.isBlank(idDevice) || StringUtils.isBlank(sign)){
  177. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  178. return;
  179. }
  180. Map<String,String> param = new HashMap<>();
  181. param.put("idChannel",idChannel);
  182. param.put("idDevice",idDevice);
  183. String test = Encrypt.createSHA256Sign(param,signKey);
  184. if (!sign.equalsIgnoreCase(test)) {
  185. HttpUtil.responseApiCode(request, response, ApiCode.SIGN_FAIL);
  186. return;
  187. }
  188. List<Channel> channelList = channelService.SearchById(Long.valueOf(idChannel));
  189. if(channelList==null || channelList.size()<1){
  190. HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  191. return;
  192. }
  193. Device device = deviceService.findToken(Long.valueOf(idChannel), idDevice);
  194. if(Objects.isNull(device)){
  195. HttpUtil.responseApiCode(request, response, ApiCode.NO_REGISTER_FAIL);
  196. return;
  197. }
  198. device.setIaas_eid("");
  199. device.setIaas_name("");
  200. device.setIaas_uid("");
  201. device.setIaas_token("");
  202. device.setIaas_pwd("");
  203. device.setTokenOld("");
  204. HttpUtil.responseOkData(request, response, device);
  205. return;
  206. }
  207. // @RequestMapping(value = "/register" ,method = RequestMethod.POST)
  208. // public Map Register(HttpServletRequest request, @RequestBody Device device){
  209. // Map map = new HashMap<>();
  210. // if(device.getIdChannel()==null || device.getIdDevice()==null){
  211. // map.put("code", ApiCode.PARAMETER_ERROR.getCode());
  212. // map.put("msg", ApiCode.PARAMETER_ERROR.getMessage());
  213. // return map;
  214. // }
  215. // if(deviceService.CheckRegister(device.getIdChannel(), device.getIdDevice())){
  216. // map.put("code", ApiCode.RECORD_EXIST.getCode());
  217. // map.put("msg", ApiCode.RECORD_EXIST.getMessage());
  218. // return map;
  219. // }
  220. // List<Channel> channelList = channelService.SearchById(device.getIdChannel());
  221. // if(channelList==null || channelList.size()<1){
  222. // map.put("code", ApiCode.PARAMETER_ERROR.getCode());
  223. // map.put("msg", ApiCode.PARAMETER_ERROR.getMessage());
  224. // return map;
  225. // }
  226. // device = deviceService.Register(device.getIdChannel(), device.getIdDevice());
  227. // if(device!=null){
  228. // map.put("code", ApiCode.OK.getCode());
  229. // Map data = new HashMap<>();
  230. // data.put("id", device.getId());
  231. // data.put("token", device.getTokenNew());
  232. // map.put("data", data);
  233. // }
  234. //
  235. // return map;
  236. // }
  237. /**
  238. * 搜索已注册的设备
  239. * @param request
  240. * @param response
  241. */
  242. @RequestMapping(value = "/search" ,method = RequestMethod.POST)
  243. public void Search(HttpServletRequest request, HttpServletResponse response){
  244. String idDevice = request.getParameter("idDevice");
  245. String idChannel = request.getParameter("idChannel");
  246. String start = request.getParameter("start");
  247. String end = request.getParameter("end");
  248. String page = request.getParameter("page");
  249. String size = request.getParameter("size");
  250. if(page==null || page.length()<1)
  251. page = "0";
  252. if(size==null || size.length()<1)
  253. size = "0";
  254. Map<String,Object> map = new HashMap<>();
  255. if((idDevice==null || idDevice.length()==0) && (idChannel==null || idChannel.length()==0)){
  256. Page<Device> pageRes = null;
  257. if((start==null || start.length()==0) || (end==null || end.length()==0))
  258. pageRes = deviceService.SearchAll(Integer.valueOf(page), Integer.valueOf(size));
  259. else
  260. pageRes = deviceService.SearchAll(Integer.valueOf(page), Integer.valueOf(size), Timestamp.valueOf(start), Timestamp.valueOf(end));
  261. for(int i=0; i<pageRes.getNumberOfElements(); i++){
  262. pageRes.getContent().get(i).setTokenNew("");
  263. pageRes.getContent().get(i).setTokenOld("");
  264. }
  265. map.put("data", pageRes.getContent());
  266. map.put("size", pageRes.getNumberOfElements());
  267. map.put("total", pageRes.getTotalElements());
  268. }else{
  269. if(idDevice==null || idDevice.length()==0)
  270. idDevice = "0";
  271. if(idChannel==null || idChannel.length()==0)
  272. idChannel = "0";
  273. Page<Device> pageRes = null;
  274. if((start==null || start.length()==0) || (end==null || end.length()==0))
  275. pageRes = deviceService.Search(Long.valueOf(idChannel), idDevice, Integer.valueOf(page), Integer.valueOf(size));
  276. else
  277. pageRes = deviceService.Search(Long.valueOf(idChannel), idDevice, Integer.valueOf(page), Integer.valueOf(size), Timestamp.valueOf(start), Timestamp.valueOf(end));
  278. for(int i=0; i<pageRes.getNumberOfElements(); i++){
  279. System.out.println("i:"+i);
  280. pageRes.getContent().get(i).setTokenNew("");
  281. pageRes.getContent().get(i).setTokenOld("");
  282. }
  283. map.put("data", pageRes.getContent());
  284. map.put("size", pageRes.getNumberOfElements());
  285. map.put("total", pageRes.getTotalElements());
  286. }
  287. HttpUtil.responseOkData(request, response, map);
  288. return;
  289. }
  290. // @RequestMapping(value = "/update", method = RequestMethod.POST)
  291. // public void Update(HttpServletRequest request, HttpServletResponse response, @RequestBody Device device){
  292. // Device deviceOld = deviceService.GetOne(device.getId());
  293. // if(deviceOld==null){
  294. // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
  295. // return;
  296. // }
  297. // device = (Device)Common.CopyValue(device, deviceOld);
  298. // device = deviceService.Update(device);
  299. // HttpUtil.responseOutWithJson(request, response, device);
  300. // return;
  301. // }
  302. //
  303. // @RequestMapping(value = "/delete", method = RequestMethod.POST)
  304. // public void Delete(HttpServletRequest request, HttpServletResponse response){
  305. // String idDevice = request.getParameter("idDevice");
  306. // deviceService.Delete(Long.valueOf(idDevice));
  307. // HttpUtil.responseOk(request, response);
  308. // return;
  309. // }
  310. @RequestMapping(value = "/findAlbum", method = RequestMethod.GET)
  311. public void findAlbum(HttpServletRequest request, HttpServletResponse response, String idDevice){
  312. Map<String,Object> map = new HashMap<>();
  313. map.put("albums", deviceService.findAlbum(idDevice));
  314. HttpUtil.responseOkData(request, response, map);
  315. }
  316. }