背景
项目需要一个 图片轮播图配置接口,图片一共就 几张,需要上传到 项目下的一个文件夹,通过url 访问 图片。场景中,图片一共就 5张,每张图片可以单独编辑,比如删除,或者修改,五张图片 有先后顺序。
我的思路:
创建一个图片的数据表, 字段 包含 图片顺序字段, 每张图片一条数据,
// 上传配置图片
func UploadRotationPictureDao(data *dto.AppImages) error {
// 先查询 数据库 看传入的image_order = 传入的id 图片 数据库中目前有没有
// 没有就插入新的, 有就更新这条的 图片信息
var count int
search := `select count(*)from t_app_images where image_order = ?`
err := mysql.DB.Get(&count, search, data.ImageOrder)
if err != nil {
if err != nil {
zap.L().Error("UploadRotationPictureDao err:", zap.Error(err))
return err
}
}
// 说明image_order = 传入的id 图片 已经在数据库有了 不需要新插入了,直接更新就可以
if count > 0 {
// update
updatasql := `UPDATE t_app_images SET image_url= ? ,update_time= ? WHERE image_order= ?;`
_, err = mysql.DB.Exec(updatasql, data.ImageUrl, data.UpdateTime, data.ImageOrder)
if err != nil {
zap.L().Error("UploadRotationPictureDao update err:", zap.Error(err))
return err
}
} else {
// TODO 有图片就更细 没有图片就插入
sql := `insert into t_app_images(image_order,image_url,create_time,update_time) values(?,?,?,?)`
_, err = mysql.DB.Exec(sql, data.ImageOrder, data.ImageUrl, data.CreateTime, data.UpdateTime)
if err != nil {
zap.L().Error("UploadRotationPictureDao create err:", zap.Error(err))
return err
}
}
return nil
}
浙公网安备 33010602011771号