| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package dbdata
- import (
- "encoding/json"
- "xorm.io/xorm"
- )
- type SearchCon struct {
- Username string `json:"username"`
- Src string `json:"src"`
- Dst string `json:"dst"`
- DstPort string `json:"dst_port"`
- AccessProto string `json:"access_proto"`
- Date []string `json:"date"`
- Info string `json:"info"`
- Sort int `json:"sort"`
- }
- func GetAuditSession(search string) *xorm.Session {
- session := xdb.Where("1=1")
- if search == "" {
- return session
- }
- var searchData SearchCon
- err := json.Unmarshal([]byte(search), &searchData)
- if err != nil {
- return session
- }
- if searchData.Username != "" {
- session.And("username = ?", searchData.Username)
- }
- if searchData.Src != "" {
- session.And("src = ?", searchData.Src)
- }
- if searchData.Dst != "" {
- session.And("dst = ?", searchData.Dst)
- }
- if searchData.DstPort != "" {
- session.And("dst_port = ?", searchData.DstPort)
- }
- if searchData.AccessProto != "" {
- session.And("access_proto = ?", searchData.AccessProto)
- }
- if len(searchData.Date) > 0 && searchData.Date[0] != "" {
- session.And("created_at BETWEEN ? AND ?", searchData.Date[0], searchData.Date[1])
- }
- if searchData.Info != "" {
- session.And("info LIKE ?", "%"+searchData.Info+"%")
- }
- if searchData.Sort == 1 {
- session.OrderBy("id desc")
- } else {
- session.OrderBy("id asc")
- }
- return session
- }
- func ClearAccessAudit(ts string) (int64, error) {
- affected, err := xdb.Where("created_at < '" + ts + "'").Delete(&AccessAudit{})
- return affected, err
- }
|