新Sir

导航

 

 

背景

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

  

posted on 2022-04-24 18:00  新Sir  阅读(163)  评论(0编辑  收藏  举报