IPDao.go 1.5 KB
Newer Older
E
eoLinker API Management 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
package dao

import (
	"goku-ce-1.0/dao/database"	
	"goku-ce-1.0/utils"
)

func EditIPList(strategyID,ipType int,gatewayHashKey,ipList string) bool{
	db := database.GetConnection()
	chooseType := "blackList"
	if ipType == 2{
		chooseType = "whiteList"
	}
	if ipType == 0{
		stmt,err := db.Prepare("UPDATE eo_gateway_strategy_group SET chooseType = 0 WHERE strategyID =?;")
		if err != nil{
			return false
		}
		_,err = stmt.Exec(strategyID)
		if err != nil{
			return false
		}
	}else{
		stmt,err := db.Prepare("UPDATE eo_gateway_strategy_group SET " + chooseType + " = ?,chooseType = ? WHERE strategyID =?;")
		if err != nil{
			return false
		}
		_,err = stmt.Exec(ipList,ipType,strategyID)
		if err != nil{
			return false
		}
	}

	// 获取strategyKey
	var strategyKey string
	err := db.QueryRow("SELECT strategyKey FROM eo_gateway_strategy_group WHERE strategyID = ?;",strategyID).Scan(&strategyKey)
	if err != nil{
		return false
	}

	redisConn,err := utils.GetRedisConnection()
	defer redisConn.Close()
	
	_, err = redisConn.Do("del", "IPList:"+ gatewayHashKey + ":" + strategyKey)  
	if err != nil{
		return false
	}
	return true
}

// 获取IP名单列表
func GetIPList(strategyID int) (bool,utils.IPList){
	db := database.GetConnection()
	var ipList utils.IPList
	sql := "SELECT IFNULL(blackList,''),IFNULL(whiteList,''),chooseType FROM eo_gateway_strategy_group WHERE strategyID = ?;"
	err := db.QueryRow(sql,strategyID).Scan(&ipList.BlackList,&ipList.WhiteList,&ipList.ChooseType)
	if err != nil {
		return false,ipList
	}else{
		return true,ipList
	}
}