【第三篇】微信小程序云开发项目总结

上篇文章:【第二篇】微信小程序云开发项目总结

功能点2:答疑解惑

这个功能点的实现基本与用户填写简历相同,都是用户上传数据到数据库,不加说明。
【第三篇】微信小程序云开发项目总结_第1张图片

功能点3:消息回复

这个板块是用户查看管理员的回复消息的位置,当有消息时,会标上红点,提醒用户。
【第三篇】微信小程序云开发项目总结_第2张图片
这就需要我们利用云函数拿到数据库中的数据,这里我建立了一个名为Respond的表,管理员回复给用户的信息都会存储在这里。
【第三篇】微信小程序云开发项目总结_第3张图片
老样子,新建一个云函数,取名为getRespond,在index.js中写入代码

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async(event, context) => {
  const wxContext = cloud.getWXContext()
  
  return cloud.database().collection('Respond')   //在Respond表中查找
    .where({   //类似sql语句,条件查找
    //当前用户的openid等于数据中的openid时,说明这条消息是回复给该用户的
      openid: wxContext.OPENID,
      read:0
    }).orderBy('time', 'desc')   //让最近消息排在前面
    .get({
      success(res) {  //查询成功,就返回数据
        return res
      }
    })
}

这里用到了云开发函数中的whereorderByget等方法,相信大家一看就懂。
编写的这个getRespond函数可以返回属于该用户的所有消息,按照消息回复时间排序。ok,我们在首页js文件中调用该函数
【第三篇】微信小程序云开发项目总结_第4张图片
调用方法跟第二篇中的一样,将name属性改成我们的getRespond函数名即可。我们会获得名为respond的数组,里面存放着属于用户的所有消息,这样我们就可以通过查看respond数组是否为空,来判断用户是否收到新的消息,决定是否显示红点
在这里插入图片描述


用户点击消息回复这个板块,就可以查看收到的消息。
【第三篇】微信小程序云开发项目总结_第5张图片
这里也同样只是用到了云函数的get查询方法,不过我们要稍加修改。创建一个云函数名为getRespondList,在index.js中写入代码

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async(event, context) => {
  const wxContext = cloud.getWXContext()
  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循环,形成列表。

当用户没有收到过消息时,显示:
【第三篇】微信小程序云开发项目总结_第6张图片


接下来我们只需用户点击消息时跳转到新的页面显示消息详情即可,

【第三篇】微信小程序云开发项目总结_第7张图片
这里有个新的知识点,那就是用户读过该消息时需要把这条数据的read字段值更改为1,表示这条消息已经被阅读过了。
在页面的js文件中添加代码

wx.cloud.database().collection('Respond')
 //我在跳转到这个页面时传递了参数option,里面存放着这条消息的id。doc方法可以根据id唯一的确定表中的数据
      .doc(options.id)     
      .update({   //更新,将read值改为1,表示已经阅读过了
        data: {
          read: 1
        }
      })

同样相当的简单^_^。看看效果,我们退回到上个页面

【第三篇】微信小程序云开发项目总结_第8张图片
发现红点已经消失了,表示这条消息我已经读过了,非常好!

功能点4:管理员入口

这个功能点其实跟上个功能点用到的知识差不多,不加以描述了。唯一需要讲一点的是管理员入口得管理员才能看到,不应该让用户看到。
我们创建一个表Management,里面存放着所有管理员的用户openid
【第三篇】微信小程序云开发项目总结_第9张图片
我们只需写个云函数,判断当前用户openid是否与Management表中的数据一致即可。

页面截图

【第三篇】微信小程序云开发项目总结_第10张图片
【第三篇】微信小程序云开发项目总结_第11张图片
【第三篇】微信小程序云开发项目总结_第12张图片
【第三篇】微信小程序云开发项目总结_第13张图片

【第三篇】微信小程序云开发项目总结_第14张图片

你可能感兴趣的:(奇淫巧计)