diff --git a/server/WebSocket/controllers/admin_EventsController.js b/server/WebSocket/controllers/admin_EventsController.js index 458a01a..da300e8 100644 --- a/server/WebSocket/controllers/admin_EventsController.js +++ b/server/WebSocket/controllers/admin_EventsController.js @@ -7,11 +7,15 @@ const OldPieceRequest = require('../../models/OldPieceRequest') const BufferRequest = require('../../models/BufferRequest') const GuaranteeReport = require('../../models/GuaranteeReport') const Complaint = require('../../models/Complaint') - +const Withdraw = require('../../models/GPS.Withdraw'); +const RequestGPS = require('../../models/GPS.Request') +const AwardRequest = require('../../models/GPS.AwardRequest'); +const InstalledDevice = require('../../models/GPS.InstalledDevice'); module.exports.getAllNotifs = async socket => { try { const allData = await Promise.all([ + // unreadCuMsgs ContactPageMessage.countDocuments({ read: false }), @@ -36,7 +40,19 @@ module.exports.getAllNotifs = async socket => { // newGuaranteeReports GuaranteeReport.countDocuments({ status: 'sent', seen: false }), - Complaint.countDocuments({ read: false }) + Complaint.countDocuments({ read: false }), + + // unread withdraw request + Withdraw.countDocuments({ status: 0 }), + + // unread GPS request + RequestGPS.countDocuments({ status: 0 }), + + // unread award request + AwardRequest.countDocuments({ status: 0 }), + + // unread install device request + InstalledDevice.countDocuments({ status: 0 }) ]) const unreadCuMsgs = allData[0] @@ -48,6 +64,10 @@ module.exports.getAllNotifs = async socket => { const newBufferRequests = allData[6] const newGuaranteeReports = allData[7] const newComplaintReports = allData[8] + const newWithdrawRequest = allData[9] + const newGpsRequest = allData[10] + const newAwardRequest = allData[11] + const newInstallDeviceRequest = allData[12] socket.emit(`admin:allNotifs`, { @@ -59,7 +79,11 @@ module.exports.getAllNotifs = async socket => { newOldPieceRequests, newBufferRequests, newGuaranteeReports, - newComplaintReports + newComplaintReports, + newWithdrawRequest, + newGpsRequest, + newAwardRequest, + newInstallDeviceRequest }) } catch (e) { console.log(e) diff --git a/server/controllers/GPS.Overview.js b/server/controllers/GPS.Overview.js new file mode 100644 index 0000000..225c675 --- /dev/null +++ b/server/controllers/GPS.Overview.js @@ -0,0 +1,23 @@ +const User = require('../models/User'); +const InstalledDevice = require('../models/GPS.InstalledDevice'); +const Withdraw = require('../models/GPS.Withdraw'); + + +module.exports.mainPage = async(req, res)=>{ + const device = await InstalledDevice.countDocuments({userId:req.user_id}) + const user = await User.findById(req.user_id).select('walletBalance dollarBalance score') + res.status(200).json({installedDevice:device, user}) +} + +module.exports.walletPage = async(req, res)=>{ + const withdraw = await Withdraw.findOne({userId: req.user_id, status:0}) + const user = await User.findById(req.user_id).select('walletBalance dollarBalance score') + let pending; + + if(withdraw){ + pending = true + }else{ + pending = false + } + res.status(200).json({user, pending }) +} \ No newline at end of file diff --git a/server/controllers/GPS.Withdraw.js b/server/controllers/GPS.Withdraw.js index fa31818..35d9480 100644 --- a/server/controllers/GPS.Withdraw.js +++ b/server/controllers/GPS.Withdraw.js @@ -12,20 +12,26 @@ module.exports.createRequest = [ checkValidations(validationResult), async (req, res) => { try { - const user = await User.findById(req.user_id) - const data = { - card: req.body.card, - userId: req.user_id, - amount: user.walletBalance, - dollarAmount: user.dollarBalance, - status: 0 - } - - const request = await Withdraw.create(data) - user.dollarBalance = 0; - user.walletBalance = 0; - user.save() - res.status(201).json({ msg: _sr.fa.response.success_save, data: request }) + const withdraw = await Withdraw.findOne({userId: req.user_id, status:0}) + if(withdraw){ + res.status(400).json({ msg: 'شما درخواست درحال بررسی دارید' }) + }else{ + const user = await User.findById(req.user_id) + const data = { + card: req.body.card, + userId: req.user_id, + amount: user.walletBalance, + dollarAmount: user.dollarBalance, + status: 0 + } + + const request = await Withdraw.create(data) + user.dollarBalance = 0; + user.walletBalance = 0; + user.save() + res.status(201).json({ msg: _sr.fa.response.success_save, data: request }) + } + } catch (error) { res.status(500).json({ msg: error }) diff --git a/server/controllers/userController.js b/server/controllers/userController.js index 5e04ce3..1cb7ac9 100644 --- a/server/controllers/userController.js +++ b/server/controllers/userController.js @@ -24,7 +24,18 @@ const { generateRandomDigits } = require('../plugins/controllersHelperFunctions') const _faSr = _sr.fa - +const transporter = nodemailer.createTransport({ + host: 'smtp.c1.liara.email', + port: 587, + secure: false, // true for 465, false for other ports + auth: { + user: 'awesome_bell_ncc1hi', + pass: '509f8938-db95-4b8d-83e7-9ea8eccfd28b' + }, + tls: { + rejectUnauthorized: false + } +}) /// ///////////////////////////////////////////////////////////////// verify account functions function sendConfirmationEmail(userId) { return new Promise(async (resolve, reject) => { @@ -38,18 +49,7 @@ function sendConfirmationEmail(userId) { /// //// email configs // const hostURL = 'www.asan-service.com' - const transporter = nodemailer.createTransport({ - host: 'smtp.c1.liara.email', - port: 587, - secure: false, // true for 465, false for other ports - auth: { - user: 'awesome_bell_ncc1hi', - pass: '509f8938-db95-4b8d-83e7-9ea8eccfd28b' - }, - tls: { - rejectUnauthorized: false - } - }) + const emailHTMLTemplate = `