444ec2fde43398c44881a59d4c078ba0d1dc7372.svn-base 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.chinacreator.videoalliance.sdk.action;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import org.apache.commons.lang.StringUtils;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.ResponseBody;
  13. import com.chinacreator.common.service.MobService;
  14. import com.chinacreator.common.util.DESUtil;
  15. import com.chinacreator.common.util.MD5;
  16. import com.chinacreator.videoalliance.common.bean.CPInfo;
  17. import com.chinacreator.videoalliance.common.util.ConfigUtil;
  18. import com.chinacreator.videoalliance.sdk.bean.Terminal;
  19. import com.chinacreator.videoalliance.sdk.dao.CpinfoDao;
  20. import com.chinacreator.videoalliance.sdk.dao.TerminalDao;
  21. @Controller
  22. public class TerminalIdQueryAction {
  23. @Autowired
  24. private TerminalDao terminalDao;
  25. @Autowired
  26. private CpinfoDao cpdao;
  27. @RequestMapping("/terminalIdQuery.do")
  28. @ResponseBody
  29. public Object query(HttpServletRequest request, HttpServletResponse response) throws Exception {
  30. Map<String,String> map = new HashMap<String, String>();
  31. String cpid = request.getParameter("cpid");
  32. String spid = request.getParameter("spid");
  33. String devicetype = request.getParameter("devicetype");
  34. String deviceid = request.getParameter("deviceid");
  35. String timestamp = request.getParameter("timestamp");
  36. String sign = request.getParameter("sign");
  37. if(StringUtils.isEmpty(cpid) && StringUtils.isEmpty(spid) && StringUtils.isEmpty(devicetype) && StringUtils.isEmpty(deviceid) && StringUtils.isEmpty(timestamp)){
  38. map.put("resultcode", "2");
  39. map.put("errorinfo", "校验失败");
  40. map.put("userid", "");
  41. return map;
  42. }
  43. try {
  44. CPInfo cpInfo = cpdao.findById(cpid);
  45. String key = cpInfo.getNetpwd();
  46. String md5Str = MD5.MD5Encode(cpid+spid+deviceid+timestamp+key);
  47. if(!md5Str.equals(sign)){
  48. map.put("resultcode", "1");
  49. map.put("errorinfo", "签名校验失败");
  50. map.put("userid", "");
  51. }else{
  52. long nowmins = (new Date().getTime()+28800000)/1000;
  53. long diff = nowmins-Long.parseLong(timestamp);
  54. if(diff>7200){
  55. map.put("resultcode", "3");
  56. map.put("errorinfo", "请求链接失效,请重新请求");
  57. map.put("userid", "");
  58. }else{
  59. Terminal ter = new Terminal();
  60. ter.setCpid(cpid);
  61. ter.setSpid(spid);
  62. ter.setTerminalId(deviceid);
  63. List<Terminal> terminalList = terminalDao.query(ter);
  64. if(terminalList!=null && terminalList.size()>0){
  65. String userid = terminalList.get(0).getUserid();
  66. String fakeid = getFakeid(cpid, userid);
  67. userid = encrypt(cpid, fakeid);
  68. map.put("resultcode", "0");
  69. map.put("errorinfo", "成功");
  70. map.put("userid", userid);
  71. }else{
  72. map.put("resultcode", "4");
  73. map.put("errorinfo", "无手机号码");
  74. map.put("userid", "");
  75. }
  76. }
  77. }
  78. } catch (Exception e) {
  79. map.put("resultcode", "5");
  80. map.put("errorinfo", "系统异常");
  81. map.put("userid", "");
  82. }
  83. return map;
  84. }
  85. public String getFakeid(String cpid,String userid) throws Exception{
  86. CPInfo cpInfo = cpdao.findById(cpid);
  87. if(cpInfo.getMobtype() == 1) {
  88. return MobService.getInstance().getFakeId(userid);
  89. }
  90. return userid;
  91. }
  92. public String encrypt(String cpid,String userid)throws Exception {
  93. CPInfo cpInfo = cpdao.findById(cpid);
  94. return DESUtil.encode(userid, cpInfo.getNetpwd());
  95. }
  96. }