Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ set(SHARED_SOURCES
view/SplashScreen/nativesplash.cpp
view/SplashScreen/nativesplash.h
view/SplashScreen/nativesplash.ui
module/scanner/WorkAlert.cpp
module/scanner/WorkAlert.h
view/RegisterCenter/registernewuser.cpp
view/RegisterCenter/registernewuser.h
view/RegisterCenter/registernewuser.ui
Expand Down
2 changes: 2 additions & 0 deletions main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@
#include "view/RegisterCenter/checknewuser.h"
#include "view/SplashScreen/nativesplash.h"
//#include "view/SplashScreen/splashscreen.h"
#include "module/scanner/WorkAlert.h"

void setup_tasks() {
// 后台定时每1分钟扫描库存告警
service::taskManager::getTimer().scheduleTask(60000, []() {
bot::InventoryAlert::sendAlert();
bot::WorkAlert::sendAdminCheckNewUserAlert();
});
}

Expand Down
19 changes: 15 additions & 4 deletions module/data/data_UserControl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,7 @@ namespace data::UserControl {
QList<int> getAllUserId(int page, int pageSize) {
service::DatabaseManager db(service::Path::user());
QString query = R"(
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE '-%'
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE 'System%'
ORDER BY created_at DESC
LIMIT ? OFFSET ?
)";
Expand All @@ -735,7 +735,7 @@ namespace data::UserControl {
QList<int> getUncheckedUserId(int page, int pageSize) {
service::DatabaseManager db(service::Path::user());
QString query = R"(
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE '-%'
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE 'System%'
ORDER BY created_at DESC
LIMIT ? OFFSET ?
)";
Expand All @@ -751,7 +751,7 @@ namespace data::UserControl {
QList<int> getAllUserId() {
service::DatabaseManager db(service::Path::user());
QString query = R"(
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE '-%'
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE 'System%'
)";
auto results = db.executePreparedQueryAndFetchAll(query, {});
QList<int> userIds;
Expand All @@ -764,7 +764,7 @@ namespace data::UserControl {
QList<int> getUncheckedUserId() {
service::DatabaseManager db(service::Path::user());
QString query = R"(
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE '-%'
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE 'System%'
)";
auto results = db.executePreparedQueryAndFetchAll(query, {});
QList<int> userIds;
Expand Down Expand Up @@ -835,6 +835,17 @@ namespace data::UserControl {
return true;
}

bool rejectUserRegister(int userId) {
service::DatabaseManager db(service::Path::user());
QString query = R"(
UPDATE users SET status = 'Rejected' WHERE id = ? AND status = 'Unchecked'
)";
if (!db.executePreparedNonQuery(query, {userId})) {
return false;
}
return true;
}

QString getUserStatus(int userId) {
service::DatabaseManager db(service::Path::user());
QString query = R"(
Expand Down
1 change: 1 addition & 0 deletions module/data/data_UserControl.h
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,7 @@ namespace data::UserControl {
bool banUser(int userId);

bool unbanUser(int userId);
bool rejectUserRegister(int userId);

QString getUserStatus(int userId);
}
Expand Down
7 changes: 4 additions & 3 deletions module/data/data_mail.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,13 @@ namespace data::mail {
}

void registerSystemUser() {
data::UserControl::Login::createNewUser("-1", "库存预警", "huidbauiuicbabiabduiab", "System");
data::UserControl::Login::createNewUser("-2", "LabNexus团队", "bcfuiasbiasuibcviuab", "System");
data::UserControl::Login::createNewUser("System_3", "库存预警", "huidbauiuicbabiabduiab", "System");
data::UserControl::Login::createNewUser("System_2", "LabNexus团队", "bcfuiasbiasuibcviuab", "System");
data::UserControl::Login::createNewUser("System_1", "工作提醒", "bcfuiasbiasuibcviuab", "System");
}

void findSystemUser() {
std::vector<QString> searchIds = {"-1","-2"};
std::vector<QString> searchIds = {"System_1", "System_2", "System_3",};
for (QString id : searchIds) {
auto userNameResult = data::UserControl::UserInfo::getUserNameByIdNumber(id);
auto id2 = data::UserControl::Login::foundUserIdByIdNumber(id);
Expand Down
4 changes: 3 additions & 1 deletion module/scanner/InventoryAlert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@

namespace bot::InventoryAlert {
void sendAlert() {
service::DatabaseManager db(service::Path::equipment());
if (!data::UserControl::permission::isUserInGroup(data::UserControl::currentUserId, "Admin")) return;

service::DatabaseManager db(service::Path::equipment());

QString query = R"(
SELECT
Expand Down
20 changes: 20 additions & 0 deletions module/scanner/WorkAlert.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//
// Created by gouzuang on 25-7-13.
//

#include "WorkAlert.h"

#include "module/data/data_mail.h"

namespace bot::WorkAlert {
void sendAdminCheckNewUserAlert() {
if (!data::UserControl::permission::isUserInGroup(data::UserControl::currentUserId, "Admin")) return;
auto count = data::UserControl::check::getUncheckedUserCount();
if (count == 0) return;
data::mail::send_mail(data::mail::systemReservedAccounts["工作提醒"],
data::UserControl::currentUserId,
"还有" + QString::number(count) + "个新用户待审核",
"请前往注册中心查看新用户信息并进行审核。",
"{}");
}
}
11 changes: 11 additions & 0 deletions module/scanner/WorkAlert.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
//
// Created by gouzuang on 25-7-13.
//

#ifndef WORKALERT_H
#define WORKALERT_H

namespace bot::WorkAlert {
void sendAdminCheckNewUserAlert();
}
#endif //WORKALERT_H
5 changes: 5 additions & 0 deletions view/RegisterCenter/checkuserblock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ namespace view::RegisterCenter {
}

connect(&acceptButton, &QPushButton::clicked, this, &CheckUserBlock::AcceptCheck);
connect(&rejectButton, &QPushButton::clicked, this, &CheckUserBlock::RejectCheck);
}

CheckUserBlock::~CheckUserBlock() {
Expand Down Expand Up @@ -137,6 +138,10 @@ namespace view::RegisterCenter {
rejectButton.setStyleSheet(styleSheet2);
}

void CheckUserBlock::RejectCheck() {
data::UserControl::check::rejectUserRegister(userId);
}

void CheckUserBlock::AcceptCheck() {
if (data::UserControl::check::allowUserRegister(userId)) {
acceptButton.setVisible(false);
Expand Down
Loading