Mod aaa-12 新增查询用户列表、查询用户详情

RCA:
SOL:
修改人:zhouzian
检视人:zhouzian
This commit is contained in:
zhouzian 2019-08-15 17:44:52 +08:00
parent 6eb7bb65ab
commit 32065fc0bb
11 changed files with 1125 additions and 164 deletions

View File

@ -9,6 +9,7 @@
#include "usermanager-server/include/array_index.h"
#include "s2j/s2j.h"
#include "s2j/s2jdef.h"
#include "database.h"
@ -18,15 +19,420 @@ ret_code user_config_chk(uint source, uint *config_type,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
cJSON *root, *type_json, *data_json;
int fun_type;
if(NULL == input || NULL == input_len || NULL == output || NULL == output_len)
{
ret = RET_INPUTERR;
//ASSERT_RET(ret);
return ret;
}
if(*input_len < strlen(input))
{
ret = RET_INPUTERR;
return ret;
}
root = cJSON_Parse(input);
if(!root)
{
ret = RET_INPUTERR;
return ret;
}
type_json = cJSON_GetObjectItem(root, "type");
if(!type_json)
{
cJSON_Delete(root);
ret = RET_INPUTERR;
return ret;
}
data_json = cJSON_GetObjectItem(root, "data");
if(!data_json)
{
cJSON_Delete(root);
ret = RET_INPUTERR;
return ret;
}
cJSON_Delete(root);
return ret;
}
/*
* uuid查询用户详情-
* iuput格式
{
"type": 3, //3表示根据用户id查询用户详情
"data": {
"user_id": 2 //用户idint类型
}
}
* output格式
{
"retcode": 0,
"message": "查询成功",
"data":[{
"ID": 2, //用户id
"GID": 3, //用户组id
"uname": "xxx", //用户名
"gname": "xxx", //用户组名
"udescription": "xxx", //用户描述
"multi": 0,
"valid": 0,
"valid_begin_time": "2013-07-04 15:04:23",
"valid_end_time": "2020-07-04 15:04:23"
}]
}
* 01
*/
static ret_code user_config_get_detail_proc(uint source, uint config_type,
pointer input, int input_len,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
char * data_detail = NULL;
char * ret_char = NULL;
int group_uuid;
/* 解析json串 */
cJSON * root = cJSON_Parse(input);
cJSON * data = cJSON_GetObjectItem(root, "data");
if(!data)
{
ret = RET_INPUTERR;
cJSON_Delete(root);
return ret;
}
cJSON * user_uuid = cJSON_GetObjectItem(data, "user_id");
if(!user_uuid)
{
ret = RET_INPUTERR;
cJSON_Delete(root);
return ret;
}
/* 执行查询函数 */
bool ret_get = get_user_detail_by_user_uuid(user_uuid->valueint, &data_detail);
cJSON_Delete(root);
cJSON * ret_root = cJSON_CreateObject();
if (NULL == ret_root)
{
UCHAR_FREE(data_detail);
ret = RET_ERR;
return ret;
}
/* 查询失败 */
if (!ret_get)
{
cJSON_AddNumberToObject(ret_root, "retcode", 1);
cJSON_AddStringToObject(ret_root, "message", "查询失败");
cJSON_AddStringToObject(ret_root, "data", "");
ret_char = cJSON_PrintUnformatted(ret_root);
memcpy(output, ret_char, strlen(ret_char)+1);
*output_len = strlen(ret_char)+1;
UCHAR_FREE(data_detail); //释放函数内部申请的内存
UCHAR_FREE(ret_char);
cJSON_Delete(ret_root);
return ret;
}
/* 查询成功 */
cJSON * list_obj = cJSON_Parse(data_detail);
if (NULL == list_obj)
{
UCHAR_FREE(data_detail); //释放函数内部申请的内存
cJSON_Delete(ret_root);
ret = RET_ERR;
return ret;
}
cJSON * list_data = cJSON_GetObjectItem(list_obj, "data");
if (NULL == list_data)
{
UCHAR_FREE(data_detail); //释放函数内部申请的内存
cJSON_Delete(ret_root);
cJSON_Delete(list_obj);
ret = RET_ERR;
return ret;
}
cJSON_AddItemToObject(ret_root, "data", list_data);
cJSON_AddNumberToObject(ret_root, "retcode", 0);
cJSON_AddStringToObject(ret_root, "message", "查询成功");
ret_char = cJSON_PrintUnformatted(ret_root);
memcpy(output, ret_char, strlen(ret_char)+1);
*output_len = strlen(ret_char)+1;
cJSON_DetachItemFromObjectCaseSensitive(list_obj,"data");
cJSON_DetachItemFromObjectCaseSensitive(ret_root,"data");
UCHAR_FREE(data_detail);
UCHAR_FREE(ret_char);
cJSON_Delete(list_obj);
cJSON_Delete(ret_root);
return ret;
}
/*
* uuid-
* iuput格式
{
"type": 7, //7表示查询用户名重名
"data": {
"uname": "xxx"
}
}
* output格式
{
"retcode": 0,
"message": "查询成功",
"data": {
"user_id": 3 //user_id为0时表示该用户名不存在
}
}
* 01
*/
static ret_code user_config_get_uuid_proc(uint source, uint config_type,
pointer input, int input_len,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
unsigned short user_uuid;
cJSON * root = cJSON_Parse(input);
cJSON * data = cJSON_GetObjectItem(root, "data");
cJSON * user_name = cJSON_GetObjectItem(data, "uname");
if (!user_name)
{
cJSON_Delete(root);
ret = RET_ERR;
return ret;
}
/* 查询操作 */
bool ret_get = get_user_uuid_by_name(user_name->valuestring, &user_uuid);
cJSON_Delete(root);
cJSON * ret_root = cJSON_CreateObject();
if (!ret_root)
{
ret = RET_ERR;
return ret;
}
if (ret_get)
{
cJSON_AddNumberToObject(ret_root, "retcode", 0);
cJSON_AddStringToObject(ret_root, "message", "查询成功");
cJSON * ret_data;
cJSON_AddItemToObject(ret_root, "data", ret_data = cJSON_CreateObject());
cJSON_AddNumberToObject(ret_data, "user_id", user_uuid);
}else
{
cJSON_AddNumberToObject(ret_root, "retcode", 1);
cJSON_AddStringToObject(ret_root, "message", "查询失败");
cJSON_AddStringToObject(ret_root, "data", "");
}
char * ret_char = cJSON_PrintUnformatted(ret_root);
memcpy(output, ret_char, strlen(ret_char)+1);
*output_len = strlen(ret_char)+1;
cJSON_Delete(ret_root);
UCHAR_FREE(ret_char);
return ret;
}
/*
* -
* iuput格式
{
"type": 4, //4表示查询用户列表
"data": {
"group_id": 3, //用户组id
"user_name": "xxx", //用户名
"page_start": 1, //第1页
"page_counts": 10 //每页10条
}
}
* output格式
{
"retcode": 0,
"message": "查询成功",
"data": [{
"ID": 2,
"GID": 3,
"uname": "xxx",
"gname": "xxx",
"udescription": "xxx",
"multi": 0,
"valid": 0,
"valid_begin_time": "2013-07-04 15:04:23",
"valid_end_time": "2020-07-04 15:04:23"
}
]
}
* 01
*/
static ret_code user_config_get_list_proc(uint source, uint config_type,
pointer input, int input_len,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
char * data_list = NULL;
char * ret_char = NULL;
int group_uuid;
/* 解析json串 */
cJSON * root = cJSON_Parse(input);
cJSON * data = cJSON_GetObjectItem(root, "data");
if(!data)
{
ret = RET_INPUTERR;
cJSON_Delete(root);
return ret;
}
cJSON * group_id = cJSON_GetObjectItem(data, "group_id");
if(!group_id)
{
group_uuid = 0;
}else
{
group_uuid = group_id->valueint;
}
cJSON * user_name = cJSON_GetObjectItem(data, "user_name");
if(!user_name)
{
ret = RET_INPUTERR;
cJSON_Delete(root);
return ret;
}
cJSON * page_start = cJSON_GetObjectItem(data, "page_start");
if(!page_start)
{
ret = RET_INPUTERR;
cJSON_Delete(root);
return ret;
}
cJSON * page_counts = cJSON_GetObjectItem(data, "page_counts");
if(!page_counts)
{
ret = RET_INPUTERR;
cJSON_Delete(root);
return ret;
}
/* 执行查询函数 */
bool ret_get = useraccount_showlist(group_uuid, user_name->valuestring, page_start->valueint, page_counts->valueint, &data_list);
cJSON_Delete(root);
cJSON * ret_root = cJSON_CreateObject();
if (NULL == ret_root)
{
UCHAR_FREE(data_list);
ret = RET_ERR;
return ret;
}
/* 查询失败 */
if (!ret_get)
{
cJSON_AddNumberToObject(ret_root, "retcode", 1);
cJSON_AddStringToObject(ret_root, "message", "查询失败");
cJSON_AddStringToObject(ret_root, "data", "");
ret_char = cJSON_PrintUnformatted(ret_root);
memcpy(output, ret_char, strlen(ret_char)+1);
*output_len = strlen(ret_char)+1;
UCHAR_FREE(data_list);
UCHAR_FREE(ret_char);
cJSON_Delete(ret_root);
return ret;
}
/* 查询成功 */
cJSON * list_obj = cJSON_Parse(data_list);
if (NULL == list_obj)
{
UCHAR_FREE(data_list);
cJSON_Delete(ret_root);
ret = RET_ERR;
return ret;
}
cJSON * list_data = cJSON_GetObjectItem(list_obj, "data");
if (NULL == list_data)
{
UCHAR_FREE(data_list);
cJSON_Delete(ret_root);
cJSON_Delete(list_obj);
ret = RET_ERR;
return ret;
}
cJSON_AddItemToObject(ret_root, "data", list_data);
cJSON_AddNumberToObject(ret_root, "retcode", 0);
cJSON_AddStringToObject(ret_root, "message", "查询成功");
ret_char = cJSON_PrintUnformatted(ret_root);
memcpy(output, ret_char, strlen(ret_char)+1);
*output_len = strlen(ret_char)+1;
cJSON_DetachItemFromObjectCaseSensitive(list_obj,"data");
cJSON_DetachItemFromObjectCaseSensitive(ret_root,"data");
UCHAR_FREE(data_list);
UCHAR_FREE(ret_char);
cJSON_Delete(list_obj);
cJSON_Delete(ret_root);
return ret;
}
/*
* -
* iuput格式{"type": 0,"data": {"uname": "xxx","gname": "xxx","multi": "0","valid": "1","valid_begin_time": "xx","valid_end_time": "xx"}}
* output格式{"result": 0,"user_id": 2}
* iuput格式
{
"type": 0, //0表示新增用户
"data": {
"uname": "xxx", //必填
"gname": "xxx", //必填
"udesp": "xxx", //选填
"pwd": "A31as%4Gb", //密码,默认密码
"multi": 0, //0允许多人登陆、1不允许多人登陆
"valid": 1, //0永久有效、1在下面两个时间范围内有效
"valid_begin_time": "2013-07-04 15:04:23",
"valid_end_time": "2020-07-04 15:04:23"
}
}
* output格式
{
"retcode": 0,
"message": "新增成功",
"data": "" //空
}
* 0
* 1/2/3/4/512345
* 1/2/3/4/5/6/712345(100)67:
* id为0
*/
static ret_code user_config_add_proc(uint source, uint config_type,
@ -34,12 +440,13 @@ static ret_code user_config_add_proc(uint source, uint config_type,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
cJSON *root, *data, *uname, *gname, *res, *udesp, *multi, *valid, *valid_begin_time, *valid_end_time;
USERADD *add_user_ret;
cJSON *root, *data, *uname, *gname, *res, *pwd, *udesp, *multi, *valid, *valid_begin_time, *valid_end_time;
USERADD add_user_ret;
USERLIST *user_account;
char *ret_char = NULL;
char *temp_begin_time, *temp_end_time, *temp_udesp;
char *temp_begin_time, *temp_end_time, *temp_udesp, *temp_pwd;
int temp_multi, temp_valid;
char *message[] = {"新增成功","用户组名不存在","用户名长度不符合","用户名中包含特殊字符","用户名重名","用户数已达到最大(最大用户数100)","数据库操作失败","系统错误"};
/* 解析json串 */
root = cJSON_Parse(input);
@ -79,6 +486,14 @@ static ret_code user_config_add_proc(uint source, uint config_type,
temp_udesp = udesp->valuestring;
}
pwd = cJSON_GetObjectItem(data, "pwd");
if(!pwd)
{
temp_pwd = "";
}else
{
temp_pwd = pwd->valuestring;
}
multi = cJSON_GetObjectItem(data, "multi");
if(!multi)
@ -124,31 +539,7 @@ static ret_code user_config_add_proc(uint source, uint config_type,
}
/* 执行操作 */
add_user_ret = (USERADD*)malloc(sizeof(USERADD));
if (NULL == add_user_ret)
{
// 记录日志
ret = RET_ERR;
//ASSERT_RET(ret);
cJSON_Delete(root);
return ret;
}
usermanager_add_user(uname->valuestring, gname->valuestring, temp_udesp, temp_multi, temp_valid, temp_begin_time, temp_end_time, add_user_ret); //新增用户
// if(ADDUSER_SUCCESS == add_user_ret->result)
// {
// if(1 == atoi(multi->valuestring))
// {
// mod_user_line(uname->valuestring, 3, multi->valuestring);
// }
// if(1 == atoi(valid->valuestring))
// {
// mod_user_line(uname->valuestring, 4, valid->valuestring);
// mod_user_line(uname->valuestring, 5, valid_begin_time->valuestring);
// mod_user_line(uname->valuestring, 6, valid_end_time->valuestring);
// }
// }
usermanager_add_user(uname->valuestring, gname->valuestring, temp_udesp, temp_pwd, temp_multi, temp_valid, temp_begin_time, temp_end_time, &add_user_ret); //新增用户
/* 处理返回结果 */
res = cJSON_CreateObject();
@ -158,15 +549,16 @@ static ret_code user_config_add_proc(uint source, uint config_type,
// ASSERT_RET(ret);
return ret;
}
cJSON_AddNumberToObject(res, "result", add_user_ret->result);
cJSON_AddNumberToObject(res, "user_id", add_user_ret->userID);
cJSON_AddNumberToObject(res, "retcode", add_user_ret.result);
cJSON_AddStringToObject(res, "message", message[add_user_ret.result]);
cJSON_AddStringToObject(res, "data", "");
ret_char = cJSON_PrintUnformatted(res);
memcpy(output, ret_char, strlen(ret_char)+1);
*output_len = strlen(ret_char)+1;
/* 释放内存 */
cJSON_Delete(root);
cJSON_Delete(res);
UCHAR_FREE(add_user_ret);
UCHAR_FREE(ret_char);
return ret;
@ -538,13 +930,6 @@ ret_code user_config_proc(uint source, uint config_type,
cJSON *root, *type_json;
int fun_type;
if(NULL == input)
{
ret = RET_INPUTERR;
//ASSERT_RET(ret);
return ret;
}
/* 获取对应的函数type */
FUNCTYPE_GET(input, fun_type);
@ -572,6 +957,16 @@ ret_code user_config_proc(uint source, uint config_type,
input, input_len,
output, output_len);
break;
case USER_CONFIG_GET:
ret = user_config_get_detail_proc(source, config_type,
input, input_len,
output, output_len);
break;
case USER_CONFIG_GET_ALL:
ret = user_config_get_list_proc(source, config_type,
input, input_len,
output, output_len);
break;
case USER_CONFIG_MOD_LINE:
ret = user_config_mod_line_proc(source, config_type,
input, input_len,
@ -582,6 +977,11 @@ ret_code user_config_proc(uint source, uint config_type,
input, input_len,
output, output_len);
break;
case USER_CONFIG_GET_UUID:
ret = user_config_get_uuid_proc(source, config_type,
input, input_len,
output, output_len);
break;
default:
ret = RET_NOTSUPPORT;
}

View File

@ -24,7 +24,7 @@
#define USER_CONFIG_GET_ALL 4
#define USER_CONFIG_MOD_LINE 5
#define USER_CONFIG_MOD_GROUP 6
#define USER_CONFIG_GET_UUID 7
/* user account config */
ret_code user_config_chk(uint source, uint *config_type,

View File

@ -17,22 +17,98 @@ ret_code usergroup_config_chk(uint source, uint *config_type,
return ret;
}
/*
* uuid-
* iuput格式
{
"type": 7, //7表示查询用户组重名
"data": {
"gname": "xxx"
}
}
* output格式
{
"retcode": 0,
"message": "查询成功",
"data": {
"group_id": 3 //group_id为0时表示该用户组不存在
}
}
* 01
*/
static ret_code usergroup_config_get_uuid_proc(uint source, uint config_type,
pointer input, int input_len,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
unsigned short group_uuid;
cJSON * root = cJSON_Parse(input);
cJSON * data = cJSON_GetObjectItem(root, "data");
cJSON * group_name = cJSON_GetObjectItem(data, "gname");
if (!group_name)
{
cJSON_Delete(root);
ret = RET_ERR;
return ret;
}
/* 查询操作 */
bool ret_get = get_group_uuid_by_name(group_name->valuestring, &group_uuid);
cJSON_Delete(root);
cJSON * ret_root = cJSON_CreateObject();
if (!ret_root)
{
ret = RET_ERR;
return ret;
}
if (ret_get)
{
cJSON_AddNumberToObject(ret_root, "retcode", 0);
cJSON_AddStringToObject(ret_root, "message", "查询成功");
cJSON * ret_data;
cJSON_AddItemToObject(ret_root, "data", ret_data = cJSON_CreateObject());
cJSON_AddNumberToObject(ret_data, "user_id", group_uuid);
}else
{
cJSON_AddNumberToObject(ret_root, "retcode", 1);
cJSON_AddStringToObject(ret_root, "message", "查询失败");
cJSON_AddStringToObject(ret_root, "data", "");
}
char * ret_char = cJSON_PrintUnformatted(ret_root);
memcpy(output, ret_char, strlen(ret_char)+1);
*output_len = strlen(ret_char)+1;
cJSON_Delete(ret_root);
UCHAR_FREE(ret_char);
return ret;
}
/*
* -
* input格式{"type": 0,"data": {"gname": "xxx","gdescription": "xxx"}}
* output格式{"result":0}
* 0
* 1/2/3/41234
* 1/2/3/4/512345
*/
static ret_code usergroup_config_add_proc(uint source, uint config_type,
pointer input, int input_len,
pointer output, int *output_len)
{
ret_code ret = RET_OK;
unsigned short result;
unsigned short retcode;
cJSON *root, *data, *name, *description, *res;
char *des = NULL;
char *ret_char = NULL;
char * message[] = {"新增成功","用户组已满(最大用户组数20)","用户组名或描述长度不符合要求","用户组名中包含特殊字符","用户组名重名","数据库操作失败"};
/* 解析json串 */
root = cJSON_Parse(input);
@ -59,7 +135,7 @@ static ret_code usergroup_config_add_proc(uint source, uint config_type,
}
/* 执行操作 */
result = add_group(name->valuestring, des); //增加用户组
retcode = add_group(name->valuestring, des); //增加用户组
/* 处理返回结果 */
res = cJSON_CreateObject();
@ -69,7 +145,10 @@ static ret_code usergroup_config_add_proc(uint source, uint config_type,
//ASSERT_RET(ret);
return ret;
}
cJSON_AddNumberToObject(res, "result", result);
cJSON_AddNumberToObject(res, "retcode", retcode);
cJSON_AddStringToObject(res, "message", message[retcode]);
cJSON_AddStringToObject(res, "data", "");
ret_char = cJSON_PrintUnformatted(res);
memcpy(output, ret_char, strlen(ret_char)+1);
@ -229,6 +308,11 @@ ret_code usergroup_config_proc(uint source, uint config_type,
input, input_len,
output, output_len);
break;
case USERGROUP_CONFIG_GET_UUID:
ret = usergroup_config_get_uuid_proc(source, config_type,
input, input_len,
output, output_len);
break;
default:
ret = RET_NOTSUPPORT;
}

View File

@ -13,7 +13,6 @@
#include <net/if.h>
#include <cjson/cJSON.h>
#include "configmapi.h"
#include "rpc_common.h"
@ -23,6 +22,8 @@
#define USERGROUP_CONFIG_GET 3
#define USERGROUP_CONFIG_GET_ALL 4
#define USERGROUP_CONFIG_GET_UUID 7
/* user group config */
ret_code usergroup_config_chk(uint source, uint *config_type,
pointer input, int *input_len,

View File

@ -54,4 +54,39 @@ do { \
element = NULL; \
} while (0)
/*
{
"data":[
{
"id":12
}
]
}
*/
#define ARRAYJSON2INT(id_json_in, name, id_int_out) \
do{ \
cJSON * root = cJSON_Parse(id_json_in); \
if(root) \
{ \
cJSON * id_list = cJSON_GetObjectItem(root, "data"); \
if (id_list) \
{ \
int id_list_size = cJSON_GetArraySize(id_list); \
if (1 == id_list_size) \
{ \
cJSON *id_obj = cJSON_GetArrayItem(id_list, 0); \
if (id_obj) \
{ \
cJSON *id_json = cJSON_GetObjectItem(id_obj, name);\
if(id_json) \
{ \
*id_int_out = id_json->valueint; \
} \
cJSON_Delete(root); \
} else {cJSON_Delete(root);} \
} else {cJSON_Delete(root);} \
} else {cJSON_Delete(root);} \
} else {*id_int_out = 0;} \
}while(0)
#endif

View File

@ -4,22 +4,24 @@
#include <stdbool.h>
#include "user_group.h"
#define UNAMESIZE (127 + 1)
#define UDESIZE (127 + 1)
#define UPWDSIZE (63 + 1)
#define UNAMESIZE (64)
#define UDESIZE (64)
#define UPWDSIZE (64)
#define UTIME 20
#define USER_ATTRIBUTE_NUM 8
#define OFFLINE_USER_BY_UID "offuser_by_userid_channel"
#define USER_ACCOUNT_DATABASE_ID 11
#define ADDUSER_SUCCESS 0 //新增用户成功
#define ADDUSER_FAIL_NOGROUP 1 //用户组不存在
#define ADDUSER_FAIL_NAMELEN 2 //用户名长度不符合要求
#define ADDUSER_FAIL_LENGTH 2 //用户名或描述长度不符合要求
#define ADDUSER_FAIL_NAMESPE 3 //用户名中含有特殊字符
#define ADDUSER_FAIL_NAMEDUP 4 //用户名重名
#define ADDUSER_FAIL_USERFULL 5 //用户已满
#define ADDUSER_FAIL_DATABASE 6 //存数据库失败
#define ADDUSER_SUCCESS 0 //新增用户成功
#define ADDUSER_ERROR 7 //系统错误
#define DELUSER_SUCCESS 0
#define DELUSER_FAIL_NOTEXIST 1
@ -79,17 +81,23 @@ typedef struct
int init_user();
/*添加元素-新增用户*/
void usermanager_add_user(char* UNAME, char* UGNAME, char* udesp, int multi, int valid, char* valid_begin_time, char* valid_end_time, USERADD* UADDRES);
void usermanager_add_user(char* UNAME, char* UGNAME, char* udesp, char* pwd, int multi, int valid, char* valid_begin_time, char* valid_end_time, USERADD* UADDRES);
/* 按用户ID查询用户 */
void get_user_by_id(unsigned short ID, USERLIST* ULIST);
/* 按照用户uuid查询用户详情 */
bool get_user_detail_by_user_uuid(int user_uuid, char ** user_detail);
/* 修改用户-web */
bool mod_user_web(USERLIST* ULIST);
/* 根据用户名查询用户ID */
unsigned short get_userid_by_name(char* UNAME, void* hdbc);
/* 根据用户名查询用户UUID */
bool get_user_uuid_by_name(char* UNAME, unsigned short * user_uuid);
/* 修改用户-命令行 */
bool mod_user_line(char* UNAME, const int INTYPE, char* IN);
@ -108,4 +116,7 @@ void offline_force_by_userid(char *userid);
/*强制下线单个用户 */
void offline_force_one_user(unsigned short user_id);
/* 查询用户列表 */
bool useraccount_showlist(int group_id, char * user_name, int page_start, int page_counts, char ** user_list);
#endif

View File

@ -3,8 +3,8 @@
#include <stdbool.h>
#define GNAMESIZE (127 + 1)
#define GDESIZE (127 + 1)
#define GNAMESIZE (64)
#define GDESIZE (64)
#define ADDGROUP_SUCCESS 0
#define ADDGROUP_FAIL_FULL 1
@ -12,6 +12,7 @@
#define ADDGROUP_FAIL_SPECHARS 3
#define ADDGROUP_FAIL_DUP 4
#define ADDGROUP_FAIL_DATABASE 5
#define ADDGROUP_ERROR 6
#define MODGROUP_SUCCESS 0
#define MODGROUP_FAIL_NOTEXIST 1
@ -49,7 +50,7 @@ typedef struct
int init_group();
/* 添加元素-新增用户组 */
unsigned short add_group(char* UGNAME, char* UGDES);
int add_group(char* UGNAME, char* UGDES);
/* 修改用户组描述 */
unsigned short mod_group_desp(char* UGNAME, char* UGDES);
@ -63,6 +64,12 @@ bool show_group_list(USERGROUP* UGLIST);
/* 根据用户组名查询用户组 */
bool find_group_by_name(char* UGNAME, USERGROUP* UGRES);
/*根据用户组uuid查询用户组id*/
unsigned short get_groupid_by_uuid(int uugid, void * hdbc);
/* 根据用户组名查询用户组UUID */
bool get_group_uuid_by_name(char* gname, unsigned short * group_uuid);
/* 根据用户组名查询用户组ID */
unsigned short get_groupid_by_name(char* UGNAME, void* hdbc);

View File

@ -33,7 +33,7 @@ int init_user()
}
/*添加元素-新增用户*/
void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int valid, char* valid_begin_time, char* valid_end_time, USERADD* uaddres)
void usermanager_add_user(char* uname, char* gname, char* udesp, char* pwd, int multi, int valid, char* valid_begin_time, char* valid_end_time, USERADD* uaddres)
{
void *adduser_hdbc;
time_t begin_time;
@ -45,10 +45,21 @@ void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int
}
uaddres->userID = INVALID_INDEX;
/* 校验用户名长度 */
if (NULL == uname || (UNAMESIZE) < strlen(uname) || 0 >= strlen(uname))
if (NULL == uname || NULL == gname)
{
uaddres->result = ADDUSER_FAIL_NAMELEN;
uaddres->result = ADDGROUP_ERROR;
return;
}
if(NULL == udesp)
{
udesp = "";
}
/* 校验用户名和描述长度 */
if ((UNAMESIZE) < strlen(uname) || 0 >= strlen(uname) || UDESIZE < strlen(udesp))
{
uaddres->result = ADDUSER_FAIL_LENGTH;
return;
}
@ -59,15 +70,9 @@ void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int
return;
}
if(NULL == gname)
if (NULL == pwd || 0 == strcmp("",pwd))
{
uaddres->result = ADDUSER_FAIL_NOGROUP;
return;
}
if(NULL == udesp)
{
udesp = "";
pwd = "A31as%4Gb";
}
if(1 != multi)
@ -108,7 +113,6 @@ void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int
/* 根据用户组名查询用户组ID */
unsigned short GID_temp = get_groupid_by_name(gname, adduser_hdbc);
//printf("adduser_hdbc:%s,用户组名:%s, 用户组id%d .\n",adduser_hdbc, gname, GID_temp);
if(INVALID_INDEX == GID_temp)
{
disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc); // ret_release记录日志
@ -119,17 +123,10 @@ void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int
/* 校验重名 */
if(0 != get_userid_by_name(uname, adduser_hdbc))
{
disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc); // ret_release记录日志
uaddres->result =ADDUSER_FAIL_NAMEDUP;
return;
}
// for (int i = 0; i < USER_INDEX_MAX; i++)
// {
// if (0 == strcmp(uname, g_user_table[i].uname))
// {
// uaddres->result = ADDUSER_FAIL_NAMEDUP;
// return;
// }
// }
/* 生成用户ID判断用户是否满 */
unsigned short ID = alloc_index(&g_user_index_head);
@ -141,22 +138,23 @@ void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int
}
/* 连接数据库存user_account表 */
char *adduser_sql = "INSERT INTO `user_account` SET id = ?, group_id = ?, user_name = ?, password = ?, udescription = ?, multi_player = ?, valid_always = ?, valid_begin_time = ?, valid_end_time = ?";
char *adduser_sql = "INSERT INTO `user_account` SET id = ?, group_id = ?, user_name = ?, password = ?, udescription = ?, \
multi_player = ?, valid_always = ?, valid_begin_time = ?, valid_end_time = ?";
int ret_adduser = update_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc, DB_OP_INSERT, USER_TABLE, adduser_sql, 9,
DB_DATA_INT_TYPE, sizeof(ID), ID,
DB_DATA_INT_TYPE, sizeof(GID_temp), GID_temp,
DB_DATA_STRING_TYPE, strlen(uname)+1, uname,
DB_DATA_STRING_TYPE, 9, "12345678",
DB_DATA_STRING_TYPE, strlen(pwd)+1, pwd,
DB_DATA_STRING_TYPE, strlen(udesp)+1, udesp,
DB_DATA_INT_TYPE, sizeof(multi), multi,
DB_DATA_INT_TYPE, sizeof(valid), valid,
DB_DATA_STRING_TYPE, strlen(valid_begin_time)+1, valid_begin_time,
DB_DATA_STRING_TYPE, strlen(valid_end_time)+1,valid_end_time);
disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc); // ret_release记录日志
if(DB_RET_OK != ret_adduser)
{
free_index(&g_user_index_head, ID);
disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc); // ret_release记录日志
//disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc); // ret_release记录日志
uaddres->result = ADDUSER_FAIL_DATABASE;
return;
}
@ -165,7 +163,7 @@ void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int
g_user_table[ID].ID = ID;
g_user_table[ID].GID = GID_temp;
strcpy(g_user_table[ID].uname, uname);
strcpy(g_user_table[ID].passwd, "12345678");
strcpy(g_user_table[ID].passwd, pwd);
if(1 == multi)
{
g_user_table[ID].multi_valid = MULTI_SET(g_user_table[ID].multi_valid, multi);
@ -177,12 +175,62 @@ void usermanager_add_user(char* uname, char* gname, char* udesp, int multi, int
g_user_table[ID].valid_end_time = end_time;
}
int ret_release = disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc); // ret_release记录日志
//int ret_release = disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc); // ret_release记录日志
uaddres->result = ADDUSER_SUCCESS;
uaddres->userID = ID;
return;
}
/* 按照用户uuid查询用户详情 */
bool get_user_detail_by_user_uuid(int user_uuid, char ** user_detail)
{
void * gud_hdbc;
char * point;
int num;
if (NULL == user_detail)
{
return false;
}
gud_hdbc = connect_database(USER_ACCOUNT_DATABASE_ID);
if (NULL == gud_hdbc)
{
return false;
}
char * select_sql = "SELECT U.uuid ID, G.uuid GID, U.user_name uname, G.gname gname, U.udescription udescription,\
U.multi_player multi, U.valid_always valid, U.valid_begin_time, U.valid_end_time \
FROM user_account U, user_group G WHERE U.group_id = G.id AND U.uuid = ? ";
char * udetail = select_datebase_by_number(USER_ACCOUNT_DATABASE_ID, gud_hdbc, USER_TABLE, select_sql, 1, 0, &num, 1,
DB_DATA_INT_TYPE, sizeof(user_uuid), user_uuid);
int ret_discon = disconnect_database(USER_ACCOUNT_DATABASE_ID, gud_hdbc);
if (0 == num || NULL == udetail)
{
cJSON * root = cJSON_CreateObject();
if(!root)
{
return false;
}
cJSON_AddStringToObject(root, "data", "");
/*{"data":""}*/
*user_detail = cJSON_Print(root); //在函数外面释放
return true;
}
point = (char*)malloc(strlen(udetail)+1);
if(NULL == point)
{
return false;
}
memset(point, 0, strlen(udetail)+1);
memcpy(point, udetail, strlen(udetail)+1);
*user_detail = point; //在函数外面释放
return true;
}
/* 按用户ID查询用户 */
void get_user_by_id(unsigned short ID, USERLIST* ulist)
{
@ -350,6 +398,103 @@ bool mod_user_web(USERLIST* ulist)
return true;
}
/*解析用户组id的json字符串 --> 用户组id*/
bool uuid_json2int(char * gid, char * name, unsigned short * id)
{
//unsigned short GID_temp = INVALID_INDEX;
if (NULL == gid || NULL == name || NULL == id)
{
return false;
}
cJSON *root = cJSON_Parse(gid);
if(!root)
{
return false;
}
cJSON *id_list = cJSON_GetObjectItem(root, "data");
if(!id_list)
{
cJSON_Delete(root);
return false;
}
int id_list_size = cJSON_GetArraySize(id_list);
if(1 != id_list_size)
{
cJSON_Delete(root);
return false;
}
cJSON *id_obj = cJSON_GetArrayItem(id_list, 0);
if(!id_obj)
{
cJSON_Delete(root);
return false;
}
cJSON *gid_json = cJSON_GetObjectItem(id_obj, name);
if(!gid_json)
{
cJSON_Delete(root);
return false;
}
*id = gid_json->valueint;
cJSON_Delete(root);
return true;
}
/* 根据用户名查询用户UUID */
bool get_user_uuid_by_name(char* uname, unsigned short * user_uuid)
{
char *uid = NULL;
int num, discon;
void * uhdbc;
unsigned short uuid_temp = INVALID_INDEX;
if (NULL == uname || NULL == user_uuid)
{
return false;
}
uhdbc = connect_database(USER_ACCOUNT_DATABASE_ID);
if (NULL == uhdbc)
{
return false;
}
/* 连接数据库根据用户名查询user表中的uuid */
char* select_sql = "SELECT uuid FROM user_account WHERE user_name = ?";
uid = select_datebase_by_number(USER_ACCOUNT_DATABASE_ID, uhdbc, USER_TABLE, select_sql, 1, 0, &num, 1,
DB_DATA_STRING_TYPE, strlen(uname)+1, uname);
/* 删除数据连接 */
discon = disconnect_database(USER_ACCOUNT_DATABASE_ID, uhdbc); //discon记录日志
if(0 == num)
{
*user_uuid = INVALID_INDEX;
return true;
}
//bool ret_json2int = uuid_json2int(uid, "uuid", &uuid_temp);
ARRAYJSON2INT(uid, "uuid", &uuid_temp);
if (INVALID_INDEX == uuid_temp)
{
return false;
}
*user_uuid = uuid_temp;
return true;
}
/* 根据用户名查询用户ID */
unsigned short get_userid_by_name(char* uname, void* hdbc)
{
char *uid = NULL;
@ -360,12 +505,8 @@ unsigned short get_userid_by_name(char* uname, void* hdbc)
{
return ID_temp;
}
// for (int i = 0; i < USER_INDEX_MAX && UID_temp == INVALID_INDEX; i++)
// {
// UID_temp = GETID(g_user_table[i].ID, uname, g_user_table[i].uname);
// }
/* 连接数据库,根据用户名查询user表中的id */
/* 连接数据库根据用户名查询user表中的id */
char* select_sql = "SELECT id FROM user_account WHERE user_name = ?";
uid = select_datebase_by_number(USER_ACCOUNT_DATABASE_ID, hdbc, USER_TABLE, select_sql, 1, 0, &num, 1,
DB_DATA_STRING_TYPE, strlen(uname)+1, uname);
@ -374,7 +515,8 @@ unsigned short get_userid_by_name(char* uname, void* hdbc)
return ID_temp;
}
cJSON *root = cJSON_Parse(uid);
ARRAYJSON2INT(uid, "id", &ID_temp);
/* cJSON *root = cJSON_Parse(uid);
if(!root)
{
return ID_temp;
@ -410,6 +552,7 @@ unsigned short get_userid_by_name(char* uname, void* hdbc)
ID_temp = id_json->valueint;
cJSON_Delete(root);
*/
return ID_temp;
}
@ -581,3 +724,91 @@ int usermanager_del_user(USER_DEL* in)
return DELUSER_SUCCESS;
/* 强制用户下线在外面 */
}
/* 查询用户列表 */
bool useraccount_showlist(int uugroup_id, char * user_name, int page_start, int page_counts, char ** user_list)
{
void * getulist_hdbc; //数据库句柄
int num, arrlen, page_s;
char * ulist, *point, *select_sql;
if(NULL == user_list)
{
return false;
}
if (NULL == user_name)
{
user_name = "";
}
arrlen = strlen(user_name)+strlen("%")*2+1;
char temp_uname[arrlen];
memset(temp_uname, 0, arrlen);
strcat(temp_uname, "%");
strcat(temp_uname, user_name);
strcat(temp_uname, "%");
if(page_start < 1 || page_counts < 1)
{
return false;
}
page_s = (page_start - 1)*page_counts;
/* 连接数据库 */
getulist_hdbc = connect_database(USER_ACCOUNT_DATABASE_ID);
if(NULL == getulist_hdbc)
{
/* 记录日志 */
return false;
}
if (INVALID_INDEX == uugroup_id) //所有用户组-过滤用户名
{
select_sql = "SELECT U.uuid ID, G.uuid GID, U.user_name uname, G.gname gname, U.udescription udescription,\
U.multi_player multi, U.valid_always valid, U.valid_begin_time, U.valid_end_time \
FROM user_account U, user_group G WHERE U.group_id = G.id AND U.user_name LIKE ? LIMIT ?, ?";
ulist = select_datebase_by_number(USER_ACCOUNT_DATABASE_ID, getulist_hdbc, USER_GROUP_TABLE, select_sql, 1, 0, &num, 3,
DB_DATA_STRING_TYPE, arrlen+1, temp_uname,
DB_DATA_INT_TYPE, sizeof(page_s), page_s,
DB_DATA_INT_TYPE, sizeof(page_counts), page_counts);
}else
{
select_sql = "SELECT U.uuid ID, G.uuid GID, U.user_name uname, G.gname gname, U.udescription udescription,\
U.multi_player multi, U.valid_always valid, U.valid_begin_time, U.valid_end_time \
FROM user_account U, user_group G WHERE G.uuid = ? AND U.group_id = G.id AND U.user_name LIKE ? LIMIT ?, ?";
ulist = select_datebase_by_number(USER_ACCOUNT_DATABASE_ID, getulist_hdbc, USER_GROUP_TABLE, select_sql, 1, 0, &num, 4,
DB_DATA_INT_TYPE, sizeof(uugroup_id), uugroup_id,
DB_DATA_STRING_TYPE, arrlen+1, temp_uname,
DB_DATA_INT_TYPE, sizeof(page_s), page_s,
DB_DATA_INT_TYPE, sizeof(page_counts), page_counts);
}
int discon = disconnect_database(USER_ACCOUNT_DATABASE_ID, getulist_hdbc); //discon记录日志
if (0 == num || NULL == ulist) //查询结果为空
{
cJSON * root = cJSON_CreateObject();
cJSON * array;
if(!root)
{
return false;
}
cJSON_AddItemToObject(root, "data", array = cJSON_CreateArray());
/*{"data":[]}*/
*user_list = cJSON_Print(root); //在函数外面释放
return true;
}
point = (char*)malloc(strlen(ulist)+1);
if(NULL == point)
{
return false;
}
memset(point, 0, strlen(ulist)+1);
memcpy(point, ulist, strlen(ulist)+1);
*user_list = point; //在函数外面释放
return true;
}

View File

@ -32,15 +32,21 @@ int init_group()
}
/* 添加元素 */
unsigned short add_group(char* name, char* description)
int add_group(char* name, char* description)
{
void *addgroup_hdbc;
/* 校验用户组名和描述的长度 */
if (NULL == name)
{
return ADDGROUP_ERROR;
}
if (NULL == description)
{
description = "";
}
if (NULL == name || GNAMESIZE < strlen(name) || GDESIZE < strlen(description))
/* 校验用户组名和描述的长度 */
if (GNAMESIZE < strlen(name) || 0 >= strlen(name) || GDESIZE < strlen(description))
{
return ADDGROUP_FAIL_LENGTH;
}
@ -60,13 +66,6 @@ unsigned short add_group(char* name, char* description)
}
/* 校验重名 */
// for (int i = 0; i < GROUP_INDEX_MAX; i++)
// {
// if (0 == strcmp(name, g_group_table[i].gname))
// {
// return ADDGROUP_FAIL_DUP;
// }
// }
if(0 != get_groupid_by_name(name, addgroup_hdbc))
{
disconnect_database(USER_GROUP_DATABASE_ID, addgroup_hdbc); // ret_release记录日志
@ -82,7 +81,6 @@ unsigned short add_group(char* name, char* description)
}
/* 连接数据库向user_group表中添加用户组ID、用户组名和用户组描述 */
/* INSERT INTO user_group SET id = "", gname = "", gdescription = "" */
char *addgroup_sql = "INSERT INTO user_group SET id = ?, gname = ?, gdescription = ?";
int ret_addgroup = update_database(USER_GROUP_DATABASE_ID, addgroup_hdbc, DB_OP_INSERT, USER_GROUP_TABLE, addgroup_sql, 3,
DB_DATA_INT_TYPE, sizeof(ID), ID,
@ -220,36 +218,16 @@ bool show_group_list(USERGROUP* grouplist)
return true;
}
unsigned short get_groupid_by_name(char* gname, void* hdbc)
/*解析用户组id的json字符串 --> 用户组id*/
unsigned short id_json2int(char * gid)
{
/* 数据库查询数据 */
unsigned short GID_temp = INVALID_INDEX;
int num;
char *gid = NULL;
if (NULL == gname || NULL == hdbc)
if (NULL == gid)
{
return GID_temp;
}
/* 内存遍历查询 */
// for (int i = 0; i < GROUP_INDEX_MAX && INVALID_INDEX == GID_temp; i++)
// {
// GID_temp = GETID(g_group_table[i].ID, gname, g_group_table[i].gname);
// }
/* 数据库查询根据用户组名查询user_grooup表中的id */
char *select_sql = "SELECT id FROM user_group WHERE gname = ?";
gid = select_datebase_by_number(USER_GROUP_DATABASE_ID, hdbc, USER_GROUP_TABLE, select_sql, 1, 0, &num, 1,
DB_DATA_STRING_TYPE, strlen(gname)+1, gname);
if(0 == num)
{
return GID_temp;
}
//printf("111neibu用户组名%s 获取到的用户组ID%s \n", gname, gid);
cJSON *root = cJSON_Parse(gid);
if(!root)
{
@ -277,6 +255,138 @@ unsigned short get_groupid_by_name(char* gname, void* hdbc)
return GID_temp;
}
cJSON *gid_json = cJSON_GetObjectItem(id_obj, "id");
if(!gid_json)
{
cJSON_Delete(root);
return GID_temp;
}
GID_temp = gid_json->valueint;
return GID_temp;
}
/*根据用户组uuid查询用户组id*/
unsigned short get_groupid_by_uuid(int uugid, void * hdbc)
{
unsigned short GID_temp = INVALID_INDEX;
int num;
char *gid = NULL;
if(NULL == hdbc)
{
return GID_temp;
}
char *select_sql = "SELECT id FROM user_group WHERE uuid = ?";
gid = select_datebase_by_number(USER_GROUP_DATABASE_ID, hdbc, USER_GROUP_TABLE, select_sql, 1, 0, &num, 1,
DB_DATA_INT_TYPE, sizeof(uugid), uugid);
if(0 == num)
{
return GID_temp;
}
ARRAYJSON2INT(gid, "id", &GID_temp);
//GID_temp = id_json2int(gid);
return GID_temp;
}
/* 根据用户组名查询用户组UUID */
bool get_group_uuid_by_name(char* gname, unsigned short * group_uuid)
{
char *gid = NULL;
void * ghdbc;
int num, discon;
unsigned short uuid_temp = INVALID_INDEX;
if (NULL == gname || NULL == group_uuid)
{
return false;
}
ghdbc = connect_database(USER_GROUP_DATABASE_ID);
if (NULL == ghdbc)
{
return false;
}
/* 连接数据库根据用户名查询user表中的uuid */
char* select_sql = "SELECT uuid FROM user_group WHERE gname = ?";
gid = select_datebase_by_number(USER_GROUP_DATABASE_ID, ghdbc, USER_GROUP_TABLE, select_sql, 1, 0, &num, 1,
DB_DATA_STRING_TYPE, strlen(gname)+1, gname);
/* 删除数据连接 */
discon = disconnect_database(USER_GROUP_DATABASE_ID, ghdbc); //discon记录日志
if(0 == num)
{
*group_uuid = INVALID_INDEX;
return true;
}
ARRAYJSON2INT(gid, "uuid", &uuid_temp);
if (INVALID_INDEX == uuid_temp)
{
return false;
}
*group_uuid = uuid_temp;
return true;
}
/* 根据用户组名查询用户组id */
unsigned short get_groupid_by_name(char* gname, void* hdbc)
{
/* 数据库查询数据 */
unsigned short GID_temp = INVALID_INDEX;
int num;
char *gid = NULL;
if (NULL == gname || NULL == hdbc)
{
return GID_temp;
}
/* 数据库查询根据用户组名查询user_grooup表中的id */
char *select_sql = "SELECT id FROM user_group WHERE gname = ?";
gid = select_datebase_by_number(USER_GROUP_DATABASE_ID, hdbc, USER_GROUP_TABLE, select_sql, 1, 0, &num, 1,
DB_DATA_STRING_TYPE, strlen(gname)+1, gname);
if(0 == num)
{
return GID_temp;
}
ARRAYJSON2INT(gid, "id", &GID_temp);
/* cJSON *root = cJSON_Parse(gid);
if(!root)
{
return GID_temp;
}
cJSON *id_list = cJSON_GetObjectItem(root, "data");
if(!id_list)
{
cJSON_Delete(root);
return GID_temp;
}
int id_list_size = cJSON_GetArraySize(id_list);
if(1 != id_list_size)
{
cJSON_Delete(root);
return GID_temp;
}
cJSON *id_obj = cJSON_GetArrayItem(id_list, 0);
if(!id_obj)
{
cJSON_Delete(root);
return GID_temp;
}
cJSON *gid_json = cJSON_GetObjectItem(id_obj, "id");
if(!gid_json)
{
@ -285,7 +395,7 @@ unsigned short get_groupid_by_name(char* gname, void* hdbc)
}
GID_temp = gid_json->valueint;
cJSON_Delete(root);
//printf("neibu用户组名%s 获取到的用户组ID%d \n", gname, GID_temp);
*/
return GID_temp;
}

View File

@ -44,10 +44,10 @@ PLATLIB_DIR := ../../Platform/build/debug
#gcc libs
ARM64_LIBS := -ldatabase-arm64
ARM64_LIBS += -lcjson -lpthread -lm
ARM64_LIBS += -lcjson -lpthread -lm -lodbc
LINUX_LIBS := -ldatabase-linux
LINUX_LIBS += -lcjson -lpthread -lm
LINUX_LIBS += -lcjson -lpthread -lm -lodbc
# this line must be at below of thus, because of...
include ../../Common/common.Makefile

View File

@ -3,6 +3,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <cjson/cJSON.h>
#include <string.h>
#include "common_user.h"
#include "array_index.h"
#include "user_group.h"
@ -202,20 +203,22 @@ void sub_example()
int main(void)
{
// int ID = 1;
// int GID_temp = 2;
// char *uname = "xiaoming";
// char *udesp = "";
// int multi = 0;
// int valid = 0;
// char *valid_begin_time = "";
// char *valid_end_time = "";
// void *adduser_hdbc = connect_database(USER_ACCOUNT_DATABASE_ID);
// if(NULL == adduser_hdbc)
// {
// printf("aaaaaaaaa");
// }
/*
int ID = 1;
int GID_temp = 2;
char *uname = "xiaoming";
char *udesp = "";
int multi = 0;
int valid = 0;
char *valid_begin_time = "";
char *valid_end_time = "";
void *adduser_hdbc = connect_database(USER_ACCOUNT_DATABASE_ID);
int num1;
char * retptr1 = NULL;
if(NULL == adduser_hdbc)
{
printf("aaaaaaaaa");
}
// char *adduser_sql = "INSERT INTO `user_account` SET id = ?, group_id = ?, user_name = ?, password = ?, udescription = ?, \
// multi_player = ?, valid_always = ?, valid_begin_time = ?, valid_end_time = ?";
// int ret_adduser = update_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc, DB_OP_INSERT, USER_TABLE, adduser_sql, 9,
@ -229,7 +232,72 @@ int main(void)
// DB_DATA_STRING_TYPE, strlen(valid_begin_time)+1, valid_begin_time,
// DB_DATA_STRING_TYPE, strlen(valid_end_time)+1,valid_end_time);
// printf("ret_adduser = %d .\n",ret_adduser);
// return 0;
char * aa = "";
int len = strlen(aa)+strlen("*")*2+1;
char user_name_para[len];
memset(user_name_para, 0, len);
strcat(user_name_para, "%");
strcat(user_name_para, aa);
strcat(user_name_para, "%");
printf("user_name_para = %s\n",user_name_para);
int rett = create_database_table(1, adduser_hdbc, "ctest", "create table ctest ( id bigint, fl double, dt character(10), status character(7))");
retptr1 = select_datebase_by_number(1, adduser_hdbc, "user_account", "SELECT * FROM `user_account` WHERE user_name LIKE ?", 1, 0, &num1, 1,
DB_DATA_STRING_TYPE, 20, user_name_para);
//printf("长度:%d \n",strlen(retptr1));
disconnect_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc);
printf("%d\n",rett);
printf("user = %s\n", retptr1);
return 0;
*/
char output7[5000];
char *testin7 = "{\"type\": 4,\"data\":{\"group_id\": 693, \"user_name\": \"户0\",\"page_start\": 1,\"page_counts\": 10}}";
int a7 = 1;
ret_code c7 = user_config_proc(1, 1, testin7, strlen(testin7)+1, output7, &a7);
printf("*******************************************************************************\n");
printf("这里是个测试第7次结果,查询:%d\n", c7);
printf("%s\n", output7);
printf("*******************************************************************************\n");
char output8[100];
char *testin8 = "{\"type\": 7,\"data\":{\"uname\": \"用户07\"}}";
int a8 = 1;
ret_code c8 = user_config_proc(1, 1, testin8, strlen(testin8)+1, output8, &a8);
printf("*******************************************************************************\n");
printf("这里是个测试第8次结果,查询:%d\n", c8);
printf("%s\n", output8);
printf("*******************************************************************************\n");
char output9[100];
char *testin9 = "{\"type\": 7,\"data\":{\"gname\": \"aaa30\"}}";
int a9 = 1;
ret_code c9 = usergroup_config_proc(1, 1, testin9, strlen(testin9)+1, output9, &a9);
printf("*******************************************************************************\n");
printf("这里是个测试第9次结果,查询:%d\n", c9);
printf("%s\n", output9);
printf("*******************************************************************************\n");
char output10[200];
char *testin10 = "{\"type\": 3,\"data\":{\"user_id\": 4}}";
int a10 = 1;
ret_code c10 = user_config_proc(1, 1, testin10, strlen(testin10)+1, output10, &a10);
printf("*******************************************************************************\n");
printf("这里是个测试第10次结果,查询:%d\n", c10);
printf("%s\n", output10);
printf("*******************************************************************************\n");
return 0;
printf("初始化用户组:%d\n", init_group());
@ -292,7 +360,7 @@ int main(void)
ret_code ret_add_group = usergroup_config_proc(1,1,testgroupin,1,outputgroup,olenth);
printf("测试对外接口-增加一个用户组:%d\n", ret_add_group);
printf("%s \n", outputgroup);
UCHAR_FREE(outputgroup);
//UCHAR_FREE(outputgroup);
printf("增加一个用户组:%d\n", add_group("aaa22", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa23", "描述04"));
@ -353,31 +421,31 @@ int main(void)
printf("shibaile");
}
usermanager_add_user("用户01", "aaa04", "hello", 0, 0, NULL, NULL,addUserResullt);
usermanager_add_user("用户01", "aaa04", "hello", NULL, 0, 0, NULL, NULL,addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
//addUserResullt = AddUser("用户02", "aaa04", NULL);
//printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user(NULL, "aaa04", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user(NULL, "aaa04", NULL,NULL,0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("", "aaa04", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("", "aaa04", NULL, NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户04,", "aaa04", NULL,0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户04,", "aaa04", NULL,NULL,0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户05", "aCaa04", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户05", "aCaa04", NULL,NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户01", "aaa04", NULL, 0, 0, NULL, NULL,addUserResullt);
usermanager_add_user("用户01", "aaa04", NULL,NULL, 0, 0, NULL, NULL,addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户04", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户04", "aaa07", NULL,NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户05", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户05", "aaa07", NULL,NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户06", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户06", "aaa07", NULL,NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户07", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户07", "aaa07", NULL,NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户08", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户08", "aaa07", NULL,NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户09", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
usermanager_add_user("用户09", "aaa07", NULL,NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
@ -398,7 +466,7 @@ int main(void)
printf("这里是个测试第一次结果,新增用户:%d\n", c);
printf("%s\n", output1);
printf("*******************************************************************************\n");
UCHAR_FREE(output1);
for (int i = 0; i < USER_INDEX_MAX; i++)
{
@ -457,7 +525,7 @@ int main(void)
printf("这里是个测试第二次结果修改用户web%d\n", cc);
printf("%s\n", output2);
printf("*******************************************************************************\n");
UCHAR_FREE(output2);
USERLIST* ulist22;
ulist22 = (USERLIST*)malloc(sizeof(USERLIST));
@ -494,7 +562,7 @@ int main(void)
printf("这里是个测试第三次结果,修改用户-line%d\n", ccc);
printf("%s\n", output3);
printf("*******************************************************************************\n");
UCHAR_FREE(output3);
// unsigned short id2 = 3;
// get_user_by_id(id2, ulist22);
@ -520,7 +588,7 @@ int main(void)
printf("这里是个测试第四次结果,删除用户:%d\n", c4);
printf("%s\n", output4);
printf("*******************************************************************************\n");
UCHAR_FREE(output4);
char * output5;
@ -539,7 +607,7 @@ int main(void)
printf("这里是个测试第五次结果,删除用户组:%d\n", c5);
printf("%s\n", output5);
printf("*******************************************************************************\n");
UCHAR_FREE(output5);
//UCHAR_FREE(output5);
USER_AUTH_RET *aret;
aret = (USER_AUTH_RET*)malloc(sizeof(USER_AUTH_RET));
@ -600,7 +668,7 @@ int main(void)
printf("这里是个测试第六次结果,删除用户05%d\n", c4);
printf("%s\n", output6);
printf("*******************************************************************************\n");
UCHAR_FREE(output6);
//UCHAR_FREE(output6);
int user_ids[3] = {1,2,4};
reset_online_by_userid(user_ids, 3);
@ -679,11 +747,25 @@ int main(void)
// DB_DATA_FLOAT_TYPE, 8, 11111111.555555555,
// DB_DATA_STRING_TYPE, 4, "TEMP");
// printf("insert ret = %d \n", ret);
ret = disconnect_database(1, test_hdbc);
/* char * output7;
output7 = malloc(100);
if (NULL == output7)
{
printf("ulist fail");
}
char *testin7 = "{\"type\": 4,\"data\":{\"group_id\": 0, \"user_name\": \"\",\"page_start\": 1,\"page_counts\": 10}}";
int a7_01 = 1;
int *a7 = &a7_01;;
ret_code c7 = user_config_proc(1, 1, testin7, strlen(testin7)+1, output7, a7);
printf("*******************************************************************************\n");
printf("这里是个测试第7次结果,查询:%d\n", c7);
printf("%s\n", output7);
printf("*******************************************************************************\n");
UCHAR_FREE(output7);
*/
return 0;
}