diff --git a/models/send_tasks_logs.go b/models/send_tasks_logs.go
index 9b49287..7c8cd8a 100644
--- a/models/send_tasks_logs.go
+++ b/models/send_tasks_logs.go
@@ -37,7 +37,7 @@ type LogsResult struct {
}
// GetSendLogs 获取所有日志记录
-func GetSendLogs(pageNum int, pageSize int, name string, taskId string, maps interface{}) ([]LogsResult, error) {
+func GetSendLogs(pageNum int, pageSize int, name string, taskId string, maps map[string]interface{}) ([]LogsResult, error) {
var logs []LogsResult
logt := db.NewScope(SendTasksLogs{}).TableName()
taskt := db.NewScope(SendTasks{}).TableName()
@@ -47,6 +47,13 @@ func GetSendLogs(pageNum int, pageSize int, name string, taskId string, maps int
Select(fmt.Sprintf("%s.*, %s.name as task_name", logt, taskt)).
Joins(fmt.Sprintf("LEFT JOIN %s ON %s.task_id = %s.id", taskt, logt, taskt))
+ dayVal, ok := maps["day_created_on"]
+ if ok {
+ delete(maps, "day_created_on")
+ query = query.Where(fmt.Sprintf("DATE(%s.created_on) = ?", logt), dayVal)
+ }
+
+ query = query.Where(maps)
if name != "" {
query = query.Where(fmt.Sprintf("%s.name like ?", taskt), fmt.Sprintf("%%%s%%", name))
}
@@ -63,13 +70,21 @@ func GetSendLogs(pageNum int, pageSize int, name string, taskId string, maps int
}
// GetSendLogsTotal 获取所有日志总数
-func GetSendLogsTotal(name string, taskId string, maps interface{}) (int, error) {
+func GetSendLogsTotal(name string, taskId string, maps map[string]interface{}) (int, error) {
var total int
logt := db.NewScope(SendTasksLogs{}).TableName()
taskt := db.NewScope(SendTasks{}).TableName()
query := db.
Table(logt).
Joins(fmt.Sprintf("LEFT JOIN %s ON %s.task_id = %s.id", taskt, logt, taskt))
+
+ dayVal, ok := maps["day_created_on"]
+ if ok {
+ delete(maps, "day_created_on")
+ query = query.Where(fmt.Sprintf("DATE(%s.created_on) = ?", logt), dayVal)
+ }
+
+ query = query.Where(maps)
if name != "" {
query = query.Where(fmt.Sprintf("%s.name like ?", taskt), fmt.Sprintf("%%%s%%", name))
}
diff --git a/routers/api/v1/send_tasks_logs.go b/routers/api/v1/send_tasks_logs.go
index f267018..17c15e4 100644
--- a/routers/api/v1/send_tasks_logs.go
+++ b/routers/api/v1/send_tasks_logs.go
@@ -13,6 +13,7 @@ func GetTaskSendLogsList(c *gin.Context) {
appG := app.Gin{C: c}
name := c.Query("name")
taskId := c.Query("taskid")
+ query := c.Query("query")
offset, limit := util.GetPageSize(c)
logsService := send_logs_service.SendTaskLogsService{
@@ -20,6 +21,7 @@ func GetTaskSendLogsList(c *gin.Context) {
Name: name,
PageNum: offset,
PageSize: limit,
+ Query: query,
}
ways, err := logsService.GetAll()
if err != nil {
diff --git a/service/send_logs_service/send_logs.go b/service/send_logs_service/send_logs.go
index d6303be..55cd116 100644
--- a/service/send_logs_service/send_logs.go
+++ b/service/send_logs_service/send_logs.go
@@ -1,13 +1,17 @@
package send_logs_service
import (
+ "encoding/json"
+ "github.com/sirupsen/logrus"
"message-nest/models"
+ "net/url"
)
type SendTaskLogsService struct {
ID int
TaskId string
Name string
+ Query string
PageNum int
PageSize int
@@ -27,5 +31,17 @@ func (st *SendTaskLogsService) GetAll() ([]models.LogsResult, error) {
func (st *SendTaskLogsService) getMaps() map[string]interface{} {
maps := make(map[string]interface{})
+ if len(st.Query) > 0 {
+ decodedString, err := url.QueryUnescape(st.Query)
+ if err != nil {
+ logrus.Errorf("queryUrl编码解码失败: %s", err)
+ return maps
+ }
+ err = json.Unmarshal([]byte(decodedString), &maps)
+ if err != nil {
+ logrus.Errorf("queryJson反序列化失败: %s", err)
+ return maps
+ }
+ }
return maps
}
diff --git a/web/src/views/tabsTools/sendLogs/sendLogs.vue b/web/src/views/tabsTools/sendLogs/sendLogs.vue
index 855d62a..4c2f9da 100644
--- a/web/src/views/tabsTools/sendLogs/sendLogs.vue
+++ b/web/src/views/tabsTools/sendLogs/sendLogs.vue
@@ -134,14 +134,13 @@ export default {
}
}
-
const filterFunc = async () => {
await queryListData(state.currPage, state.pageSize, state.search, state.optionValue);
}
- const queryListData = async (page, size, name = '', taskid = '') => {
- let params = { page: page, size: size, name: name, taskid: taskid };
+ const queryListData = async (page, size, name = '', taskid = '', query = '') => {
+ let params = { page: page, size: size, name: name, taskid: taskid, query: query };
const rsp = await request.get('/sendlogs/list', { params: params });
state.tableData = await rsp.data.data.lists;
state.total = await rsp.data.data.total;
@@ -149,7 +148,7 @@ export default {
onMounted(async () => {
state.search = router.query.name;
- await queryListData(1, state.pageSize, router.query.name, router.query.taskid);
+ await queryListData(1, state.pageSize, router.query.name, router.query.taskid, router.query.query);
});
return {
diff --git a/web/src/views/tabsTools/statistic/statistic.vue b/web/src/views/tabsTools/statistic/statistic.vue
index 88bc620..691f87a 100644
--- a/web/src/views/tabsTools/statistic/statistic.vue
+++ b/web/src/views/tabsTools/statistic/statistic.vue
@@ -32,6 +32,11 @@
今日发送失败数
+
+