From 51edb72da9231b0343a1cb1e084bce9064490094 Mon Sep 17 00:00:00 2001 From: zchengo <1933757688@qq.com> Date: Thu, 26 Jan 2023 11:25:49 +0800 Subject: [PATCH] feat: able to delete mail config --- server/api/config.go | 12 ++++++++ server/dao/config.go | 14 +++++++-- server/initialize/router.go | 1 + server/models/config.go | 14 +++++---- server/response/errcode.go | 2 ++ server/service/config.go | 14 +++++++++ web/src/api/config.js | 9 ++++++ web/src/views/Config.vue | 58 +++++++++++++++++++++++++++++-------- 8 files changed, 104 insertions(+), 20 deletions(-) diff --git a/server/api/config.go b/server/api/config.go index fac674d..86072fe 100644 --- a/server/api/config.go +++ b/server/api/config.go @@ -40,6 +40,18 @@ func (m *MailConfigApi) Save(context *gin.Context) { response.Result(errCode, nil, context) } +// 删除邮件服务配置 +func (m *MailConfigApi) Delete(context *gin.Context) { + var param models.MailConfigDeleteParam + if err := context.ShouldBind(¶m); err != nil { + response.Result(response.ErrCodeParamInvalid, nil, context) + log.Println(err) + return + } + errCode := m.mailConfigService.Delete(¶m) + response.Result(errCode, nil, context) +} + // 开启或关闭邮件服务 func (m *MailConfigApi) UpdateStatus(context *gin.Context) { var param models.MailConfigStatusParam diff --git a/server/dao/config.go b/server/dao/config.go index f900f10..567b021 100644 --- a/server/dao/config.go +++ b/server/dao/config.go @@ -6,6 +6,10 @@ import ( "time" ) +const ( + Closed = 2 +) + type MailConfigDao struct { } @@ -14,12 +18,16 @@ func NewMailConfigDao() *MailConfigDao { } func (m *MailConfigDao) Save(param *models.MailConfigSaveParam) error { - if !isExists(param.Creator) { + if !m.IsExists(param.Creator) { return create(param) } return update(param) } +func (m *MailConfigDao) Delete(param *models.MailConfigDeleteParam) error { + return global.Db.Delete(&models.MailConfig{}, param.Id).Error +} + func (m *MailConfigDao) GetInfo(uid int64) (*models.MailConfig, error) { var mc models.MailConfig err := global.Db.Table(MAIL_CONFIG).Where("creator = ?", uid).First(&mc).Error @@ -41,7 +49,7 @@ func (m *MailConfigDao) UpdateStatus(param *models.MailConfigStatusParam) error return nil } -func isExists(uid int64) bool { +func (m *MailConfigDao) IsExists(uid int64) bool { var mc models.MailConfig db := global.Db.Table(MAIL_CONFIG).Where("creator = ?", uid).First(&mc) return db.RowsAffected != NumberNull @@ -53,7 +61,7 @@ func create(param *models.MailConfigSaveParam) error { Port: param.Port, AuthCode: param.AuthCode, Email: param.Email, - Status: 1, + Status: Closed, Creator: param.Creator, Created: time.Now().Unix(), } diff --git a/server/initialize/router.go b/server/initialize/router.go index 1c194da..f76b997 100644 --- a/server/initialize/router.go +++ b/server/initialize/router.go @@ -68,6 +68,7 @@ func Router() { route.GET("/config/check", api.NewMailConfigApi().Check) route.PUT("/config/save", api.NewMailConfigApi().Save) route.PUT("/config/status", api.NewMailConfigApi().UpdateStatus) + route.DELETE("/config/delete", api.NewMailConfigApi().Delete) // 订阅模块 route.GET("/subscribe/info", api.NewSubscribeApi().GetInfo) diff --git a/server/models/config.go b/server/models/config.go index 01fbd39..35d29cd 100644 --- a/server/models/config.go +++ b/server/models/config.go @@ -14,20 +14,24 @@ type MailConfig struct { type MailConfigSaveParam struct { Id int64 `json:"id" binding:"omitempty,gt=0"` - Stmp string `json:"stmp" binding:"omitempty,ip|hostname"` - Port int `json:"port" binding:"omitempty,gt=0"` - AuthCode string `json:"authCode" binding:"omitempty,gt=0"` - Email string `json:"email" binding:"omitempty,email"` + Stmp string `json:"stmp" binding:"required,ip|hostname"` + Port int `json:"port" binding:"required,gt=0"` + AuthCode string `json:"authCode" binding:"required,gt=0"` + Email string `json:"email" binding:"required,email"` Status int `json:"status" binding:"omitempty,oneof=1 2"` Creator int64 `json:"creator" binding:"omitempty"` } type MailConfigStatusParam struct { - Id int64 `json:"id" binding:"required,gt=0"` + Id int64 `json:"id" binding:"omitempty,gt=0"` Status int `json:"status" binding:"required,oneof=1 2"` Creator int64 `json:"creator" binding:"omitempty"` } +type MailConfigDeleteParam struct { + Id int64 `json:"id" binding:"required,gt=0"` +} + type MailConfigInfo struct { Id int64 `json:"id"` Stmp string `json:"stmp"` diff --git a/server/response/errcode.go b/server/response/errcode.go index ad19b76..0e8209b 100644 --- a/server/response/errcode.go +++ b/server/response/errcode.go @@ -31,6 +31,7 @@ const ( ErrCodeMailConfigInvalid = 50001 // 邮件服务配置无效 ErrCodeMailSendFailed = 50002 // 邮件发送失败 ErrCodeMailSendUnEnable = 50003 // 邮件服务未开启 + ErrCodeMailConfigUnSet = 50004 // 邮件服务未配置 ) var msg = map[int]string{ @@ -54,4 +55,5 @@ var msg = map[int]string{ ErrCodeMailConfigInvalid: "mail config invalid", ErrCodeMailSendFailed: "mail send failed", ErrCodeMailSendUnEnable: "mail send server unEnable", + ErrCodeMailConfigUnSet: "mail config un set", } diff --git a/server/service/config.go b/server/service/config.go index f26c3ed..4f9a075 100644 --- a/server/service/config.go +++ b/server/service/config.go @@ -25,8 +25,19 @@ func (m *MailConfigService) Save(param *models.MailConfigSaveParam) int { return response.ErrCodeSuccess } +// 删除邮件服务配置 +func (m *MailConfigService) Delete(param *models.MailConfigDeleteParam) int { + if err := m.mailConfigDao.Delete(param); err != nil { + return response.ErrCodeFailed + } + return response.ErrCodeSuccess +} + // 开启或关闭邮件服务 func (m *MailConfigService) UpdateStatus(param *models.MailConfigStatusParam) int { + if !m.mailConfigDao.IsExists(param.Creator) { + return response.ErrCodeMailConfigUnSet + } if err := m.mailConfigDao.UpdateStatus(param); err != nil { return response.ErrCodeFailed } @@ -35,6 +46,9 @@ func (m *MailConfigService) UpdateStatus(param *models.MailConfigStatusParam) in // 获取邮件配置信息 func (m *MailConfigService) GetInfo(uid int64) (*models.MailConfigInfo, int) { + if !m.mailConfigDao.IsExists(uid) { + return nil, response.ErrCodeMailConfigUnSet + } mc, err := m.mailConfigDao.GetInfo(uid) if err != nil { return nil, response.ErrCodeFailed diff --git a/web/src/api/config.js b/web/src/api/config.js index 6701e70..c8e4278 100644 --- a/web/src/api/config.js +++ b/web/src/api/config.js @@ -9,6 +9,15 @@ export function saveMailConfig(param) { }) } +// 删除邮件服务配置 +export function deleteMailConfig(param) { + return request({ + url: '/config/delete', + method: 'delete', + data: param, + }) +} + // 开启或关闭邮件服务 export function updateMailConfigStmpStatus(param) { return request({ diff --git a/web/src/views/Config.vue b/web/src/views/Config.vue index b5bf636..edaa9b1 100644 --- a/web/src/views/Config.vue +++ b/web/src/views/Config.vue @@ -73,11 +73,8 @@ - - - - @@ -90,7 +87,8 @@
保存 - 重置 + 重置 + 删除
@@ -102,16 +100,15 @@