diff --git a/models/send_ins.go b/models/send_ins.go index fe7ee7a..01c50ed 100644 --- a/models/send_ins.go +++ b/models/send_ins.go @@ -9,6 +9,7 @@ type SendTasksIns struct { ContentType string `json:"content_type" gorm:"type:varchar(100) comment '实例类型';default:'';index:content_type"` Config string `json:"config" gorm:"type:text comment '实例配置';"` Extra string `json:"extra" gorm:"type:text comment '额外信息';"` + Enable int `json:"enable" gorm:"type:int comment '开启、暂停状态';default:1;"` } // InsEmailConfig 实例里面的邮箱config @@ -61,3 +62,11 @@ func DeleteMsgTaskIns(id string) error { } return nil } + +// UpdateMsgTaskIns 更新实例 +func UpdateMsgTaskIns(id string, data map[string]interface{}) error { + if err := db.Model(&SendTasksIns{}).Where("id = ?", id).Updates(data).Error; err != nil { + return err + } + return nil +} diff --git a/pkg/constant/release_log.go b/pkg/constant/release_log.go index 260f442..5beba2e 100644 --- a/pkg/constant/release_log.go +++ b/pkg/constant/release_log.go @@ -58,8 +58,25 @@ var LatestVersion = map[string]string{} //11. 支持自动初始化表,以及初始化账号 //` -var V5Version = "v0.0.5" -var V5VersionDesc = ` +//var V5Version = "v0.0.5" +//var V5VersionDesc = ` +//1. 单应用打包 +//2. 支持邮件发送 +//3. 用户密码设置 +//4. 支持用户定时任务清理,更新定时时间 +//5. 查看定时清理日志 +//6. 单应用的html浏览器自动缓存 +//7. gin的日志使用logrus +//8. 支持异步发送 +//9. 支持钉钉消息推送 +//10. 支持自定义的webhook推送 +//11. 支持自动初始化表,以及初始化账号 +//12. 调整日志格式 +//13. 支持更多的api接入示例 +//` + +var V6Version = "v0.0.6" +var V6VersionDesc = ` 1. 单应用打包 2. 支持邮件发送 3. 用户密码设置 @@ -73,9 +90,10 @@ var V5VersionDesc = ` 11. 支持自动初始化表,以及初始化账号 12. 调整日志格式 13. 支持更多的api接入示例 +14. 支持发送实例的暂停与开启 ` func init() { - LatestVersion["version"] = V5Version - LatestVersion["desc"] = strings.TrimSpace(V5VersionDesc) + LatestVersion["version"] = V6Version + LatestVersion["desc"] = strings.TrimSpace(V6VersionDesc) } diff --git a/routers/api/v1/send_ins.go b/routers/api/v1/send_ins.go index e8d633e..6d59637 100644 --- a/routers/api/v1/send_ins.go +++ b/routers/api/v1/send_ins.go @@ -177,3 +177,36 @@ func AddTasksIns(c *gin.Context) { appG.CResponse(http.StatusOK, "添加实例成功!", nil) } + +type UpdateMsgTaskInsEnableReq struct { + ID string `json:"ins_id" validate:"required,len=36" label:"实例id"` + Enable int `json:"status" validate:"" label:"实例开启状态"` +} + +// UpdateMsgTaskInsEnable 更新消息渠道实例的是否开启 +func UpdateMsgTaskInsEnable(c *gin.Context) { + var ( + appG = app.Gin{C: c} + req UpdateMsgTaskInsEnableReq + ) + + errCode, errMsg := app.BindJsonAndPlayValid(c, &req) + if errCode != e.SUCCESS { + appG.CResponse(errCode, errMsg, nil) + return + } + + InsService := send_ins_service.SendTaskInsService{ + ID: req.ID, + //Enable: req.Enable, + } + err := InsService.Update(map[string]interface{}{ + "enable": req.Enable, + }) + if err != nil { + appG.CResponse(http.StatusBadRequest, "删除实例失败!", nil) + return + } + + appG.CResponse(http.StatusOK, "删除实例成功!", nil) +} diff --git a/routers/router.go b/routers/router.go index 474680b..327a2f2 100644 --- a/routers/router.go +++ b/routers/router.go @@ -68,6 +68,7 @@ func InitRouter(f embed.FS) *gin.Engine { apiV1.POST("/sendtasks/ins/addone", v1.AddTasksIns) apiV1.GET("/sendtasks/ins/gettask", v1.GetMsgSendWayIns) apiV1.POST("/sendtasks/ins/delete", v1.DeleteMsgTaskIns) + apiV1.POST("/sendtasks/ins/update_enable", v1.UpdateMsgTaskInsEnable) // message/send apiV1.POST("/message/send", v1.DoSendMassage) diff --git a/service/send_ins_service/send_ins.go b/service/send_ins_service/send_ins.go index a8f18fb..dca1946 100644 --- a/service/send_ins_service/send_ins.go +++ b/service/send_ins_service/send_ins.go @@ -16,6 +16,7 @@ type SendTaskInsService struct { PageNum int PageSize int + Enable int } // ValidateDiffWay 各种发信渠道具体字段校验 @@ -77,6 +78,10 @@ func (st *SendTaskInsService) Delete() error { return models.DeleteMsgTaskIns(st.ID) } +func (st *SendTaskInsService) Update(data map[string]interface{}) error { + return models.UpdateMsgTaskIns(st.ID, data) +} + func (st *SendTaskInsService) Count() (int, error) { return models.GetSendTasksTotal(st.Name, st.getMaps()) } diff --git a/service/send_message_service/send_message.go b/service/send_message_service/send_message.go index 63ea8b6..d2c3f00 100644 --- a/service/send_message_service/send_message.go +++ b/service/send_message_service/send_message.go @@ -101,6 +101,12 @@ func (sm *SendMessageService) Send() string { sm.LogsAndStatusMark(fmt.Sprintf("实例类型: %s + %s", ins.WayType, ins.ContentType), sm.Status) sm.LogsAndStatusMark(fmt.Sprintf("实例配置: %s", ins.Config), sm.Status) + // 暂停了实例的发送 + if ins.Enable != 1 { + sm.LogsAndStatusMark("该实例发送已经被暂停,跳过发送!\n", sm.Status) + continue + } + // 发送内容校验绑定 typeC, content := sm.GetSendMsg(ins.SendTasksIns) if content == "" { diff --git a/web/src/api/api.js b/web/src/api/api.js index c3e014e..2e25457 100644 --- a/web/src/api/api.js +++ b/web/src/api/api.js @@ -45,14 +45,13 @@ request.interceptors.response.use( return response; }, (error) => { - if (error.response && error.response.status === 401) { + if (error.response && error.response.status == 401) { logout(); - } else if (20000 <= error.response.status <= 29999) { + } else if (20000 <= error.response.status && error.response.status <= 29999) { logout(); + } else { + handleException(error); } - - handleException(error); - // return Promise.reject(error); } ); @@ -60,20 +59,11 @@ request.interceptors.response.use( const handleException = (error) => { if (error.code == ERR_NETWORK) { ElMessage({ message: `网络错误!`, type: 'error' }) - } else if (error.response && error.response.data.code != 200) { - ElMessage({ message: error.response.data.msg, type: 'error' }) + } else { + let msg = `未知错误:${error.response.status}, ${error.response.data.msg}`; + ElMessage({ message: msg, type: 'error' }) }; - // if (error.response) { - // // 服务器返回错误状态码 - // console.error('Server Error:', error.response.status, error.response.data); - // } else if (error.request) { - // // 请求发送成功,但没有收到响应 - // console.error('No response received:', error.request); - // } else { - // // 其他错误 - // console.error('Error:', error.message); - // } }; // 登出系统 diff --git a/web/src/views/tabsTools/sendTasks/view/editTaskPopUp.vue b/web/src/views/tabsTools/sendTasks/view/editTaskPopUp.vue index 982897d..96e0771 100644 --- a/web/src/views/tabsTools/sendTasks/view/editTaskPopUp.vue +++ b/web/src/views/tabsTools/sendTasks/view/editTaskPopUp.vue @@ -2,6 +2,16 @@
@@ -62,9 +72,18 @@ {{ formatExtraInfo(scope) }} - + + + + @@ -82,7 +101,7 @@