Skip to content

Commit e9eca0a

Browse files
authored
Merge pull request #82 from JunWang666/bot_workalert
Bot workalert
2 parents 4b79c5b + 0fb4634 commit e9eca0a

9 files changed

Lines changed: 63 additions & 8 deletions

File tree

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ set(SHARED_SOURCES
143143
view/SplashScreen/nativesplash.cpp
144144
view/SplashScreen/nativesplash.h
145145
view/SplashScreen/nativesplash.ui
146+
module/scanner/WorkAlert.cpp
147+
module/scanner/WorkAlert.h
146148
view/RegisterCenter/registernewuser.cpp
147149
view/RegisterCenter/registernewuser.h
148150
view/RegisterCenter/registernewuser.ui

main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@
2222
#include "view/RegisterCenter/checknewuser.h"
2323
#include "view/SplashScreen/nativesplash.h"
2424
//#include "view/SplashScreen/splashscreen.h"
25+
#include "module/scanner/WorkAlert.h"
2526

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

module/data/data_UserControl.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ namespace data::UserControl {
717717
QList<int> getAllUserId(int page, int pageSize) {
718718
service::DatabaseManager db(service::Path::user());
719719
QString query = R"(
720-
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE '-%'
720+
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE 'System%'
721721
ORDER BY created_at DESC
722722
LIMIT ? OFFSET ?
723723
)";
@@ -735,7 +735,7 @@ namespace data::UserControl {
735735
QList<int> getUncheckedUserId(int page, int pageSize) {
736736
service::DatabaseManager db(service::Path::user());
737737
QString query = R"(
738-
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE '-%'
738+
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE 'System%'
739739
ORDER BY created_at DESC
740740
LIMIT ? OFFSET ?
741741
)";
@@ -751,7 +751,7 @@ namespace data::UserControl {
751751
QList<int> getAllUserId() {
752752
service::DatabaseManager db(service::Path::user());
753753
QString query = R"(
754-
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE '-%'
754+
SELECT id FROM users WHERE status != 'Deleted' AND id_number NOT LIKE 'System%'
755755
)";
756756
auto results = db.executePreparedQueryAndFetchAll(query, {});
757757
QList<int> userIds;
@@ -764,7 +764,7 @@ namespace data::UserControl {
764764
QList<int> getUncheckedUserId() {
765765
service::DatabaseManager db(service::Path::user());
766766
QString query = R"(
767-
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE '-%'
767+
SELECT id FROM users WHERE status == 'Unchecked' AND id_number NOT LIKE 'System%'
768768
)";
769769
auto results = db.executePreparedQueryAndFetchAll(query, {});
770770
QList<int> userIds;
@@ -835,6 +835,17 @@ namespace data::UserControl {
835835
return true;
836836
}
837837

838+
bool rejectUserRegister(int userId) {
839+
service::DatabaseManager db(service::Path::user());
840+
QString query = R"(
841+
UPDATE users SET status = 'Rejected' WHERE id = ? AND status = 'Unchecked'
842+
)";
843+
if (!db.executePreparedNonQuery(query, {userId})) {
844+
return false;
845+
}
846+
return true;
847+
}
848+
838849
QString getUserStatus(int userId) {
839850
service::DatabaseManager db(service::Path::user());
840851
QString query = R"(

module/data/data_UserControl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ namespace data::UserControl {
311311
bool banUser(int userId);
312312

313313
bool unbanUser(int userId);
314+
bool rejectUserRegister(int userId);
314315

315316
QString getUserStatus(int userId);
316317
}

module/data/data_mail.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@ namespace data::mail {
2424
}
2525

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

3132
void findSystemUser() {
32-
std::vector<QString> searchIds = {"-1","-2"};
33+
std::vector<QString> searchIds = {"System_1", "System_2", "System_3",};
3334
for (QString id : searchIds) {
3435
auto userNameResult = data::UserControl::UserInfo::getUserNameByIdNumber(id);
3536
auto id2 = data::UserControl::Login::foundUserIdByIdNumber(id);

module/scanner/InventoryAlert.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
namespace bot::InventoryAlert {
1010
void sendAlert() {
11-
service::DatabaseManager db(service::Path::equipment());
11+
if (!data::UserControl::permission::isUserInGroup(data::UserControl::currentUserId, "Admin")) return;
12+
13+
service::DatabaseManager db(service::Path::equipment());
1214

1315
QString query = R"(
1416
SELECT

module/scanner/WorkAlert.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//
2+
// Created by gouzuang on 25-7-13.
3+
//
4+
5+
#include "WorkAlert.h"
6+
7+
#include "module/data/data_mail.h"
8+
9+
namespace bot::WorkAlert {
10+
void sendAdminCheckNewUserAlert() {
11+
if (!data::UserControl::permission::isUserInGroup(data::UserControl::currentUserId, "Admin")) return;
12+
auto count = data::UserControl::check::getUncheckedUserCount();
13+
if (count == 0) return;
14+
data::mail::send_mail(data::mail::systemReservedAccounts["工作提醒"],
15+
data::UserControl::currentUserId,
16+
"还有" + QString::number(count) + "个新用户待审核",
17+
"请前往注册中心查看新用户信息并进行审核。",
18+
"{}");
19+
}
20+
}

module/scanner/WorkAlert.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
//
2+
// Created by gouzuang on 25-7-13.
3+
//
4+
5+
#ifndef WORKALERT_H
6+
#define WORKALERT_H
7+
8+
namespace bot::WorkAlert {
9+
void sendAdminCheckNewUserAlert();
10+
}
11+
#endif //WORKALERT_H

view/RegisterCenter/checkuserblock.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ namespace view::RegisterCenter {
3434
}
3535

3636
connect(&acceptButton, &QPushButton::clicked, this, &CheckUserBlock::AcceptCheck);
37+
connect(&rejectButton, &QPushButton::clicked, this, &CheckUserBlock::RejectCheck);
3738
}
3839

3940
CheckUserBlock::~CheckUserBlock() {
@@ -137,6 +138,10 @@ namespace view::RegisterCenter {
137138
rejectButton.setStyleSheet(styleSheet2);
138139
}
139140

141+
void CheckUserBlock::RejectCheck() {
142+
data::UserControl::check::rejectUserRegister(userId);
143+
}
144+
140145
void CheckUserBlock::AcceptCheck() {
141146
if (data::UserControl::check::allowUserRegister(userId)) {
142147
acceptButton.setVisible(false);

0 commit comments

Comments
 (0)