From b0566dd807e23c831945dd14762a895b46b7e102 Mon Sep 17 00:00:00 2001 From: Mr Swift Date: Sun, 25 Aug 2024 16:16:45 +0330 Subject: [PATCH] installed device page --- components/admin/TheSidebar.vue | 2 +- pages/admin/gps/installed-device/index.vue | 233 ++++++++++++++++++++ pages/admin/gps/users/index.vue | 4 +- pages/admin/gps/withdraw/Index.vue | 234 +++++++++++++++++++++ server/controllers/GPS.Device.js | 60 +++--- server/controllers/GPS.InstalledDevice.js | 51 +++-- server/controllers/complaintController.js | 2 +- 7 files changed, 527 insertions(+), 59 deletions(-) create mode 100644 pages/admin/gps/installed-device/index.vue create mode 100644 pages/admin/gps/withdraw/Index.vue diff --git a/components/admin/TheSidebar.vue b/components/admin/TheSidebar.vue index df1309e..5b41c81 100644 --- a/components/admin/TheSidebar.vue +++ b/components/admin/TheSidebar.vue @@ -351,7 +351,7 @@ diff --git a/pages/admin/gps/installed-device/index.vue b/pages/admin/gps/installed-device/index.vue new file mode 100644 index 0000000..b7b983f --- /dev/null +++ b/pages/admin/gps/installed-device/index.vue @@ -0,0 +1,233 @@ + + + + diff --git a/pages/admin/gps/users/index.vue b/pages/admin/gps/users/index.vue index 0bd6a89..f6618fe 100644 --- a/pages/admin/gps/users/index.vue +++ b/pages/admin/gps/users/index.vue @@ -24,9 +24,9 @@ {{ - $route.query?.type == 'req' ? 'Cancel' : 'Close' + $route.query?.type == 'req' ? 'بستن' : 'بستن' }} - Confirm + تایید diff --git a/pages/admin/gps/withdraw/Index.vue b/pages/admin/gps/withdraw/Index.vue new file mode 100644 index 0000000..7b305ed --- /dev/null +++ b/pages/admin/gps/withdraw/Index.vue @@ -0,0 +1,234 @@ + + + + + \ No newline at end of file diff --git a/server/controllers/GPS.Device.js b/server/controllers/GPS.Device.js index 2e977b3..df41f2f 100644 --- a/server/controllers/GPS.Device.js +++ b/server/controllers/GPS.Device.js @@ -171,38 +171,42 @@ module.exports.updateDevice = [ const creator = (exel) => { return new Promise(async (resolve, reject) => { - for (const row of exel) { - // eslint-disable-next-line no-constant-condition - if (/^[0-9]{15}$/gm.test(row[0].toString().trim())) { - const device = await Device.findOne({ IMEI: row[0] }) - if (device) { - console.info("Repeated IMEI ", row[0]) - - device.model = row[1] - device.tomanPrice = row[2] - device.dollarProfit = row[3] || 1 - device.profit = row[4] || 1 - device.score = row[5] || 1 - device.renewalProfit = row[6] || 1 - device.save() + try { + for (const row of exel) { + // eslint-disable-next-line no-constant-condition + if (/^[0-9]{15}$/gm.test(row[0].toString().trim())) { + const device = await Device.findOne({ IMEI: row[0].trim() }) + if (device) { + console.info("Repeated IMEI ", row[0]) + + device.model = row[1] + device.tomanPrice = row[2] + device.dollarProfit = row[3] || 1 + device.profit = row[4] || 1 + device.score = row[5] || 1 + device.renewalProfit = row[6] || 1 + device.save() + } else { + await Device.create( + { + IMEI: row[0].trim(), + model: row[1], + tomanPrice: row[2], + dollarProfit: row[3] || 1, + profit: row[4] || 1, + score: row[5] || 1, + renewalProfit: row[6] || 1 + } + ) + } } else { - await Device.create( - { - IMEI: row[0], - model: row[1], - tomanPrice: row[2], - dollarProfit: row[3] || 1, - profit: row[4] || 1, - score: row[5] || 1, - renewalProfit: row[6] || 1 - } - ) + console.warn("Wrong IMEI ", row[0]) } - } else { - console.warn("Wrong IMEI ", row[0]) } + resolve("end") + } catch (error) { + reject(error.message) } - resolve("end") }) } diff --git a/server/controllers/GPS.InstalledDevice.js b/server/controllers/GPS.InstalledDevice.js index d2838f2..66fbbed 100644 --- a/server/controllers/GPS.InstalledDevice.js +++ b/server/controllers/GPS.InstalledDevice.js @@ -4,6 +4,7 @@ const User = require('../models/User'); const InstalledDevice = require('../models/GPS.InstalledDevice'); const Device = require('../models/GPS.Device'); const Score = require('../models/GPS.Score'); +const { _sr } = require('../plugins/serverResponses'); module.exports.deviceRegistration = [ [ @@ -72,32 +73,28 @@ module.exports.getAllForUser = async (req, res) => { } module.exports.getAllForAdmin = async (req, res) => { - let page; - let rows; - if (!req.query?.rows || req.query?.rows <= 5) { - rows = 10 - } else { - rows = parseInt(req.query.rows) - } + // let page; + // let rows; + // if (!req.query?.rows || req.query?.rows <= 5) { + // rows = 10 + // } else { + // rows = parseInt(req.query.rows) + // } - if (!req.query?.page) { - page = 0 - // eslint-disable-next-line eqeqeq - } else if (req.query.page <= 1) { - page = 0 - } else { - page = req.query.page - page = page * rows - rows - } - const search = req.query?.search ? req.query.search : "" + // if (!req.query?.page) { + // page = 0 + // // eslint-disable-next-line eqeqeq + // } else if (req.query.page <= 1) { + // page = 0 + // } else { + // page = req.query.page + // page = page * rows - rows + // } + // const search = req.query?.search ? req.query.search : "" - const data = await InstalledDevice.find({ - $or: [ - { IMEI: { $regex: search } }, - ] - }).sort({ status: 1 }).skip(page).limit(rows) + const data = await InstalledDevice.find({}).sort({ status: 1 }) .populate('deviceId') - .populate('userId', 'shopName shopNumber shopAddress birthDate score first_name last_name profilePic') + .populate('userId', 'shopName national_code first_name last_name mobile_number city_name province_name') const total = Math.ceil((await InstalledDevice.estimatedDocumentCount())) res.status(200).json({ data, total }) } @@ -139,8 +136,8 @@ module.exports.updateInstalled = [ user.save() device.save() installedDevice.save() - // res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice }) - res.status(200).json(installedDevice) + res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice }) + break; } @@ -149,8 +146,8 @@ module.exports.updateInstalled = [ installedDevice.save() device.status = 0; device.save() - // res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice }) - res.status(200).json(installedDevice) + res.status(201).json({ msg: _sr.fa.response.success_save, data: installedDevice }) + break; } diff --git a/server/controllers/complaintController.js b/server/controllers/complaintController.js index d4de388..04d4be0 100644 --- a/server/controllers/complaintController.js +++ b/server/controllers/complaintController.js @@ -75,7 +75,7 @@ const { fullName, national, phoneNumber, email, receptionCode, caption } = req. module.exports.getsComplaint = [ async(req, res)=>{ - const complaints = await Complaint.find({type:0}).populate('user', 'first_name last_name personalCode') + const complaints = await Complaint.find({type:0}).populate('user', 'first_name last_name personalCode').sort({created_at:-1, read:-1}) res.status(200).json(complaints)