123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package com.chinacreator.videoalliance.sdk.action;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import com.chinacreator.common.service.MobService;
- import com.chinacreator.common.util.DESUtil;
- import com.chinacreator.common.util.MD5;
- import com.chinacreator.videoalliance.common.bean.CPInfo;
- import com.chinacreator.videoalliance.common.util.ConfigUtil;
- import com.chinacreator.videoalliance.sdk.bean.Terminal;
- import com.chinacreator.videoalliance.sdk.dao.CpinfoDao;
- import com.chinacreator.videoalliance.sdk.dao.TerminalDao;
- @Controller
- public class TerminalIdQueryAction {
- @Autowired
- private TerminalDao terminalDao;
- @Autowired
- private CpinfoDao cpdao;
-
- @RequestMapping("/terminalIdQuery.do")
- @ResponseBody
- public Object query(HttpServletRequest request, HttpServletResponse response) throws Exception {
- Map<String,String> map = new HashMap<String, String>();
- String cpid = request.getParameter("cpid");
- String spid = request.getParameter("spid");
- String devicetype = request.getParameter("devicetype");
- String deviceid = request.getParameter("deviceid");
- String timestamp = request.getParameter("timestamp");
- String sign = request.getParameter("sign");
- if(StringUtils.isEmpty(cpid) && StringUtils.isEmpty(spid) && StringUtils.isEmpty(devicetype) && StringUtils.isEmpty(deviceid) && StringUtils.isEmpty(timestamp)){
- map.put("resultcode", "2");
- map.put("errorinfo", "校验失败");
- map.put("userid", "");
- return map;
- }
- try {
- CPInfo cpInfo = cpdao.findById(cpid);
- String key = cpInfo.getNetpwd();
- String md5Str = MD5.MD5Encode(cpid+spid+deviceid+timestamp+key);
- if(!md5Str.equals(sign)){
- map.put("resultcode", "1");
- map.put("errorinfo", "签名校验失败");
- map.put("userid", "");
- }else{
- long nowmins = (new Date().getTime()+28800000)/1000;
- long diff = nowmins-Long.parseLong(timestamp);
- if(diff>7200){
- map.put("resultcode", "3");
- map.put("errorinfo", "请求链接失效,请重新请求");
- map.put("userid", "");
- }else{
- Terminal ter = new Terminal();
- ter.setCpid(cpid);
- ter.setSpid(spid);
- ter.setTerminalId(deviceid);
- List<Terminal> terminalList = terminalDao.query(ter);
- if(terminalList!=null && terminalList.size()>0){
- String userid = terminalList.get(0).getUserid();
- String fakeid = getFakeid(cpid, userid);
- userid = encrypt(cpid, fakeid);
- map.put("resultcode", "0");
- map.put("errorinfo", "成功");
- map.put("userid", userid);
- }else{
- map.put("resultcode", "4");
- map.put("errorinfo", "无手机号码");
- map.put("userid", "");
- }
- }
- }
- } catch (Exception e) {
- map.put("resultcode", "5");
- map.put("errorinfo", "系统异常");
- map.put("userid", "");
- }
-
- return map;
- }
-
- public String getFakeid(String cpid,String userid) throws Exception{
- CPInfo cpInfo = cpdao.findById(cpid);
- if(cpInfo.getMobtype() == 1) {
- return MobService.getInstance().getFakeId(userid);
- }
- return userid;
- }
-
- public String encrypt(String cpid,String userid)throws Exception {
- CPInfo cpInfo = cpdao.findById(cpid);
- return DESUtil.encode(userid, cpInfo.getNetpwd());
- }
- }
|