小程序
小游戏
企业微信
微信支付
扫描小程序码分享
云开发收藏需要存云数据库吗?还是使用缓存?比如列表展示时,如何判断某项这个用户是否已收藏?已收藏就亮,再次点击就取消收藏如何做到?请大家给个思路来,谢谢!
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
1 数据处理
class FavService extends BaseAlumniService { /** 是否收藏 */ async isFav(userId, { oid, type }) { type = Number(type); let where = { FAV_OID: oid, FAV_TYPE: type, FAV_USER_ID: userId } let isFav = await FavModel.count(where); return { isFav }; } /** 谁收藏了我 */ async getFavMeList(userId, { search, // 搜索条件 sortType, // 搜索菜单 sortVal, // 搜索菜单 orderBy, // 排序 page, size, isTotal = true, oldTotal }) { orderBy = orderBy || { 'FAV_ADD_TIME': 'desc' }; let fields = 'FAV_TITLE,FAV_OID,FAV_TYPE,FAV_ADD_TIME,' + this.getJoinUserFields(); let joinParams = this.getJoinUserParams('FAV_USER_ID'); return await FavModel.getListJoin(joinParams, where, fields, orderBy, page, size, isTotal, oldTotal); } /** 更新某人收藏 */ async updateFav(userId, { oid, // 被收藏ID type, // 类型 cancelIfExist = true, //已收藏的情况下是否取消 }) { type = Number(type); // 重复性判断 let where = { oid: oid, type: type } return { isFav: 1 }; } /** 修改收藏 */ async editFav(editData) { let { where, data } = editData; return await FavModel.edit(where, data); } /** 删除收藏 */ async delFav(userId, { oid, type }) { let where = { FAV_OID: oid, FAV_TYPE: type, FAV_USER_ID: userId } let effect = await FavModel.del(where); // 异步减少收藏数 return { effect }; } /** 我的收藏列表 */ async getMyFavList(userId, { search, // 搜索条件 sortType, // 搜索菜单 sortVal, // 搜索菜单 orderBy, // 排序 page, size, isTotal = true, oldTotal = 0 }) { orderBy = orderBy || { 'FAV_ADD_TIME': 'desc' }; let fields = 'FAV_TITLE,FAV_ADD_TIME,FAV_OID, FAV_TYPE'; let where = {}; return await FavModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); } }
2 表t_fav
FavModel.DB_STRUCTURE = { _pid: 'string|true', FAV_ID: 'string|true', FAV_USER_ID: 'string|true', FAV_OWNER_ID: 'string|true|comment=所有者', FAV_TITLE: 'string|true|comment=标题', FAV_TYPE: 'int|true|default=0|comment=类型 参照bizUti.TYPE', FAV_OID: 'string|true|comment=相关表主键', FAV_PIC: 'string|false|comment=相关图片', FAV_ADD_TIME: 'int|true', FAV_EDIT_TIME: 'int|true', FAV_ADD_IP: 'string|false', FAV_EDIT_IP: 'string|false', };
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
1 数据处理
class FavService extends BaseAlumniService { /** 是否收藏 */ async isFav(userId, { oid, type }) { type = Number(type); let where = { FAV_OID: oid, FAV_TYPE: type, FAV_USER_ID: userId } let isFav = await FavModel.count(where); return { isFav }; } /** 谁收藏了我 */ async getFavMeList(userId, { search, // 搜索条件 sortType, // 搜索菜单 sortVal, // 搜索菜单 orderBy, // 排序 page, size, isTotal = true, oldTotal }) { orderBy = orderBy || { 'FAV_ADD_TIME': 'desc' }; let fields = 'FAV_TITLE,FAV_OID,FAV_TYPE,FAV_ADD_TIME,' + this.getJoinUserFields(); let joinParams = this.getJoinUserParams('FAV_USER_ID'); return await FavModel.getListJoin(joinParams, where, fields, orderBy, page, size, isTotal, oldTotal); } /** 更新某人收藏 */ async updateFav(userId, { oid, // 被收藏ID type, // 类型 cancelIfExist = true, //已收藏的情况下是否取消 }) { type = Number(type); // 重复性判断 let where = { oid: oid, type: type } return { isFav: 1 }; } /** 修改收藏 */ async editFav(editData) { let { where, data } = editData; return await FavModel.edit(where, data); } /** 删除收藏 */ async delFav(userId, { oid, type }) { let where = { FAV_OID: oid, FAV_TYPE: type, FAV_USER_ID: userId } let effect = await FavModel.del(where); // 异步减少收藏数 return { effect }; } /** 我的收藏列表 */ async getMyFavList(userId, { search, // 搜索条件 sortType, // 搜索菜单 sortVal, // 搜索菜单 orderBy, // 排序 page, size, isTotal = true, oldTotal = 0 }) { orderBy = orderBy || { 'FAV_ADD_TIME': 'desc' }; let fields = 'FAV_TITLE,FAV_ADD_TIME,FAV_OID, FAV_TYPE'; let where = {}; return await FavModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal); } }
2 表t_fav
FavModel.DB_STRUCTURE = { _pid: 'string|true', FAV_ID: 'string|true', FAV_USER_ID: 'string|true', FAV_OWNER_ID: 'string|true|comment=所有者', FAV_TITLE: 'string|true|comment=标题', FAV_TYPE: 'int|true|default=0|comment=类型 参照bizUti.TYPE', FAV_OID: 'string|true|comment=相关表主键', FAV_PIC: 'string|false|comment=相关图片', FAV_ADD_TIME: 'int|true', FAV_EDIT_TIME: 'int|true', FAV_ADD_IP: 'string|false', FAV_EDIT_IP: 'string|false', };