This commit is contained in:
Mr Swift
2024-08-25 22:34:18 +03:30
parent 98183f3c57
commit 11d8507e3c
8 changed files with 337 additions and 42 deletions
@@ -96,6 +96,27 @@ module.exports.notifyAdmin = async type => {
const admin = io.of('/admin')
const data = { type }
if (type === 'newAwardRequest') {
const newCustomers = await AwardRequest.countDocuments({ status: 0 })
data.newCustomers = newCustomers.length
}
if (type === 'newInstallDeviceRequest') {
const newCustomers = await InstalledDevice.countDocuments({ status: 0 })
data.newCustomers = newCustomers.length
}
if (type === 'newWithdrawRequest') {
const newCustomers = await Withdraw.countDocuments({ status: 0 })
data.newCustomers = newCustomers.length
}
if (type === 'pendingUsers') {
const newCustomers = await UserGPS.countDocuments({ active: false })
data.newCustomers = newCustomers.length
}
if (type === 'updateNewCustomers') {
const newCustomers = await User.find({ scope: ['user'], seenByAdmin: false })
data.newCustomers = newCustomers.length
+8 -4
View File
@@ -4,6 +4,7 @@ const { checkValidations } = require('../plugins/controllersHelperFunctions')
const User = require('../models/GPS.User')
const Award = require('../models/GPS.Award');
const AwardRequest = require('../models/GPS.AwardRequest');
const { notifyAdmin } = require('../WebSocket/controllers/admin_EventsController')
module.exports.sendRequest = [
@@ -27,6 +28,7 @@ module.exports.sendRequest = [
userId:req.user_id
})
// res.status(200).json({ msg:_sr.fa.response.success_save, data})
notifyAdmin('newAwardRequest')
res.status(200).json(data)
}else{
@@ -45,7 +47,7 @@ module.exports.findAllUser = async(req, res)=>{
}
module.exports.findAllAdmin = async(req, res)=>{
const data = await AwardRequest.find().populate('awardId','-created_at -updated_at').populate('userId', 'first_name last_name shopName shopNumber shopAddress national_code mobile_number')
const data = await AwardRequest.find().populate('awardId','-created_at -updated_at').populate('userId', 'first_name last_name shopName national_code mobile_number')
res.status(200).json(data)
}
@@ -55,7 +57,7 @@ module.exports.findOne = [
],
checkValidations(validationResult),
async (req, res) => {
const data = await AwardRequest.findById(req.params.id).populate('awardId','-created_at -updated_at').populate('userId', 'first_name last_name shopName shopNumber shopAddress national_code mobile_number')
const data = await AwardRequest.findById(req.params.id).populate('awardId','-created_at -updated_at').populate('userId', 'first_name last_name shopName national_code mobile_number')
if (!data) {
res.status(404).json({ msg: _sr.fa.not_found.item_id })
} else {
@@ -79,14 +81,16 @@ module.exports.update = [
if (!data) {
res.status(404).json({ msg: _sr.fa.not_found.item_id })
} else {
await AwardRequest.updateOne(
{id:req.params.id},
await AwardRequest.findByIdAndUpdate(
req.params.id,
{
status,
desc,
metaData
}
)
notifyAdmin('newAwardRequest')
res.status(200).json({ msg: _sr.fa.response.success_save })
}
+12 -5
View File
@@ -1,10 +1,11 @@
const { body, param, validationResult } = require('express-validator');
const { checkValidations } = require('../plugins/controllersHelperFunctions');
const User = require('../models/User');
const User = require('../models/GPS.User');
const InstalledDevice = require('../models/GPS.InstalledDevice');
const Device = require('../models/GPS.Device');
const Score = require('../models/GPS.Score');
const { _sr } = require('../plugins/serverResponses');
const { notifyAdmin } = require('../WebSocket/controllers/admin_EventsController')
module.exports.deviceRegistration = [
[
@@ -30,6 +31,8 @@ module.exports.deviceRegistration = [
const newRequest = await InstalledDevice.create(data);
device.status = 1;
device.save()
notifyAdmin('newInstallDeviceRequest')
// res.status(201).json({ msg: _sr.fa.response.success_save, data: newRequest })
res.status(201).json(newRequest)
@@ -121,9 +124,9 @@ module.exports.updateInstalled = [
installedDevice.installationDate = new Date();
device.status = 1;
user.walletBalance = device.profit
user.dollarBalance = device.dollarProfit
user.walletBalance += device.profit
user.dollarBalance += device.dollarProfit
user.score = device.score
@@ -136,8 +139,10 @@ module.exports.updateInstalled = [
user.save()
device.save()
installedDevice.save()
notifyAdmin('newInstallDeviceRequest')
res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
break;
}
@@ -146,6 +151,8 @@ module.exports.updateInstalled = [
installedDevice.save()
device.status = 0;
device.save()
notifyAdmin('newInstallDeviceRequest')
res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
+7 -3
View File
@@ -16,6 +16,7 @@ const {
generateRandomDigits
} = require('../plugins/controllersHelperFunctions')
const _faSr = _sr.fa
const { notifyAdmin } = require('../WebSocket/controllers/admin_EventsController')
@@ -158,6 +159,8 @@ module.exports.register_user = [
const user = new User(data)
await user.save()
notifyAdmin('pendingUsers')
return res.json({ message: _faSr.response.success_save })
} catch (err) {
const registerFailurMsg = 'مشکلی در ثبت نام پیش آمده، لطفا مجددا تلاش کنید'
@@ -295,7 +298,7 @@ module.exports.send_otp = [
const user = await User.findOne({ mobile_number })
if (!user) throw new Error(_sr.fa.not_found.user_id)
await sendConfirmationSMS(user.id)
res.status(200).json({msg:"ok"})
res.status(200).json({ msg: "ok" })
} catch (err) {
if (err) return res500(res, err)
}
@@ -373,14 +376,14 @@ module.exports.getUsersForAdmin = async (req, res) => {
res.status(200).json(user)
}
module.exports.getPendingUsersForAdmin = async (req, res) => {
const user = await User.find({active:false}).sort({ active: 1, created_at: -1 }).select('-password -token -otp -seenByAdmin -cardBank')
const user = await User.find({ active: false }).sort({ active: 1, created_at: -1 }).select('-password -token -otp -seenByAdmin -cardBank')
res.status(200).json(user)
}
module.exports.getUserForAdmin = async (req, res) => {
const user = await User.findById(req.params.id).select('-password -token -otp -seenByAdmin')
if (!user) {
return res.status(404).json({ msg: _sr.fa.not_found.user_id })
}else {
} else {
user.seenByAdmin = true
user.save()
res.status(200).json(user)
@@ -401,6 +404,7 @@ module.exports.activeUser = [
{ new: true }).select('-password -token -otp -seenByAdmin')
if (!data) return res.status(404).json({ msg: _sr.fa.not_found.user_id })
notifyAdmin('pendingUsers')
res.status(200).json(data)
+35 -29
View File
@@ -3,6 +3,7 @@ const { _sr } = require('../plugins/serverResponses');
const { checkValidations } = require('../plugins/controllersHelperFunctions');
const User = require('../models/GPS.User');
const Withdraw = require('../models/GPS.Withdraw');
const { notifyAdmin } = require('../WebSocket/controllers/admin_EventsController')
module.exports.createRequest = [
@@ -12,35 +13,36 @@ module.exports.createRequest = [
checkValidations(validationResult),
async (req, res) => {
try {
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)
if(user.walletBalance < 50000){
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 })
res.status(201).json(request)
}else{
res.status(400).json({ msg: 'حداقل موجودی باید 50 هزار تومان باشد' })
}
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)
if (user.walletBalance < 50000) {
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 })
notifyAdmin('newWithdrawRequest')
res.status(201).json(request)
} else {
res.status(400).json({ msg: 'حداقل موجودی باید 50 هزار تومان باشد' })
}
}
} catch (error) {
res.status(500).json({ msg: error })
}
}
]
@@ -67,14 +69,14 @@ module.exports.getAllForUser = async (req, res) => {
// const search = req.query?.search ? req.query.search : 0
const data = await Withdraw.find({
const data = await Withdraw.find({
userId: req.user_id,
// $or: [
// { amount: { $regex: search } },
// { dollarAmount: { $regex: search } },
// { trackingNumber: { $regex: search } },
// ],
}).skip(page).limit(rows).sort({ created_at: -1 });
}).skip(page).limit(rows).sort({ created_at: -1 });
const total = Math.ceil((await Withdraw.countDocuments({ userId: req.user_id })))
res.status(200).json({ data, total })
}
@@ -119,8 +121,10 @@ module.exports.updateReq = [
case "accept": {
request.status = 1;
request.save()
notifyAdmin('newWithdrawRequest')
res.status(201).json({ msg: _sr.fa.response.success_save, data: request })
break;
}
case "deposit": {
@@ -128,8 +132,10 @@ module.exports.updateReq = [
request.depositDate = new Date();
request.trackingNumber = req.body.trackingNumber || 0;
request.save()
notifyAdmin('newWithdrawRequest')
res.status(201).json({ msg: _sr.fa.response.success_save, data: request })
break;
}
default: {