dto.go 1.28 KB
package svmysql

func InitTable(obj IMysqlData, suffix string, notify bool) {
	info := obj.MysqlInfo(suffix)
	db := info.DbMysql
	_ = db.Set("gorm:table_options", "ENGINE=InnoDB DEFAULT CHARSET=utf8").Table(info.TableName).AutoMigrate(obj)
}

func Create(obj IMysqlData, suffix string) (err error) {
	info := obj.MysqlInfo(suffix)
	db := info.DbMysql
	result := db.Table(info.TableName).Create(obj)

	err = result.Error
	if err != nil {
		return
	}
	return
}

func Updates(obj IMysqlData, suffix string) (err error) {
	info := obj.MysqlInfo(suffix)
	db := info.DbMysql
	result := db.Table(info.TableName).Updates(obj)

	err = result.Error
	if err != nil {
		return
	}
	return
}

func Save(obj IMysqlData, suffix string) (err error) {
	info := obj.MysqlInfo(suffix)
	db := info.DbMysql
	result := db.Table(info.TableName).Save(obj)

	err = result.Error
	if err != nil {
		return
	}
	return
}

func First(obj IMysqlData, suffix string) (has bool, err error) {
	info := obj.MysqlInfo(suffix)
	db := info.DbMysql
	result := db.Table(info.TableName).First(obj)

	has = result.RowsAffected != 0
	err = result.Error
	return
}

func Find(obj any, info *MysqlInfo) (has bool, err error) {
	db := info.DbMysql
	result := db.Table(info.TableName).Find(obj)

	has = result.RowsAffected != 0
	err = result.Error
	return
}