【第三篇】⼩程序云开发项⽬总结上篇⽂章:
功能点2:答疑解惑
这个功能点的实现基本与⽤户填写简历相同,都是⽤户上传数据到数据库,不加说明。
功能点3:消息回复
这个板块是⽤户查看管理员的回复消息的位置,当有消息时,会标上红点,提醒⽤户。
这就需要我们利⽤云函数拿到数据库中的数据,这⾥我建⽴了⼀个名为Respond的表,管理员回复给⽤户的信息都会存储在这⾥。
⽼样⼦,新建⼀个云函数,取名为getRespond,在index.js中写⼊代码
// 云函数⼊⼝⽂件
const cloud = require('wx-server-sdk')
cloud.init()
/
/ 云函数⼊⼝函数
exports.main = async(event, context) => {
const wxContext = WXContext()
return cloud.database().collection('Respond')  //在Respond表中查
.where({  //类似sql语句,条件查
//当前⽤户的openid等于数据中的openid时,说明这条消息是回复给该⽤户的
openid: wxContext.OPENID,
read:0
}).orderBy('time', 'desc')  //让最近消息排在前⾯
.get({
success(res) {  //查询成功,就返回数据
return res
}
})
}
这⾥⽤到了云开发函数中的where、orderBy、get等⽅法,相信⼤家⼀看就懂。
编写的这个getRespond函数可以返回属于该⽤户的所有消息,按照消息回复时间排序。ok,我们在⾸页js⽂件中调⽤该函数
调⽤⽅法跟第⼆篇中的⼀样,将name属性改成我们的getRespond函数名即可。我们会获得名为respond的数组,⾥⾯存放着属于⽤户的所有消息,这样我们就可以通过查看respond数组是否为空,来判断⽤户是否收到新的消息,决定是否显⽰红点
⽤户点击消息回复这个板块,就可以查看收到的消息。
这⾥也同样只是⽤到了云函数的get查询⽅法,不过我们要稍加修改。创建⼀个云函数名为getRespondList,在index.js中写⼊代码
// 云函数⼊⼝⽂件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数⼊⼝函数
exports.main = async(event, context) => {
const wxContext = WXContext()
return cloud.database().collection('Respond')
.where({
openid: wxContext.OPENID,
//这⾥我们不⽤指定read==0,因为⽤户需要可以查看历史所有收到的消息
}).orderBy('read', 'asc')  //排序,read的值分为0、1,0表⽰未读。将未读消息优先放在前⾯
.orderBy('time', 'desc')
.get({
success(res) {
return res
}
})
}
与上⽂的getRespond云函数没有太多的差异。还是在js⽂件中调⽤,拿到数据后在wx:for循环,形成列表。
当⽤户没有收到过消息时,显⽰:
接下来我们只需⽤户点击消息时跳转到新的页⾯显⽰消息详情即可,
这⾥有个新的知识点,那就是⽤户读过该消息时需要把这条数据的read字段值更改为1,表⽰这条消息已经被阅读过了。在页⾯的js⽂件中添加代码
wx.cloud.database().collection('Respond')
写文章的小程序//我在跳转到这个页⾯时传递了参数option,⾥⾯存放着这条消息的id。doc⽅法可以根据id唯⼀的确定表中的数据
.doc(options.id)
.update({  //更新,将read值改为1,表⽰已经阅读过了
data: {
read: 1
}
})
同样相当的简单^_^。看看效果,我们退回到上个页⾯
发现红点已经消失了,表⽰这条消息我已经读过了,⾮常好!
功能点4:管理员⼊⼝
这个功能点其实跟上个功能点⽤到的知识差不多,不加以描述了。唯⼀需要讲⼀点的是管理员⼊⼝得管理员才能看到,不应该让⽤户看到。我们创建⼀个表Management,⾥⾯存放着所有管理员的⽤户openid
我们只需写个云函数,判断当前⽤户openid是否与Management表中的数据⼀致即可。
页⾯截图

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。