设计和实现一个用go做的客户管理系统,要求实现其基本功能;
时间: 2024-02-20 14:02:37 浏览: 17
好的,客户管理系统一般包含以下基本功能:
1. 添加客户
2. 删除客户
3. 修改客户信息
4. 查询客户信息
5. 列出所有客户信息
下面是一个使用Go语言实现的基本客户管理系统,使用了Gin框架和GORM库:
```
package main
import (
"net/http"
"github.com/gin-gonic/gin"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type Customer struct {
gorm.Model
Name string `json:"name"`
Email string `json:"email"`
Mobile string `json:"mobile"`
}
var db *gorm.DB
func main() {
var err error
db, err = gorm.Open(sqlite.Open("customers.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
db.AutoMigrate(&Customer{})
router := gin.Default()
router.POST("/customers", AddCustomerHandler)
router.DELETE("/customers/:id", DeleteCustomerHandler)
router.PUT("/customers/:id", UpdateCustomerHandler)
router.GET("/customers/:id", GetCustomerHandler)
router.GET("/customers", ListCustomersHandler)
router.Run(":8080")
}
// 添加客户
func AddCustomerHandler(c *gin.Context) {
var customer Customer
if err := c.BindJSON(&customer); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
db.Create(&customer)
c.JSON(http.StatusOK, customer)
}
// 删除客户
func DeleteCustomerHandler(c *gin.Context) {
id := c.Param("id")
var customer Customer
if err := db.First(&customer, id).Error; err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "customer not found"})
return
}
db.Delete(&customer)
c.JSON(http.StatusOK, gin.H{"message": "customer deleted"})
}
// 修改客户信息
func UpdateCustomerHandler(c *gin.Context) {
id := c.Param("id")
var customer Customer
if err := db.First(&customer, id).Error; err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "customer not found"})
return
}
if err := c.BindJSON(&customer); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
db.Save(&customer)
c.JSON(http.StatusOK, customer)
}
// 查询客户信息
func GetCustomerHandler(c *gin.Context) {
id := c.Param("id")
var customer Customer
if err := db.First(&customer, id).Error; err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "customer not found"})
return
}
c.JSON(http.StatusOK, customer)
}
// 列出所有客户信息
func ListCustomersHandler(c *gin.Context) {
var customers []Customer
db.Find(&customers)
c.JSON(http.StatusOK, customers)
}
```
这里使用了Gin框架,定义了不同的HTTP路由来实现不同的功能。AddCustomerHandler函数用于添加客户,DeleteCustomerHandler函数用于删除客户,UpdateCustomerHandler函数用于修改客户信息,GetCustomerHandler函数用于查询客户信息,ListCustomersHandler函数用于列出所有客户信息。
每个函数的具体实现细节都包含在函数体内部,例如AddCustomerHandler函数从HTTP请求中获取客户信息,然后将其存储到数据库中。其他函数也是类似的,可以根据这个代码作为基础,自行实现其他功能。