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.ApiResult; 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.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; } List channelList = channelService.SearchById(Long.valueOf(idChannel)); if(channelList==null || channelList.size()<1){ 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 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; } List channelList = channelService.SearchById(Long.valueOf(idChannel)); if(channelList==null || channelList.size()<1){ HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_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 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 map = new HashMap<>(); if((idDevice==null || idDevice.length()==0) && (idChannel==null || idChannel.length()==0)){ Page 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 = 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 map = new HashMap<>(); map.put("albums", deviceService.findAlbum(idDevice)); HttpUtil.responseOkData(request, response, map); } }