package cn.flightfeather.thirdappmodule.repository.dao
|
|
import cn.flightfeather.thirdappmodule.bean.entity.MediaTypeAlias
|
import cn.flightfeather.thirdappmodule.common.database.DbFactory
|
import cn.flightfeather.thirdappmodule.model.enumreation.MediaFileType
|
import com.ping.greendao.gen.MediaTypeAliasDao
|
import io.reactivex.Observable
|
|
/**
|
* @author riku
|
* Date: 2020/12/21
|
*/
|
class MediaTypeAliasDao {
|
|
/**
|
* 获取媒体文件类型的本地别名
|
* @param sceneTypeId 场景id
|
* @param mediaFileType 媒体文件类型id
|
*/
|
fun getAlias(sceneTypeId: Int, mediaFileType: Int): Observable<String> {
|
return DbFactory.getGreenDaoObservable().map {
|
it.mediaTypeAliasDao.queryBuilder().where(
|
MediaTypeAliasDao.Properties.SceneTypeId.eq(sceneTypeId),
|
MediaTypeAliasDao.Properties.TypeId.eq(mediaFileType)
|
).list()
|
}.map {
|
if (it.isEmpty()) {
|
""
|
} else {
|
it[0].alias
|
}
|
}
|
}
|
|
/**
|
* 更新媒体文件类型的本地别名
|
* @param sceneTypeId 场景id
|
* @param mediaFileType 媒体文件类型id
|
* @param alias 别名
|
*/
|
fun updateAlias(sceneTypeId: Int, mediaFileType: MediaFileType, alias: String): Observable<Boolean> {
|
return DbFactory.getGreenDaoObservable().map {
|
val result = it.mediaTypeAliasDao.queryBuilder().where(
|
MediaTypeAliasDao.Properties.SceneTypeId.eq(sceneTypeId),
|
MediaTypeAliasDao.Properties.TypeId.eq(mediaFileType.value)
|
).list()
|
if (result.isEmpty()) {
|
it.mediaTypeAliasDao.insert(MediaTypeAlias().apply {
|
this.sceneTypeId = sceneTypeId
|
this.typeId = mediaFileType.value
|
this.typeName = mediaFileType.des
|
this.alias = alias
|
})
|
|
true
|
} else {
|
result[0].alias = alias
|
it.mediaTypeAliasDao.update(result[0])
|
|
true
|
}
|
}
|
}
|
}
|