fonchain-fiee/pkg/service/domain_name/domain_name.go

178 lines
4.9 KiB
Go
Raw Normal View History

2025-02-19 06:24:15 +00:00
package domain_name
import (
"context"
"github.com/fonchain_enterprise/fonchain-main/api/account"
"github.com/fonchain_enterprise/fonchain-main/api/domain_name"
"github.com/fonchain_enterprise/fonchain-main/api/employee"
"github.com/fonchain_enterprise/fonchain-main/pkg/e"
"github.com/fonchain_enterprise/fonchain-main/pkg/model/login"
"github.com/fonchain_enterprise/fonchain-main/pkg/service"
"github.com/fonchain_enterprise/fonchain-main/pkg/utils"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
)
func Create(c *gin.Context) {
req := &domain_name.DomainNameRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
userInfo := login.GetUserInfoFromC(c)
infoReq := account.InfoRequest{ID: userInfo.ID}
infoRes, err := service.AccountProvider.Info(context.Background(), &infoReq)
if err != nil {
service.Error(c, e.Error, err)
return
}
req.Operator = infoRes.Info.NickName
req.OperatorID = infoRes.Info.ID
req.JonNumber = infoRes.Info.JobNum
res, err := service.DomainNameProvider.Create(c, req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
return
}
func Update(c *gin.Context) {
req := &domain_name.DomainNameRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
userInfo := login.GetUserInfoFromC(c)
infoReq := account.InfoRequest{ID: userInfo.ID}
infoRes, err := service.AccountProvider.Info(context.Background(), &infoReq)
if err != nil {
service.Error(c, e.Error, err)
return
}
req.Operator = infoRes.Info.NickName
req.OperatorID = infoRes.Info.ID
req.JonNumber = infoRes.Info.JobNum
res, err := service.DomainNameProvider.Update(c, req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
return
}
func List(c *gin.Context) {
req := &domain_name.ListRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
res, err := service.DomainNameProvider.List(c, req)
if err != nil {
service.Error(c, e.Error, err)
return
}
if len(res.List) == 0 {
service.Success(c, res)
return
}
DictionaryReq := &employee.SearchDictionaryRequest{
Tag: "company",
}
dictionaryList, err := service.GrpcEmployeeProvider.SearchDictionaryList(c, DictionaryReq)
if err != nil {
service.Error(c, e.Error, err)
return
}
companyMap := make(map[uint64]string)
for _, dict := range dictionaryList.Company {
companyMap[dict.Id] = dict.Name // 假设 dict.ID 是公司 IDdict.Name 是公司名称
}
for _, i := range res.List {
companyName, exists := companyMap[i.CompanyID]
if !exists {
companyName = "未知公司" // 如果未找到公司名称,设置为默认值
}
i.CompanyName = companyName
}
service.Success(c, res)
return
}
func Deleted(c *gin.Context) {
req := &domain_name.DomainNameDeletedReq{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
res, err := service.DomainNameProvider.Deleted(c, req)
if err != nil {
service.Error(c, e.Error, err)
return
}
service.Success(c, res)
return
}
func Download(c *gin.Context) {
req := &domain_name.ListRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, e.InvalidParams, err)
return
}
res, err := service.DomainNameProvider.List(c, req)
if err != nil {
service.Error(c, e.Error, err)
return
}
DictionaryReq := &employee.SearchDictionaryRequest{
Tag: "company",
}
dictionaryList, err := service.GrpcEmployeeProvider.SearchDictionaryList(c, DictionaryReq)
if err != nil {
service.Error(c, e.Error, err)
return
}
companyMap := make(map[uint64]string)
for _, dict := range dictionaryList.Company {
companyMap[dict.Id] = dict.Name // 假设 dict.ID 是公司 IDdict.Name 是公司名称
}
// 生成Excel文件
statusMap := map[int32]string{
1: "使用中", // 状态 1
2: "即将到期", // 状态 2
3: "已到期", // 状态 3
}
var dataList []interface{}
for _, data := range res.List {
companyName, exists := companyMap[data.CompanyID]
if !exists {
companyName = "未知公司" // 如果未找到公司名称,设置为默认值
}
statusText, statusExists := statusMap[data.Status]
if !statusExists {
statusText = "未知状态" // 如果未找到状态值,设置为默认值
}
dataList = append(dataList, &[]any{
data.DomainAddress,
companyName,
data.RegistrationTime,
data.MaturityTime,
statusText,
data.UpdateTime,
data.Operator + "(" + data.JonNumber + ")",
})
}
titleList := []string{
"域名地址", "公司名称", "注册时间", "到期时间", "状态", "最近更新时间", "操作人",
}
content, err := utils.ToExcelByType(titleList, dataList, "slice", "")
if err != nil {
service.Error(c, e.InvalidParams, err)
return
}
// 返回Excel文件
utils.ResponseXls(c, content, "域名信息")
return
}