184 lines
3.8 KiB
Go
184 lines
3.8 KiB
Go
package repositories
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/niangaodev/art-code/config"
|
|
"github.com/niangaodev/art-code/models"
|
|
)
|
|
|
|
// GetTestimonials 获取所有客户评价
|
|
func GetTestimonials() ([]models.Testimonial, error) {
|
|
query := "SELECT id, name, role, content, avatar, rating, sort_order, created_at, updated_at FROM testimonials ORDER BY sort_order ASC, created_at DESC"
|
|
rows, err := config.DB.Query(query)
|
|
if err != nil {
|
|
log.Printf("Error querying testimonials: %v", err)
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
var testimonials []models.Testimonial
|
|
for rows.Next() {
|
|
var t models.Testimonial
|
|
if err := rows.Scan(
|
|
&t.ID,
|
|
&t.Name,
|
|
&t.Role,
|
|
&t.Content,
|
|
&t.Avatar,
|
|
&t.Rating,
|
|
&t.SortOrder,
|
|
&t.CreatedAt,
|
|
&t.UpdatedAt,
|
|
); err != nil {
|
|
log.Printf("Error scanning testimonial: %v", err)
|
|
continue
|
|
}
|
|
testimonials = append(testimonials, t)
|
|
}
|
|
|
|
return testimonials, nil
|
|
}
|
|
|
|
// CreateTestimonial 创建客户评价
|
|
func CreateTestimonial(t *models.Testimonial) error {
|
|
query := `
|
|
INSERT INTO testimonials (name, role, content, avatar, rating, sort_order, created_at, updated_at)
|
|
VALUES (?, ?, ?, ?, ?, ?, NOW(), NOW())
|
|
`
|
|
_, err := config.DB.Exec(
|
|
query,
|
|
t.Name,
|
|
t.Role,
|
|
t.Content,
|
|
t.Avatar,
|
|
t.Rating,
|
|
t.SortOrder,
|
|
)
|
|
if err != nil {
|
|
log.Printf("Error creating testimonial: %v", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// UpdateTestimonial 更新客户评价
|
|
func UpdateTestimonial(t *models.Testimonial) error {
|
|
query := `
|
|
UPDATE testimonials SET name = ?, role = ?, content = ?, avatar = ?, rating = ?, sort_order = ?, updated_at = NOW()
|
|
WHERE id = ?
|
|
`
|
|
_, err := config.DB.Exec(
|
|
query,
|
|
t.Name,
|
|
t.Role,
|
|
t.Content,
|
|
t.Avatar,
|
|
t.Rating,
|
|
t.SortOrder,
|
|
t.ID,
|
|
)
|
|
if err != nil {
|
|
log.Printf("Error updating testimonial: %v", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeleteTestimonial 删除客户评价
|
|
func DeleteTestimonial(id uint) error {
|
|
query := "DELETE FROM testimonials WHERE id = ?"
|
|
_, err := config.DB.Exec(query, id)
|
|
if err != nil {
|
|
log.Printf("Error deleting testimonial: %v", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetPartners 获取所有合作伙伴
|
|
func GetPartners() ([]models.Partner, error) {
|
|
query := "SELECT id, name, logo, description, url, sort_order, created_at, updated_at FROM partners ORDER BY sort_order ASC, created_at DESC"
|
|
rows, err := config.DB.Query(query)
|
|
if err != nil {
|
|
log.Printf("Error querying partners: %v", err)
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
var partners []models.Partner
|
|
for rows.Next() {
|
|
var p models.Partner
|
|
if err := rows.Scan(
|
|
&p.ID,
|
|
&p.Name,
|
|
&p.Logo,
|
|
&p.Description,
|
|
&p.URL,
|
|
&p.SortOrder,
|
|
&p.CreatedAt,
|
|
&p.UpdatedAt,
|
|
); err != nil {
|
|
log.Printf("Error scanning partner: %v", err)
|
|
continue
|
|
}
|
|
partners = append(partners, p)
|
|
}
|
|
|
|
return partners, nil
|
|
}
|
|
|
|
// CreatePartner 创建合作伙伴
|
|
func CreatePartner(p *models.Partner) error {
|
|
query := `
|
|
INSERT INTO partners (name, logo, description, url, sort_order, created_at, updated_at)
|
|
VALUES (?, ?, ?, ?, ?, NOW(), NOW())
|
|
`
|
|
_, err := config.DB.Exec(
|
|
query,
|
|
p.Name,
|
|
p.Logo,
|
|
p.Description,
|
|
p.URL,
|
|
p.SortOrder,
|
|
)
|
|
if err != nil {
|
|
log.Printf("Error creating partner: %v", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// UpdatePartner 更新合作伙伴
|
|
func UpdatePartner(p *models.Partner) error {
|
|
query := `
|
|
UPDATE partners SET name = ?, logo = ?, description = ?, url = ?, sort_order = ?, updated_at = NOW()
|
|
WHERE id = ?
|
|
`
|
|
_, err := config.DB.Exec(
|
|
query,
|
|
p.Name,
|
|
p.Logo,
|
|
p.Description,
|
|
p.URL,
|
|
p.SortOrder,
|
|
p.ID,
|
|
)
|
|
if err != nil {
|
|
log.Printf("Error updating partner: %v", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// DeletePartner 删除合作伙伴
|
|
func DeletePartner(id uint) error {
|
|
query := "DELETE FROM partners WHERE id = ?"
|
|
_, err := config.DB.Exec(query, id)
|
|
if err != nil {
|
|
log.Printf("Error deleting partner: %v", err)
|
|
return err
|
|
}
|
|
return nil
|
|
}
|