Sfoglia il codice sorgente

Merge branch 'master' of http://jiecheng2024.tpddns.cn:3000/liyuezong/SmartPDCode

guohui 1 anno fa
parent
commit
c24517c9a8
7 ha cambiato i file con 251 aggiunte e 134 eliminazioni
  1. 137 65
      ip/src/appweb_handle.c
  2. 6 5
      ip/src/cascade_slave.c
  3. 34 19
      ip/src/common.c
  4. 60 33
      ip/src/json_handle.c
  5. 3 2
      ip/src/json_handle.h
  6. 11 9
      ip/src/sqlite_handle.c
  7. 0 1
      ip/src/sqlite_handle.h

+ 137 - 65
ip/src/appweb_handle.c

@@ -1485,7 +1485,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total power voltage err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -1502,7 +1503,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total voltage err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -1553,7 +1555,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total power current err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -1572,7 +1575,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total current err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -1623,7 +1627,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total power  err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -1642,7 +1647,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total power err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -1693,7 +1699,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total power  err.");
             } 
-            else {
+            //else 
+            {
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
                     strcpy(pch->_total_consumption.xAxis[i], __globalPowerInfo._total_consumption.xAxis[i]);
@@ -1711,7 +1718,8 @@ static void channelStatusMonitoring(void* conn)
             {
                 log_e("serach total power consumption err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -2599,7 +2607,7 @@ char* setThresholdToCh(_AlarmRequestInfo* _alarm_request_info,int nChID)
     char buff[100] ={0};
     get_time(buff);
 #if IS_IP
-    ret = dev_insert_alarm_info(__globalDeviceManage.db,product_id, ALARM_TYPE_OPRATION,buff,"power threshold update  !!");
+    ret = dev_insert_alarm_info(__globalDeviceManage.db,product_id, ALARM_TYPE_OPRATION,buff,"power threshold update !");
 #else
     ret = dev_insert_alarm_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 
         ALARM_TYPE_OPRATION,buff,"power threshold update!!");
@@ -2639,23 +2647,16 @@ static void alarmProtect(void *conn)
     
         GlobalPowerManger *_globalPowerMangerTemp = NULL;
         //int ret = -1;
-        int number = 0;
         INIT_LIST_HEAD(&_alarm_ack_info.list);
-        list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-        {
-            
-            ret = dev_serarch_all_alarm(__globalDeviceManage.db,
-                _globalPowerMangerTemp->product_id,
-            ALARM_TYPE_POWER ,1,10,
-                &_alarm_ack_info,&nAlarmNumber);
-            number += nAlarmNumber;
+        ret = dev_serarch_all_alarm(__globalDeviceManage.db,
+                                    ALARM_TYPE_POWER, 1, 10,
+                                    &_alarm_ack_info, &nAlarmNumber);
 
-        }
-        if(number==0) {
+        if(ret!=0) {
             log_e("get power alarm error.");
         }
         else {
-            ack_str = alarm_info_to_json(&_alarm_ack_info,number);
+            ack_str = alarm_info_to_json(&_alarm_ack_info,nAlarmNumber);
 
                 //释放资源
             _AlarmAckInfo* node;
@@ -2702,21 +2703,17 @@ static void alarmProtect(void *conn)
 #if IS_IP
         GlobalPowerManger *_globalPowerMangerTemp = NULL;
         INIT_LIST_HEAD(&_alarm_ack_info.list);
-        int number = 0;
-        list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
-        {
-            nAlarmNumber = 0;
-            
-            ret = dev_serarch_all_alarm(__globalDeviceManage.db,
-                _globalPowerMangerTemp->product_id,
-                ALARM_TYPE_POWER,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
-                &_alarm_ack_info,&nAlarmNumber);
-                number +=nAlarmNumber;
-        }
-        if(number == 0) {
+
+        nAlarmNumber = 0;
+
+        ret = dev_serarch_all_alarm(__globalDeviceManage.db,
+                                    ALARM_TYPE_POWER, _alarm_request_info.pagenum, _alarm_request_info.pagesize,
+                                    &_alarm_ack_info, &nAlarmNumber);
+
+        if(ret!=0) {
                 log_e("get power alarm error.");
         } else {
-            ack_str = alarm_info_to_json(&_alarm_ack_info,number);
+            ack_str = alarm_info_to_json(&_alarm_ack_info,nAlarmNumber);
 
             //释放资源
             _AlarmAckInfo* node;
@@ -2757,7 +2754,6 @@ static void alarmProtect(void *conn)
         INIT_LIST_HEAD(&_alarm_ack_info.list);
         //查询数据库
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
-            __globalDeviceManage._globalDevInfo.product_id,
             ALARM_TYPE_SENSOR,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
             &_alarm_ack_info,&nAlarmNumber);
         if(ret!=0) {
@@ -2782,7 +2778,6 @@ static void alarmProtect(void *conn)
         INIT_LIST_HEAD(&_alarm_ack_info.list);
         
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
-            __globalDeviceManage._globalDevInfo.product_id,
             ALARM_TYPE_NETWORK,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
             &_alarm_ack_info,&nAlarmNumber);
         if(ret!=0) {
@@ -4311,7 +4306,21 @@ static void systemManagent(void *conn)
                 ack_str = service_userRole_ack_to_json(nName,&User_list, &Role_list);
             }
         }
-        
+        UserInfo *node;
+        UserInfo *next;
+        list_for_each_entry_safe(node, next, &User_list.list, list)
+        {
+            list_del(&node->list);
+            free(node);
+        }
+
+        RoleInfo *node1;
+        RoleInfo *next1;
+        list_for_each_entry_safe(node1, next1, &Role_list.list, list)
+        {
+            list_del(&node1->list);
+            free(node1);
+        }
     } 
     //查询用户列表 
     else if(strcmp(_UserRoleManageRequestInfo.type,"listUserQuery")==0)
@@ -4330,9 +4339,24 @@ static void systemManagent(void *conn)
             char *nName = getUserNamebyToken(_UserRoleManageRequestInfo.user_token);
             if (nName != NULL)
             {
-                ack_str = service_userQuery_ack_to_json(nName, &User_list, &Role_list);
+                ack_str = service_userQuery_ack_to_json(nName, &User_list, &Role_list,_UserRoleManageRequestInfo.userName,_UserRoleManageRequestInfo.pagenum,_UserRoleManageRequestInfo.pagesize);
             }
         }
+        UserInfo *node;
+        UserInfo *next;
+        list_for_each_entry_safe(node, next, &User_list.list, list)
+        {
+            list_del(&node->list);
+            free(node);
+        }
+
+        RoleInfo *node1;
+        RoleInfo *next1;
+        list_for_each_entry_safe(node1, next1, &Role_list.list, list)
+        {
+            list_del(&node1->list);
+            free(node1);
+        }
     }   
     //删除用户
     else if(strcmp(_UserRoleManageRequestInfo.type,"deleteUser")==0)
@@ -4360,6 +4384,13 @@ static void systemManagent(void *conn)
                     }
                 }
             }
+            UserInfo *node;
+            UserInfo *next;
+            list_for_each_entry_safe(node, next, &User_list.list, list)
+            {
+                list_del(&node->list);
+                free(node);
+            }
         }
         if (!CurUserFlag)
         {
@@ -4387,13 +4418,14 @@ static void systemManagent(void *conn)
     //添加用户
     else if(strcmp(_UserRoleManageRequestInfo.type,"addUser")==0)
     {
-        //未析构
+             //未析构
         UserInfo *new_user = (UserInfo *)malloc(sizeof(UserInfo));
         memset(new_user,0,sizeof(UserInfo));
 
         new_user->product_id =  __globalDeviceManage._globalDevInfo.product_id;
 
         int nMaxUserNum=1;
+        bool existFlag=false;
         UserInfo User_list;
         INIT_LIST_HEAD(&User_list.list);
        // 查询角色信息
@@ -4413,34 +4445,69 @@ static void systemManagent(void *conn)
                 {
                     nMaxUserNum=_UserInfoTemp->userID;
                 }
-            }
 
-            new_user->userID = nMaxUserNum+1;
-
-            new_user->userName = malloc(256);
-            strcpy(new_user->userName, _UserRoleManageRequestInfo.userName);
-            new_user->userPW = malloc(256);
-            strcpy(new_user->userPW, _UserRoleManageRequestInfo.password);
-            new_user->nickName = malloc(256);
-            strcpy(new_user->nickName, _UserRoleManageRequestInfo.nickName);
-            new_user->roleID = _UserRoleManageRequestInfo.roleId;//GetRoleIDByName(_UserRoleManageRequestInfo.roleName,&Role_list);
-
-            new_user->createTime = malloc(64);
-            struct tm *t;
-            struct timeval tv;
-            gettimeofday(&tv, NULL);
-            t = localtime(&tv.tv_sec);
-            sprintf(new_user->createTime, "%04d-%02d-%02d %02d:%02d:%02d", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour,  t->tm_min, t->tm_sec);
+                if (strcmp(_UserInfoTemp->userName, _UserRoleManageRequestInfo.userName) == 0)
+                {
+                    existFlag = true;
+                    break;
+                }
+                
+            }
 
-            dev_insert_user_info(__globalDeviceManage.db, new_user);
+            if (existFlag)
+            {
+                ack_str = ctrl_breaker_err_ack_to_json("User already exists!");
+            }
+            else
+            {
+                new_user->userID = nMaxUserNum + 1;
+
+                new_user->userName = malloc(256);
+                strcpy(new_user->userName, _UserRoleManageRequestInfo.userName);
+                new_user->userPW = malloc(256);
+                strcpy(new_user->userPW, _UserRoleManageRequestInfo.password);
+                new_user->nickName = malloc(256);
+                strcpy(new_user->nickName, _UserRoleManageRequestInfo.nickName);
+                new_user->roleID = _UserRoleManageRequestInfo.roleId; // GetRoleIDByName(_UserRoleManageRequestInfo.roleName,&Role_list);
+
+                new_user->createTime = malloc(64);
+                struct tm *t;
+                struct timeval tv;
+                gettimeofday(&tv, NULL);
+                t = localtime(&tv.tv_sec);
+                sprintf(new_user->createTime, "%04d-%02d-%02d %02d:%02d:%02d", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
+
+                dev_insert_user_info(__globalDeviceManage.db, new_user);
+
+                free(new_user->userName);
+                free(new_user->userPW);
+                free(new_user->nickName);
+                free(new_user->createTime);
+
+                char temp[100];
+                // sprintf(temp, "$添加$|$用户$|%s", _UserRoleManageRequestInfo.userName);
+                sprintf(temp, "Add user %s", _UserRoleManageRequestInfo.userName);
+                dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, ALARM_TYPE_OPRATION, temp);
+                
+                ack_str=ctrl_sts_ack_to_json();
+            }
+        }       
+        free(new_user);
+        UserInfo *node;
+        UserInfo *next;
+        list_for_each_entry_safe(node, next, &User_list.list, list)
+        {
+            list_del(&node->list);
+            free(node);
         }
 
-        char temp[100];
-        //sprintf(temp, "$添加$|$用户$|%s", _UserRoleManageRequestInfo.userName);
-        sprintf(temp, "Add user %s", _UserRoleManageRequestInfo.userName);
-        dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 3, temp);
-
-        ack_str=ctrl_sts_ack_to_json();
+        RoleInfo *node1;
+        RoleInfo *next1;
+        list_for_each_entry_safe(node1, next1, &Role_list.list, list)
+        {
+            list_del(&node1->list);
+            free(node1);
+        }
     }   
     //更新用户信息
     else if(strcmp(_UserRoleManageRequestInfo.type,"updateUser")==0)
@@ -4458,11 +4525,16 @@ static void systemManagent(void *conn)
         new_user->nickName = malloc(256);
         strcpy(new_user->nickName , _UserRoleManageRequestInfo.nickName);
         new_user->roleID = _UserRoleManageRequestInfo.roleId;
-        // new_user->createTime = malloc(64);
-        // strcpy(new_user->createTime , _UserRoleManageRequestInfo.createTime);
+        new_user->createTime = malloc(64);
+        strcpy(new_user->createTime , _UserRoleManageRequestInfo.createTime);
 
         dev_update_user_info(__globalDeviceManage.db, new_user);
 
+        free(new_user->userName);
+        free(new_user->userPW);
+        free(new_user->nickName);
+        free(new_user->createTime);
+        free(new_user);
         char temp[100];
         //sprintf(temp, "$修改$|$用户$|%s", _UserRoleManageRequestInfo.userName);
          sprintf(temp, "Update user %s", _UserRoleManageRequestInfo.userName);

+ 6 - 5
ip/src/cascade_slave.c

@@ -975,12 +975,13 @@ void sensor_or_cascade_init()
     GlobalSensorManger *temp = (GlobalSensorManger*)malloc(sizeof(GlobalSensorManger));
     if(!temp)
         return;
-    dev_get_sensor_info(_globalDeviceManager->db,0,0,temp);
+    int recNum=dev_get_sensor_info(_globalDeviceManager->db,0,1,temp);
 
-    list_add_tail(&temp->list,&_globalDeviceManager->_globalSensorManger.list);
-
-                
-    dev_Alarm_Run_message(_globalDeviceManager,language_alarm_Init_Success[0],"sensor");
+    if (recNum != -1)
+    {
+        list_add_tail(&temp->list, &_globalDeviceManager->_globalSensorManger.list);
+        dev_Alarm_Run_message(_globalDeviceManager, language_alarm_Init_Success[0], "sensor");
+    }
     cascade_slave_init();
     if(devInfo->_gmodbus_info.product_modbus_type > 0)
     {

+ 34 - 19
ip/src/common.c

@@ -275,75 +275,90 @@ void get_disk_occupy(char ** reused)
 
 int set_local_timeandzone(struct tm* t, int zone)
 {
-    char buf[128];
+    char buf[256];
     struct timeval tv;
 
-    switch(zone)
-    {
-        case -11:   //Midway
+#if 0
+    switch(zone) {
+        case -11:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/Pacific/Midway /etc/localtime");
             break;
-        case -10:   //夏威夷
+        case -10:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/HST /etc/localtime");
             break;
-        case -9:    //Adak
+        case -9:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Adak /etc/localtime");
             break;
-        case -8:    //Los Angeles
+        case -8:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Boise /etc/localtime");
             break;
-        case -7:    //MST
+        case -7:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/MST /etc/localtime");
             break;
-        case -6:    //Chicago
+        case -6:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime");
             break;
-        case -5:    //Detroit
+        case -5:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Detroit /etc/localtime");
             break;
-        case -4:    //Halifax
+        case -4:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Halifax /etc/localtime");
             break;
-        case -3:    //Maceio
+        case -3:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Maceio /etc/localtime");
             break;
-        case -2:    //Noronha
+        case -2:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Noronha /etc/localtime");
             break;
-        case -1:    //Scoresbysund
+        case -1:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Scoresbysund /etc/localtime");
             break;
-        case 0:     //Mexico_City
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime");
+        case 0:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime");
             break;
-        case 1:     //Belgrade
-            sprintf(buf, "ln -sf /usr/share/zoneinfo/Europe/Belgrade /etc/localtime");
+        case 1:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime");
             break;
         case 2:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/EET /etc/localtime");
             break;
         case 3:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime");
             break;
         case 4:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Amman /etc/localtime");
             break;
         case 5:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Karachi /etc/localtime");
             break;
         case 6:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Dhaka /etc/localtime");
             break;
         case 7:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime");
             break;
         case 8:
             sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime");
             break;
         case 9:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime");
             break;
         case 10:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Australia/Sydney /etc/localtime");
             break;
         case 11:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Asia/Sakhalin /etc/localtime");
             break;
         case 12:
+            sprintf(buf, "ln -sf /usr/share/zoneinfo/Pacific/Fiji /etc/localtime");
             break;
+        default:
+            return -1;
     }
-    system("ln -sf /usr/share/zoneinfo/UTC /etc/localtime");
+#else
+    sprintf(buf, "ln -sf /usr/share/zoneinfo/Etc/GMT%s%d /etc/localtime", (zone<0)?"+":"-", abs(zone));
+#endif
+    system(buf);
 
     //t += zone * 3600;
     //struct tm* ptm = localtime(&t);

+ 60 - 33
ip/src/json_handle.c

@@ -4701,7 +4701,16 @@ cJSON* json_to_user_manage(const char* str,_UserRoleManageInfo* _UserRoleManageR
     {     
         cJSON* cjson_user_userName = cJSON_GetObjectItem(cjson,"userName");
         if(cjson_user_userName!=NULL)
-            _UserRoleManageRequestInfo->userName = "admin";//cjson_user_userName->valuestring ;
+            _UserRoleManageRequestInfo->userName =cjson_user_userName->valuestring ;
+        else _UserRoleManageRequestInfo->userName =NULL ;
+
+        cJSON *cjson_pagenum = cJSON_GetObjectItem(cjson, "pageNum");
+        if (cjson_pagenum != NULL)
+            _UserRoleManageRequestInfo->pagenum = cjson_pagenum->valueint;
+
+        cJSON *cjson_pagesize = cJSON_GetObjectItem(cjson, "pageSize");
+        if (cjson_pagesize != NULL)
+            _UserRoleManageRequestInfo->pagesize = cjson_pagesize->valueint;
     }
     //删除用户
     if(strcmp(_UserRoleManageRequestInfo->type,"deleteUser")==0)
@@ -4720,7 +4729,7 @@ cJSON* json_to_user_manage(const char* str,_UserRoleManageInfo* _UserRoleManageR
         cJSON* cjson_user_roleId = cJSON_GetObjectItem(cjson,"roleId");  
         cJSON* cjson_user_roleName = cJSON_GetObjectItem(cjson,"roleName");
         cJSON* cjson_user_password = cJSON_GetObjectItem(cjson,"password");
-
+        cJSON* cjson_user_createtime = cJSON_GetObjectItem(cjson,"createTime");
 
         if (cjson_user_userId != NULL)
             _UserRoleManageRequestInfo->userId = cjson_user_userId->valueint;
@@ -4736,6 +4745,8 @@ cJSON* json_to_user_manage(const char* str,_UserRoleManageInfo* _UserRoleManageR
             _UserRoleManageRequestInfo->roleName = cjson_user_roleName->valuestring;
         if (cjson_user_password != NULL)
             _UserRoleManageRequestInfo->password = cjson_user_password->valuestring;
+        if (cjson_user_createtime != NULL)
+            _UserRoleManageRequestInfo->createTime = cjson_user_createtime->valuestring;
     }
 
     return cjson;
@@ -5174,8 +5185,7 @@ int GetRoleIDByName(char* _RoleName,RoleInfo* __RoleInfo_t)
     return nID;
 }
 
-
-char* service_userQuery_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleInfo* __RoleInfo_t)
+char* service_userQuery_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleInfo* __RoleInfo_t,char* _SelName,int pagenum,int pagesize)
 {
     char* str = NULL;
     
@@ -5184,7 +5194,7 @@ char* service_userQuery_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleI
     int nlevel = GetRoleLevelByID(nRoleID,__RoleInfo_t);
 
     //根据登录的账号筛选查询的范围
-    int nTotalUserNum=0;
+
 
     UserInfo SelUser_list;
     INIT_LIST_HEAD(&SelUser_list.list);
@@ -5200,51 +5210,66 @@ char* service_userQuery_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleI
         int nlevelTemp = GetRoleLevelByID(nRoleTemp,__RoleInfo_t);
         if (nlevelTemp>=nlevel)
         {
-            UserInfo *new_user = (UserInfo *)malloc(sizeof(UserInfo));
-            memcpy(new_user,_UserInfoTemp,sizeof(UserInfo));
+            if (_SelName && strcmp(_SelName, "") != 0)
+            {
+               if (strstr(_UserInfoTemp->userName, _SelName) !=NULL)
+               {
+                   UserInfo *new_user = (UserInfo *)malloc(sizeof(UserInfo));
+                   memcpy(new_user, _UserInfoTemp, sizeof(UserInfo));
+
+                   list_add_tail(&new_user->list, &SelUser_list.list);
+               }
+            }
+            else
+            {
+                UserInfo *new_user = (UserInfo *)malloc(sizeof(UserInfo));
+                memcpy(new_user, _UserInfoTemp, sizeof(UserInfo));
 
-            list_add_tail(&new_user->list, &SelUser_list.list);
-            nTotalUserNum++;
+                list_add_tail(&new_user->list, &SelUser_list.list);
+            }
         } 
     }
 
-
+    int nTotalUserNum=0;
+    int nSelUserNum = 0;
     // 创建 JSON 对象
     cJSON* root = cJSON_CreateObject();   
     //创建数据
-    cJSON_AddNumberToObject(root,"total", nTotalUserNum);
-
     char buffer[50];
-
-    //创建数据
     cJSON* data_root_array = cJSON_CreateArray();    
     UserInfo *_UserInfoTemp1 = NULL;
     list_for_each_entry(_UserInfoTemp1, &SelUser_list.list, list)
     {
         if (_UserInfoTemp1 == NULL)
             break;
-        //创建数据
-        cJSON* data_filed = cJSON_CreateObject();
-        cJSON_AddStringToObject(data_filed,"createTime",_UserInfoTemp1->createTime);
-        cJSON_AddNumberToObject(data_filed, "userId", _UserInfoTemp1->userID);
-        cJSON_AddStringToObject(data_filed,"userName",_UserInfoTemp1->userName);
-        cJSON_AddStringToObject(data_filed, "nickName", _UserInfoTemp1->nickName);
-        cJSON_AddStringToObject(data_filed, "delFlag", "1");
-        memset(buffer, 0, sizeof(buffer));
-        sprintf(buffer, "%d",_UserInfoTemp1->roleID);
-        cJSON_AddStringToObject(data_filed, "roleId", buffer);
-
-        char* nroleName=GetRoleNameByID(_UserInfoTemp1->roleID,__RoleInfo_t);
-        if (nroleName!=NULL)
+        if (nTotalUserNum>=(pagenum-1)*pagesize && nTotalUserNum< pagenum*pagesize)
         {
-           cJSON_AddStringToObject(data_filed, "roleName", nroleName);
-           free(nroleName);
+            // 创建数据
+            cJSON *data_filed = cJSON_CreateObject();
+            cJSON_AddStringToObject(data_filed, "createTime", _UserInfoTemp1->createTime);
+            cJSON_AddNumberToObject(data_filed, "userId", _UserInfoTemp1->userID);
+            cJSON_AddStringToObject(data_filed, "userName", _UserInfoTemp1->userName);
+            cJSON_AddStringToObject(data_filed, "nickName", _UserInfoTemp1->nickName);
+            cJSON_AddStringToObject(data_filed, "delFlag", "1");
+            memset(buffer, 0, sizeof(buffer));
+            sprintf(buffer, "%d", _UserInfoTemp1->roleID);
+            cJSON_AddStringToObject(data_filed, "roleId", buffer);
+
+            char *nroleName = GetRoleNameByID(_UserInfoTemp1->roleID, __RoleInfo_t);
+            if (nroleName != NULL)
+            {
+                cJSON_AddStringToObject(data_filed, "roleName", nroleName);
+                free(nroleName);
+            }
+            else
+                cJSON_AddStringToObject(data_filed, "roleName", "");
+            cJSON_AddItemToObject(data_root_array, "rows", data_filed);
+
+            nSelUserNum++;
         }
-        else  cJSON_AddStringToObject(data_filed, "roleName", "");
-        
-        cJSON_AddItemToObject(data_root_array, "rows", data_filed);
+        nTotalUserNum++;
     }
-
+    cJSON_AddNumberToObject(root,"total", nTotalUserNum);
     //添加汇总
     cJSON_AddItemToObject(root, "rows", data_root_array);
 
@@ -5260,6 +5285,8 @@ char* service_userQuery_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleI
     return str;
 }
 
+
+
 char* service_userRole_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleInfo* __RoleInfo_t)
 {
     char* str = NULL;

+ 3 - 2
ip/src/json_handle.h

@@ -534,7 +534,8 @@ typedef struct
     char*   roleName;
     char*   password;
     int   userIds;
-
+    int pagenum;
+    int pagesize;
 
 }_UserRoleManageInfo;
 
@@ -627,7 +628,7 @@ int GetRoleIDByUserName(char* _userName,UserInfo* __UserInfo_t);
 int GetRoleLevelByID(int _RoleID,RoleInfo* __RoleInfo_t);
 char* GetRoleNameByID(int _RoleID,RoleInfo* __RoleInfo_t);
 int GetRoleIDByName(char* _RoleName,RoleInfo* __RoleInfo_t);
-char* service_userQuery_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleInfo* __RoleInfo_t);
+char* service_userQuery_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleInfo* __RoleInfo_t,char* _SelName,int pagenum,int pagesize);
 char* service_userRole_ack_to_json(char* _userName,UserInfo* __UserInfo_t,RoleInfo* __RoleInfo_t);
 
 

+ 11 - 9
ip/src/sqlite_handle.c

@@ -852,9 +852,14 @@ int dev_search_time_power_info(sqlite3 *db,int product_id,int product_ch_id,int
      //                   product_id,
      //                   product_ch_id);
 
-    snprintf(select_sql, sizeof(select_sql), "SELECT * FROM Table_PowerInfo WHERE (product_id=%d) AND (product_ch_id=%d) AND (product_samp_time BETWEEN '%s' AND '%s') ORDER BY product_Index DESC LIMIT 60;",
-             product_id,
-            product_ch_id,
+    //snprintf(select_sql, sizeof(select_sql), "SELECT * FROM Table_PowerInfo WHERE (product_id=%d) AND (product_ch_id=%d) AND (product_samp_time BETWEEN '%s' AND '%s') ORDER BY product_Index DESC LIMIT 60;",
+    //         product_id,
+    //        product_ch_id,
+    //         start_time,
+    //         end_time);
+    
+    snprintf(select_sql, sizeof(select_sql), "SELECT * FROM Table_PowerInfo WHERE (product_ch_id=%d) AND (product_samp_time BETWEEN '%s' AND '%s') ORDER BY product_Index DESC LIMIT 60;",
+             product_ch_id,
              start_time,
              end_time);
 
@@ -2758,7 +2763,6 @@ int dev_insert_alarm_info(sqlite3* db,int product_id,int alarm_type,char* date_t
 /// @param _alarm_ack_info 
 /// @return 
 int dev_serarch_all_alarm(sqlite3* db,
-                        int product_id,
                         int alarm_type,
                         int page_num,
                         int page_size,
@@ -2778,7 +2782,7 @@ int dev_serarch_all_alarm(sqlite3* db,
     {
         snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage;");
     }else{
-        snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmType=%d) ;",alarm_type);
+        snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage WHERE (alarmType=%d);",alarm_type);
     }
     res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
     if(res != SQLITE_OK)
@@ -2797,14 +2801,12 @@ int dev_serarch_all_alarm(sqlite3* db,
 
     if (alarm_type<0)//小于0加载所有的
     {   
-        sprintf(select_sql,"SELECT* FROM Table_AlarmManage WHERE (product_id=%d) order by alarmType desc LIMIT %d OFFSET %d ",
-                        product_id,
+        sprintf(select_sql,"SELECT* FROM Table_AlarmManage WHERE order by alarmType desc LIMIT %d OFFSET %d ",
                         page_size,
                         page_num>0?(page_num-1)*page_size:0);
     }else
     {
-        sprintf(select_sql,"SELECT* FROM Table_AlarmManage WHERE (product_id=%d) AND (alarmType=%d) LIMIT %d OFFSET %d",
-                        product_id,
+        sprintf(select_sql,"SELECT* FROM Table_AlarmManage WHERE (alarmType=%d) LIMIT %d OFFSET %d",
                         alarm_type,
                         page_size,
                         page_num>0?(page_num-1)*page_size:0);

+ 0 - 1
ip/src/sqlite_handle.h

@@ -91,7 +91,6 @@ int dev_search_alarm_info(sqlite3* db,
                         );
 
 int dev_serarch_all_alarm(sqlite3* db,
-                        int product_id,
                         int alarm_type,
                         int page_num,
                         int page_size,