unknown
2025-09-10 a4fc45393e242f15517f9347f95e55c77887b332
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#ifndef STRUCT_DATA_H
#define STRUCT_DATA_H
 
/* 使用枚举,表示类型和功能 */
enum TypeInfo {
    LOGIN_REQ,  // 登录请求
    LOGIN_RES,  // 登录响应
 
    REGISTER_REQ,//注册请求
    REGISTER_RES,//注册响应
 
    HEART_CHECK_REQ, // 心跳检测请求
    HEART_CHECK_RES, // 心跳检测响应
 
    TEST, // 柔性数组的类型
    TEST_NEXT, // 指针不定长类型
};
 
/* 报文头 */
struct Head{
    int type;//区分类型
    int len; //表示封包长度
};
 
/* 权限 */
struct Permission
{
    int admin; // 管理员权限
    int history; // 历史查询
    int log_search; // 日志查询权限
    int map_change; // 地图修改
    int attend_manage; // 考勤管理
    int device_manage; // 设备管理
    int version_manage; // 版本管理
    int notify_manage; // 通知管理
    int image_input; // 图像录入
    int monitor_back; // 后台监控
};
 
/* 登录请求 */
struct  LoginReq
{
    Head head;
    char user_name[32];
    char password[32];
 
    LoginReq(){
        head.type = LOGIN_REQ;
        head.len = sizeof(LoginReq);
    }
};
 
/* 登录响应 */
struct LoginRes
{
    Head head;
    char user_name[32];
    int emp_id;//返回工号
    int status;
    Permission per;//权限对象
 
    LoginRes() {
        head.type = LOGIN_RES;
        head.len = sizeof(LoginRes);
    }
};
 
/* 注册请求 */
struct  RegisterReq
{
    Head head;
    char user_name[32];
    char password[32];
    char email[32];
    char telephone[32];
    char department[32];
 
    RegisterReq(){
        head.type = REGISTER_REQ;
        head.len = sizeof(RegisterReq);
    }
};
 
/* 注册响应 */
struct RegisterRes
{
    Head head;
    char user_name[32];
    int emp_id;//返回工号
    int status;
    Permission per;//权限对象
    char res_info[100];
 
    RegisterRes() {
        head.type = REGISTER_RES;
        head.len = sizeof(RegisterRes);
    }
};
 
/*
        经过协商,客户端Qt界面·用户信息的结构体
 
        struct User {
            QString username;        //ok
            QString password;        //ok
            QString email;            //ok
            QString phone;            //ok
            QString department;        //ok
            QString permission;        //default【注册默认只有最基本的权限】[可以提前写入]
            QString status;            //default【注册默认状态1】[可以提前写入]
            QDate registerDate;        //default【注册默认当前时间】[是不是应该在数据库写入?]
        };
 
        个人理解:把这个结构体封装到注册请求包中
*/
 
#endif // STRUCT_DATA_H