SQL语句
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sqlite3.h>
#include "ConfJSONParse.h"
#include "ConfSQLApi.h"
#include "PlatAllHeader.h"
//MYSQL 数据库 API
extern MYSQL *mysql_connect;
extern char glb_mysqlInstName[];
extern char glb_mysqlIP[];
extern char glb_mysqlUser[];
extern char glb_mysqlPassword[];
extern SINT glb_mysqlPort;
MYSQL * MYSQL_udb_open(void)
{
/* 从SQLITE中读取出配置的数据库连接信息 读取数据库配置 */
T_JosnConfig* ptconfig = NULL;
ptconfig = Fplat_GetjsonCfg();
/*读取本地配置*/
char *db = ptconfig->udbsqlInstName;
char *MYSQL_ip = ptconfig->udbsqlIpaddr;
int MYSQL_port = ptconfig->udbsqlPort; //0表示使用数据库的默认端口
char *MYSQL_user = ptconfig->udbsqlUserName;
char *MYSQL_password = ptconfig->udbsqlPassword;
strcpy(glb_mysqlInstName, ptconfig->udbsqlInstName);
strcpy(glb_mysqlIP, ptconfig->udbsqlIpaddr);
strcpy(glb_mysqlUser, ptconfig->udbsqlUserName);
strcpy(glb_mysqlPassword, ptconfig->udbsqlPassword);
glb_mysqlPort = ptconfig->udbsqlPort;
MYSQL *mysql_conn = mysql_init(NULL);
if (mysql_conn == NULL)/* 初始化 */
{
x_ErrorLog("mysql_init() failed: %s\n", mysql_error(mysql_conn));
exit(-1);
}
my_bool reconnect = 1;
if (XPOC_ERR_SUCCESS == mysql_options(mysql_conn, MYSQL_OPT_RECONNECT, &reconnect))
{
x_InfoLog("UM_Mysql_init() function success.");
}
else
{
x_ErrorLog("mysql_options() function failed: %s\n", mysql_error(mysql_conn));
}
/* 连接数据库 */
if (!mysql_real_connect(mysql_conn, MYSQL_ip, MYSQL_user, MYSQL_password, db, MYSQL_port, NULL, 0))
{
x_ErrorLog("connect mysql db failed : %s\n", mysql_error(mysql_conn));
exit(-1);
}
else {
x_InfoLog("connect mysql db success!\n");
}
//set session wait_timeout=31536000 to avoid disconnect
if (mysql_query(mysql_conn, "set session wait_timeout=31536000"))
{
x_ErrorLog("Error - unable to set wait_timeout: %s\n", mysql_error(mysql_conn));
exit(-1);
}
//set global interactive_timeout, when reconnect, session wait_timeout will same as 'global interactive_timeout'
if (mysql_query(mysql_conn, "set global interactive_timeout=31536000"))
{
x_ErrorLog("Error - unable to set interactive_timeout: %s\n", mysql_error(mysql_conn));
//no need to return
}
///
if(ptconfig) free(ptconfig);
return mysql_conn;
}
UINT MYSQL_udb_excute(MYSQL *mysql_conn, const char * ptSql)
{
UINT ret_val = XPOC_ERR_SUCCESS;
(void)mysql_conn;
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_ONE_PARA(ptSql);
x_InfoLog("Exec SQL[%s].\n", ptSql);
MYSQL *mysql_link = mysql_init(NULL);
if (mysql_link == NULL)/* 初始化 */
{
x_ErrorLog("mysql_init() failed: %s\n", mysql_error(mysql_link));
return XPOC_ERR_FAIL;
}
/* 连接数据库 */
if (!mysql_real_connect(mysql_link, glb_mysqlIP, glb_mysqlUser, glb_mysqlPassword, glb_mysqlInstName, glb_mysqlPort, NULL, 0))
{
x_ErrorLog("connect mysql db failed : %s\n", mysql_error(mysql_link));
return XPOC_ERR_FAIL;
}
// 如果是h_user_msg或h_group_msg或h_fse_file表,则统一uft_8格式输出(本地已测试)
if (strstr(ptSql, "h_user_msg") || strstr(ptSql, "h_group_msg") || strstr(ptSql, "h_fse_file") || strstr(ptSql, "h_fse_offline_file"))
{
ret_val = mysql_query(mysql_link, "set names utf8");
if (ret_val != XPOC_ERR_SUCCESS)
{
x_ErrorLog("h_user_msg or h_group_msg set utf8 error: %s\n", mysql_error(mysql_link)); // 只打印错误日志,不返回,乱码也会保存起来
}
}
ret_val = mysql_query(mysql_link, (const char *)ptSql);
if (ret_val != XPOC_ERR_SUCCESS)
{
if (UM_MYSQL_SERVER_GONE_AWAY == ret_val)
{
ret_val = mysql_ping(mysql_link);
if (XPOC_ERR_SUCCESS == ret_val)
{
ret_val = mysql_query(mysql_link, (const char *)ptSql);
}
}
}
if (XPOC_ERR_SUCCESS != ret_val)
{
x_ErrorLog("Error mysql_udb_query FAILED! Error : %s", mysql_error(mysql_link));
}
if (mysql_affected_rows(mysql_link) == 0)
{
x_DebugLog("Affected rows is 0 !");
}
mysql_close(mysql_link);
XPOC_TRACEFUNC_OUT;
return ret_val;
}
UINT MYSQL_udbGetRecord(MYSQL *mysql_conn, char *ptSql, MYSQL_RES **result)
{
UINT ret_val = XPOC_ERR_SUCCESS;
(void)mysql_conn;
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_ONE_PARA(ptSql);
x_InfoLog("Exec SQL[%s].\n", ptSql);
MYSQL *mysql_link = mysql_init(NULL);
if (mysql_link == NULL)/* 初始化 */
{
x_ErrorLog("mysql_init() failed.\n");
return XPOC_ERR_FAIL;
}
/* 连接数据库 */
if (!mysql_real_connect(mysql_link, glb_mysqlIP, glb_mysqlUser, glb_mysqlPassword, glb_mysqlInstName, glb_mysqlPort, NULL, 0))
{
x_ErrorLog("connect mysql db failed : %s\n", mysql_error(mysql_link));
return XPOC_ERR_FAIL;
}
// 如果是h_user_msg或h_group_msg或h_fse_file表,则统一uft_8格式输出(本地已测试)
if (strstr(ptSql, "h_user_msg") || strstr(ptSql, "h_group_msg") || strstr(ptSql, "h_fse_file") || strstr(ptSql, "h_fse_offline_file"))
{
ret_val = mysql_query(mysql_link, "set names utf8");
if (ret_val != XPOC_ERR_SUCCESS)
{
x_ErrorLog("h_user_msg or h_group_msg set utf8 error: %s\n", mysql_error(mysql_link)); // 只打印错误日志,不返回,乱码也会保存起来
}
}
ret_val = mysql_query(mysql_link, (const char *)ptSql);
if (XPOC_ERR_SUCCESS == ret_val)
{
*result = mysql_store_result(mysql_link);
}
else
{
if (UM_MYSQL_SERVER_GONE_AWAY == ret_val)
{
ret_val = mysql_ping(mysql_link);
if (XPOC_ERR_SUCCESS == ret_val)
{
ret_val = mysql_query(mysql_link, (const char *)ptSql);
if (XPOC_ERR_SUCCESS == ret_val)
{
*result = mysql_store_result(mysql_link);
}
}
}
}
//避免mysql_store_result返回空指针,导致rce core dump
if (XPOC_ERR_SUCCESS == ret_val && *result == NULL)
{
*result = mysql_store_result(mysql_link);
if (*result == NULL)
{
x_ErrorLog("Error mysql_store_result FAILED, return NULL!");
mysql_close(mysql_link);
return XPOC_ERR_FAIL;
}
}
if (XPOC_ERR_SUCCESS != ret_val)
{
x_ErrorLog("Error mysql_udb_query FAILED! Error : %s", mysql_error(mysql_link));
}
mysql_close(mysql_link);
XPOC_TRACEFUNC_OUT;
return ret_val;
}
UINT MYSQL_NeEntity_Qry(MYSQL *mysql_conn, EntityType_E entityType, NE_Entity_List_Struct *ptNeEntityList)
{
UINT ret_val = XPOC_ERR_SUCCESS;
char ne_type[10]; memset(ne_type, 0, 10);
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptNeEntityList);
x_InfoLog("mysql[%p].", mysql_conn);
switch (entityType)
{
case D_PROCTYPE_ACE:
strcpy(ne_type,"ace");
break;
case D_PROCTYPE_ACE_HTTPS:
strcpy(ne_type, "ace_https");
break;
case D_PROCTYPE_CCE:
strcpy(ne_type, "cce");
break;
case D_PROCTYPE_CCE_HTTPS:
strcpy(ne_type, "cce_https");
break;
case D_PROCTYPE_MDE:
strcpy(ne_type, "mde");
break;
case D_PROCTYPE_FSE:
strcpy(ne_type, "fse");
break;
case D_PROCTYPE_FSE_HTTPS:
strcpy(ne_type, "fse_https");
break;
case D_PROCTYPE_GSE_HTTPS:
strcpy(ne_type, "gse_https");
break;
case D_PROCTYPE_UDE_HTTPS:
strcpy(ne_type, "ude_https");
break;
case D_PROCTYPE_ACE_RMT:
strcpy(ne_type, "ace_rmt");
break;
case D_PROCTYPE_RCE:
strcpy(ne_type, "rce");
break;
case D_PROCTYPE_RCE_HTTPS:
strcpy(ne_type, "rce_https");
break;
default:
x_ErrorLog("unexpected ne_type[%d] while query ne entity failed.", entityType);
return XPOC_ERR_FAIL;
}
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[1024];
memset(strSql, 0, 1024);
sprintf(strSql, "SELECT ip,port FROM h_ne_config WHERE ne_type=\'%s\'", ne_type);
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
ptNeEntityList->uiNeNum = result->row_count;
UINT i = 0;
while((row = mysql_fetch_row(result)) != NULL)
{
strncpy(ptNeEntityList->stNeList[i].DevHostIp, (char *)row[0], STR_LEN32);
ptNeEntityList->stNeList[i].DevPort = atoi(row[1]);
i++;
}
mysql_free_result(result);
}
x_InfoLog("get NE[%s],num[%d],ip[%s:%d].",
ne_type, ptNeEntityList->uiNeNum, ptNeEntityList->stNeList[0].DevHostIp, ptNeEntityList->stNeList[0].DevPort);
XPOC_TRACEFUNC_OUT;
return ret_val;
}
UINT MYSQL_UserAccount_Add(MYSQL *mysql_conn, UserDetailInfo *ptUserInfo)
{
char strSql[1024]; memset(strSql, 0, 1024);
sprintf(strSql, "insert into h_account(account_no,user_no,user_alias,password,fleet_id,attr," \
"audio_ca,video_ca,data_ca,gis_interval,audio_rcrd,video_rcrd) " \
"values(\'%s\',\'%s\',\'%s\',\'%s\',%ld,%d,%d,%d,%d,%d,%d,%d);",
ptUserInfo->AccountID,
ptUserInfo->UserID,
ptUserInfo->UserAlias,
ptUserInfo->Password,
ptUserInfo->FleetID,
ptUserInfo->Attr,
ptUserInfo->AudioCa,
ptUserInfo->VideoCa,
ptUserInfo->DataCa,
ptUserInfo->GisInterval,
ptUserInfo->audioRcrd,
ptUserInfo->videoRcrd);
return MYSQL_udb_excute(mysql_conn, strSql);
}
UINT MYSQL_UserAccount_Del(MYSQL *mysql_conn, UserDetailInfo *ptUserInfo)
{
char strSql[1024]; memset(strSql, 0, 1024);
if (strlen(ptUserInfo->AccountID))
{
sprintf(strSql, "delete from h_account where account_no=\'%s\';", ptUserInfo->AccountID);
}
else if (strlen(ptUserInfo->UserID))
{
sprintf(strSql, "delete from h_account where account_no=\'%s\';", ptUserInfo->UserID);
}
else
{
return XPOC_ERR_FAIL;
}
return MYSQL_udb_excute(mysql_conn, strSql);
}
UINT MYSQL_UserAccount_Mod(MYSQL *mysql_conn, UserDetailInfo *ptUserInfo)
{
char strSql[1024]; memset(strSql, 0, 1024);
sprintf(strSql, "update h_account set account_no=\'%s\',user_no=\'%s\',user_alias=\'%s\'," \
"password=\'%s\',fleet_id=%ld,attr=%d,audio_ca=%d,video_ca=%d,data_ca=%d, " \
"gis_interval=%d,audio_rcrd=%d,video_rcrd=%d where account_no = \'%s\';",
ptUserInfo->UserID,
ptUserInfo->UserAlias,
ptUserInfo->Password,
ptUserInfo->FleetID,
ptUserInfo->Attr,
ptUserInfo->AudioCa,
ptUserInfo->VideoCa,
ptUserInfo->DataCa,
ptUserInfo->GisInterval,
ptUserInfo->audioRcrd,
ptUserInfo->videoRcrd,
ptUserInfo->AccountID);
return MYSQL_udb_excute(mysql_conn, strSql);
}
UINT MYSQL_UserAccount_Qry(MYSQL *mysql_conn, UserDetailInfo *ptUserInfo)
{
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[1024]; memset(strSql, 0, 1024);
if (strlen(ptUserInfo->AccountID))
{
sprintf(strSql, "select account_no,user_no,user_alias,password,fleet_id,attr,audio_ca,video_ca," \
"data_ca,gis_interval,audio_rcrd,video_rcrd from h_account where account_no = \'%s\';",
ptUserInfo->AccountID);
}
else if (strlen(ptUserInfo->UserID))
{
sprintf(strSql, "select account_no,user_no,user_alias,password,fleet_id,attr,audio_ca,video_ca," \
"data_ca,gis_interval,audio_rcrd,video_rcrd from h_account where user_no = \'%s\';",
ptUserInfo->UserID);
}
else
{
return XPOC_ERR_FAIL;
}
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
ret_val = XPOC_ERR_FAIL;
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0])
strncpy(ptUserInfo->AccountID, (char *)row[0], STR_LEN32);
if (row[1])
strncpy(ptUserInfo->UserID, (char *)row[1], STR_LEN32);
if (row[2])
strncpy(ptUserInfo->UserAlias, (char *)row[2], STR_LEN32);
if (row[3])
strncpy(ptUserInfo->Password, (char *)row[3], STR_LEN32);
if (row[4])
ptUserInfo->FleetID = atol(row[4]);
if (row[5])
ptUserInfo->Attr = atoi(row[5]);
if (row[6])
ptUserInfo->AudioCa = atoi(row[6]);
if (row[7])
ptUserInfo->VideoCa = atoi(row[7]);
if (row[8])
ptUserInfo->DataCa = atoi(row[8]);
if (row[9])
ptUserInfo->GisInterval = atoi(row[9]);
if (row[10])
ptUserInfo->audioRcrd = atoi(row[10]);
if (row[11])
ptUserInfo->videoRcrd = atoi(row[11]);
ret_val = XPOC_ERR_SUCCESS;
}
mysql_free_result(result);
}
return ret_val;
}
UINT MYSQL_Group_QryByID(MYSQL *mysql_conn, char * pAccountID, char * pUserID, char *pGroupID, GroupDataInfo *ptGroupDataInfo, UCHAR bNeedSearchMember)
{
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[1024]; memset(strSql, 0, 1024);
if (0 < strlen(pAccountID))
{
sprintf(strSql, "select group_id,group_alias,audio_record,video_record,floor_time,idle_time " \
"from h_group where group_id in (select group_id from h_group_member where member_account_no = \'%s\');",
pAccountID);
}
else if (0 < strlen(pUserID))
{
sprintf(strSql, "select group_id,group_alias,audio_record,video_record,floor_time,idle_time " \
"from h_group where group_id in (select group_id from h_group_member where member_user_no = \'%s\');",
pUserID);
}
else if (0 < strlen(pGroupID))
{
sprintf(strSql, "select group_id,group_alias,audio_record,video_record,floor_time,idle_time " \
"from h_group where group_id = \'%s\';", pGroupID);
}
else
{
x_WarnLog("MYSQL_Group_QryByID failed id is null.\n");
return XPOC_ERR_FAIL;
}
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
ptGroupDataInfo->GroupNum = result->row_count;
ptGroupDataInfo->pGroupInfo = (GroupInfo*)malloc(sizeof(GroupInfo) * ptGroupDataInfo->GroupNum);
GroupInfo*pGroupInfo = NULL;
int i = 0;
for (i = 0; i < ptGroupDataInfo->GroupNum; i++)
{
row = mysql_fetch_row(result);
pGroupInfo = ptGroupDataInfo->pGroupInfo + i;
memset(pGroupInfo, 0, sizeof(GroupInfo));
strncpy(pGroupInfo->GroupID,row[0], STR_LEN32);
strncpy(pGroupInfo->GroupAlias,row[1], STR_LEN32);
pGroupInfo->audioRcrd = atoi(row[2]);
pGroupInfo->videoRcrd = atoi(row[3]);
pGroupInfo->FloorTime = atoi(row[4]);
pGroupInfo->IdleTime = atoi(row[5]);
if (0 != bNeedSearchMember)
{
if (XPOC_ERR_SUCCESS != MYSQL_GroupMember_Qry(mysql_conn, pGroupInfo))
{
mysql_free_result(result);
return XPOC_ERR_FAIL;
}
}
}
mysql_free_result(result);
}
return ret_val;
}
UINT MYSQL_GroupMember_Qry(MYSQL *mysql_conn, GroupInfo *pGroupInfo)
{
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[1024]; memset(strSql, 0, 1024);
sprintf(strSql, "select account_no,user_no,user_alias from h_account " \
"where user_no in (select member_user_no from h_group_member where group_id=\'%s\');",
pGroupInfo->GroupID);
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
pGroupInfo->tGroupMemberInfo.UserNum = result->row_count;
pGroupInfo->tGroupMemberInfo.pUserDetailInfo = (UserDetailInfo*)malloc(sizeof(UserDetailInfo) * pGroupInfo->tGroupMemberInfo.UserNum);
UserDetailInfo *pUserDetailInfo = NULL;
UINT k = 0;
for (k = 0; k < pGroupInfo->tGroupMemberInfo.UserNum; k++)
{
row = mysql_fetch_row(result);
pUserDetailInfo = pGroupInfo->tGroupMemberInfo.pUserDetailInfo + k;
memset(pUserDetailInfo, 0, sizeof(UserDetailInfo));
strncpy(pUserDetailInfo->AccountID, row[0], STR_LEN32);
strncpy(pUserDetailInfo->UserID, row[1], STR_LEN32);
strncpy(pUserDetailInfo->UserAlias, row[2], STR_LEN32);
}
mysql_free_result(result);
}
return ret_val;
}
long long CalcUserSessionID(char*pFromNo, char*pToNo)
{
unsigned int i = 0;
for (i = 0; i < MIN(strlen(pFromNo), strlen(pToNo)); i++)
{
if (pFromNo[i] != pToNo[i])
{
break;
}
}
long long lFromNo = atoll(pFromNo+i);
long long lToNo = atoll(pToNo+i);
if (lFromNo > lToNo)
{
char strSession[STR_LEN32];
strcpy(strSession, pFromNo+i);
strncpy(strSession + strlen(strSession), pToNo+i, MIN((STR_LEN32 - strlen(strSession)), (strlen(pToNo) - i)));
return atoll(strSession);
}
else
{
char strSession[STR_LEN32];
strcpy(strSession, pToNo+i);
strncpy(strSession + strlen(strSession), pFromNo+i, MIN((STR_LEN32 - strlen(strSession)), (strlen(pFromNo) - i)));
return atoll(strSession);
}
}
long long CalcGroupSessionID(char*pFromNo, char*pGroupNo)
{
char strSession[STR_LEN32];
strcpy(strSession, pFromNo);
strncpy(strSession + strlen(strSession), pGroupNo, MIN((STR_LEN32 - strlen(strSession)), (strlen(pGroupNo))));
return atoll(strSession);
}
UINT MYSQL_UserMessage_Add(MYSQL *mysql_conn, UserMessageInfo *pUserMessageInfo)
{
time_t aclock;
time(&aclock);
strftime(pUserMessageInfo->send_time, 20, "%Y-%m-%d %H:%M:%S", localtime(&aclock));
pUserMessageInfo->delivery_status = 1;
pUserMessageInfo->read_status = 1;
pUserMessageInfo->session_id = CalcUserSessionID(pUserMessageInfo->from_user_no,pUserMessageInfo->to_user_no);
if (pUserMessageInfo->msg_type <= E_MSG_TYPE_NULL || pUserMessageInfo->msg_type > E_MSG_TYPE_SOS)
{
x_ErrorLog("Error MYSQL_UserMessage_Add FAILED!! msg_type [%d] is not corrected", pUserMessageInfo->msg_type);
return XPOC_ERR_FAIL;
}
// modified by shm at 20210201,pCompany_no改为获取8位集团号
char pCompany_no[9] = {0};
strncpy(pCompany_no, pUserMessageInfo->from_user_no, 8);
char strSql[1024]; memset(strSql, 0, 1024);
sprintf(strSql, "insert into h_user_msg(fleet_id,session_id,caller_no,callee_no,msg_type,msg_content," \
"send_time,delivery_status,read_status) values(%lld,%lld,\'%s\',\'%s\',%d,\'%s\',\'%s\',%d,%d);",
atoll(pCompany_no),
pUserMessageInfo->session_id,
pUserMessageInfo->from_user_no,
pUserMessageInfo->to_user_no,
pUserMessageInfo->msg_type,
pUserMessageInfo->msg_content,
pUserMessageInfo->send_time,
pUserMessageInfo->delivery_status,
pUserMessageInfo->read_status);
if (XPOC_ERR_SUCCESS != MYSQL_udb_excute(mysql_conn, strSql))
{
x_ErrorLog("Error MYSQL_UserMessage_Add FAILED!!");
return XPOC_ERR_FAIL;
}
else
{
memset(strSql, 0, 1024);
sprintf(strSql, "SELECT LAST_INSERT_ID();");
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0])
{
pUserMessageInfo->id = atoll(row[0]);
break;
}
}
mysql_free_result(result);
}
}
return XPOC_ERR_SUCCESS;
}
// added by shm
UINT MYSQL_UserSos_Add(MYSQL *mysql_conn, UserSosInfo *pUserSosInfo)
{
XPOC_TRACEFUNC_IN;
time_t aclock;
time(&aclock);
strftime(pUserSosInfo->send_time, 20, "%Y-%m-%d %H:%M:%S", localtime(&aclock));
pUserSosInfo->status = 0; // 告警失败
// modified by shm at 20210201,pCompany_no改为获取8位集团号
char pCompany_no[9] = {0};
strncpy(pCompany_no, pUserSosInfo->from_user_no, 8);
char strSql[1024];
memset(strSql, 0, 1024);
sprintf(strSql, "insert into h_user_sos(fleet_id,sos_id,caller_no,callee_no,msg_content," \
"send_time,status) values(\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',%d);",
pCompany_no,
pUserSosInfo->sos_id,
pUserSosInfo->from_user_no,
pUserSosInfo->to_user_no,
pUserSosInfo->msg_content,
pUserSosInfo->send_time,
pUserSosInfo->status);
if (XPOC_ERR_SUCCESS != MYSQL_udb_excute(mysql_conn, strSql))
{
x_ErrorLog("Error MYSQL_UserMessage_Add FAILED!!");
return XPOC_ERR_FAIL;
}
else
{
memset(strSql, 0, 1024);
sprintf(strSql, "SELECT LAST_INSERT_ID();");
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0])
{
pUserSosInfo->id = atoll(row[0]);
break;
}
}
mysql_free_result(result);
}
}
return XPOC_ERR_SUCCESS;
}
// added by shm
UINT MYSQL_UserSos_Upd(MYSQL *mysql_conn, UserSosInfo *pUserSosInfo)
{
XPOC_TRACEFUNC_IN;
(void)mysql_conn;
time_t aclock;
time(&aclock);
strftime(pUserSosInfo->send_time, 20, "%Y-%m-%d %H:%M:%S", localtime(&aclock));
char strSql[1024] = {0};
sprintf(strSql, "update h_user_sos set status=%d where sos_id=\'%s\';",
pUserSosInfo->status,
pUserSosInfo->sos_id);
UINT ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("upt h_user_sos failed.");
}
return XPOC_ERR_SUCCESS;
}
UINT MYSQL_GroupMessage_Add(MYSQL *mysql_conn, GroupMessageInfo *pGroupMessageInfo)
{
time_t aclock;
time(&aclock);
strftime(pGroupMessageInfo->send_time, 20, "%Y-%m-%d %H:%M:%S", localtime(&aclock));
pGroupMessageInfo->session_id = CalcGroupSessionID(pGroupMessageInfo->from_user_no,pGroupMessageInfo->group_no);
if (pGroupMessageInfo->msg_type < 1 || pGroupMessageInfo->msg_type > 4)
{
x_ErrorLog("Error MYSQL_GroupMessage_Add FAILED!! msg_type is not corrected");
return XPOC_ERR_FAIL;
}
// modified by shm at 20210201,pCompany_no改为获取8位集团号
char pCompany_no[9] = {0};
strncpy(pCompany_no, pGroupMessageInfo->from_user_no, 8);
char strSql[1024]; memset(strSql, 0, 1024);
sprintf(strSql, "insert into h_group_msg(fleet_id,session_id,caller_no,group_no,msg_type,msg_content,send_time)" \
" values(%lld,%lld,%lld,%lld,%d,\'%s\',\'%s\');",
atoll(pCompany_no),
pGroupMessageInfo->session_id,
atoll(pGroupMessageInfo->from_user_no),
atoll(pGroupMessageInfo->group_no),
pGroupMessageInfo->msg_type,
pGroupMessageInfo->msg_content,
pGroupMessageInfo->send_time);
if (XPOC_ERR_SUCCESS != MYSQL_udb_excute(mysql_conn, strSql))
{
x_ErrorLog("Error MYSQL_UserMessage_Add FAILED!!");
return XPOC_ERR_FAIL;
}
else
{
memset(strSql, 0, 1024);
sprintf(strSql, "SELECT LAST_INSERT_ID();");
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0])
{
pGroupMessageInfo->id = atoll(row[0]);
break;
}
}
mysql_free_result(result);
}
}
return XPOC_ERR_SUCCESS;
}
UINT MYSQL_GIS_Add(MYSQL *mysql_conn, GisInfo *pGisInfo)
{
UserDetailInfo tUserDetailInfo;
memset(&tUserDetailInfo, 0, sizeof(UserDetailInfo));
strncpy(tUserDetailInfo.UserID, pGisInfo->UserID, STR_LEN32);
if (XPOC_ERR_SUCCESS != MYSQL_UserAccount_Qry(mysql_conn, &tUserDetailInfo))
{
x_ErrorLog("Error MYSQL_GIS_Add FAILED!! UserID is not corrected");
return XPOC_ERR_FAIL;
}
else
{
time_t aclock;
time(&aclock);
char create_time[STR_LEN32]; memset(create_time, 0, STR_LEN32);
strftime(create_time, 20, "%Y-%m-%d %H:%M:%S", localtime(&aclock));
char strSql[1024]; memset(strSql, 0, 1024);
sprintf(strSql, "insert into h_gps_loc(main_id,account_id,lon,lat,up_time) values(%lld,%lld,%10.6f,%10.6f,\'%s\');",
(long long)(tUserDetailInfo.FleetID),
atoll(tUserDetailInfo.AccountID),
atof(pGisInfo->Lon),
atof(pGisInfo->Lat),
create_time);
return MYSQL_udb_excute(mysql_conn, strSql);
}
}
UINT MYSQL_UserVideo_Add(MYSQL *mysql_conn, H_User_Video_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "insert into h_user_video(fleet_id, call_type, call_id, caller_no, callee_no, start_time, end_time) " \
"values(\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\');",
ptData->company_no,
ptData->biz_type,
ptData->call_id,
ptData->from_user_no,
ptData->to_user_no,
ptData->start_time,
ptData->end_time);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Add h_user_video failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVideo_Upt_StartTime(MYSQL *mysql_conn, H_User_Video_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "update h_user_video set start_time= \'%s\' where call_id= \'%s\';",
ptData->start_time, ptData->call_id);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("upt h_user_video failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVideo_Upt_EndTime(MYSQL *mysql_conn, H_User_Video_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "update h_user_video set end_time= \'%s\' where call_id= \'%s\';",
ptData->end_time, ptData->call_id);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("upt h_user_video failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVideo_Qry_Id_By_UserNo(MYSQL *mysql_conn, H_User_Video_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "select max(id) from h_user_video where from_user_no= \'%s\' and to_user_no= \'%s\';",
ptData->from_user_no,
ptData->to_user_no);
ulReturn = MYSQL_udbGetRecord(mysql_connect, strSql, &result);
if (ulReturn == XPOC_ERR_SUCCESS)
{
UINT i = 0;
while((row = mysql_fetch_row(result)) != NULL)
{
ptData->id = atoi(row[0]);
i++;
}
mysql_free_result(result);
}
x_InfoLog("get id[%d] by from_user[%lld]+to_user[%lld].", ptData->id, ptData->from_user_no, ptData->to_user_no);
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVideo_Qry_Id_By_SipCallId(MYSQL *mysql_conn, H_User_Video_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "select max(id) from h_user_video where call_id= \'%s\';", ptData->call_id);
ulReturn = MYSQL_udbGetRecord(mysql_connect, strSql, &result);
if (ulReturn == XPOC_ERR_SUCCESS)
{
UINT i = 0;
while((row = mysql_fetch_row(result)) != NULL)
{
if(NULL == row[0])
return XPOC_ERR_FAIL;
ptData->id = atoi(row[0]);
i++;
}
mysql_free_result(result);
}
x_InfoLog("get id[%d] by call_id[%s].", ptData->id, ptData->call_id);
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVideoItem_Add(MYSQL *mysql_conn, H_User_Video_Item_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
// x_InfoLog("szFromUrl:%s.\n", ptData->from_video_url);
// x_InfoLog("szToUrl:%s.\n", ptData->to_video_url);
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "insert into h_user_video_item(fleet_id,user_video_id,user_no,call_id," \
"start_time, end_time, record_file, record_time, duration_time) " \
"values(\'%s\',%lld,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\');",
ptData->company_no,
ptData->user_video_no,
ptData->user_no,
ptData->call_id,
ptData->start_time,
ptData->end_time,
ptData->from_video_url,
ptData->record_time,
ptData->duration_time);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Add h_user_video_item failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVoice_Add(MYSQL *mysql_conn, H_User_Voice_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "insert into h_user_voice(fleet_id, call_type, call_id, " \
"caller_no, callee_no, start_time, end_time) " \
"values(\'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\', \'%s\');",
ptData->company_no,
ptData->biz_type,
ptData->call_id,
ptData->from_user_no,
ptData->to_user_no,
ptData->start_time,
ptData->end_time);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Add h_user_voice failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVoice_Upt_EndTime(MYSQL *mysql_conn, H_User_Voice_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "update h_user_voice set end_time= \'%s\' where call_id= \'%s\';",
ptData->end_time, ptData->call_id);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("upt h_user_voice failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVoice_Qry_Id_By_UserNo(MYSQL *mysql_conn, H_User_Voice_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "select max(id) from h_user_voice where from_user_no= \'%s\' and to_user_no= \'%s\';",
ptData->from_user_no,
ptData->to_user_no);
ulReturn = MYSQL_udbGetRecord(mysql_connect, strSql, &result);
if (ulReturn == XPOC_ERR_SUCCESS)
{
UINT i = 0;
while((row = mysql_fetch_row(result)) != NULL)
{
ptData->id = atoi(row[0]);
i++;
}
mysql_free_result(result);
}
//x_InfoLog("get id[%d] by from_user[%lld]+to_user[%lld].", ptData->id, ptData->from_user_no, ptData->to_user_no);
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVoice_Qry_Id_By_SipCallId(MYSQL *mysql_conn, H_User_Voice_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "select max(id) from h_user_voice where call_id= \'%s\';", ptData->call_id);
ulReturn = MYSQL_udbGetRecord(mysql_connect, strSql, &result);
if (ulReturn == XPOC_ERR_SUCCESS)
{
UINT i = 0;
while((row = mysql_fetch_row(result)) != NULL)
{
if(NULL == row[0])
{
mysql_free_result(result);
return XPOC_ERR_FAIL;
}
ptData->id = atoi(row[0]);
i++;
}
mysql_free_result(result);
}
//x_InfoLog("get id[%d] by call_id[%s].", ptData->id, ptData->call_id);
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVoiceItem_Add(MYSQL *mysql_conn, H_User_Voice_Item_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
// x_InfoLog("szFromUrl[%s].\n", ptData->from_voice_url);
// x_InfoLog("szToUrl[%s].\n", ptData->to_voice_url);
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "insert into h_user_voice_item(fleet_id,user_voice_id,user_no,call_id," \
"start_time, end_time, record_file, record_time) " \
"values(\'%s\',%lld,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\');",
ptData->company_no,
ptData->user_voice_no,
ptData->user_no,
ptData->call_id,
ptData->start_time,
ptData->end_time,
ptData->from_voice_url,
ptData->record_time);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Add h_user_voice_item failed.");
}
//x_InfoLog("TEST[%s].\n", strSql);
//x_InfoLog("TEST[%s].\n", (strSql+150));
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseFile_Add(MYSQL *mysql_conn, H_FSEFILE_ADD_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "insert into h_fse_file(fleet_id,file_name,file_url,file_hash,"
"file_uploaded_size,create_time,creater_user_id) " \
"values(%lld,\'%s\',\'%s\',\'%s\',%lld,\'%s\',\'%s\');",
ptData->fleet_id, ptData->file_name, ptData->file_url,
ptData->file_hash, ptData->file_uploaded_size,
ptData->create_time, ptData->creater_user_id);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Add h_fse_file failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseFile_Qry_By_FileHash(MYSQL *mysql_conn, H_FSEFILE_ADD_S *ptData)
{
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
if (strlen(ptData->file_hash))
{
sprintf(strSql, "select fleet_id,file_name,file_url from h_fse_file where file_hash = \'%s\';",
ptData->file_hash);
}
else
{
x_WarnLog("file_hash is NULL.");
return XPOC_ERR_FAIL;
}
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
ret_val = XPOC_ERR_FAIL;
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0] == NULL || row[1] == NULL || row[2] == NULL)
{
mysql_free_result(result);
return XPOC_ERR_FAIL;
}
else
{
ptData->fleet_id = atol(row[0]);
strncpy(ptData->file_name, (char *)row[1], STR_LEN512);
strncpy(ptData->file_url, (char *)row[2], STR_LEN512);
}
ret_val = XPOC_ERR_SUCCESS;
}
mysql_free_result(result);
}
return ret_val;
}
UINT MYSQL_FseFile_Qry_By_FileName(MYSQL *mysql_conn, H_FSEFILE_ADD_S *ptData)
{
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
if (strlen(ptData->file_name))
{
sprintf(strSql, "select file_url,file_uploaded_size from h_fse_file where file_name = \'%s\';", ptData->file_name);
}
else
{
x_WarnLog("file_name is NULL.");
return XPOC_ERR_FAIL;
}
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
ret_val = XPOC_ERR_FAIL;
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0] == NULL || row[1] == NULL)
{
mysql_free_result(result);
return XPOC_ERR_FAIL;
}
else
{
strncpy(ptData->file_url, (char *)row[0], STR_LEN512);
ptData->file_uploaded_size = atol(row[1]);
}
ret_val = XPOC_ERR_SUCCESS;
}
mysql_free_result(result);
}
return ret_val;
}
UINT MYSQL_FseFile_Mod(MYSQL *mysql_conn, H_FSEFILE_ADD_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
if (strlen(ptData->file_name))
{
sprintf(strSql, "update h_fse_file set file_uploaded_size = %lld,file_hash= \'%s\' "
" where file_name = \'%s\';",
ptData->file_uploaded_size, ptData->file_hash, ptData->file_name);
}
else
{
x_WarnLog("file_name is NULL.");
return XPOC_ERR_FAIL;
}
ulReturn = MYSQL_udb_excute(mysql_conn, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Mod h_fse_file failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseFile_Del_By_FileName(MYSQL *mysql_conn, H_FSEFILE_ADD_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN256];
memset(strSql, 0, STR_LEN256);
sprintf(strSql, "delete from h_fse_file where file_name = \'%s\';", ptData->file_name);
ulReturn = MYSQL_udb_excute(mysql_conn, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_fse_file record failed. FileName[%s]", ptData->file_name);
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseFile_Delete(MYSQL *mysql_conn, H_USER_Record_Delete_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strUserMsg[STR_LEN512];
memset(strUserMsg, 0, STR_LEN512);
sprintf(strUserMsg, "delete from h_user_msg where fleet_id = \'%s\' and send_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, strUserMsg);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_user_msg record failed. fleet_id[%s], deleteTime[%s]", ptData->aucFleetId, ptData->aucDeleteTime);
}
char strGroupMsg[STR_LEN512];
memset(strGroupMsg, 0, STR_LEN512);
sprintf(strGroupMsg, "delete from h_group_msg where fleet_id = \'%s\' and send_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, strGroupMsg);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_group_msg record failed. fleet_id[%s], deleteTime[%s]", ptData->aucFleetId, ptData->aucDeleteTime);
}
char aucDelFsefile[STR_LEN512];
memset(aucDelFsefile, 0, STR_LEN512);
sprintf(aucDelFsefile, "delete from h_fse_file where fleet_id = \'%s\' and create_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, aucDelFsefile);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_fse_file record failed. fleet_id[%s], deleteTime[%s]", ptData->aucFleetId, ptData->aucDeleteTime);
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_SOS_Delete(MYSQL *mysql_conn, H_USER_Record_Delete_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strUserSosMsg[STR_LEN512];
memset(strUserSosMsg, 0, STR_LEN512);
sprintf(strUserSosMsg, "delete from h_user_sos where fleet_id = \'%s\' and send_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, strUserSosMsg);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_user_sos record failed. fleet_id[%s], deleteTime[%s]", ptData->aucFleetId, ptData->aucDeleteTime);
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseOffLineFile_Add(MYSQL *mysql_conn, H_FSE_OFFLINE_FILE_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN1024];
memset(strSql, 0, STR_LEN1024);
sprintf(strSql, "insert into h_fse_offline_file(fleet_id,creater_user_id,case_no,file_name,file_url,"
"file_hash,file_size,file_uploaded_size,file_duration,create_time,file_state,file_type,file_spec_flag,file_remark) "
"values(%lld,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',%lld,%lld,\'%s\',\'%s\',%d,%d,%d,\'%s\');",
ptData->fleet_id, ptData->creater_user_id, ptData->case_no, ptData->file_name,
ptData->file_url, ptData->file_hash, ptData->file_size,
ptData->file_uploaded_size, ptData->file_duration, ptData->create_time,
ptData->file_state, ptData->file_type, ptData->file_spec_flag, ptData->file_remark);
ulReturn = MYSQL_udb_excute(mysql_connect, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Add h_fse_offline_file failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseOffLineFile_Qry_By_FileHash(MYSQL *mysql_conn, H_FSE_OFFLINE_FILE_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
if (strlen(ptData->file_hash))
{
sprintf(strSql, "select fleet_id,file_name,file_url from h_fse_offline_file where file_hash = \'%s\';",
ptData->file_hash);
}
else
{
x_WarnLog("file_hash is NULL.");
return XPOC_ERR_FAIL;
}
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
ret_val = XPOC_ERR_FAIL;
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0] == NULL || row[1] == NULL || row[2] == NULL)
{
mysql_free_result(result);
x_WarnLog("Do not find record by filehash[%s].", ptData->file_hash);
return XPOC_ERR_FAIL;
}
else
{
ptData->fleet_id = atol(row[0]);
strncpy(ptData->file_name, (char *)row[1], STR_LEN512);
strncpy(ptData->file_url, (char *)row[2], STR_LEN512);
}
ret_val = XPOC_ERR_SUCCESS;
}
mysql_free_result(result);
}
XPOC_TRACEFUNC_OUT;
return ret_val;
}
UINT MYSQL_FseOffLineFile_Qry_By_FileName(MYSQL *mysql_conn, H_FSE_OFFLINE_FILE_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ret_val = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
if (strlen(ptData->file_name))
{
sprintf(strSql, "select fleet_id,file_size,file_uploaded_size,file_url,file_hash,file_state from h_fse_offline_file "
" where file_name = \'%s\';",
ptData->file_name);
}
else
{
x_WarnLog("file_name is NULL.");
return XPOC_ERR_FAIL;
}
ret_val = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ret_val == XPOC_ERR_SUCCESS)
{
ret_val = XPOC_ERR_FAIL;
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0] == NULL || row[1] == NULL || row[2] == NULL || row[3] == NULL || row[4] == NULL || row[5] == NULL)
{
mysql_free_result(result);
x_WarnLog("Do not find record by filename[%s].", ptData->file_name);
return XPOC_ERR_FAIL;
}
else
{
ptData->fleet_id = atol(row[0]);
ptData->file_size = atoll(row[1]);
ptData->file_uploaded_size = atol(row[2]);
strncpy(ptData->file_url, (char *)row[3], STR_LEN512);
strncpy(ptData->file_hash, (char *)row[4], 40);
ptData->file_state = (char)atoi(row[5]);
}
ret_val = XPOC_ERR_SUCCESS;
}
mysql_free_result(result);
}
XPOC_TRACEFUNC_OUT;
return ret_val;
}
UINT MYSQL_FseOffLineFile_Qry_To_DelFile(MYSQL *mysql_conn, H_USER_Record_Delete_S *ptData, char *path) //参数3-离线文件根目录,集团目录上一级
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char aucRmOffLineFile[STR_LEN512];
memset(aucRmOffLineFile, 0, STR_LEN512);
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "select file_url,file_name,creater_user_id from h_fse_offline_file where fleet_id = \'%s\' and create_time < \'%s\' and file_spec_flag = 0;",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ulReturn == XPOC_ERR_SUCCESS)
{
UINT i = 0;
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0] == NULL || row[1] == NULL || row[2] == NULL)
{
x_WarnLog("That has incomplete record, file_url[%s], file_name[%s], creater_user_id[%s].", row[0], row[1], row[2]);
}
else
{
//删除对应文件
sprintf(aucRmOffLineFile, "%s/%s/%s", path, row[0], row[1]);
if(remove(aucRmOffLineFile) == 0)
{
x_InfoLog("delete offline file[%s] success!", ptData->aucFleetId, aucRmOffLineFile);
i++;
}
else
{
x_ErrorLog("delete offline file[%s] fail!", ptData->aucFleetId, aucRmOffLineFile);
}
}
}
x_InfoLog("OffLinefile Qry to Del Num[%d], Delete OffLinefile Num[%d] actually !", mysql_num_rows(result), i);
mysql_free_result(result);
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseOffLineFile_QryOldest_To_Del(MYSQL *mysql_conn, H_USER_Record_Delete_S *ptData, char *path)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
MYSQL_RES *result;
MYSQL_ROW row;
char aucRmOffLineFile[STR_LEN512];
memset(aucRmOffLineFile, 0, STR_LEN512);
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "select file_url,file_name,min(start_time),creater_user_id from (select * from h_fse_offline_file where fleet_id = \'%s\' and file_spec_flag = 0 ) tb1;",
ptData->aucFleetId);
ulReturn = MYSQL_udbGetRecord(mysql_conn, strSql, &result);
if (ulReturn == XPOC_ERR_SUCCESS)
{
while ((row = mysql_fetch_row(result)) != NULL)
{
if (row[0] == NULL || row[1] == NULL || row[2] == NULL || row[3]==NULL)
{
mysql_free_result(result);
x_WarnLog("That has incomplete record, file_url[%s], file_name[%s], start_time[%s], creater_user_id[%s].", row[0], row[1], row[2], row[3]);
return XPOC_ERR_FAIL;
}
else
{
//删除对应文件
sprintf(aucRmOffLineFile, "%s/%s/%s", path, row[0], row[1]);
if(remove(aucRmOffLineFile) == 0)
{
x_InfoLog("delete oldest offline file[%s] success!", ptData->aucFleetId, aucRmOffLineFile);
}
else
{
x_ErrorLog("delete oldest offline file[%s] fail!", ptData->aucFleetId, aucRmOffLineFile);
}
}
}
mysql_free_result(result);
}
memset(strSql, 0, STR_LEN512);
sprintf(strSql, "delete from h_fse_offline_file where file_url = \'%s\' and file_name = \'%s\';", row[0], row[1]);
ulReturn = MYSQL_udb_excute(mysql_conn, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_fse_offline_file record failed. file_url[%s], file_name[%s].", row[0], row[1]);
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseOffLineFile_Mod(MYSQL *mysql_conn, H_FSE_OFFLINE_FILE_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char strSql[STR_LEN512];
memset(strSql, 0, STR_LEN512);
if (strlen(ptData->file_name))
{
sprintf(strSql, "update h_fse_offline_file set file_uploaded_size = %lld,file_state=%d "
" where file_name = \'%s\';",
ptData->file_uploaded_size, ptData->file_state, ptData->file_name);
}
else
{
x_WarnLog("file_name is NULL.");
return XPOC_ERR_FAIL;
}
ulReturn = MYSQL_udb_excute(mysql_conn, strSql);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_WarnLog("Mod h_fse_offline_file failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_FseOffLineFile_Del(MYSQL *mysql_conn, H_USER_Record_Delete_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
char aucDelFseOffLinefile[STR_LEN512];
memset(aucDelFseOffLinefile, 0, STR_LEN512);
sprintf(aucDelFseOffLinefile, "delete from h_fse_offline_file where fleet_id = \'%s\' and create_time < \'%s\' and file_spec_flag = 0;",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_conn, aucDelFseOffLinefile);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("fleet[%s] delete h_fse_offline_file record before time[%s] failed.", ptData->aucFleetId, ptData->aucDeleteTime);
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserAudioRecord_Delete(MYSQL* mysql_conn, H_USER_Record_Delete_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
// delete h_user_voice
char strSqlVoice[STR_LEN512];
memset(strSqlVoice, 0, STR_LEN512);
sprintf(strSqlVoice, "delete from h_user_voice where fleet_id = \'%s\' and start_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, strSqlVoice);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_user_voice record failed.");
}
// delete h_user_voice_item
char strSqlVoiceItem[STR_LEN512];
memset(strSqlVoiceItem, 0, STR_LEN512);
sprintf(strSqlVoiceItem, "delete from h_user_voice_item where fleet_id = \'%s\' and start_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, strSqlVoiceItem);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_user_voice_item record failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
UINT MYSQL_UserVideoRecord_Delete(MYSQL* mysql_conn, H_USER_Record_Delete_S *ptData)
{
XPOC_TRACEFUNC_IN;
X_NULL_POINTER_CHK_TWO_PARA(mysql_conn, ptData);
UINT ulReturn = XPOC_ERR_SUCCESS;
// delete h_user_vedio
char strSqlVideo[STR_LEN512];
memset(strSqlVideo, 0, STR_LEN512);
sprintf(strSqlVideo, "delete from h_user_video where fleet_id = \'%s\' and start_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, strSqlVideo);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_user_voice record failed.");
}
// delete h_user_vedio_item
char strSqlVideoItem[STR_LEN512];
memset(strSqlVideoItem, 0, STR_LEN512);
sprintf(strSqlVideoItem, "delete from h_user_video_item where fleet_id = \'%s\' and start_time < \'%s\';",
ptData->aucFleetId, ptData->aucDeleteTime);
ulReturn = MYSQL_udb_excute(mysql_connect, strSqlVideoItem);
if (XPOC_ERR_SUCCESS != ulReturn)
{
x_ErrorLog("delete h_user_voice_item record failed.");
}
XPOC_TRACEFUNC_OUT;
return ulReturn;
}
//UINT MYSQL_UserVoice_GetMaxId(UINT *ptId)
//{
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptId);
// UINT ulReturn = XPOC_ERR_SUCCESS;
// MYSQL_RES *result;
// MYSQL_ROW row;
// char strSql[STR_LEN32] = "";
// memset(strSql, 0, STR_LEN32);
//
// sprintf(strSql, "select max(id) from h_user_voice;");
// ulReturn = MYSQL_udbGetRecord(mysql_connect, strSql, &result);
// if (ulReturn == XPOC_ERR_SUCCESS)
// {
// UINT i = 0;
// while((row = mysql_fetch_row(result)) != NULL)
// {
// *ptId = atoi(row[0]);
// i++;
// }
// mysql_free_result(result);
// }
//
// x_InfoLog("get id[%d].", *ptId);
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
//}
/*
SQLITE 数据库 API
this interface only exec QRY operation, not exec ADD/DEL/MOD!
*/
// extern char glbSqliteDb[STR_LEN128];
//
//
// #if 0
// #endif
//
// UINT udbGetRecord(char *ptSql, int *ptRows, int *ptCols, char***ppptRecord)
// {
// UINT retCode = XPOC_ERR_SUCCESS;
//
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptSql);
// (void)ptSql;
// (void)ptRows;
// (void)ptCols;
// (void)ppptRecord;
//
// x_InfoLog("Exec SQL[%s].\n", ptSql);
//
// sqlite3 *db_Xpoc = NULL;
//
// char *path;
// asprintf(&path, "%s", glbSqliteDb);
// x_InfoLog("Xpoc DB[%s].\n", glbSqliteDb);
//
// if( 0 != access(path, F_OK) ) // if database file exist, return OK; else create it.
// {
// x_ErrorLog("[%s] does not exist, please check.\n", path);
// return XPOC_ERR_FAIL;
// }
//
// if( 0 != sqlite3_open(path, &db_Xpoc) )//open database, if not exist then create it.
// {
// sqlite3_close(db_Xpoc);
// x_ErrorLog("Error opening db[%s].\n", path);
// return XPOC_ERR_FAIL;
// }
//
//
// int retVal = 0;
// char *errorMsg = NULL;
// while(1)
// {
// retVal = sqlite3_get_table(db_Xpoc, ptSql, (char ***)ppptRecord, (int *)ptRows, (int *)ptCols, &errorMsg);
// if(retVal == SQLITE_BUSY)
// {
// x_ErrorLog("sqlite3_get_table returned SQLITE_BUSY. Trying again.");
// continue;
// }
// else
// {
// break;
// }
// }
//
// if(SQLITE_OK != retVal || 0 == *ptRows)
// {
// x_ErrorLog("sqlite3_get_table failed. retcode[%d], errorMsg[%s].", retVal, errorMsg);
// retCode = XPOC_ERR_FAIL;
// }
// else
// {
// x_InfoLog("sqlite3_get_table OK. retcode[%d], rows[%d], column[%d].", retVal, *ptRows, *ptCols);
// retCode = XPOC_ERR_SUCCESS;
// }
//
// sqlite3_close(db_Xpoc); //close database
// sqlite3_free(errorMsg);
//
// XPOC_TRACEFUNC_OUT;
// return retCode;
// }
//
// /*
// this interface only exec ADD/DEL/MOD operation ,not exec QRY!
// */
// UINT udbOprRecord(char *ptSql)
// {
// UINT retCode = XPOC_ERR_SUCCESS;
//
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptSql);
//
// x_InfoLog("Exec SQL[%s].\n", ptSql);
//
// sqlite3 *db_Xpoc = NULL;
//
// char *path;
// asprintf(&path, "%s", glbSqliteDb);
// x_InfoLog("Xpoc DB[%s].\n", glbSqliteDb);
//
// if( 0 != access(path, F_OK) ) // if database file exist, return OK; else create it.
// {
// x_ErrorLog("[%s] does not exist, please check.\n", path);
// return XPOC_ERR_FAIL;
// }
//
// if( 0 != sqlite3_open(path, &db_Xpoc) )//open database, if not exist then create it.
// {
// sqlite3_close(db_Xpoc);
// x_ErrorLog("Error opening db[%s].\n", path);
// return XPOC_ERR_FAIL;
// }
//
//
// int retVal = 0;
// char *errorMsg = NULL;
// retVal = sqlite3_exec(db_Xpoc, ptSql, NULL, NULL, &errorMsg);
// if(SQLITE_OK != retVal)
// {
// x_ErrorLog("sqlite3_exec Fail. retcode[%d], errMsg[%s].", retVal, errorMsg);
// retCode = XPOC_ERR_FAIL;
// }
// else
// {
// x_InfoLog("sqlite3_exec OK. retcode[%d].", retVal);
// retCode = XPOC_ERR_SUCCESS;
// }
//
// sqlite3_close(db_Xpoc); //close database
// sqlite3_free(errorMsg);
//
//
// XPOC_TRACEFUNC_OUT;
// return retCode;
// }
//
//
// #if 0
// /*---------------------------------------------------------------*/
// #endif
//
// UINT Conf_NeEntityCfg_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_NeEntityCfg_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_NeEntityCfg_Mod(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
//
// /* 通过 entityType 或者 devId 查询 */
// UINT Conf_NeEntityCfg_Qry
// (
// EntityType_E entityType,
// UCHAR devId,
// T_ELEMENT_CfgStruct *ptNeEntityCfg
// )
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptNeEntityCfg);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
//
// if(D_PROCTYPE_BUTT != entityType && 0 != entityType)
// {
// sprintf(strSql, "select * from NE_ENTITY_CFG where EntityType = %d;", entityType);
// }
// else if(INVALID_VALUE_UCHAR != devId && 0 != devId)
// {
// sprintf(strSql, "select * from NE_ENTITY_CFG where DevId = %d;", devId);
// }
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn || 0 == nRows)
// {
// x_WarnLog("get NE_ENTITY_CFG failed, entitytype[%d], devid[%d].\n", entityType, devId);
// return XPOC_ERR_FAIL;
// }
//
// x_InfoLog("get NE_ENTITY_CFG Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptNeEntityCfg->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// ptNeEntityCfg->EntityType = atoi(pptRecord[1*nCols+1]);
// ptNeEntityCfg->DevId = atoi(pptRecord[1*nCols+2]);
// memcpy(ptNeEntityCfg->DevHostName, pptRecord[1*nCols+3], MIN(STR_LEN32, strlen(pptRecord[1*nCols+3])));
// memcpy(ptNeEntityCfg->DevHostIp, pptRecord[1*nCols+4], MIN(STR_LEN32, strlen(pptRecord[1*nCols+4])));
// ptNeEntityCfg->DevPort = atoi(pptRecord[1*nCols+5]);
// memcpy(ptNeEntityCfg->PublicServiceId, pptRecord[1*nCols+6], MIN(STR_LEN32, strlen(pptRecord[1*nCols+6])));
// memcpy(ptNeEntityCfg->Introduction,pptRecord[1*nCols+7], MIN(STR_LEN256, strlen(pptRecord[1*nCols+7])));
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// UINT Conf_NeHttpLinkCfg_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_NeHttpLinkCfg_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_NeHttpLinkCfg_Mod(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
//
// /* 由于同一类型的网元唯一,因此可以按照 entitytype or devid 查询 */
// UINT Conf_NeHttpLinkCfg_Qry
// (
// IN EntityType_E entityType,
// IN UCHAR devId,
// OUT NE_HTTP_LINK_CFG_Struct *ptNeHttpLinkCfg
// )
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptNeHttpLinkCfg);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
//
// devId = D_PROCTYPE_UDE;
// sprintf(strSql, "select * from NE_HTTP_LINK_CFG where DevId = %d;", devId);
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get NE_HTTP_LINK_CFG failed, entitytype[%d], devid[%d].\n", entityType, devId);
// return ulReturn;
// }
//
// x_InfoLog("get NE_HTTP_LINK_CFG Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptNeHttpLinkCfg->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// ptNeHttpLinkCfg->DevId = atoi(pptRecord[1*nCols+1]);
// ptNeHttpLinkCfg->ServerOrClient = atoi(pptRecord[1*nCols+2]);
// memcpy(ptNeHttpLinkCfg->DevHostName, pptRecord[1*nCols+3], MIN(STR_LEN32, strlen(pptRecord[1*nCols+3])));
// memcpy(ptNeHttpLinkCfg->IpAddrVal, pptRecord[1*nCols+4], MIN(STR_LEN32, strlen(pptRecord[1*nCols+4])));
// ptNeHttpLinkCfg->PortVal = atoi(pptRecord[1*nCols+5]);
// memcpy(ptNeHttpLinkCfg->Introduction,pptRecord[1*nCols+6], MIN(STR_LEN256, strlen(pptRecord[1*nCols+6])));
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// UINT Conf_McIdMapCfg_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_McIdMapCfg_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_McIdMapCfg_Mod(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_McIdMapCfg_Qry
// (
// EntityType_E EntityType,
// char *ptXPOCIdPre,
// MCID_MAP_CFG_Struct *ptRecord
// )
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_TWO_PARA(ptXPOCIdPre, ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
// sprintf(strSql, "select * from MCID_MAP_CFG where EntityType = %d and McServiceIdPre=%s;", EntityType, ptXPOCIdPre);
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get MCID_MAP_CFG failed, entitytype[%d], XPOCIdPre[%s].\n", EntityType, ptXPOCIdPre);
// return ulReturn;
// }
//
// x_InfoLog("get MCID_MAP_CFG Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// ptRecord->EntityType = atoi(pptRecord[1*nCols+1]);
// memcpy(ptRecord->McServiceIdPre, pptRecord[1*nCols+2], MIN(STR_LEN32, strlen(pptRecord[1*nCols+2])));
// ptRecord->DstDevId = atoi(pptRecord[1*nCols+3]);
// memcpy(ptRecord->Introduction, pptRecord[1*nCols+4], MIN(STR_LEN256, strlen(pptRecord[1*nCols+4])));
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
// UINT Conf_GroupMapCfg_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_GroupMapCfg_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_GroupMapCfg_Mod(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_GroupMapCfg_Qry
// (
// char *ptGroupId,
// GROUP_MAP_CFG_Struct *ptRecord
// )
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// D_Check_NULL_TwoPara(ptGroupId, ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
// sprintf(strSql, "select * from GROUP_MAP_CFG where McGroupId = %d;", ptGroupId);
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get GROUP_MAP_CFG failed, McGroupId[%s].\n", ptGroupId);
// return ulReturn;
// }
//
// x_InfoLog("get GROUP_MAP_CFG Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->McGroupId, pptRecord[1*nCols+1], MIN(STR_LEN32, strlen(pptRecord[1*nCols+1])));
// ptRecord->DevId = atoi(pptRecord[1*nCols+2]);
// memcpy(ptRecord->Introduction, pptRecord[1*nCols+3], MIN(STR_LEN256, strlen(pptRecord[1*nCols+3])));
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// UINT Conf_RtcpLinkCfg_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_RtcpLinkCfg_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_RtcpLinkCfg_Mod(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_RtcpLinkCfg_Qry(RTCP_LINK_CFG_Struct *ptRecord)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
// strcpy(strSql, "select * from RTCP_LINK_CFG;");
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get RTCP_LINK_CFG failed.\n");
// return ulReturn;
// }
//
// x_InfoLog("get RTCP_LINK_CFG Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->AceRtcpIpAddr, pptRecord[1*nCols+1], MIN(STR_LEN32, strlen(pptRecord[1*nCols+1])));
// ptRecord->AceRtcpPort = atoi(pptRecord[1*nCols+2]);
// memcpy(ptRecord->CceRtcpIpAddr, pptRecord[1*nCols+3], MIN(STR_LEN32, strlen(pptRecord[1*nCols+3])));
// ptRecord->CceRtcpPort = atoi(pptRecord[1*nCols+4]);
// memcpy(ptRecord->MdeRtcpIpAddr, pptRecord[1*nCols+5], MIN(STR_LEN32, strlen(pptRecord[1*nCols+5])));
// ptRecord->MdeRtcpPort = atoi(pptRecord[1*nCols+6]);
// memcpy(ptRecord->Introduction, pptRecord[1*nCols+7], MIN(STR_LEN256, strlen(pptRecord[1*nCols+7])));
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// UINT Conf_KeyManagement_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_KeyManagement_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_KeyManagement_Mod(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_KeyManagement_Qry(KEY_MANAGEMENT_Struct *ptRecord)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
// strcpy(strSql, "select * from KEY_MANAGEMENT;");
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get KEY_MANAGEMENT failed.\n");
// return ulReturn;
// }
//
// x_InfoLog("get KEY_MANAGEMENT Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->Key, pptRecord[1*nCols+1], MIN(STR_LEN32, strlen(pptRecord[1*nCols+1])));
// memcpy(ptRecord->Introduction, pptRecord[1*nCols+2], MIN(STR_LEN256, strlen(pptRecord[1*nCols+2])));
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// UINT Conf_UeInitCfg_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_UeInitCfg_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_UeInitCfg_Mod(void)
// {
// //todo
// return 0;
// }
// UINT Conf_UeInitCfg_Qry(UE_INIT_CFG_Struct *ptRecord)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
// strcpy(strSql, "select * from UE_INIT_CFG;");
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get UE_INIT_CFG failed.\n");
// return ulReturn;
// }
//
// x_InfoLog("get UE_INIT_CFG Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->AuthEndPoint, pptRecord[1*nCols+1], MIN(STR_LEN32, strlen(pptRecord[1*nCols+1])));
// memcpy(ptRecord->TokenEndPoint, pptRecord[1*nCols+2], MIN(STR_LEN32, strlen(pptRecord[1*nCols+2])));
// memcpy(ptRecord->XmagHttpAddr, pptRecord[1*nCols+3], MIN(STR_LEN32, strlen(pptRecord[1*nCols+3])));
// memcpy(ptRecord->ActrSipAddr, pptRecord[1*nCols+4], MIN(STR_LEN32, strlen(pptRecord[1*nCols+4])));
// memcpy(ptRecord->ClientId, pptRecord[1*nCols+5], MIN(STR_LEN32, strlen(pptRecord[1*nCols+5])));
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// UINT Conf_UeservCtrl_Add(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_UeservCtrl_Del(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_UeservCtrl_Mod(void)
// {
// XPOC_TRACEFUNC_IN;
//
// //todo
//
// XPOC_TRACEFUNC_OUT;
// return 0;
// }
// UINT Conf_UeservCtrl_Qry(UE_SERVICE_CTRL_Struct *ptRecord)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// memset(strSql, 0, STR_LEN256);
// strcpy(strSql, "select * from UE_SERVICE_CTRL;");
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get UE_SERVICE_CTRL failed.\n");
// return ulReturn;
// }
//
// x_InfoLog("get UE_SERVICE_CTRL Record OK:rows[%d],cols[%d],record[%s].\n", nRows, nCols, *pptRecord);
// ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->domain, pptRecord[1*nCols+1], MIN(STR_LEN256, strlen(pptRecord[1*nCols+1])));
// ptRecord->CancelPcallTimeout = atoi(pptRecord[1*nCols+2]);
// ptRecord->GroupTimeLimit = atoi(pptRecord[1*nCols+3]);
// ptRecord->PcallHangTime = atoi(pptRecord[1*nCols+4]);
// ptRecord->FCMaxTime = atoi(pptRecord[1*nCols+5]);
// ptRecord->PcallMaxTime = atoi(pptRecord[1*nCols+6]);
// ptRecord->GroupPCTransTimeLimit = atoi(pptRecord[1*nCols+7]);
// ptRecord->FCQueueDepth = atoi(pptRecord[1*nCols+8]);
// ptRecord->UserFCMaxTime = atoi(pptRecord[1*nCols+9]);
// ptRecord->T7 = atoi(pptRecord[1*nCols+10]);
// ptRecord->T8 = atoi(pptRecord[1*nCols+11]);
// ptRecord->T15 = atoi(pptRecord[1*nCols+12]);
// ptRecord->T16 = atoi(pptRecord[1*nCols+13]);
// ptRecord->T17 = atoi(pptRecord[1*nCols+14]);
// ptRecord->T20 = atoi(pptRecord[1*nCols+15]);
// ptRecord->T55 = atoi(pptRecord[1*nCols+16]);
// ptRecord->T56 = atoi(pptRecord[1*nCols+17]);
// ptRecord->C7 = atoi(pptRecord[1*nCols+18]);
// ptRecord->C17 = atoi(pptRecord[1*nCols+19]);
// ptRecord->C20 = atoi(pptRecord[1*nCols+20]);
// ptRecord->C55 = atoi(pptRecord[1*nCols+21]);
// ptRecord->C56 = atoi(pptRecord[1*nCols+22]);
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// /*
// CREATE TABLE USER_ACCOUNT (
// 'Indx' INTEGER PRIMARY KEY AUTOINCREMENT,
// 'XPOCId' TEXT NOT NULL,
// 'PassWord' TEXT NOT NULL,
// 'UserAlias' TEXT NOT NULL,
// 'UserType' INTEGER NOT NULL, --用户类型:1-Normal,2-Admin,3-DC
// 'XPOCid' TEXT NOT NULL,
// 'videoid' TEXT NOT NULL,
// 'dataid' TEXT NOT NULL,
// 'IncallProhibit' INTEGER NOT NULL,
// 'OutcallProhibit' INTEGER NOT NULL,
// 'PttMaxSimuPrivateCallNum' INTEGER NOT NULL,
// 'PttMaxSimuGroupCallNum' INTEGER NOT NULL,
// 'VideoMaxSimuPrivateCallNum' INTEGER NOT NULL,
// 'VideoMaxSimuGroupCallNum' INTEGER NOT NULL,
// 'audioCallClass' INTEGER NOT NULL,
// 'videoCallClass' INTEGER NOT NULL,
// 'dataCallClass' INTEGER NOT NULL
// );
// */
// UINT Conf_UserAccount_Add(USER_ACCOUNT_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN1024];
//
// do
// {
// if(0 == strlen(ptRecord->AccntId) || 0 == strlen(ptRecord->PassWord))
// {
// x_WarnLog("invalid XPOCId[%s] or password[%s].\n", ptRecord->AccntId, ptRecord->PassWord);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
//
// memset(strSql, 0, STR_LEN1024);
// sprintf(strSql, "insert into USER_ACCOUNT values(NULL, \'%s\', \'%s\', \'%s\', %d, \'%s\', \'%s\', \'%s\', %d, %d, %d, %d, %d, %d, %d, %d, %d);",
// ptRecord->AccntId,
// ptRecord->PassWord,
// ptRecord->UserAlias,
// ptRecord->UserType,
// ptRecord->XPOCId,
// ptRecord->videoid,
// ptRecord->dataid,
// ptRecord->IncallProhibit,
// ptRecord->OutcallProhibit,
// ptRecord->PttMaxSimuPrivateCallNum,
// ptRecord->PttMaxSimuGroupCallNum,
// ptRecord->VideoMaxSimuPrivateCallNum,
// ptRecord->VideoMaxSimuGroupCallNum,
// ptRecord->audioCallClass,
// ptRecord->videoCallClass,
// ptRecord->dataCallClass);
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("add USER_ACCOUNT failed. XPOCId[%s], retCode[%d].\n", ptRecord->AccntId, ulReturn);
// break;
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
//
// UINT Conf_UserAccount_Del(USER_ACCOUNT_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN256];
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(strlen(ptRecord->AccntId) > 0)
// {
// sprintf(strSql, "delete from USER_ACCOUNT where XPOCId = \'%s\';", ptRecord->AccntId);
// }
// else
// {
// sprintf(strSql, "delete from USER_ACCOUNT where Indx = %ld;", ptRecord->Indx);
// }
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("delete USER_ACCOUNT failed. indx[%d], XPOCId[%s], retCode[%d].\n", ptRecord->Indx, ptRecord->AccntId, ulReturn);
// break;
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
//
// /*
// 只支持修改 密码和别名
// */
// UINT Conf_UserAccount_Mod(USER_ACCOUNT_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN256];
//
// do
// {
// if(0 == strlen(ptRecord->AccntId))
// {
// x_WarnLog("invalid XPOCId[%s].\n", ptRecord->AccntId);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
//
// memset(strSql, 0, STR_LEN256);
// if( strlen(ptRecord->PassWord) && strlen(ptRecord->UserAlias) )
// {
// sprintf(strSql, "update USER_ACCOUNT set PassWord=\'%s\', UserAlias=\'%s\' where XPOCId=\'%s\';",
// ptRecord->PassWord, ptRecord->UserAlias, ptRecord->AccntId);
// }
// else if(strlen(ptRecord->PassWord))
// {
// sprintf(strSql, "update USER_ACCOUNT set PassWord=\'%s\' where XPOCId=\'%s\';",
// ptRecord->PassWord, ptRecord->AccntId);
// }
// else if(strlen(ptRecord->UserAlias))
// {
// sprintf(strSql, "update USER_ACCOUNT set UserAlias=\'%s\' where XPOCId=\'%s\';",
// ptRecord->UserAlias, ptRecord->AccntId);
// }
// else
// {
// x_WarnLog("invalid password[%s] or useralias[%s] for XPOCId[%s].\n",
// ptRecord->PassWord, ptRecord->UserAlias, ptRecord->AccntId);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("update USER_ACCOUNT failed. XPOCId[%s], retCode[%d].\n", ptRecord->AccntId, ulReturn);
// ulReturn = XPOC_ERR_PDB_RECORD_EXIST;
// break;
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
//
// /* 单条记录查询接口 */
// UINT Conf_UserAccount_Qry(USER_ACCOUNT_Struct *ptRecord)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(strlen(ptRecord->AccntId))
// {
// sprintf(strSql, "select * from USER_ACCOUNT where McsId = \'%s\';", ptRecord->AccntId);
// }
// else if(strlen(ptRecord->XPOCId))
// {
// sprintf(strSql, "select * from USER_ACCOUNT where McsId = \'%s\';", ptRecord->XPOCId);
// }
// else
// {
// strcpy(strSql, "select * from USER_ACCOUNT;");
// }
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get USER_ACCOUNT failed, XPOCId[%s], retCode[%d].\n", ptRecord->AccntId, ulReturn);
// break;
// }
//
// UCHAR i = 1;
// // for(i=1; i<=nRows && i<XPOC_ACCOUNT_MAX_NUM; i++)
// {
// ptRecord->Indx = atoi(pptRecord[i*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->AccntId, pptRecord[i*nCols+1], MIN(STR_LEN32, strlen(pptRecord[i*nCols+1])));
// memcpy(ptRecord->PassWord, pptRecord[i*nCols+2], MIN(STR_LEN32, strlen(pptRecord[i*nCols+2])));
// memcpy(ptRecord->UserAlias, pptRecord[i*nCols+3], MIN(STR_LEN32, strlen(pptRecord[i*nCols+3])));
// ptRecord->UserType = atoi(pptRecord[i*nCols+4]);
// memcpy(ptRecord->XPOCId, pptRecord[i*nCols+5], MIN(STR_LEN32, strlen(pptRecord[i*nCols+5])));
// memcpy(ptRecord->videoid, pptRecord[i*nCols+6], MIN(STR_LEN32, strlen(pptRecord[i*nCols+6])));
// memcpy(ptRecord->dataid, pptRecord[i*nCols+7], MIN(STR_LEN32, strlen(pptRecord[i*nCols+7])));
// ptRecord->IncallProhibit = atoi(pptRecord[i*nCols+8]);
// ptRecord->OutcallProhibit = atoi(pptRecord[i*nCols+9]);
// ptRecord->PttMaxSimuPrivateCallNum = atoi(pptRecord[i*nCols+10]);
// ptRecord->PttMaxSimuGroupCallNum = atoi(pptRecord[i*nCols+11]);
// ptRecord->VideoMaxSimuPrivateCallNum= atoi(pptRecord[i*nCols+12]);
// ptRecord->VideoMaxSimuGroupCallNum = atoi(pptRecord[i*nCols+13]);
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// /* 多条记录查询接口 */
// UINT Conf_UserAccount_QryAll(USER_ACCOUNT_LIST_Struct *ptRecordList)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecordList);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(strlen(ptRecordList->strXPOCInfo[0].AccntId))
// {
// sprintf(strSql, "select * from USER_ACCOUNT where XPOCId = \'%s\';", ptRecordList->strXPOCInfo[0].AccntId);
// }
// else
// {
// strcpy(strSql, "select * from USER_ACCOUNT;");
// }
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get USER_ACCOUNT failed, XPOCId[%s], retCode[%d].\n", ptRecordList->strXPOCInfo[0].AccntId, ulReturn);
// break;
// }
//
// USER_ACCOUNT_Struct *ptRecord = NULL;
// UCHAR i = 0;
// for(i=1; i<=nRows && i<XPOC_ACCOUNT_MAX_NUM; i++)
// {
// ptRecord = &ptRecordList->strXPOCInfo[i-1];
// ptRecord->Indx = atoi(pptRecord[i*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->AccntId, pptRecord[i*nCols+1], MIN(STR_LEN32, strlen(pptRecord[i*nCols+1])));
// memcpy(ptRecord->PassWord, pptRecord[i*nCols+2], MIN(STR_LEN32, strlen(pptRecord[i*nCols+2])));
// memcpy(ptRecord->UserAlias, pptRecord[i*nCols+3], MIN(STR_LEN32, strlen(pptRecord[i*nCols+3])));
// ptRecord->UserType = atoi(pptRecord[i*nCols+4]);
// memcpy(ptRecord->XPOCId, pptRecord[i*nCols+5], MIN(STR_LEN32, strlen(pptRecord[i*nCols+5])));
// memcpy(ptRecord->videoid, pptRecord[i*nCols+6], MIN(STR_LEN32, strlen(pptRecord[i*nCols+6])));
// memcpy(ptRecord->dataid, pptRecord[i*nCols+7], MIN(STR_LEN32, strlen(pptRecord[i*nCols+7])));
// ptRecord->IncallProhibit = atoi(pptRecord[i*nCols+8]);
// ptRecord->OutcallProhibit = atoi(pptRecord[i*nCols+9]);
// ptRecord->PttMaxSimuPrivateCallNum = atoi(pptRecord[i*nCols+10]);
// ptRecord->PttMaxSimuGroupCallNum = atoi(pptRecord[i*nCols+11]);
// ptRecord->VideoMaxSimuPrivateCallNum= atoi(pptRecord[i*nCols+12]);
// ptRecord->VideoMaxSimuGroupCallNum = atoi(pptRecord[i*nCols+13]);
//
// // x_InfoLog(" %d-%s-%s.\n", ptRecord->Indx, ptRecord->XPOCId, ptRecord->UserAlias);
// }
// ptRecordList->uiXPOCNum = nRows;
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// /*
// sqlite> .schema GROUP_ACCOUNT
// CREATE TABLE GROUP_ACCOUNT (
// 'Indx' INTEGER PRIMARY KEY AUTOINCREMENT,
// 'GroupId' TEXT NOT NULL,
// 'GroupAlias' TEXT NOT NULL,
// 'GroupOwner' TEXT NOT NULL,
// 'MaxmemberNum' INTEGER NOT NULL
// );
// */
// UINT Conf_GroupAccount_Add(GROUP_ACCOUNT_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN1024];
//
// do
// {
// if(0 == strlen(ptRecord->GroupId))
// {
// x_WarnLog("invalid groupId[%s].\n", ptRecord->GroupId);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
//
// memset(strSql, 0, STR_LEN1024);
// sprintf(strSql, "insert into GROUP_ACCOUNT values(NULL, \'%s\', \'%s\', \'%s\', %d);",
// ptRecord->GroupId,
// ptRecord->GroupAlias,
// ptRecord->GroupOwner,
// ptRecord->MaxmemberNum);
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("add GROUP_ACCOUNT failed. groupId[%s], retCode[%d].\n", ptRecord->GroupId, ulReturn);
// break;
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// UINT Conf_GroupAccount_Del(GROUP_ACCOUNT_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN256];
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(strlen(ptRecord->GroupId) > 0)
// {
// sprintf(strSql, "delete from GROUP_ACCOUNT where GroupId = \'%s\';", ptRecord->GroupId);
// }
// else
// {
// sprintf(strSql, "delete from GROUP_ACCOUNT where Indx = %ld;", ptRecord->Indx);
// }
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("delete GROUP_ACCOUNT failed. indx[%d], groupId[%s], retCode[%d].\n", ptRecord->Indx, ptRecord->GroupId, ulReturn);
// break;
// }
// } while(0);
//
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// UINT Conf_GroupAccount_Mod(GROUP_ACCOUNT_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN256];
//
// do
// {
// if(0 == strlen(ptRecord->GroupId) || 0 == strlen(ptRecord->GroupAlias))
// {
// x_WarnLog("invalid groupId[%s] or groupAlias[%s].\n", ptRecord->GroupId, ptRecord->GroupAlias);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
//
// memset(strSql, 0, STR_LEN256);
// sprintf(strSql, "update GROUP_ACCOUNT set GroupAlias=\'%s\' where GroupId=\'%s\';",
// ptRecord->GroupAlias, ptRecord->GroupId);
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("update GROUP_ACCOUNT failed. groupId[%s], retCode[%d].\n", ptRecord->GroupId, ulReturn);
// ulReturn = XPOC_ERR_PDB_RECORD_EXIST;
// break;
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// /* 单条记录查询接口 */
// UINT Conf_GroupAccount_Qry(GROUP_ACCOUNT_Struct *ptRecord)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(0 == strlen(ptRecord->GroupId))
// {
// x_WarnLog("error groupid[%s] for query GroupAccount.\n", ptRecord->GroupId);
// break;
// }
// sprintf(strSql, "select * from GROUP_ACCOUNT where GroupId = \'%s\';", ptRecord->GroupId);
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get GROUP_ACCOUNT failed, groupId[%s], retCode[%d].\n", ptRecord->GroupId, ulReturn);
// break;
// }
//
// UCHAR i = 1;
// ptRecord->Indx = atoi(pptRecord[i*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->GroupId, pptRecord[i*nCols+1], MIN(STR_LEN32, strlen(pptRecord[i*nCols+1])));
// memcpy(ptRecord->GroupAlias, pptRecord[i*nCols+2], MIN(STR_LEN32, strlen(pptRecord[i*nCols+2])));
// memcpy(ptRecord->GroupOwner, pptRecord[i*nCols+3], MIN(STR_LEN32, strlen(pptRecord[i*nCols+3])));
// ptRecord->MaxmemberNum = atoi(pptRecord[i*nCols+4]);
// x_InfoLog(" %d-%s-%s.\n", ptRecord->Indx, ptRecord->GroupId, ptRecord->GroupAlias);
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// UINT Conf_GroupAccount_QryAll(GROUP_ACCOUNT_LIST_Struct *ptRecordList)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecordList);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(strlen(ptRecordList->strGroupInfo[0].GroupId))
// {
// sprintf(strSql, "select * from GROUP_ACCOUNT where GroupId = \'%s\';", ptRecordList->strGroupInfo[0].GroupId);
// }
// else
// {
// strcpy(strSql, "select * from GROUP_ACCOUNT;");
// }
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get GROUP_ACCOUNT failed, groupId[%s], retCode[%d].\n", ptRecordList->strGroupInfo[0].GroupId, ulReturn);
// break;
// }
//
// GROUP_ACCOUNT_Struct *ptRecord = NULL;
// UCHAR i = 0;
// for(i=1; i<=nRows && i<GROUP_ACCOUNT_MAX_NUM; i++)
// {
// ptRecord = &ptRecordList->strGroupInfo[i-1];
// ptRecord->Indx = atoi(pptRecord[i*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->GroupId, pptRecord[i*nCols+1], MIN(STR_LEN32, strlen(pptRecord[i*nCols+1])));
// memcpy(ptRecord->GroupAlias, pptRecord[i*nCols+2], MIN(STR_LEN32, strlen(pptRecord[i*nCols+2])));
// memcpy(ptRecord->GroupOwner, pptRecord[i*nCols+3], MIN(STR_LEN32, strlen(pptRecord[i*nCols+3])));
// ptRecord->MaxmemberNum = atoi(pptRecord[i*nCols+4]);
//
// // x_InfoLog(" %d-%s-%s.\n", ptRecord->Indx, ptRecord->GroupId, ptRecord->GroupAlias);
// }
// ptRecordList->uiGroupNum = nRows;
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// /*
// sqlite> .schema GROUP_MEMBER
// CREATE TABLE GROUP_MEMBER (
// 'Indx' INTEGER PRIMARY KEY AUTOINCREMENT,
// 'GroupId' TEXT NOT NULL,
// 'XPOCId' TEXT NOT NULL
// );
// */
// UINT Conf_GroupMember_Add(GROUP_MEMBER_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN1024];
//
// do
// {
// if(0 == strlen(ptRecord->GroupId) || 0 == strlen(ptRecord->XPOCId))
// {
// x_WarnLog("invalid groupId[%s] or XPOCId[%s].\n", ptRecord->GroupId, ptRecord->XPOCId);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
//
// memset(strSql, 0, STR_LEN1024);
// sprintf(strSql, "insert into GROUP_MEMBER values(NULL, \'%s\', \'%s\');",
// ptRecord->GroupId, ptRecord->XPOCId);
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("add GROUP_MEMBER failed. groupId[%s], XPOCId[%s], retCode[%d].\n",
// ptRecord->GroupId, ptRecord->XPOCId, ulReturn);
// break;
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// UINT Conf_GroupMember_Del(GROUP_MEMBER_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// UINT ulReturn = XPOC_ERR_SUCCESS;
// char strSql[STR_LEN256];
//
// do
// {
// if(0 == strlen(ptRecord->GroupId) || 0 == strlen(ptRecord->XPOCId))
// {
// x_WarnLog("invalid groupId[%s] or XPOCId[%s].\n", ptRecord->GroupId, ptRecord->XPOCId);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
//
// memset(strSql, 0, STR_LEN256);
// sprintf(strSql, "delete from GROUP_MEMBER where GroupId = \'%s\' and McsId = \'%s\';", ptRecord->GroupId, ptRecord->XPOCId);
//
// ulReturn = udbOprRecord(strSql);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("delete GROUP_MEMBER failed. groupId[%s], groupId[%s], retCode[%d].\n",
// ptRecord->GroupId, ptRecord->XPOCId, ulReturn);
// break;
// }
// } while(0);
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// /* 组成员的修改使用 del+add 实现 ,本接口不使用 */
// UINT Conf_GroupMember_Mod(GROUP_MEMBER_Struct *ptRecord)
// {
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// //do nothing
//
//
// XPOC_TRACEFUNC_OUT;
// return XPOC_ERR_SUCCESS;
// }
//
// /* 单条记录查询, 该查询只是用于记录存在与否的校验 */
// UINT Conf_GroupMember_Qry(GROUP_MEMBER_Struct *ptRecord)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecord);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(0 != strlen(ptRecord->GroupId) && 0 != strlen(ptRecord->XPOCId))
// {
// sprintf(strSql, "select * from GROUP_MEMBER where GroupId = \'%s\' and McsId = \'%s\';", ptRecord->GroupId, ptRecord->XPOCId);
// }
// else if(0 != strlen(ptRecord->GroupId))
// {
// sprintf(strSql, "select * from GROUP_MEMBER where GroupId = \'%s\';", ptRecord->GroupId);
// }
// else if(0 != strlen(ptRecord->XPOCId))
// {
// sprintf(strSql, "select * from GROUP_MEMBER where McsId = \'%s\';", ptRecord->XPOCId);
// }
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get GROUP_MEMBER failed, GroupId[%s].\n", ptRecord->GroupId);
// break;
// }
//
// // ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecord->GroupId, pptRecord[1*nCols+1], MIN(STR_LEN32, strlen(pptRecord[1*nCols+1])));
// memcpy(ptRecord->XPOCId, pptRecord[1*nCols+2], MIN(STR_LEN32, strlen(pptRecord[1*nCols+2])));
// } while(0);
//
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// UINT Conf_GroupMember_QryByGroup(GROUP_MEMBER_LIST_Struct *ptRecordList)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecordList);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(0 == strlen(ptRecordList->GroupId))
// {
// x_WarnLog("groupid[%s] is invalid for query GROUP_MEMBER.\n", ptRecordList->GroupId);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
// sprintf(strSql, "select * from GROUP_MEMBER where GroupId = \'%s\';", ptRecordList->GroupId);
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get GROUP_MEMBER failed, GroupId[%s].\n", ptRecordList->GroupId);
// break;
// }
//
// // ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecordList->GroupId, pptRecord[1*nCols+1], MIN(STR_LEN32, strlen(pptRecord[1*nCols+1])));
// UCHAR i = 0;
// for(i=1; i<=nRows; i++ )
// {
// memcpy(ptRecordList->XPOCIdList[i-1], pptRecord[i*nCols+2], MIN(STR_LEN32, strlen(pptRecord[i*nCols+2])));
// }
// ptRecordList->uiMemberNum = nRows;
//
// } while(0);
//
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//
// /* 用户查找特定XPOCId所在的组 */
// UINT Conf_GroupMember_QryGroupListByXPOCId(XPOCID_GROUP_LIST_Struct *ptRecordList)
// {
// UINT ulReturn = XPOC_ERR_FAIL;
// XPOC_TRACEFUNC_IN;
// X_NULL_POINTER_CHK_ONE_PARA(ptRecordList);
//
// char strSql[STR_LEN256];
// int nRows = 0;
// int nCols = 0;
// char **pptRecord = NULL;
//
// do
// {
// memset(strSql, 0, STR_LEN256);
// if(0 == strlen(ptRecordList->XPOCId))
// {
// x_WarnLog("XPOCId[%s] is invalid for query GROUP_MEMBER.\n", ptRecordList->XPOCId);
// ulReturn = XPOC_ERR_FAIL;
// break;
// }
// sprintf(strSql, "select * from GROUP_MEMBER where McsId = \'%s\';", ptRecordList->XPOCId);
//
// ulReturn = udbGetRecord(strSql, &nRows, &nCols, &pptRecord);
// if(XPOC_ERR_SUCCESS != ulReturn)
// {
// x_WarnLog("get GROUP_MEMBER failed, XPOCId[%s].\n", ptRecordList->XPOCId);
// break;
// }
//
// // ptRecord->Indx = atoi(pptRecord[1*nCols+0]); /* 第0行是参数的名称 */
// memcpy(ptRecordList->XPOCId, pptRecord[1*nCols+2], MIN(STR_LEN32, strlen(pptRecord[1*nCols+2])));
// UCHAR i = 0;
// for(i=1; i<=nRows; i++ )
// {
// memcpy(ptRecordList->GroupIdList[i-1], pptRecord[i*nCols+1], MIN(STR_LEN32, strlen(pptRecord[i*nCols+1])));
// }
// ptRecordList->uiGroupNum = nRows;
//
// } while(0);
//
//
// XPOC_TRACEFUNC_OUT;
// return ulReturn;
// }
//