#pragma once
#include "StdAfx.h"
#include <algorithm>
#include <stdio.h>
#include <vector>
#include <string.h>
#include "HttpClient.h"
#include "DatabaseManage.h"
CHttpClient * CDatabaseManage::m_httpCtrl;
CDatabaseManage::CDatabaseManage(void)
{
m_httpCtrl = NULL;
}
CDatabaseManage::~CDatabaseManage(void)
{
NULL;
}
int CDatabaseManage::login( LPCTSTR strEmail, LPCTSTR strPwd ,HWND hwnd)
{
UINT uiRet = -1;
if (m_httpCtrl == NULL)
{
m_httpCtrl = new CHttpClient();
}
CString strUrl,strPostData ;
strUrl.Format(_T("http://192.168.43.128:3000/Login?content={\"UserName\":\"%s\",\"PassWord\":\"%s\"}"),strEmail,strPwd);
string strResponse="";
uiRet = m_httpCtrl->HttpGet(strUrl,strPostData,strResponse);
if ((uiRet == SUCCESS) &&(!strResponse.empty()))
{
Json::Value root;
Json::Reader reader;
if (reader.parse(strResponse,root,false))
{
if (root.isMember("errorCode"))
{
string nCommandId = root["errorCode"].asString();
if (strcmp((char *)nCommandId.c_str(),("0x0000")))
{
return FAILURE;
}
}
if (root.isMember("content"))
{
Json::Value jsResult=root["content"];
UINT nId;
string userName;
if (jsResult.isMember("Employee_Index"))
{
nId = jsResult["Employee_Index"].asInt();
}
if (jsResult.isMember("UserName"))
{
userName = jsResult["UserName"].asString();
}
CA2T szr(userName.c_str());
::SendMessage(hwnd,CM_GETUSERIDANDNAME,(WPARAM)nId,(LPARAM)(LPCTSTR)szr);
}
}
}
return uiRet;
}
int CDatabaseManage::QueryMRInBooked( CString roomId,CString data ,HWND hwnd)
{
TMRBookedInfo tmrBookedInfo;
TMRBookedInfoArray tmrBookedInfoArray;
tmrBookedInfoArray.clear();
UINT uiRet = -1;
if (m_httpCtrl == NULL)
{
m_httpCtrl = new CHttpClient();
}
CString strUrl,strPostData ;
strUrl.Format(_T("http://192.168.43.128:3000/QueryConferenceRecord?content={\"Conference_Index\":\"%s\",\"RecordTime\":\"%s\"}"),roomId,data);
string strResponse="";
uiRet = m_httpCtrl->HttpGet(strUrl,strPostData,strResponse);
if ((uiRet == SUCCESS) &&(!strResponse.empty()))
{
Json::Value root;
Json::Reader reader;
if (reader.parse(strResponse,root,false))
{
if (root.isMember("content"))
{
Json::Value jsResult=root["content"];
if (jsResult.size()==0)
{
return 0;
}
uiRet = jsResult.size();
for(int i=0;i<jsResult.size();i++)
{
if (jsResult[i].isMember("Index"))
{
tmrBookedInfo.uiIdx = jsResult[i]["Index"].asInt();
}
if (jsResult[i].isMember("Subject"))
{
tmrBookedInfo.strObj = jsResult[i]["Subject"].asCString();
}
if (jsResult[i].isMember("BeginTime"))
{
tmrBookedInfo.uiBeginTime = jsResult[i]["BeginTime"].asCString();
}
if (jsResult[i].isMember("EndTime"))
{
tmrBookedInfo.uiEndTime = jsResult[i]["EndTime"].asCString();
}
if (jsResult[i].isMember("UserName"))
{
tmrBookedInfo.uiUserName =jsResult[i]["UserName"].asCString();
}
tmrBookedInfoArray.push_back(tmrBookedInfo);
}
::SendMessage(hwnd,CM_SHOWRECORD,(WPARAM)&tmrBookedInfoArray,0);
}
}
}
return uiRet;
}
int CDatabaseManage::BookMR( TMRBookedInfo mrInfo )
{
std::vector<CString > vctString;
vctString.push_back(_T("08:30")),vctString.push_back(_T("09:00")),vctString.push_back(_T("09:30")),vctString.push_back(_T("10:00")),vctString.push_back(_T("10:30")),vctString.push_back(_T("11:00")),vctString.push_back(_T("11:30")),vctString.push_back(_T("12:00"));
vctString.push_back(_T("13:30")),vctString.push_back(_T("14:00")),vctString.push_back(_T("14:30")),vctString.push_back(_T("15:00")),vctString.push_back(_T("15:30")),vctString.push_back(_T("16:00")),vctString.push_back(_T("16:30")),vctString.push_back(_T("17:00"));
vctString.push_back(_T("17:30")),vctString.push_back(_T("18:00")),vctString.push_back(_T("18:30")),vctString.push_back(_T("19:00")),vctString.push_back(_T("19:30")),vctString.push_back(_T("20:00")),vctString.push_back(_T("20:30"));
std::vector<CString>::iterator itStart =std::find(vctString.begin(),vctString.end(),mrInfo.uiBeginTime);
std::vector<CString>::iterator itEnd =std::find(vctString.begin(),vctString.end(),mrInfo.uiEndTime);
UINT uiStartTimeIndex,uiEndTimeIndex;
if (vctString.end() !=itStart)
{
uiStartTimeIndex = itStart - vctString.begin();
}
if (vctString.end() != itEnd)
{
uiEndTimeIndex = itEnd -vctString.begin();
}
CString strDataString=_T("");
for (UINT i = uiStartTimeIndex;i<uiEndTimeIndex;i++)
{
if (i==uiStartTimeIndex)
{
strDataString+=_T("[");
}
CString szString = _T("");
szString.Format(_T("{\"BeginTime\":\"%s\",\"EndTime\":\"%s\"}"),vctString[i],vctString[i+1]);
strDataString +=szString;
if (i !=uiEndTimeIndex-1)
{
strDataString+=_T(",");
}
if (i==uiEndTimeIndex -1)
{
strDataString +=_T("]");
}
}
UINT uiRet = -1;
if (m_httpCtrl == NULL)
{
m_httpCtrl = new CHttpClient();
}
CString strUrl=_T(""),strNull=_T("");
strUrl.Format(_T("http://192.168.43.128:3000/AddConferenceRecord?"));
CString strAddRecord=_T("");
strAddRecord.Format(_T("content={\"Employee_Index\":\"%d\",\"Conference_Index\":\"%s\",\"Subject\":"),mrInfo.uiUserId,mrInfo.uiMRIdx);
CString strTitle=_T("");
strTitle.Format(_T("\"%s\""),mrInfo.strObj);
CString strJson=_T("");
strJson.Format(_T(",\"RecordTime\":\"%s\",\"Data\":%s}"),mrInfo.uiDataTime,strDataString);
CStringA temp = strTitle.GetBuffer(0);
string ss(temp.GetBuffer(0));
string utf8Code = "" ;
utf8Code = m_httpCtrl->UrlUTF8((char *)(LPCTSTR)ss.c_str());
CString utf(utf8Code.c_str());
strUrl +=strAddRecord;
strUrl +=utf;
strUrl +=strJson;
string strResponse="";
uiRet = m_httpCtrl->HttpGet((LPCTSTR)strUrl,(LPCTSTR)strNull,strResponse);
if (uiRet == SUCCESS && !strResponse.empty())
{
Json::Value root;
Json::Reader reader;
if (reader.parse(strResponse,root,false))
{
if (root.isMember("errorCode"))
{
string nCommandId = root["errorCode"].asString();
if (strcmp((char *)nCommandId.c_str(),("0x0021")) == 0)
{
return FAILURE;
}
else if (strcmp((char *)nCommandId.c_str(),"0x0040") == 0)
{
return OUTTIME;
}
}
}
}
return uiRet;
}
int CDatabaseManage::CancelMR( const UINT uiIdx )
{
UINT uiRet = -1;
if (m_httpCtrl == NULL)
{
m_httpCtrl = new CHttpClient();
}
CString strUrl=_T(""),strPostData=_T("");
strUrl.Format(_T("http://192.168.43.128:3000/DeleteConferenceRecord?content={\"Index\":\"%d\"}"),uiIdx);
string strResponse="";
uiRet = m_httpCtrl->HttpGet(strUrl,strPostData,strResponse);
if ((uiRet == SUCCESS) &&(!strResponse.empty()))
{
Json::Value root;
Json::Reader reader;
if (reader.parse(strResponse,root,false))
{
if (root.isMember("errorCode"))
{
string nCommandId = root["errorCode"].asString();
if (!strcmp((char *)nCommandId.c_str(),("0x0040")))
{
return OUTTIME;
}
}
}
}
return uiRet;
}

天行健_地势坤
- 粉丝: 226
最新资源
- 2022届应届生求职避坑指南-记录2022年大规模毁约应届生的公司名单及详细情况-帮助应届生识别高风险企业避免踩坑-包含互联网科技金融教育等多个行业-提供公司名称毁约时间毁约人数毁.zip
- (源码)基于嵌入式系统和实时系统的生产者消费者项目.zip
- (源码)基于HTML、CSS和JavaScript的电动汽车展示网站.zip
- (源码)基于STM32微控制器的田径比赛计时显示系统.zip
- 基于模拟硬盘的类Linux文件系统设计与实现-100MB文本文档模拟硬盘空间-支持多用户登录与文件操作-包含系统用户和普通用户账号管理-实现文件创建删除读写权限控制-支持互斥写操作.zip
- 基于SpringBootMyBatis微信小程序开发的B2C电子商务平台-包含商品展示-购物车管理-订单处理-会员系统-支付接口-物流跟踪-优惠券发放-商品评价-后台管理-数据.zip
- (源码)基于Solidity和React的简单去中心化交易所.zip
- 一个面向计算机科学初学者的DIY项目集合-包含自制操作系统-CPU-编译器-数据库-编程语言-网络协议栈-文件系统-虚拟机-游戏引擎-区块链等各类计算机系统实现-通过从零开始构建各.zip
- (源码)基于ANSI C语言的简易矩阵表达式计算解释器.zip
- (源码)基于ES6和Pixi的H5游戏开发项目.zip
- (源码)基于Arduino的家庭云信息显示系统.zip
- (源码)基于物联网的蘑菇农场管理系统.zip
- lingbai-kong-MIPS89-pipeline-CPU-58184-1753000904969.zip
- (源码)基于React Native的智能家居管理系统.zip
- (源码)基于Arduino和RFID技术的Kill Confirm系统.zip
- 计算机系统基础课程实验项目之数据实验室-位操作与整数浮点数表示深度解析-用于帮助学生理解计算机底层数据表示和位运算原理-通过修改bitsc文件完成指定位操作函数-使用dlc编译器.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


