mirror of
https://gitee.com/lauix/HFish
synced 2025-05-11 04:18:02 +08:00
148 lines
3.4 KiB
Go
148 lines
3.4 KiB
Go
package fish
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"net/http"
|
|
"HFish/core/dbUtil"
|
|
"HFish/error"
|
|
"HFish/utils/page"
|
|
"strconv"
|
|
"strings"
|
|
"HFish/utils/log"
|
|
)
|
|
|
|
// 蜜罐 页面
|
|
func Html(c *gin.Context) {
|
|
c.HTML(http.StatusOK, "fish.html", gin.H{})
|
|
}
|
|
|
|
// 获取蜜罐列表
|
|
func GetFishList(c *gin.Context) {
|
|
p, _ := c.GetQuery("page")
|
|
pageSize, _ := c.GetQuery("pageSize")
|
|
typex, _ := c.GetQuery("type")
|
|
colony, _ := c.GetQuery("colony")
|
|
soText, _ := c.GetQuery("so_text")
|
|
|
|
// 拼接 SQL
|
|
db := dbUtil.DB().Table("hfish_info").Fields("id", "type", "project_name", "agent", "ip", "country", "region", "city", "create_time", "info")
|
|
dbCount := dbUtil.DB().Table("hfish_info")
|
|
|
|
if typex != "all" {
|
|
db.Where("type", "=", typex)
|
|
dbCount.Where("type", "=", typex)
|
|
}
|
|
|
|
if colony != "all" {
|
|
db.Where("agent", "=", colony)
|
|
dbCount.Where("agent", "=", colony)
|
|
}
|
|
|
|
if soText != "" {
|
|
db.Where("project_name", "like", "%"+soText+"%").OrWhere("ip", "like", "%"+soText+"%")
|
|
dbCount.Where("project_name", "like", "%"+soText+"%").OrWhere("ip", "like", "%"+soText+"%")
|
|
}
|
|
|
|
// 统计查询数量
|
|
totalCount, errCount := dbCount.Count()
|
|
|
|
if errCount != nil {
|
|
log.Pr("HFish", "127.0.0.1", "统计分页总数失败", errCount)
|
|
}
|
|
|
|
// 查询列表
|
|
pInt, _ := strconv.Atoi(p)
|
|
pageSizeInt, _ := strconv.Atoi(pageSize)
|
|
pageStart := page.Start(pInt, pageSizeInt)
|
|
|
|
result, err := db.OrderBy("id desc").Limit(pageSizeInt).Offset(pageStart).Get()
|
|
|
|
if err != nil {
|
|
log.Pr("HFish", "127.0.0.1", "查询上钩信息列表失败", err)
|
|
}
|
|
|
|
totalCountString := strconv.FormatInt(totalCount, 10)
|
|
totalCountInt, _ := strconv.Atoi(totalCountString)
|
|
|
|
pageCount := page.TotalPage(totalCountInt, pageSizeInt)
|
|
|
|
data := map[string]interface{}{
|
|
"result": result,
|
|
"pageCount": pageCount,
|
|
"totalCount": totalCount,
|
|
"page": p,
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": error.ErrSuccessCode,
|
|
"msg": error.ErrSuccessMsg,
|
|
"data": data,
|
|
})
|
|
}
|
|
|
|
// 删除蜜罐
|
|
func PostFishDel(c *gin.Context) {
|
|
id := c.PostForm("id")
|
|
|
|
idx := strings.Split(id, ",")
|
|
inId := make([]interface{}, 20)
|
|
|
|
for _, x := range idx {
|
|
inId = append(inId, x)
|
|
}
|
|
|
|
_, err := dbUtil.DB().Table("hfish_info").WhereIn("id", inId).Delete()
|
|
|
|
if err != nil {
|
|
log.Pr("HFish", "127.0.0.1", "删除蜜罐失败", err)
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": error.ErrSuccessCode,
|
|
"msg": error.ErrSuccessMsg,
|
|
})
|
|
}
|
|
|
|
// 获取蜜罐信息
|
|
func GetFishInfo(c *gin.Context) {
|
|
id, _ := c.GetQuery("id")
|
|
|
|
result, err := dbUtil.DB().Table("hfish_info").Fields("info").Where("id", "=", id).First()
|
|
|
|
if err != nil {
|
|
log.Pr("HFish", "127.0.0.1", "获取蜜罐信息失败", err)
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": error.ErrSuccessCode,
|
|
"msg": error.ErrSuccessMsg,
|
|
"data": result,
|
|
})
|
|
}
|
|
|
|
// 获取蜜罐分类信息,集群信息
|
|
func GetFishTypeInfo(c *gin.Context) {
|
|
resultType, errType := dbUtil.DB().Table("hfish_info").Fields("type").GroupBy("type").Get()
|
|
|
|
if errType != nil {
|
|
log.Pr("HFish", "127.0.0.1", "获取蜜罐分类失败", errType)
|
|
}
|
|
|
|
resultAgent, errAgent := dbUtil.DB().Table("hfish_info").Fields("agent").GroupBy("agent").Get()
|
|
|
|
if errAgent != nil {
|
|
log.Pr("HFish", "127.0.0.1", "获取集群分类失败", errAgent)
|
|
}
|
|
|
|
data := map[string]interface{}{
|
|
"resultInfoType": resultType,
|
|
"resultColonyName": resultAgent,
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"code": error.ErrSuccessCode,
|
|
"msg": error.ErrSuccessMsg,
|
|
"data": data,
|
|
})
|
|
}
|