1. 该项目主要服务的人群是喜欢进行文章创作的朋友和做微商的朋友。
2. 主要分类:首页和我的两大模块:
(1)首页主要 数据报表的实时展示和三大类型信息的展示。用户可以通过报表的展示随时知道自己发表的创作所产生的效果如何,通过这样的数据反馈,从而进一步激发作者参与度和不断锤炼自己创作的能力。
(2)在文章三大类型展示,浏览用户可以通过点击文章链接阅读文章详情,对于符合自己喜欢的风格可以留下自己的小love
3. 我的主要是用户的信息,此模块主要参考视频号,主要的功能是用户个人隐私信息的设置等
4. 下面主要附上首页数据报表的效果图和相关代码:
(1)效果图
(2)代码示例:
(3)云函数
async getReportData(context, params) {
const dateArr = []
for (let i = 0; i < 7; i++) {
const date = new Date(new Date(new Date().toLocaleDateString()).getTime() - i * 24 * 60 * 60 * 1000)
let YY = date.getFullYear() + '-';
let MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
let DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
dateArr.push(YY + MM + DD)
}
// 七天前 零点
const startTime = new Date(new Date(new Date().toLocaleDateString()).getTime() - 6 * 24 * 60 * 60 * 1000).getTime()
let data = {
dateArr: dateArr.reverse(),
totalData: {}
}
// 发表文章
await db.collection('messages').aggregate()
.match({
openid: context.OPENID,
createTime: _.gte(startTime)
}).group({
_id: '$str_date',
num: $.sum(1)
}).end().then((res) => {
const messageslist = []
let sevenTotalmessages = 0
for (let i = 0; i < 7; i++) {
messageslist[i] = 0
for (let j = 0; j < res.list.length; j++) {
if (res.list[j]._id == dateArr[i]) {
messageslist[i] = res.list[j].num
sevenTotalmessages += res.list[j].num
break
}
}
}
data.messageslist = messageslist
data.totalData.sevenTotalmessages = sevenTotalmessages
})
// 访问量
await db.collection('scans_info').aggregate()
.match({
author_openid: context.OPENID,
type: 1,
createTime: _.gte(startTime)
}).group({
_id: '$str_date',
num: $.sum(1)
}).end().then((res) => {
const clickslist = []
let sevenTotalclicks = 0;
for (let i = 0; i < 7; i++) {
clickslist[i] = 0
for (let j = 0; j < res.list.length; j++) {
if (res.list[j]._id == dateArr[i]) {
clickslist[i] = res.list[j].num
sevenTotalclicks += res.list[j].num
break
}
}
}
data.clickslist = clickslist
data.totalData.sevenTotalclicks = sevenTotalclicks
})
// 被喜欢
await db.collection('scans_info').aggregate()
.match({
author_openid: context.OPENID,
type: 2,
createTime: _.gte(startTime)
}).group({
_id: '$str_date',
num: $.sum(1)
}).end().then((res) => {
const loveslist = []
let sevenTotalloves = 0
for (let i = 0; i < 7; i++) {
loveslist[i] = 0
for (let j = 0; j < res.list.length; j++) {
if (res.list[j]._id == dateArr[i]) {
loveslist[i] = res.list[j].num
sevenTotalloves += res.list[j].num
break
}
}
}
data.loveslist = loveslist
data.totalData.sevenTotalloves = sevenTotalloves
})
// 粉丝
await db.collection('attention_details').aggregate()
.match({
loves_openid: context.OPENID,
createTime: _.gte(startTime)
}).group({
_id: '$str_date',
num: $.sum(1)
}).end().then((res) => {
const fenslist = []
let sevenTotalfens = 0
for (let i = 0; i < 7; i++) {
fenslist[i] = 0
for (let j = 0; j < res.list.length; j++) {
if (res.list[j]._id == dateArr[i]) {
fenslist[i] = res.list[j].num
sevenTotalfens += res.list[j].num
break
}
}
}
data.fenslist = fenslist
data.totalData.sevenTotalfens = sevenTotalfens
})
// 截取日期的月-日
for(let i=0;i<data.dateArr.length;i++){
data.dateArr[i]=data.dateArr[i].substr(5)
}
return {
stutas: 200,
data: data,
message: 'success'
}
},
我们团队想要开发一个小程序,可以合作吗?
666
绑定数据到页面没报错吗