public static int UploadHistoryData() { //遍历近七天的目录 int count = 0; for (int i = 0; i < 7; i++) { string dir = Application.StartupPath + "\\" + DateTime.Now.AddDays(0 - i).ToString("yyyyMMdd"); if (!Directory.Exists(dir)) { continue; } string[] szPath = Directory.GetFiles(dir); int result = 0; foreach (string path in szPath) { string filename = Path.GetFileName(path); if (filename.StartsWith("lesson_") && filename.EndsWith(".txt")) { FileOper fo = new FileOper(dir, filename); string data = fo.ReadFile(); //base64 LessonEvents le = JsonOper.DeserializeJsonToObject <LessonEvents>(data); if (le.eventlist == null || le.eventlist.Count < 3) { File.Delete(path); continue; } int ret = Common.uploadOfflineData(le); if (ret > 0) { File.Delete(path); } } } } return(count); }
/// <summary> /// 提交支付宝声波支付订单 /// </summary> /// <param name="money">金额</param> /// <returns>结果代码 0:支付成功 1:订单请求失败 9:未知错误</returns> public int AliPayOrder(string money) { int intErrCode = 0; string strData = string.Empty; try { bool result = m_AliPayWave.AliPay_Order(m_VmId, m_WaveIdData, money, out strData); if (result) { JsonOper jsonOper = new JsonOper(); string strCode = jsonOper.GetJsonKeyValue(strData, "ret"); switch (strCode) { case "0": // 支付成功 break; default: //lblTip.Text = "支付失败,系统代码:" + strCode + ",支付宝码:" + jsonOper.GetJsonKeyValue(strData, "alicode"); //SleepControl(); break; } } else { // Http请求失败 intErrCode = 1; } } catch { intErrCode = 9; } return(intErrCode); }
//最需要,最活跃的,最沉默的,反应最快的,反应最慢的 #region 新的课堂 public static void InitLesson() { int currentId = Global.getLessonID(); if (m_lessonid != currentId || currentId == 0) { //FormDraw.ClearRecord(); m_summary.clear(); m_rewardList = null; m_activeList = null; m_rewardTimeList = null; m_callnameTimeList = null; m_xitistat = null; m_stat = null; m_lessonid = Global.getLessonID(); m_rewardList = new List <StudentReward>(); m_activeList = new List <StudentActive>(); m_rewardTimeList = new List <StudentLasttimeReward>(); m_callnameTimeList = new List <StudentLasttimeCallname>(); m_xitistat = new XitiStat(); m_stat = new Stat(); string resp = Common.getLastTime(); Log.Info("getLastTime: " + resp); //{"LastTime_Callname":[{"uid":3918,"uptime":"2016-07-25 17:03:07"},{"uid":3919,"uptime":"2016-06-03 15:40:16"},{"uid":3920,"uptime":"2016-06-02 14:15:31"},{"uid":3921,"uptime":"2016-04-28 15:40:28"},{"uid":3922,"uptime":"2016-05-23 16:51:48"},{"uid":3923,"uptime":"2016-05-23 17:39:24"},{"uid":3924,"uptime":"2016-09-18 19:37:06"},{"uid":3925,"uptime":"2016-09-18 19:37:06"},{"uid":3927,"uptime":"2016-05-23 16:51:48"},{"uid":3928,"uptime":"2016-05-24 17:06:37"},{"uid":3929,"uptime":"2016-05-23 17:02:52"},{"uid":3930,"uptime":"2016-05-23 16:51:48"},{"uid":3931,"uptime":"2016-05-24 16:33:35"},{"uid":3932,"uptime":"2016-09-06 12:23:01"},{"uid":3933,"uptime":"2016-06-02 19:13:02"},{"uid":3934,"uptime":"2016-06-02 14:15:32"},{"uid":3935,"uptime":"2016-06-02 14:16:25"},{"uid":3936,"uptime":"2016-06-02 14:16:23"},{"uid":3937,"uptime":"2016-09-06 12:24:03"},{"uid":3938,"uptime":"2016-09-06 12:23:00"},{"uid":3939,"uptime":"2016-05-23 16:51:48"},{"uid":3940,"uptime":"2016-05-23 17:02:52"},{"uid":3941,"uptime":"2016-08-05 16:49:28"},{"uid":3942,"uptime":"2016-09-06 12:22:42"},{"uid":3943,"uptime":"2016-05-23 21:11:17"},{"uid":3944,"uptime":"2016-06-03 16:45:21"},{"uid":3945,"uptime":"2016-06-03 16:56:01"},{"uid":3946,"uptime":"2016-06-02 14:16:49"},{"uid":3947,"uptime":"2016-05-23 21:11:17"},{"uid":3948,"uptime":"2016-09-06 12:24:00"},{"uid":3949,"uptime":"2016-09-06 12:24:02"},{"uid":3950,"uptime":"2016-08-12 18:23:26"},{"uid":3951,"uptime":"2016-06-03 15:36:47"},{"uid":3952,"uptime":"2016-06-16 22:34:02"},{"uid":3953,"uptime":"2016-06-02 14:15:36"},{"uid":3954,"uptime":"2016-09-06 12:24:01"},{"uid":4214,"uptime":"2016-09-06 12:22:59"},{"uid":4215,"uptime":"2016-09-06 12:23:03"},{"uid":4216,"uptime":"2016-06-03 16:55:55"},{"uid":4217,"uptime":"2016-05-23 17:39:09"},{"uid":4218,"uptime":"2016-05-23 17:17:21"},{"uid":4219,"uptime":"2016-09-06 12:22:07"},{"uid":4220,"uptime":"2016-05-24 17:06:37"},{"uid":4221,"uptime":"2016-05-23 16:51:48"},{"uid":4222,"uptime":"2016-06-03 16:02:50"},{"uid":4223,"uptime":"2016-05-23 17:39:09"},{"uid":4224,"uptime":"2016-06-03 16:02:54"},{"uid":4225,"uptime":"2016-09-06 12:22:08"},{"uid":4226,"uptime":"2016-06-03 16:45:22"},{"uid":4227,"uptime":"2016-05-23 17:03:31"},{"uid":4228,"uptime":"2016-05-23 16:51:48"},{"uid":4229,"uptime":"2016-06-03 15:58:03"},{"uid":4230,"uptime":"2016-05-23 17:03:31"},{"uid":4231,"uptime":"2016-05-23 16:51:48"},{"uid":4232,"uptime":"2016-05-23 16:51:48"},{"uid":4233,"uptime":"2016-05-23 17:02:52"},{"uid":4234,"uptime":"2016-05-23 16:51:48"},{"uid":4235,"uptime":"2016-06-02 14:15:41"},{"uid":4236,"uptime":"2016-05-23 16:51:48"}],"LastTime_Reward":[{"uid":3918,"uptime":"2016-07-25 17:03:08"},{"uid":3919,"uptime":"2016-06-02 14:19:21"},{"uid":3925,"uptime":"2016-09-06 12:24:05"},{"uid":3932,"uptime":"2016-09-06 12:23:02"},{"uid":3933,"uptime":"2016-06-02 19:13:05"},{"uid":3937,"uptime":"2016-09-06 12:24:03"},{"uid":3938,"uptime":"2016-09-06 12:23:01"},{"uid":3942,"uptime":"2016-09-06 12:22:43"},{"uid":3945,"uptime":"2016-06-03 16:52:36"},{"uid":3948,"uptime":"2016-09-06 12:24:00"},{"uid":3949,"uptime":"2016-09-06 12:24:02"},{"uid":3954,"uptime":"2016-09-06 12:24:01"},{"uid":4214,"uptime":"2016-09-06 12:22:59"},{"uid":4215,"uptime":"2016-09-06 12:23:03"},{"uid":4219,"uptime":"2016-09-06 12:22:07"},{"uid":4224,"uptime":"2016-06-03 16:02:55"},{"uid":4225,"uptime":"2016-09-06 12:22:08"},{"uid":4226,"uptime":"2016-06-03 16:45:26"},{"uid":4235,"uptime":"2016-06-02 14:15:47"}]} if (resp.Length > 0) { StudentLasttime sl = JsonOper.DeserializeJsonToObject <StudentLasttime>(resp); m_callnameTimeList = new List <StudentLasttimeCallname>(sl.LastTime_Callname); m_rewardTimeList = new List <StudentLasttimeReward>(sl.LastTime_Reward); DateTime tm_now = DateTime.Now; foreach (StudentLasttimeCallname item in m_callnameTimeList) { DateTime tm_last = DateTime.Parse(item.uptime); TimeSpan lasttimespan = new TimeSpan(tm_last.Ticks); TimeSpan nowtimespan = new TimeSpan(tm_now.Ticks); TimeSpan timespan = nowtimespan.Subtract(lasttimespan).Duration(); int timeDiff = timespan.Days * 24 * 60 + timespan.Hours * 60 + timespan.Minutes; item.minute = timeDiff; Log.Info("uptime: " + item.uptime + ", " + timeDiff); } foreach (StudentLasttimeReward item in m_rewardTimeList) { DateTime tm_last = DateTime.Parse(item.uptime); TimeSpan lasttimespan = new TimeSpan(tm_last.Ticks); TimeSpan nowtimespan = new TimeSpan(tm_now.Ticks); TimeSpan timespan = nowtimespan.Subtract(lasttimespan).Duration(); int timeDiff = timespan.Days * 24 * 60 + timespan.Hours * 60 + timespan.Minutes; item.minute = timeDiff; Log.Info("uptime: " + item.uptime + ", " + timeDiff); } } foreach (StudentInfo si in Global.g_StudentInfoArray) { StudentActive sa = new StudentActive(); sa.uid = Util.toInt(si.ID); sa.handon = 0; sa.xiti = 0; sa.second = 0; //------------------------------------------- addStudentActive(sa); } } }
/// <summary> /// 导入广告文件信息 /// </summary> /// <param name="goodsListInfo">列表的JSON格式</param> /// <param name="importType">导入方式 0:本地导入 1:远程下载</param> /// <param name="picSourcePath">本地导入时的来源路径</param> /// <returns>结果 0:成功 1:获取导入信息失败 2:没有要导入的信息 3:导入失败</returns> public int ImportAdvertList(string advertListInfo, string importType, string sourcePath, out string updateList) { int intErrCode = 0; updateList = string.Empty; DbOper dbOper = new DbOper(); dbOper.DbFileName = _m_DbFileName; try { AdvertList_Import.Clear(); JsonOper jsonOper = new JsonOper(); string strResultCode = jsonOper.GetJsonKeyValue(advertListInfo, "ret"); string strisupdate = jsonOper.GetJsonKeyValue(advertListInfo, "isupdate"); if ((strResultCode == "0") && (strisupdate == "1")) { #region int intCount = 0; intCount = Convert.ToInt32(jsonOper.GetJsonKeyValue(advertListInfo, "advcount")); string strAdvListID = jsonOper.GetJsonKeyValue(advertListInfo, "advlistid"); string strUpdateSign = jsonOper.GetJsonKeyValue(advertListInfo, "updatesign"); string strPlaySign = jsonOper.GetJsonKeyValue(advertListInfo, "playsign"); string strBeginDate = jsonOper.GetJsonKeyValue(advertListInfo, "begindate"); string strEndDate = jsonOper.GetJsonKeyValue(advertListInfo, "enddate"); if (intCount == 0) { intErrCode = 2;// 没有要导入的信息 } else if (strAdvListID == m_UpdateAdvertListID) { // 当前要导入的广告节目单编号和正在更新的广告节目单编号一样 intErrCode = 2;// 没有要导入的信息 } else { // 检查以广告节目单编号为名称的文件夹是否存在,如果不存在,自动创建 CreateDirectory(strAdvListID); string strSql = string.Empty; bool result = false; #region 操作广告节目单表 dbOper.ConnType = ConnectType.KeepConn; strSql = @"select FileCode from T_ADV_ADVFILE where AdvListID = '" + strAdvListID + "'"; DataSet dataSet = dbOper.dataSet(strSql); bool blnIsExist = false;// 是否已经存在该节目单 False:不存在 True:存在 if (dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows.Count > 0) { // 已经存在该广告节目单,更新 blnIsExist = true; } } if (blnIsExist) { // 更新 strSql = "update T_ADV_ADVLIST set UpdateSign = '" + strUpdateSign + "',PlaySign = '" + strPlaySign + "',TotalNum = '" + intCount + "',BeginDate = '" + strBeginDate + "',EndDate = '" + strEndDate + "',Content = '" + advertListInfo + "',ImportType = '" + importType + "' where AdvListID = '" + strAdvListID + "'"; } else { // 添加 strSql = @"insert into T_ADV_ADVLIST(AdvListID,UpdateSign,PlaySign,TotalNum,BeginDate,EndDate,Content,ImportType) values('" + strAdvListID + "','" + strUpdateSign + "','" + strPlaySign + "','" + intCount + "','" + strBeginDate + "','" + strEndDate + "','" + advertListInfo + "','" + importType + "')"; } result = dbOper.excuteSql(strSql); if (!result) { intErrCode = 3; } #endregion if (result) { JsonData jdItems = null; jdItems = JsonMapper.ToObject(advertListInfo); jdItems = jdItems["filelist"]; #region 遍历导入信息 string strAdvCode = string.Empty; string strFileName = string.Empty; string strFileFormat = string.Empty; string strSize = string.Empty; string strPlayNum = string.Empty; string strDelayTime = string.Empty; string strUrl = string.Empty; string strSource = string.Empty; int intNo = 0; string strFactImportType = string.Empty; foreach (JsonData item in jdItems) { intNo++; strAdvCode = item["advcode"].ToString(); strFileName = item["name"].ToString(); strFileFormat = item["format"].ToString(); strSize = item["size"].ToString(); strPlayNum = item["playnum"].ToString(); strDelayTime = item["delaytime"].ToString(); strUrl = item["url"].ToString(); strSource = item["source"].ToString(); if (importType == "0") { strFactImportType = "0"; } else { strFactImportType = strSource; } // 保存表记录 strSql = @"insert into T_ADV_ADVFILE(AdvListID,FileCode,FileName,FileFormat, FileType,FileSize,PlayNum,DelayTime,DownUrl,Status,ImportType) values('" + strAdvListID + "','" + strAdvCode + "','" + strFileName + "','" + strFileFormat + "','1','" + strSize + "','" + strPlayNum + "','" + strDelayTime + "','" + strUrl + "','0','" + strFactImportType + "')"; result = dbOper.excuteSql(strSql); ////AdvertList_Import.Add(new AdvertInfoModel() ////{ //// PlayNo = intNo - 1, //// FileName = strFileName, //// FileType = strFileType, //// AdvertType = GetAdvertFileType(strFileType), ////}); } #endregion if (intNo == 0) { intErrCode = 2;// 没有要导入的信息 } else { m_UpdateAdvertListID = strAdvListID; } } } #endregion } else if ((strResultCode == "0") && (strisupdate == "0")) { intErrCode = 2; } else { intErrCode = 1; } dbOper.closeConnection(); } catch { dbOper.closeConnection(); intErrCode = 3;// 导入失败 } return(intErrCode); }
/// <summary> /// 读取广告播放文件 /// </summary> /// <returns>结果 0:成功 1:获取导入信息失败 2:没有信息 3:导入失败</returns> public int LoadAdvertList(string advNo) { int intErrCode = 3; try { AdvertList_Temp.Clear(); #region 读取广告配置文件 ////string strAdvertListFilePath = AppDomain.CurrentDomain.BaseDirectory + "\\advert\\advertlist.txt"; string strAdvertListFilePath = string.Empty; if ((string.IsNullOrEmpty(advNo)) || (advNo.Length == 0)) { strAdvertListFilePath = AppDomain.CurrentDomain.BaseDirectory + "\\advert\\advertlist.txt"; } else { strAdvertListFilePath = AppDomain.CurrentDomain.BaseDirectory + "\\advert\\AdvertList\\" + advNo + "\\advertlist.txt"; } AdvertPath = advNo; if (!File.Exists(strAdvertListFilePath)) { // 广告配置文件不存在 return(2); } string strListInfo = File.ReadAllText(strAdvertListFilePath, Encoding.Default); #endregion JsonOper jsonOper = new JsonOper(); string strResultCode = jsonOper.GetJsonKeyValue(strListInfo, "ret"); if (strResultCode == "0") { int intCount = 0; intCount = Convert.ToInt32(jsonOper.GetJsonKeyValue(strListInfo, "count")); if (intCount == 0) { intErrCode = 2;// 没有广告信息 } else { string strFileName = string.Empty; string strFileType = string.Empty; JsonData jdItems = null; string strSql = string.Empty; jdItems = JsonMapper.ToObject(strListInfo); jdItems = jdItems["advertlist"]; #region 遍历广告信息 int intNo = 0; foreach (JsonData item in jdItems) { intNo++; strFileName = item["filename"].ToString(); strFileType = item["filetype"].ToString(); AdvertList_Temp.Add(new AdvertInfoModel() { PlayNo = intNo - 1, FileName = strFileName, FileType = strFileType, AdvertType = GetAdvertFileType(strFileType), }); } #endregion intErrCode = 0; } } else { intErrCode = 1; } } catch { intErrCode = 3;// 导入失败 } finally { AdvertList = AdvertList_Temp; } return(intErrCode); }
/// <summary> /// 批量添加商品 /// </summary> /// <param name="goodsListInfo">商品列表的JSON格式</param> /// <param name="importType">导入方式 0:本地导入 1:远程下载</param> /// <param name="picSourcePath">本地导入时的商品图片来源路径</param> /// <returns>结果 0:成功 1:获取商品导入信息失败 2:没有要导入的商品信息 3:导入失败</returns> public int ImportGoodsList(string goodsListInfo, string importType, string picSourcePath, out string updateMcdList) { int intErrCode = 0; updateMcdList = string.Empty; try { JsonOper jsonOper = new JsonOper(); string strResultCode = jsonOper.GetJsonKeyValue(goodsListInfo, "ret"); if (strResultCode == "0") { int intGoodsCount = 0; intGoodsCount = Convert.ToInt32(jsonOper.GetJsonKeyValue(goodsListInfo, "count")); if (intGoodsCount == 0) { intErrCode = 2;// 没有要导入的商品信息 } else { string strMcdCode = string.Empty; string strMcdName = string.Empty; string strMcdContent = string.Empty; string strMcdType = string.Empty; string strMcdPic = string.Empty; string strIsFree = "0"; string strManufacturer = string.Empty; string strGoodsSpec = string.Empty; string strDrugType = "0"; string strDetailInfo = string.Empty; string strMcdUnit = string.Empty; string strMcdSaleType = string.Empty; string strUrl = string.Empty; JsonData jdItems = null; string strSql = string.Empty; DbOper dbOper = new DbOper(); dbOper.DbFileName = _m_DbFileName; dbOper.ConnType = ConnectType.CloseConn; DataSet dataSet = new DataSet(); jdItems = JsonMapper.ToObject(goodsListInfo); jdItems = jdItems["goodslist"]; bool blnIsExit = false; bool result = false; #region 检查是否存在新的字段 bool blnIsExitIsFree = false;// 是否存在免费字段 False:不存在 True:存在 if (goodsListInfo.IndexOf("isfree") > 10) { blnIsExitIsFree = true; } bool blnIsExitManufacturer = false;// 是否存在生产厂商 False:不存在 True:存在 if (goodsListInfo.IndexOf("manufacturer") > 10) { blnIsExitManufacturer = true; } bool blnIsExitUnit = false;// 是否存在单位 False:不存在 True:存在 if (goodsListInfo.IndexOf("unit") > 10) { blnIsExitUnit = true; } bool blnIsExitGoodsSpec = false;// 是否存在商品规格 False:不存在 True:存在 if (goodsListInfo.IndexOf("goodsspec") > 10) { blnIsExitGoodsSpec = true; } bool blnIsExitDrugType = false;// 是否存在商品标示 False:不存在 True:存在 if (goodsListInfo.IndexOf("drugtype") > 10) { blnIsExitDrugType = true; } bool blnIsExitDetail = false;// 是否存在商品详细介绍 False:不存在 True:存在 if (goodsListInfo.IndexOf("detail") > 10) { blnIsExitDetail = true; } bool blnIsExitMcdSaleType = false;// 是否存在商品销售类型 False:不存在 True:存在 if (goodsListInfo.IndexOf("saletype") > 10) { blnIsExitMcdSaleType = true; } bool blnIsExitPicUrl = false;// 是否存在商品图片下载URL False:不存在 True:存在 if (goodsListInfo.IndexOf("picurl") > 10) { blnIsExitPicUrl = true; } #endregion #region 遍历商品导入信息 foreach (JsonData item in jdItems) { strMcdCode = item["mcdcode"].ToString(); strMcdName = item["mcdname"].ToString(); strMcdContent = item["mcdcontent"].ToString(); strMcdPic = item["mcdpic"].ToString(); strMcdType = item["mcdtype"].ToString(); if (blnIsExitIsFree) { strIsFree = item["isfree"].ToString(); } if (blnIsExitManufacturer) { strManufacturer = item["manufacturer"].ToString(); } if (blnIsExitUnit) { strMcdUnit = item["unit"].ToString(); } if (blnIsExitGoodsSpec) { strGoodsSpec = item["goodsspec"].ToString(); } if (blnIsExitDrugType) { strDrugType = item["drugtype"].ToString(); } if (blnIsExitDetail) { strDetailInfo = item["detail"].ToString(); // 转码商品详细介绍中的换行符等 strDetailInfo = strDetailInfo.Replace("\\r", "\r"); strDetailInfo = strDetailInfo.Replace("\\n", "\n"); } if (blnIsExitMcdSaleType) { strMcdSaleType = item["saletype"].ToString(); } else { strMcdSaleType = "0"; } if (blnIsExitPicUrl) { strUrl = item["picurl"].ToString(); } // 检查是否已经存在了该商品,如果已经存在该商品编号,则更新;否则添加 strSql = "select McdCode from T_MCD_BASEINFO where mcdcode = '" + strMcdCode + "'"; blnIsExit = false; dataSet = dbOper.dataSet(strSql); if (dataSet.Tables.Count > 0) { if (dataSet.Tables[0].Rows.Count > 0) { blnIsExit = true; } } if (blnIsExit) { // 已经存在,则更新 strSql = @"update T_MCD_BASEINFO set McdName = '" + strMcdName + "'," + "McdContent = '" + strMcdContent + "'," + "PicName = '" + strMcdPic + "',IsFree = '" + strIsFree + "',manufacturer = '" + strManufacturer + "',GoodsSpec = '" + strGoodsSpec + "',DrugType = '" + strDrugType + "',McdType = '" + strMcdType + "',Unit = '" + strMcdUnit + "',DetailInfo = '" + strDetailInfo + "',McdSaleType = '" + strMcdSaleType + "' where mcdcode = '" + strMcdCode + "'"; updateMcdList += strMcdCode + ","; } else { // 不存在,则添加 strSql = @"insert into T_MCD_BASEINFO(McdCode,McdName,McdContent, PicName,Price,IsFree,manufacturer, GoodsSpec,DrugType,McdType,Unit,DetailInfo,McdSaleType) values('" + strMcdCode + "','" + strMcdName + "','" + strMcdContent + "','" + strMcdPic + "'," + "0" + ",'" + strIsFree + "','" + strManufacturer + "','" + strGoodsSpec + "','" + strDrugType + "','" + strMcdType + "','" + strMcdUnit + "','" + strDetailInfo + "','" + strMcdSaleType + "')"; } result = dbOper.excuteSql(strSql); if (result) { switch (importType) { case "0": // 本地导入商品信息 #region 拷贝商品图片 if (File.Exists(picSourcePath + strMcdPic)) { try { // 存在商品图片,拷贝覆盖 File.Copy(picSourcePath + strMcdPic, AppDomain.CurrentDomain.BaseDirectory.ToString() + "Images\\GoodsPic\\" + strMcdPic, true); } catch { } } #endregion break; case "1": // 远程下载更新商品信息 #region 商品图片信息先保存,再另外下载图片 if (!File.Exists(picSourcePath + strMcdPic)) { // 添加到商品图片下载中间表 strSql = @"insert into T_MCD_PICTEMP(McdCode,McdPic,Url,Status) values('" + strMcdCode + "','" + strMcdPic + "','" + strUrl + "','0')"; result = dbOper.excuteSql(strSql); } #endregion break; } } } #endregion dbOper.closeConnection(); // 更新商品列表 LoadGoodsInfo_Total(); } } else { intErrCode = 1; } } catch { intErrCode = 3;// 导入失败 } return(intErrCode); }