package animal
import ("encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"github.com/jinzhu/gorm"
"github.com/satori/go.uuid"
"hash/crc32"
"log"
"strconv"
"web_application/database")
type animalstruct{
Iduint `gorm:"primary_key" json:"id"`
Usernamestring `json:"username"`
Passwordstring `json:"password"`
Namestring `json:"name"`
}/**
添加用户*/func Add(ctx*gin.Context) {varam1 animalif err :=ctx.BindJSON(&am1);err !=nil {
log.Print(err)
ctx.JSON(500,gin.H{"msg":"添加失败",
})return}
aj,_:=json.Marshal(am1)
fmt.Printf("添加用户: %s \n",string(aj))
am1.Id=genUUID()
database.Mysql_db.Transaction(func(tx*gorm.DB) error {if err :=tx.Create(&am1).Error;err !=nil{
log.Print("错误 事物回滚",err)
ctx.JSON(500,gin.H{"msg":err,
})returnerr
}
log.Print("已成功添加用户\n")
ctx.JSON(200,gin.H{"msg":"成功添加",
})returnnil
});
}
func List(ctx*gin.Context) {
username :=ctx.Query("username")
name :=ctx.Query("name")varams []animalif err := database.Mysql_db.Where("username like ? and name like ?","%"+username+"%","%"+name+"%" ).Find(&ams).Error;err ==nil {if len(ams) > 0{
aj,_ :=json.Marshal(ams)
log.Printf("获取到用户数据:%s \n",string(aj) )
}
ctx.JSON(200,gin.H{"msg":ams,
})
}else{
log.Print("查询错误",err)
ctx.JSON(500,gin.H{"msg":err,
})return}
}/**
删除方法*/func Delete(ctx*gin.Context) {
id :=ctx.Param("id")
inId ,_:=strconv.Atoi(id)
a1 := animal{Id:uint(inId)}
database.Mysql_db.Transaction(func(tx*gorm.DB) error {if err :=tx.Delete(&a1).Error ;err !=nil{
log.Print("错误 事物回滚\n")
ctx.JSON(500,gin.H{"msg":err,
})returnerr
}
log.Printf("已成功添加用户:%s \n",id)
ctx.JSON(200,gin.H{"msg":"成功删除",
})returnnil
})
}
func Update(ctx*gin.Context) {varam1 animalif err :=ctx.BindJSON(&am1);err !=nil {
log.Print(err)
ctx.JSON(500,gin.H{"msg":"修改错误",
})return}
database.Mysql_db.Transaction(func(tx*gorm.DB) error {if err :=tx.Save(&am1).Error;err !=nil{
log.Print("错误 事物回滚\n")
ctx.JSON(500,gin.H{"msg":"修改错误",
})returnerr
}
log.Print("已成功修改用户\n")
ctx.JSON(200,gin.H{"msg":"修改成功",
})returnnil
});
}
func genUUID()uint{
id :=uuid.NewV4()
uuidHash := uint(crc32.ChecksumIEEE([]byte(id.String())))returnuuidHash
}