1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package cn.flightfeather.thirdapp.repository.dao
 
import cn.flightfeather.thirdapp.bean.entity.*
import cn.flightfeather.thirdapp.common.database.DbFactory
import cn.flightfeather.thirdapp.util.Domain
import com.ping.greendao.gen.DomainitemDao
import com.ping.greendao.gen.ProblemtypeDao
import io.reactivex.Observable
 
/**
 * @author riku
 * Date: 2019/7/29
 * 值域相关数据库操作
 */
class DomainDao {
 
    /**
     * 获取场景问题可选位置
     */
    fun getLocationList(): Observable<List<Domainitem>> {
        return DbFactory.getGreenDaoObservable().map {
            it.domainitemDao.queryBuilder()
                    .where(
                            DomainitemDao.Properties.Catelogname.eq("工地位置结果集")
                    ).orderAsc(DomainitemDao.Properties.Value)
                    .list()
        }
 
    }
 
    /**
     * 获取对应场景下所有问题类型
     */
    fun getProblemType(taskTypeId: Byte, cityCode: String, districtCode: String, sceneTypeId: Byte): Observable<List<Problemtype>> {
        return DbFactory.getGreenDaoObservable().map {
            it.problemtypeDao.queryBuilder()
                    .where(
                            ProblemtypeDao.Properties.Tasktypeid.eq(taskTypeId),
                            ProblemtypeDao.Properties.Citycode.eq(cityCode),
                            ProblemtypeDao.Properties.Districtcode.eq(districtCode),
                            ProblemtypeDao.Properties.Scensetypeid.eq(sceneTypeId)
                    ).orderAsc(ProblemtypeDao.Properties.Typeid)
                    .list()
        }
    }
 
    fun getProvince(): Observable<List<Province>> {
        return DbFactory.getGreenDaoObservable().map {
            it.provinceDao.loadAll()
        }
    }
 
    fun getCity(): Observable<List<City>> {
        return DbFactory.getGreenDaoObservable().map {
            it.cityDao.loadAll()
        }
    }
 
    fun getDistrict(): Observable<List<District>> {
        return DbFactory.getGreenDaoObservable().map {
            it.districtDao.loadAll()
        }
    }
 
    fun getTown(): Observable<List<Town>> {
        return DbFactory.getGreenDaoObservable().map {
            it.townDao.loadAll()
        }
    }
 
    fun getSceneType(): Observable<List<Domainitem>> {
        return DbFactory.getGreenDaoObservable().map {
            it.domainitemDao.queryBuilder()
                    .where(
                            DomainitemDao.Properties.Dcguid.eq(Domain.DOMAINGUID_SCENSETYPE)
                    ).orderAsc(DomainitemDao.Properties.Value)
                    .list()
        }
    }
}