123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- const formatTime = date => {
- const year = date.getFullYear()
- const month = date.getMonth() + 1
- const day = date.getDate()
- const hour = date.getHours()
- const minute = date.getMinutes()
- const second = date.getSeconds()
- return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
- }
- const formatNumber = n => {
- n = n.toString()
- return n[1] ? n : '0' + n
- }
- /**
- * 获取用户信息
- */
- const getUserInfo = () => {
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('_User');
- query.get(uid).then(res => {
- resolve({
- 'result': res
- });
- })
- })
- }
- /**
- * 保存用户头像昵称
- * avatarUrl:头像
- * nickName:昵称
- */
- const changeUserInfo = (avatarUrl, nickName) => {
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('_User');
- query.get(uid).then(res => {
- res.set('avatarUrl', avatarUrl);
- res.set('nickName', nickName);
- res.save();
- resolve({
- 'result': 'success'
- });
- })
- })
- }
- /**
- * 获取套题列表
- */
- const getQuestionMenu = () => {
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('questionMenu');
- query.order('createdAt');
- query.find().then(res => {
- resolve({
- 'result': res
- });
- })
- })
- }
- /**
- * 获取套题
- * id:套题id
- */
- const getMenuById =(id)=>{
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('questionMenu')
- query.get(id).then(res=>{
- resolve({
- 'result': res
- });
- })
- })
- }
- /**
- * 获取题目
- * menuId:套题id
- * questionNum:题目数量
- */
- const getQuestions = (menuId,questionNum) => {
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('questions');
- query.equalTo('menu','==',menuId);
- query.limit(parseInt(questionNum))
- query.find().then(res=>{
- resolve({
- 'result':res
- })
- })
- })
- }
- /**
- * 获取设置
- */
- const getSetting = ()=>{
- return new Promise((resolve,reject)=>{
- const query = wx.Bmob.Query('setting')
- query.find().then(res=>{
- resolve({
- 'result':res
- })
- })
- })
- }
- /**
- * 添加测试记录
- * params:参数
- */
- const addHistory = (params)=>{
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('history')
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- query.equalTo('menu', '==',params.menu)
- query.equalTo('user','==',uid)
- query.find().then(res=>{
- if(res.length>0){
- if(params.saveStatus == 1){
- query.get(res[0].objectId).then(res1 => {
- res1.set('score', params.score)
- res1.set('questionList', params.result)
- res1.set('saveStatus', params.saveStatus)
- res1.save().then(res2 => {
- console.log(res2)
- resolve({ 'result': res[0].objectId })
- })
- })
- }else{
- query.get(res[0].objectId).then(res1 => {
- res1.set('score', params.score)
- res1.set('questionList', params.result)
- res1.set('saveStatus', params.saveStatus)
- res1.set('second',params.second)
- res1.set('minute',params.minute)
- res1.save().then(res2 => {
- console.log(res2)
- resolve({ 'result': res[0].objectId })
- })
- })
- }
-
- }else{
- const pointer = wx.Bmob.Pointer('_User')
- const poiID = pointer.set(uid)
- if(params.saveStatus == 1){
- query.set('user', poiID)
- query.set('score', params.score)
- query.set('menu', params.menu)
- query.set('questionMenu', params.questionMenu)
- query.set('questionList', params.result)
- query.set('saveStatus', params.saveStatus)
- query.save().then(res2 => {
- console.log(res2)
- resolve({ 'result': res2.objectId })
- })
- }else{
- query.set('user', poiID)
- query.set('score', params.score)
- query.set('menu', params.menu)
- query.set('questionMenu', params.questionMenu)
- query.set('questionList', params.result)
- query.set('saveStatus', params.saveStatus)
- query.set('second', params.second)
- query.set('minute', params.minute)
- query.save().then(res2 => {
- console.log(res2)
- resolve({ 'result': res2.objectId })
- })
- }
- }
- })
- })
- }
- /**
- * 查询是否有保存的答题记录
- * menu:套题id
- */
- const checkSaveHistory = (menu)=>{
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('history')
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- query.equalTo('menu','==',menu)
- query.equalTo('user','==',uid)
- query.equalTo('saveStatus','==',0)
- query.find().then(res=>{
- if (res.length > 0) {
- resolve({ 'result': true , 'data':res[0]})
- }else{
- resolve({ 'result': false })
- }
- })
- })
- }
- /**
- * 查询测试历史
- * id:objectId
- */
- const getHistory = (id)=>{
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('history')
- query.get(id).then(res=>{
- resolve({ 'result': res })
- })
- })
- }
- /**
- * 查询击败人数
- * menu:所属套题
- * score:分数
- */
- const getBeatNum =(menu,score)=>{
- return new Promise((resolve,reject)=>{
- const query = wx.Bmob.Query('history')
- query.equalTo('menu','==',menu)
- query.equalTo('score', '<', score)
- query.count().then(res => {
- resolve({ 'result': res })
- });
- })
- }
- /**
- * 查询平均分
- * menu:所属套题
- */
- const getAverage =(menu)=>{
- return new Promise((resolve,reject)=>{
- const query = wx.Bmob.Query('statistics');
- query.equalTo('menu','==',menu)
- query.find().then(res=>{
- resolve({'result':res})
- })
- })
- }
- /**
- * 添加错题集
- * menu:套题id
- * questionList:问题集合
- * questionMenu:套题名
- */
- const addError = (menu, questionList, questionMenu)=>{
- return new Promise((resolve,reject)=>{
- const query = wx.Bmob.Query('error')
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- query.equalTo('menu', '==', menu)
- query.equalTo('user', '==', uid)
- query.find().then(res => {
- if(res.length>0){
- query.get(res[0].objectId).then(res1 => {
- res1.set('questionList', questionList)
- res1.save().then(res2 => {
- console.log(res2)
- resolve({ 'result': res[0].objectId })
- })
- })
- }else{
- const pointer = wx.Bmob.Pointer('_User')
- const poiID = pointer.set(uid)
- query.set('user', poiID)
- query.set('menu', menu)
- query.set('questionMenu', questionMenu)
- query.set('questionList', questionList)
- query.save().then(res2 => {
- console.log(res2)
- resolve({ 'result': res2.objectId })
- })
- }
- })
- })
- }
- /**
- * 查询错题集
- * menu:套题id
- */
- const getError = (menu)=>{
- return new Promise((resolve,reject)=>{
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- const query = wx.Bmob.Query('error')
- query.equalTo('user','==',uid)
- query.equalTo('menu','==',menu)
- query.find().then(res=>{
- if(res.length>0){
- if(res[0].questionList.length > 0){
- resolve({
- 'result': true,
- 'error': res
- })
- }else{
- resolve({
- 'result': false
- })
- }
- }else{
- resolve({
- 'result': false
- })
- }
- })
- })
- }
- /**
- * 移除错题
- * id:id
- * questionList:错题集合
- */
- const deleteError = (id, questionList)=>{
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('error')
- query.get(id).then(res=>{
- res.set('questionList', questionList)
- res.save()
- resolve({ 'result': true })
- })
- })
- }
- /**
- * 获取统计分数
- * menu:套题id
- */
- const getStatistics = (menu)=>{
- return new Promise((resolve,reject)=>{
- const query = wx.Bmob.Query('statistics')
- query.equalTo('menu','==',menu)
- query.find().then(res=>{
- resolve({ 'result': res[0] })
- })
- })
- }
- /**
- * 统计分数
- * id:统计记录id
- * addScore:加分数
- */
- const statistics = (id,addScore)=>{
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('statistics')
- query.get(id).then(res=>{
- res.set('peopleNum',(res.peopleNum+1))
- res.set('allScore',(res.allScore+addScore))
- res.save()
- })
- })
- }
- /**
- * 查询排序
- * menu:套题id
- */
- const getRank = (menu)=>{
- return new Promise((resolve,reject)=>{
- const query = wx.Bmob.Query('history')
- query.select("user,score");
- query.equalTo('menu','==',menu)
- query.equalTo('saveStatus','==',1)
- query.include('user')
- query.order('-score')
- query.find().then(res=>{
- if (res.length > 0) {
- resolve({
- 'result': true,
- 'data': res
- })
- } else {
- resolve({ 'result': false })
- }
- })
- })
- }
- /**
- * 查询测试记录
- */
- const getHistoryList =()=>{
- return new Promise((resolve, reject) => {
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- const query = wx.Bmob.Query('history')
- query.equalTo('user','==',uid)
- query.equalTo('saveStatus', '==', 1)
- query.order('-createdAt')
- query.find().then(res=>{
- console.log(res.length)
- if (res.length > 0) {
- resolve({
- 'result': true,
- 'data': res
- })
- } else {
- resolve({ 'result': false })
- }
- })
- })
- }
- const addFeedBack = (phone, content) => {
- let current = wx.Bmob.User.current();
- let uid = current.objectId;
- return new Promise((resolve, reject) => {
- const query = wx.Bmob.Query('feedback');
- const pointer = wx.Bmob.Pointer('_User')
- const poiID = pointer.set(uid)
- query.set('uid', poiID);
- query.set('phone', phone);
- query.set('content', content);
- query.save().then(res => {
- resolve({ 'result': 'success' });
- }).catch(err => {
- resolve({ 'result': 'fail' });
- })
- })
- }
- module.exports = {
- formatTime: formatTime,
- getUserInfo: getUserInfo,
- changeUserInfo: changeUserInfo,
- getQuestionMenu: getQuestionMenu,
- getMenuById: getMenuById,
- getQuestions: getQuestions,
- getSetting: getSetting,
- addHistory: addHistory,
- checkSaveHistory: checkSaveHistory,
- getHistory: getHistory,
- getBeatNum: getBeatNum,
- getAverage: getAverage,
- addError: addError,
- getError: getError,
- deleteError: deleteError,
- getStatistics: getStatistics,
- statistics: statistics,
- getRank: getRank,
- getHistoryList: getHistoryList,
- addFeedBack: addFeedBack,
- }
|