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 是公司 ID,dict.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 是公司 ID,dict.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 }