|
@@ -0,0 +1,135 @@
|
|
|
+import relationalStore from '@ohos.data.relationalStore';
|
|
|
+import CommonConstants from '../../common/constants/CommonConstants';
|
|
|
+import UniversalCard from '../UniversalCard';
|
|
|
+
|
|
|
+class UniversalCardModel {
|
|
|
+
|
|
|
+ private rdbStore: relationalStore.RdbStore
|
|
|
+ private tableName: string = 'UNIVERSAL_CARD'
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化表
|
|
|
+ */
|
|
|
+ initTaskDB(context){
|
|
|
+ // 1.rdb配置
|
|
|
+ const config = {
|
|
|
+ name: CommonConstants.RDB_NAME,
|
|
|
+ securityLevel: relationalStore.SecurityLevel.S1
|
|
|
+ }
|
|
|
+ // 2.初始化SQL语句
|
|
|
+ const sql = `CREATE TABLE IF NOT EXISTS UNIVERSAL_CARD (
|
|
|
+ ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
|
+ USER_ID INTEGER NOT NULL,
|
|
|
+ CARD_TYPE INTEGER NOT NULL,
|
|
|
+ CARD_STATUS INTEGER NOT NULL,
|
|
|
+ CARD_SORT INTEGER NOT NULL
|
|
|
+ )`
|
|
|
+ // 3.获取rdb
|
|
|
+ relationalStore.getRdbStore(context, config, (err, rdbStore) => {
|
|
|
+ if(err){
|
|
|
+ console.log('testTag', '获取rdbStore失败!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 执行Sql
|
|
|
+ rdbStore.executeSql(sql).then(()=>{
|
|
|
+ console.log('testTag', '创建万能卡片表成功!')
|
|
|
+ }).catch(err=>{
|
|
|
+ console.log('testTag', '创建失败')
|
|
|
+ })
|
|
|
+ // 保存rdbStore
|
|
|
+ this.rdbStore = rdbStore
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据用户查询对应的万能卡片配置信息
|
|
|
+ async getListByUserId(userId: number): Promise<UniversalCard[]> {
|
|
|
+ if (!userId) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 1.构建查询条件
|
|
|
+ let predicates = new relationalStore.RdbPredicates(this.tableName)
|
|
|
+ predicates.equalTo('USER_ID', userId)
|
|
|
+ // 2.查询
|
|
|
+ let result = await this.rdbStore.query(predicates, ['ID', 'USER_ID', 'CARD_TYPE', 'CARD_STATUS', 'CARD_SORT'])
|
|
|
+ let cards: UniversalCard[] = []
|
|
|
+ // 3.2.遍历封装 只取第一条
|
|
|
+ while(!result.isAtLastRow){
|
|
|
+ // 3.3.指针移动到下一行
|
|
|
+ result.goToNextRow()
|
|
|
+ // 3.4.获取数据
|
|
|
+ let id = result.getLong(result.getColumnIndex('ID'))
|
|
|
+ let userId = result.getLong(result.getColumnIndex('USER_ID'))
|
|
|
+ let cardType = result.getLong(result.getColumnIndex('CARD_TYPE'))
|
|
|
+ let cardStatus = result.getLong(result.getColumnIndex('CARD_STATUS'))
|
|
|
+ let cardSort = result.getLong(result.getColumnIndex('CARD_SORT'))
|
|
|
+ cards.push({id: id, userId: userId, cardType: cardType, cardStatus: cardStatus, cardSort: cardSort})
|
|
|
+ }
|
|
|
+ return cards
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询万能卡片列表
|
|
|
+ */
|
|
|
+ async getUniversalCardList(){
|
|
|
+ // 1.构建查询条件
|
|
|
+ let predicates = new relationalStore.RdbPredicates(this.tableName)
|
|
|
+ // 2.查询
|
|
|
+ let result = await this.rdbStore.query(predicates, ['ID', 'USER_ID', 'CARD_TYPE', 'CARD_STATUS', 'CARD_SORT'])
|
|
|
+ // 3.解析查询结果
|
|
|
+ // 3.1.定义一个数组,组装最终的查询结果
|
|
|
+ let cards: UniversalCard[] = []
|
|
|
+ // 3.2.遍历封装
|
|
|
+ while(!result.isAtLastRow){
|
|
|
+ // 3.3.指针移动到下一行
|
|
|
+ result.goToNextRow()
|
|
|
+ // 3.4.获取数据
|
|
|
+ let id = result.getLong(result.getColumnIndex('ID'))
|
|
|
+ let userId = result.getLong(result.getColumnIndex('USER_ID'))
|
|
|
+ let cardType = result.getLong(result.getColumnIndex('CARD_TYPE'))
|
|
|
+ let cardStatus = result.getLong(result.getColumnIndex('CARD_STATUS'))
|
|
|
+ let cardSort = result.getLong(result.getColumnIndex('CARD_SORT'))
|
|
|
+ // 3.5.封装到数组
|
|
|
+ cards.push({id: id, userId: userId, cardType: cardType, cardStatus: cardStatus, cardSort: cardSort})
|
|
|
+ }
|
|
|
+ return cards
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加万能卡片
|
|
|
+ * @param set 万能卡片配置信息
|
|
|
+ * @returns 万能卡片id
|
|
|
+ */
|
|
|
+ addUniversalCard(set: UniversalCard): Promise<number>{
|
|
|
+ return this.rdbStore.insert(this.tableName, {USER_ID: set.userId, CARD_TYPE: set.cardType, CARD_STATUS: set.cardStatus, CARD_SORT: set.cardSort})
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id更新万能卡片状态
|
|
|
+ * @param set 万能卡片配置信息
|
|
|
+ */
|
|
|
+ updateUniversalCard(set: UniversalCard) {
|
|
|
+ // 1.要更新的数据
|
|
|
+ let data = {CARD_TYPE: set.cardType, CARD_STATUS: set.cardStatus, CARD_SORT: set.cardSort}
|
|
|
+ // 2.更新的条件
|
|
|
+ let predicates = new relationalStore.RdbPredicates(this.tableName)
|
|
|
+ predicates.equalTo('ID', set.id)
|
|
|
+ // 3.更新操作
|
|
|
+ return this.rdbStore.update(data, predicates)
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据id删除
|
|
|
+ * @param id 主键id
|
|
|
+ */
|
|
|
+ deleteUniversalCardById(id: number){
|
|
|
+ // 1.删除的条件
|
|
|
+ let predicates = new relationalStore.RdbPredicates(this.tableName)
|
|
|
+ predicates.equalTo('ID', id)
|
|
|
+ // 2.删除操作
|
|
|
+ return this.rdbStore.delete(predicates)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+let assistantSetModel = new UniversalCardModel();
|
|
|
+
|
|
|
+export default assistantSetModel as UniversalCardModel;
|