背景
项目需要一个 图片轮播图配置接口,图片一共就 几张,需要上传到 项目下的一个文件夹,通过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 }