根据设备号和session判断移动端重复登录的问题

if(client!=null){   //OA端
			AjaxJson ajaxJson = checkuser0(user0, request);
			if(!ajaxJson.isSuccess()){
				jsonObject.put("flag", false);
				jsonObject.put("message", "登录失败");
				jsonObject.put("login", false);
			}
			else {
//				login=checkDuplicate(user0);//重复登录检验
				
			 
				jsonObject.put("flag", true);
				jsonObject.put("message", "登录成功");
			}
			responseJSON(response, jsonObject);
			return null;
		}

public AjaxJson checkuser0(TSUser user, HttpServletRequest req) throws Exception {
		String message = "";
		HttpSession session = ContextHolderUtils.getSession();
		DataSourceContextHolder
				.setDataSourceType(DataSourceType.dataSource_jeecg);
		String iMEI=req.getParameter("code");
		AjaxJson j = new AjaxJson();
		/*int users = userService.getList(TSUser.class).size();
		if (users == 0) {
			j.setMsg("a");
			j.setSuccess(false);*/
			TSUser u = userService.checkUserExits(user);
			if (u != null) {
				
				// if (user.getUserKey().equals(u.getUserKey())) {
				if (u.getStatus()==1) {
					message = "用户: " + user.getUserName() + "["
							+ u.getTSDepart().getDepartName() + "]" + "登录成功";
					String name=user.getUserName();
					String sessionId=ClientManager.getInstance().getClientByValue(name,iMEI);
					if(StringUtil.isNotEmpty(sessionId)){
						ClientManager.getInstance().removeClinet(sessionId);
//						new Yunba3(name,null,"下线通知","登录异常","",new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()));
						new Yunba4(name,null,"下线通知","登录异常","",new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()));
						
					}
					Client client = new Client();
					client.setIp(IpUtil.getIpAddr(req));
					client.setLogindatetime(new Date());
					client.setUser(u);
					client.setType(1);
					client.setIMEI(iMEI);
					ClientManager.getInstance().addClinet(session.getId(),
							client);
					// 添加登陆日志
					systemService.addLog(message, Globals.Log_Type_LOGIN,
							Globals.Log_Leavel_INFO);

				} else {
					j.setMsg("该用户已被禁用!");
					j.setSuccess(false);
				}
			} else {
				j.setMsg("用户名或密码错误!");
				j.setSuccess(false);
			}
		return j;
	}

	/**
	 * 根据用户名查sessionid
	 * @param name
	 * @return
	 */
	public String getClientByValue(String name,String IMEI){
		String key="";
		for (Map.Entry<String, Client> entry : map.entrySet()) {  
	         if(entry.getValue().getUser().getUserName().equals(name)){
	        	 if(entry.getValue().getType()==1){
	        		 if(StringUtil.isNotEmpty(IMEI)){
	        			 if(entry.getValue().getIMEI()==null||!(entry.getValue().getIMEI().equals(IMEI)))
	        				 key=entry.getKey(); 
	        		 }else{
	        			 if(entry.getValue().getIMEI()!=null)
	        				 key=entry.getKey(); 
	        		 }
	        			 
	        	 }
	         }  
	     }  
	     return key;  
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值