- 新增 ACME客户端功能,支持域名注册和证书申请 - 添加数据库模型和操作,用于存储和管理域名信息 - 实现 API 接口,提供域名注册、获取和分页查询功能 -集成全局错误处理和 panic捕获 - 添加单元测试和集成测试
70 lines
1.2 KiB
Go
70 lines
1.2 KiB
Go
package dao
|
|
|
|
import (
|
|
"acme-mana-server-go/db"
|
|
"acme-mana-server-go/model"
|
|
"acme-mana-server-go/vo"
|
|
)
|
|
|
|
type DomainDao struct {
|
|
}
|
|
|
|
func (_ *DomainDao) Add(domain *model.Domain) *model.Domain {
|
|
conn := db.Db()
|
|
conn.Create(domain)
|
|
return domain
|
|
}
|
|
|
|
func (_ *DomainDao) Get(id int) *model.Domain {
|
|
res := &model.Domain{}
|
|
conn := db.Db()
|
|
tx := conn.First(res, id)
|
|
if tx.Error != nil {
|
|
panic(tx.Error)
|
|
}
|
|
return res
|
|
}
|
|
|
|
func (_ *DomainDao) List() []*model.Domain {
|
|
conn := db.Db()
|
|
res := make([]*model.Domain, 0)
|
|
conn.Find(&res)
|
|
return res
|
|
}
|
|
|
|
func (_ *DomainDao) Edit(newDomain *model.Domain) *model.Domain {
|
|
conn := db.Db()
|
|
conn.Save(newDomain)
|
|
return newDomain
|
|
}
|
|
|
|
func (_ *DomainDao) Delete(id int) {
|
|
conn := db.Db()
|
|
conn.Delete(&model.Domain{}, id)
|
|
}
|
|
|
|
func (_ *DomainDao) Page(req *vo.DomainPageReq) (int64, *[]model.Domain) {
|
|
var total int64
|
|
var list []model.Domain
|
|
|
|
conn := db.Db()
|
|
bean := req.Bean
|
|
|
|
query := conn.Model(&model.Domain{})
|
|
|
|
if bean.Name != "" {
|
|
query = query.Where("name like ?", "%"+bean.Name+"%")
|
|
}
|
|
|
|
query.Count(&total)
|
|
if total == 0 {
|
|
return total, &list
|
|
}
|
|
|
|
page := req.Page
|
|
query.Offset(page.Size * (page.Page - 1)).Limit(page.Size)
|
|
|
|
query.Find(&list)
|
|
return total, &list
|
|
}
|