decline from wallet if rejected
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
const { body, param, validationResult } = require('express-validator')
|
const { body, param, validationResult } = require('express-validator')
|
||||||
const { checkValidations } = require('../plugins/controllersHelperFunctions')
|
const { checkValidations } = require('../plugins/controllersHelperFunctions')
|
||||||
const User = require('../models/GPS.User')
|
|
||||||
const InstalledDevice = require('../models/GPS.InstalledDevice')
|
const InstalledDevice = require('../models/GPS.InstalledDevice')
|
||||||
const Device = require('../models/GPS.Device')
|
// const Device = require('../models/GPS.Device')
|
||||||
const userGPS = require('../models/GPS.User')
|
const userGPS = require('../models/GPS.User')
|
||||||
const Settings = require('../models/GPS.Settings')
|
const Settings = require('../models/GPS.Settings')
|
||||||
const Score = require('../models/GPS.Score')
|
const Score = require('../models/GPS.Score')
|
||||||
@@ -17,7 +16,7 @@ module.exports.deviceRegistration = [
|
|||||||
const IMEI = req.body.IMEI
|
const IMEI = req.body.IMEI
|
||||||
console.log('IMEI ******************', IMEI)
|
console.log('IMEI ******************', IMEI)
|
||||||
|
|
||||||
const existingInstalledDevice = await InstalledDevice.findOne({ IMEI }).catch(err => {
|
const existingInstalledDevice = await InstalledDevice.findOne({ IMEI, status: 1 }).catch(err => {
|
||||||
console.log('err in findOne InstalledDevice', err?.message)
|
console.log('err in findOne InstalledDevice', err?.message)
|
||||||
return res.status(500).json({ msg: 'خطا در دریافت اطلاعات از دیتابیس ثبت دستگاه' })
|
return res.status(500).json({ msg: 'خطا در دریافت اطلاعات از دیتابیس ثبت دستگاه' })
|
||||||
})
|
})
|
||||||
@@ -217,45 +216,65 @@ module.exports.updateInstalled = [
|
|||||||
],
|
],
|
||||||
checkValidations(validationResult),
|
checkValidations(validationResult),
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
|
console.log('updateInstalled ******************', req.params.id, req.params.type)
|
||||||
const installedDevice = await InstalledDevice.findById(req.params.id)
|
const installedDevice = await InstalledDevice.findById(req.params.id)
|
||||||
if (!installedDevice) {
|
if (!installedDevice) {
|
||||||
return res.status(404).json({ msg: 'این ایدی وجود ندارد' })
|
return res.status(404).json({ msg: 'این ایدی وجود ندارد' })
|
||||||
} else {
|
} else {
|
||||||
const user = await User.findById(installedDevice.userId).select('walletBalance score totalScore')
|
console.log('installedDevice ******************')
|
||||||
const device = await Device.findById(installedDevice.deviceId)
|
// const user = await User.findById(installedDevice.userId).select('walletBalance score totalScore')
|
||||||
switch (req.params.type) {
|
switch (req.params.type) {
|
||||||
case 'accept': {
|
// case 'accept': {
|
||||||
installedDevice.status = 1
|
// installedDevice.status = 1
|
||||||
installedDevice.installationDate = new Date()
|
// installedDevice.installationDate = new Date()
|
||||||
device.status = 1
|
// // device.status = 1
|
||||||
|
|
||||||
user.walletBalance += device.profit
|
// // user.walletBalance += device.profit
|
||||||
// user.dollarBalance += device.dollarProfit
|
// // user.dollarBalance += device.dollarProfit
|
||||||
user.totalScore += device.score
|
// // user.totalScore += device.score
|
||||||
user.score += device.score
|
// // user.score += device.score
|
||||||
|
|
||||||
await Score.create({
|
// await Score.create({
|
||||||
title: 'ثبت دستگاه',
|
// title: 'ثبت دستگاه',
|
||||||
deviceId: device.id,
|
// deviceId: device.id,
|
||||||
score: device.score,
|
// score: device.score,
|
||||||
userId: installedDevice.userId
|
// userId: installedDevice.userId
|
||||||
})
|
// })
|
||||||
user.save()
|
// user.save()
|
||||||
device.save()
|
// device.save()
|
||||||
installedDevice.save()
|
// installedDevice.save()
|
||||||
notifyAdmin('newInstallDeviceRequest')
|
// notifyAdmin('newInstallDeviceRequest')
|
||||||
|
|
||||||
res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
|
// res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
|
||||||
|
|
||||||
break
|
// break
|
||||||
}
|
// }
|
||||||
case 'reject': {
|
case 'reject': {
|
||||||
|
console.log('reject ******************')
|
||||||
installedDevice.status = 2
|
installedDevice.status = 2
|
||||||
installedDevice.save()
|
await installedDevice.save()
|
||||||
device.status = 0
|
console.log('installedDevice saved ******************')
|
||||||
device.save()
|
|
||||||
notifyAdmin('newInstallDeviceRequest')
|
|
||||||
|
|
||||||
|
// Get fee and score from Settings (same as during registration)
|
||||||
|
const fee = await Settings.findOne({ title: 'install_fee' })
|
||||||
|
const score = await Settings.findOne({ title: 'install_score' })
|
||||||
|
|
||||||
|
if (fee && score) {
|
||||||
|
// remove from wallet
|
||||||
|
await userGPS.findByIdAndUpdate(installedDevice.userId, {
|
||||||
|
$inc: {
|
||||||
|
walletBalance: -fee.amount,
|
||||||
|
score: -score.amount,
|
||||||
|
totalScore: -score.amount
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log('userGPS updated ******************')
|
||||||
|
}
|
||||||
|
|
||||||
|
await Score.delete({ deviceId: installedDevice.id })
|
||||||
|
console.log('Score deleted ******************')
|
||||||
|
|
||||||
|
notifyAdmin('newInstallDeviceRequest', installedDevice.userId)
|
||||||
res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
|
res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice })
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|||||||
Reference in New Issue
Block a user