Mod aaa-12 新增查询用户列表、查询用户详情
RCA: SOL: 修改人:zhouzian 检视人:zhouzian
This commit is contained in:
parent
6eb7bb65ab
commit
32065fc0bb
|
@ -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 //用户id,int类型
|
||||
}
|
||||
}
|
||||
|
||||
* 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"
|
||||
}]
|
||||
}
|
||||
|
||||
* 0:成功、1:失败
|
||||
*/
|
||||
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时,表示该用户名不存在
|
||||
}
|
||||
}
|
||||
|
||||
* 0:成功、1:失败
|
||||
*/
|
||||
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"
|
||||
}
|
||||
]
|
||||
}
|
||||
* 0:成功、1:失败
|
||||
*/
|
||||
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/5:失败,1:用户组名不存在,2:用户名长度不符合,3:用户名中包含特殊字符,4:用户名重名,5:用户数已达到最大
|
||||
* 1/2/3/4/5/6/7:失败,1:用户组名不存在、2:用户名长度不符合、3:用户名中包含特殊字符、4:用户名重名、5:用户数已达到最大(最大用户数100)、6:数据库操作失败、7:系统错误
|
||||
* 备注:当新增失败时,用户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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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时,表示该用户组不存在
|
||||
}
|
||||
}
|
||||
|
||||
* 0:成功、1:失败
|
||||
*/
|
||||
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/4:失败,1:用户组满了、2:用户组名或描述长度不符合要求、3:用户组名中包含特殊字符、4:用户组名重名
|
||||
* 1/2/3/4/5:失败,1:用户组已满、2:用户组名或描述长度不符合要求、3:用户组名中包含特殊字符、4:用户组名重名、5:数据库操作失败
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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)
|
||||
{
|
||||
|
@ -284,8 +262,140 @@ unsigned short get_groupid_by_name(char* gname, void* hdbc)
|
|||
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);
|
||||
//printf("neibu用户组名:%s, 获取到的用户组ID:%d \n", gname, GID_temp);
|
||||
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)
|
||||
{
|
||||
cJSON_Delete(root);
|
||||
return GID_temp;
|
||||
}
|
||||
GID_temp = gid_json->valueint;
|
||||
cJSON_Delete(root);
|
||||
*/
|
||||
return GID_temp;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue