package com.yc.education.controller;

import java.util.Random;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import com.yc.education.model.Admins;
import com.yc.education.util.AppConst;

public class BaseController {

	/**
	 * 后台登录
	 * @param request
	 * @return
	 */
	protected Admins getLoginUser(HttpServletRequest request){
		Admins admin = (Admins) request.getSession().getAttribute(AppConst.Session_Admin);
		return admin;
	}


	
	//用来产生随机验证码的
	private static Random rand = new Random();
	private static String[] str = {"0","1","2","3","4","5","6","7","8","9"};
		
	/**
	 * 返回6位随机数  Lock-玄清
	 * @return
	 */
	protected String getRandom(){
		//存放产生的随机数
    	String sms="";
    	//生成六位数的随机数
    	StringBuffer buf = new StringBuffer();
		for(int i=0;i<6;i++){
			buf.append(str[rand.nextInt(10)]);
		}
		sms= buf.toString();
		System.err.println(sms);
		return sms;
	}

	/**
	 * 返回8位随机数  Lock-玄清
	 * @return
	 */
	protected String getRandomEight(){
		//存放产生的随机数
		String sms="";
		//生成六位数的随机数
		StringBuffer buf = new StringBuffer();
		for(int i=0;i<8;i++){
			buf.append(str[rand.nextInt(10)]);
		}
		sms= buf.toString();
		System.err.println(sms);
		return sms;
	}
	
	/**
	 * 返回4位随机数  Lock-玄清
	 * @return
	 */
	protected String getRandomone(){
		//存放产生的随机数
    	String sms="";
    	//生成六位数的随机数
    	StringBuffer buf = new StringBuffer();
		for(int i=0;i<4;i++){
			buf.append(str[rand.nextInt(10)]);
		}
		sms= buf.toString();
		System.err.println(sms);
		return sms;
	}

	/**
	 * 生成16位的UUID
	 * @return
	 */
	public static String getOrderIdByUUId() {
		int machineId = 1;//最大支持1-9个集群机器部署
		int hashCodeV = UUID.randomUUID().toString().hashCode();
		if(hashCodeV < 0) {//有可能是负数
			hashCodeV = - hashCodeV;
		}
		// 0 代表前面补充0
		// 4 代表长度为4
		// d 代表参数为正数型
		return machineId + String.format("%04d", hashCodeV);
	}
}
