169 lines
3.1 KiB
JavaScript
169 lines
3.1 KiB
JavaScript
const { count } = require("console");
|
|
|
|
const db = uniCloud.database();
|
|
const _ =db.command;
|
|
module.exports = {
|
|
_before: function () { // 通用预处理器
|
|
|
|
},
|
|
async getVoteInfo(query) {
|
|
try {
|
|
let {
|
|
vote_id,
|
|
user_id
|
|
} = query;
|
|
// 用户选择
|
|
const user_res = await db.collection("cms-vote")
|
|
.where({
|
|
user_id: user_id,
|
|
vote_id: vote_id
|
|
})
|
|
.get();
|
|
// 获得总选择
|
|
const all_res = await db.collection("cms-vote-info")
|
|
.where({
|
|
vote_id: vote_id
|
|
})
|
|
.get();
|
|
|
|
return {
|
|
code: 200,
|
|
user_data: user_res.data[0],
|
|
all_data: all_res.data[0]
|
|
}
|
|
|
|
|
|
} catch(e) {
|
|
return {
|
|
code: 500,
|
|
msg: e.message
|
|
}
|
|
}
|
|
},
|
|
async add_vote(query) {
|
|
try {
|
|
let {
|
|
vote_id,
|
|
selectValue,
|
|
user_id,
|
|
type
|
|
} = query;
|
|
|
|
let t = await db.collection("cms-vote")
|
|
.where({
|
|
user_id: user_id,
|
|
vote_id: vote_id
|
|
})
|
|
.count();
|
|
|
|
|
|
|
|
if (t.total > 0) {
|
|
return {
|
|
code: 500,
|
|
msg: "已投票!"
|
|
}
|
|
} else {
|
|
await db.collection("cms-vote").add({
|
|
vote_id: vote_id,
|
|
selectValue: selectValue,
|
|
user_id: user_id,
|
|
type: type
|
|
});
|
|
const res = await db.collection("cms-vote-info")
|
|
.where({
|
|
vote_id: vote_id
|
|
})
|
|
.count();
|
|
|
|
if (res.total > 0) {
|
|
if (type === "单选(默认)") {
|
|
const voteInfo = await db.collection("cms-vote-info")
|
|
.where({
|
|
vote_id: vote_id
|
|
})
|
|
.get();
|
|
console.log(voteInfo)
|
|
let values = voteInfo.data[0].selectValue;
|
|
values[selectValue] = (values[selectValue] || 0) + 1;
|
|
|
|
await db.collection("cms-vote-info")
|
|
.where({
|
|
vote_id: vote_id
|
|
})
|
|
.update({
|
|
selectValue: values,
|
|
count: voteInfo.data[0].count + 1
|
|
});
|
|
|
|
|
|
|
|
} else {
|
|
const voteInfo = await db.collection("cms-vote-info")
|
|
.where({
|
|
vote_id: vote_id
|
|
})
|
|
.get();
|
|
console.log(voteInfo)
|
|
|
|
let values = voteInfo.data[0].selectValue;
|
|
|
|
for (let i = 0; i < selectValue.length ; i ++ ) {
|
|
values[selectValue[i]] = (values[selectValue[i]] || 0) + 1;
|
|
console.log((values[selectValue] || 0) + 1, values);
|
|
}
|
|
console.log(values);
|
|
|
|
await db.collection("cms-vote-info")
|
|
.where({
|
|
vote_id: vote_id
|
|
})
|
|
.update({
|
|
selectValue: values,
|
|
count: voteInfo.data[0].count + 1
|
|
});
|
|
}
|
|
} else {
|
|
if (type === "单选(默认)") {
|
|
await db.collection("cms-vote-info")
|
|
.add({
|
|
vote_id: vote_id,
|
|
selectValue: {
|
|
[selectValue]: 1
|
|
},
|
|
type: type,
|
|
count: 1
|
|
});
|
|
} else {
|
|
let values = {};
|
|
|
|
for (let i = 0 ; i < selectValue.length; i ++ ) {
|
|
values[selectValue[i]] = 1;
|
|
}
|
|
console.log(values);
|
|
await db.collection("cms-vote-info")
|
|
.add({
|
|
vote_id: vote_id,
|
|
selectValue: values,
|
|
type: type,
|
|
count: 1
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
return {
|
|
code: 200
|
|
}
|
|
}
|
|
|
|
|
|
} catch(e) {
|
|
return {
|
|
code: 500,
|
|
msg: e.message
|
|
}
|
|
}
|
|
}
|
|
}
|