diff --git a/server/controllers/GPS.InstalledDevice.js b/server/controllers/GPS.InstalledDevice.js index e087f3a..a967f8d 100644 --- a/server/controllers/GPS.InstalledDevice.js +++ b/server/controllers/GPS.InstalledDevice.js @@ -1,8 +1,7 @@ const { body, param, validationResult } = require('express-validator') const { checkValidations } = require('../plugins/controllersHelperFunctions') -const User = require('../models/GPS.User') 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 Settings = require('../models/GPS.Settings') const Score = require('../models/GPS.Score') @@ -17,7 +16,7 @@ module.exports.deviceRegistration = [ const IMEI = req.body.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) return res.status(500).json({ msg: 'خطا در دریافت اطلاعات از دیتابیس ثبت دستگاه' }) }) @@ -217,45 +216,65 @@ module.exports.updateInstalled = [ ], checkValidations(validationResult), async (req, res) => { + console.log('updateInstalled ******************', req.params.id, req.params.type) const installedDevice = await InstalledDevice.findById(req.params.id) if (!installedDevice) { return res.status(404).json({ msg: 'این ایدی وجود ندارد' }) } else { - const user = await User.findById(installedDevice.userId).select('walletBalance score totalScore') - const device = await Device.findById(installedDevice.deviceId) + console.log('installedDevice ******************') + // const user = await User.findById(installedDevice.userId).select('walletBalance score totalScore') switch (req.params.type) { - case 'accept': { - installedDevice.status = 1 - installedDevice.installationDate = new Date() - device.status = 1 + // case 'accept': { + // installedDevice.status = 1 + // installedDevice.installationDate = new Date() + // // device.status = 1 - user.walletBalance += device.profit - // user.dollarBalance += device.dollarProfit - user.totalScore += device.score - user.score += device.score + // // user.walletBalance += device.profit + // // user.dollarBalance += device.dollarProfit + // // user.totalScore += device.score + // // user.score += device.score - await Score.create({ - title: 'ثبت دستگاه', - deviceId: device.id, - score: device.score, - userId: installedDevice.userId - }) - user.save() - device.save() - installedDevice.save() - notifyAdmin('newInstallDeviceRequest') + // await Score.create({ + // title: 'ثبت دستگاه', + // deviceId: device.id, + // score: device.score, + // userId: installedDevice.userId + // }) + // user.save() + // device.save() + // installedDevice.save() + // 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': { + console.log('reject ******************') installedDevice.status = 2 - installedDevice.save() - device.status = 0 - device.save() - notifyAdmin('newInstallDeviceRequest') + await installedDevice.save() + console.log('installedDevice saved ******************') + // 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 }) break