123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408 |
- package cn.efunbox.audio.controller;
- //import cn.efunbox.audio.clients.UserFeign;
- import cn.efunbox.audio.clients.AudioHttp;
- import cn.efunbox.audio.clients.UserHttp;
- import cn.efunbox.audio.entity.Channel;
- import cn.efunbox.audio.entity.Device;
- import cn.efunbox.audio.service.ChannelService;
- import cn.efunbox.audio.service.DeviceService;
- import cn.efunbox.audio.utils.ApiCode;
- import cn.efunbox.audio.utils.Encrypt;
- import cn.efunbox.audio.utils.HttpUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.data.domain.Page;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.nio.charset.StandardCharsets;
- import java.sql.Timestamp;
- import java.util.*;
- /**
- * Created by yao on 17-9-26.
- */
- @RestController
- @Slf4j
- @RequestMapping(value = "/device")
- public class DeviceController {
- @Autowired
- DeviceService deviceService;
- @Autowired
- ChannelService channelService;
- // @Autowired
- // UserFeign userFeign;
- @Autowired
- UserHttp userHttp;
- @Autowired
- AudioHttp audioHttp;
- @Value("${iaas.user.register}")
- private String urlRegister;
- @Value("${iaas.user.audio.bizCode}")
- private String bizCode;
- @Value("${iaas.user.audio.appCode}")
- private String appCode;
- @Value("${iaas.user.audio.platform}")
- private String platform;
- @Value("${iaas.user.audio.os}")
- private String os;
- @Value("${iaas.user.audio.appVer}")
- private String appVer;
- @Value("${iaas.user.audio.terminal}")
- private String terminal;
- @Value("${iaas.user.audio.entryType}")
- private String entryType;
- @Value("${interface.sign.key}")
- private String signKey;
- @RequestMapping(value = "/feign")
- public void Feigh(HttpServletRequest request, HttpServletResponse response,
- @RequestParam("idChannel")String idChannel, @RequestParam("mobile")String mobile){
- String res = audioHttp.SearchByIdResource("653f6a0c-b997-11e7-9771-080027fcfc4b");
- System.out.println(res);
- Map map = JSONObject.parseObject(res);
- if(map.get("code").toString().equalsIgnoreCase("200")){
- map = JSONObject.parseObject(map.get("data").toString());
- JSONArray array = JSONArray.parseArray(map.get("audios").toString());
- map = JSONObject.parseObject(array.get(0).toString());
- String path = map.get("path").toString();
- System.out.println(path);
- }
- // String ip = HttpUtil.getIpAddress(request);
- // System.out.println("start:"+ip);
- // String res = userHttp.Register(UUID.randomUUID().toString().substring(0, 31),
- // idChannel, ip, mobile, mobile);
- // String res = userFeign.Register(
- //// "application/json",
- // bizCode,
- //// UUID.randomUUID().toString().substring(0, 31),
- // "8723-4327-64238-asdkja",
- // appCode,
- // platform,
- // os,
- // "1111",
- // "123.126.111.3",
- // appVer,
- // terminal,
- // mobile,
- // entryType,
- // "123456",
- // "",
- // ""
- // );
- // System.out.println(res);
- // Map map = JSONObject.parseObject(res);
- // HttpUtil.responseOkData(request, response, map);
- // System.out.println("res:"+res);
- // String res = userFeign.getUser("c26ceb09-4e85-40ba-a81d-1535d142cc43");
- // System.out.println(res);
- }
- @RequestMapping(value = "/token" ,method = RequestMethod.POST)
- public void Login(HttpServletRequest request, HttpServletResponse response, @RequestParam long id, @RequestParam String token){
- Device device = deviceService.Login(id, token);
- if(device==null){
- HttpUtil.responseApiCode(request, response, ApiCode.INVALID_TOKEN);
- return;
- }
- device.setIaas_eid("");
- device.setIaas_name("");
- device.setIaas_uid("");
- device.setIaas_token("");
- device.setIaas_pwd("");
- device.setTokenOld("");
- HttpUtil.responseOkData(request, response, device);
- return;
- }
- @RequestMapping(value = "/register" ,method = RequestMethod.POST)
- public void Register(HttpServletRequest request, HttpServletResponse response){
- String idChannel = request.getParameter("idChannel");
- String idDevice = request.getParameter("idDevice");
- if(idChannel==null || idDevice==null){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- if(deviceService.CheckRegister(Long.valueOf(idChannel), idDevice)) {
- HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
- return;
- }
- Channel channel = channelService.SearchById(Long.valueOf(idChannel));
- if(Objects.isNull(channel)){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- //向云平台注册设备
- String ip = HttpUtil.getIpAddress(request);
- System.out.println("start:"+ip);
- String res = userHttp.Register(UUID.randomUUID().toString().substring(0, 31),
- idChannel, ip, idDevice, idDevice);
- System.out.println(res);
- Map mapRes = JSONObject.parseObject(res);
- System.out.println(mapRes.toString());
- if(Integer.valueOf(mapRes.get("code").toString())!=200){
- HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
- return;
- }
- mapRes = JSONObject.parseObject(mapRes.get("data").toString());
- Device device = deviceService.Register(Long.valueOf(idChannel), idDevice);
- if(device!=null){
- //记录云平台的账号信息
- device.setIaas_eid(mapRes.get("eid").toString());
- device.setIaas_uid(mapRes.get("uid").toString());
- device.setIaas_name(idDevice);
- device.setIaas_pwd(idDevice);
- device.setIaas_token(mapRes.get("token").toString());
- device.setIaas_expiration(new Timestamp(Long.valueOf(mapRes.get("expiration").toString())));
- device = deviceService.Update(device);
- device.setIaas_eid("");
- device.setIaas_name("");
- device.setIaas_uid("");
- device.setIaas_token("");
- device.setIaas_pwd("");
- device.setTokenOld("");
- HttpUtil.responseOkData(request, response, device);
- }
- return;
- }
- @RequestMapping(value = "/token",method = RequestMethod.GET)
- public void token(HttpServletRequest request, HttpServletResponse response){
- String idChannel = request.getParameter("idChannel");
- String idDevice = request.getParameter("idDevice");
- String sign = request.getParameter("sign");
- if(StringUtils.isBlank(idChannel) || StringUtils.isBlank(idDevice) || StringUtils.isBlank(sign)){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- Map<String,String> param = new HashMap<>();
- param.put("idChannel",idChannel);
- param.put("idDevice",idDevice);
- String test = Encrypt.createSHA256Sign(param,signKey);
- if (!sign.equalsIgnoreCase(test)) {
- HttpUtil.responseApiCode(request, response, ApiCode.SIGN_FAIL);
- return;
- }
- Channel channel = channelService.SearchById(Long.valueOf(idChannel));
- if(Objects.isNull(channel)){
- HttpUtil.responseApiCode(request, response, ApiCode.CHANNEL_NOT_FOUND_ERROR);
- return;
- }
- Device device = deviceService.findToken(Long.valueOf(idChannel), idDevice);
- if(Objects.isNull(device)){
- HttpUtil.responseApiCode(request, response, ApiCode.NO_REGISTER_FAIL);
- return;
- }
- device.setIaas_eid("");
- device.setIaas_name("");
- device.setIaas_uid("");
- device.setIaas_token("");
- device.setIaas_pwd("");
- device.setTokenOld("");
- HttpUtil.responseOkData(request, response, device);
- return;
- }
- @RequestMapping(value = "/v2/token",method = RequestMethod.GET)
- public void tokenV2(HttpServletRequest request, HttpServletResponse response){
- String idChannel = request.getParameter("idChannel");
- String idDevice = request.getParameter("idDevice");
- String ts = request.getParameter("ts");
- String sign = request.getParameter("sign");
- if(StringUtils.isBlank(idChannel) || StringUtils.isBlank(idDevice) || StringUtils.isBlank(sign)){
- HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- return;
- }
- Map<String,String> param = new HashMap<>();
- param.put("idChannel",idChannel);
- param.put("idDevice",idDevice);
- param.put("ts",ts);
- String signStr = Encrypt.createHMACSHA256(param,signKey);
- String decode = new String(Base64.getDecoder().decode(sign), StandardCharsets.UTF_8);
- if (!signStr.equalsIgnoreCase(decode)) {
- HttpUtil.responseApiCode(request, response, ApiCode.SIGN_FAIL);
- return;
- }
- Channel channel = channelService.SearchById(Long.valueOf(idChannel));
- if(Objects.isNull(channel)){
- HttpUtil.responseApiCode(request, response, ApiCode.CHANNEL_NOT_FOUND_ERROR);
- return;
- }
- Device device = deviceService.findToken(Long.valueOf(idChannel), idDevice);
- if(Objects.isNull(device)){
- HttpUtil.responseApiCode(request, response, ApiCode.NO_REGISTER_FAIL);
- return;
- }
- device.setIaas_eid("");
- device.setIaas_name("");
- device.setIaas_uid("");
- device.setIaas_token("");
- device.setIaas_pwd("");
- device.setTokenOld("");
- HttpUtil.responseOkData(request, response, device);
- return;
- }
- // @RequestMapping(value = "/register" ,method = RequestMethod.POST)
- // public Map Register(HttpServletRequest request, @RequestBody Device device){
- // Map map = new HashMap<>();
- // if(device.getIdChannel()==null || device.getIdDevice()==null){
- // map.put("code", ApiCode.PARAMETER_ERROR.getCode());
- // map.put("msg", ApiCode.PARAMETER_ERROR.getMessage());
- // return map;
- // }
- // if(deviceService.CheckRegister(device.getIdChannel(), device.getIdDevice())){
- // map.put("code", ApiCode.RECORD_EXIST.getCode());
- // map.put("msg", ApiCode.RECORD_EXIST.getMessage());
- // return map;
- // }
- // List<Channel> channelList = channelService.SearchById(device.getIdChannel());
- // if(channelList==null || channelList.size()<1){
- // map.put("code", ApiCode.PARAMETER_ERROR.getCode());
- // map.put("msg", ApiCode.PARAMETER_ERROR.getMessage());
- // return map;
- // }
- // device = deviceService.Register(device.getIdChannel(), device.getIdDevice());
- // if(device!=null){
- // map.put("code", ApiCode.OK.getCode());
- // Map data = new HashMap<>();
- // data.put("id", device.getId());
- // data.put("token", device.getTokenNew());
- // map.put("data", data);
- // }
- //
- // return map;
- // }
- /**
- * 搜索已注册的设备
- * @param request
- * @param response
- */
- @RequestMapping(value = "/search" ,method = RequestMethod.POST)
- public void Search(HttpServletRequest request, HttpServletResponse response){
- String idDevice = request.getParameter("idDevice");
- String idChannel = request.getParameter("idChannel");
- String start = request.getParameter("start");
- String end = request.getParameter("end");
- String page = request.getParameter("page");
- String size = request.getParameter("size");
- if(page==null || page.length()<1)
- page = "0";
- if(size==null || size.length()<1)
- size = "0";
- Map<String,Object> map = new HashMap<>();
- if((idDevice==null || idDevice.length()==0) && (idChannel==null || idChannel.length()==0)){
- Page<Device> pageRes = null;
- if((start==null || start.length()==0) || (end==null || end.length()==0))
- pageRes = deviceService.SearchAll(Integer.valueOf(page), Integer.valueOf(size));
- else
- pageRes = deviceService.SearchAll(Integer.valueOf(page), Integer.valueOf(size), Timestamp.valueOf(start), Timestamp.valueOf(end));
- for(int i=0; i<pageRes.getNumberOfElements(); i++){
- pageRes.getContent().get(i).setTokenNew("");
- pageRes.getContent().get(i).setTokenOld("");
- }
- map.put("data", pageRes.getContent());
- map.put("size", pageRes.getNumberOfElements());
- map.put("total", pageRes.getTotalElements());
- }else{
- if(idDevice==null || idDevice.length()==0)
- idDevice = "0";
- if(idChannel==null || idChannel.length()==0)
- idChannel = "0";
- Page<Device> pageRes = null;
- if((start==null || start.length()==0) || (end==null || end.length()==0))
- pageRes = deviceService.Search(Long.valueOf(idChannel), idDevice, Integer.valueOf(page), Integer.valueOf(size));
- else
- pageRes = deviceService.Search(Long.valueOf(idChannel), idDevice, Integer.valueOf(page), Integer.valueOf(size), Timestamp.valueOf(start), Timestamp.valueOf(end));
- for(int i=0; i<pageRes.getNumberOfElements(); i++){
- System.out.println("i:"+i);
- pageRes.getContent().get(i).setTokenNew("");
- pageRes.getContent().get(i).setTokenOld("");
- }
- map.put("data", pageRes.getContent());
- map.put("size", pageRes.getNumberOfElements());
- map.put("total", pageRes.getTotalElements());
- }
- HttpUtil.responseOkData(request, response, map);
- return;
- }
- // @RequestMapping(value = "/update", method = RequestMethod.POST)
- // public void Update(HttpServletRequest request, HttpServletResponse response, @RequestBody Device device){
- // Device deviceOld = deviceService.GetOne(device.getId());
- // if(deviceOld==null){
- // HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
- // return;
- // }
- // device = (Device)Common.CopyValue(device, deviceOld);
- // device = deviceService.Update(device);
- // HttpUtil.responseOutWithJson(request, response, device);
- // return;
- // }
- //
- // @RequestMapping(value = "/delete", method = RequestMethod.POST)
- // public void Delete(HttpServletRequest request, HttpServletResponse response){
- // String idDevice = request.getParameter("idDevice");
- // deviceService.Delete(Long.valueOf(idDevice));
- // HttpUtil.responseOk(request, response);
- // return;
- // }
- @RequestMapping(value = "/findAlbum", method = RequestMethod.GET)
- public void findAlbum(HttpServletRequest request, HttpServletResponse response, String id){
- Map<String,Object> map = new HashMap<>();
- map.put("albums", deviceService.findAlbum(id));
- HttpUtil.responseOkData(request, response, map);
- }
- }
|