package jwt

//var DataAnalysisCh chan models.DataAnalysisModel

func init() {
	//DataAnalysisCh = make(chan models.DataAnalysisModel, 1000)
	//go DataAnalysisChannel()
}

// JWTAuthMiddleWare 基于JWT的认证中间件
//func JWTAuthMiddleWare() func(c *gin.Context) {
//	return func(c *gin.Context) {
//		//客户端携带Token放在请求头
//		authHeader := c.Request.Header.Get("Authorization")
//		if authHeader == "" {
//			base.ResponseErrorWithMsg(c, base.AuthorizationEmpty)
//			c.Abort()
//			return
//		}
//
//		mc, err := utils.ParseToken(authHeader)
//		if err != nil {
//			base.ResponseErrorWithMsg(c, base.AuthorizationEmpty)
//			c.Abort()
//			return
//		}
//
//		// des解密
//		phoneMob := utils.ToDesDecrypt(mc.PhoneMob)
//		userId := utils.ToDesDecrypt(mc.UserId)
//		userName := utils.ToDesDecrypt(mc.UserName)
//		//hospitalCode := utils.ToDesDecrypt(mc.HospitalCode)
//		//chainCode := utils.ToDesDecrypt(mc.ChainCode)
//		//hospitalID := utils.ToDesDecrypt(mc.HospitalID)
//		//hospitalName := utils.ToDesDecrypt(mc.HospitalName)
//		//ChainID := utils.ToDesDecrypt(mc.ChainID)
//		// 将当前请求的username信息保存到请求的上下文c上
//		c.Set("phone_mob", phoneMob)
//		fmt.Println(phoneMob)
//		c.Set("user_id", userId)
//		fmt.Println(userId)
//		c.Set("user_name", userName)
//		fmt.Println(userName)
//		//c.Set("hospital_code", hospitalCode)
//		//c.Set("chain_code", chainCode)
//		//c.Set("hospital_id", hospitalID)
//		//c.Set("hospital_name", hospitalName)
//		//c.Set("chain_id", ChainID)
//		// 后续的处理函数可以用过c.Get("username")来获取当前请求的用户信息
//
//		// 埋点生产者
//		//BuriedProducer(c, hospitalCode, hospitalName, hospitalID)
//		c.Next()
//	}
//}

// 埋点消费者
//func DataAnalysisChannel() {
//
//	for {
//		select {
//		case c := <-DataAnalysisCh:
//			buried_point.BuriedPointDistribution(c)
//		default:
//			//fmt.Println("当前没有处理的数据")
//			time.Sleep(500 * time.Millisecond )
//		}
//	}
//}
//
//func BuriedProducer(c *gin.Context, hospitalCode, hospitalName, hospitalID string) {
//
//	// 记录埋点
//	var d models.DataAnalysisModel
//	d.HospitalCode = hospitalCode
//	d.HospitalName = hospitalName
//	d.HospitalID = hospitalID
//	d.RequestBody = c.Request.Body
//	d.RequestTime = time.Now().Format("2006-01-02 15:04:05")
//	d.RequestUrl = c.Request.RequestURI
//	d.RequestPath = c.Request.URL.Path
//	d.RequestShowType = base.QueryInt(c, "showType")
//
//	//为防止对接口入侵达到最小 达到接口隔离效果  舍弃此方法 副本传递到下一方法
//	//data, _ := c.GetRawData()
//	//d.RequestData = data
//	////解决gin框架框架的数据不能重复用的问题(拿出来后放回去)  关键点
//	//c.Request.Body = ioutil.NopCloser(bytes.NewBuffer(data))
//
//	// 埋点生产者
//	DataAnalysisCh <- d
//}