Esempio n. 1
0
        public static bool InsertUploadSecurityCodeLog(SqlConnection conn, UploadSecurityCodeLog log)
        {
            string sql      = @"INSERT [Configuration].dbo.UploadSecurityCodeLog (   UploadFileName ,
                                                     UploadFileAddress ,
                                                     SuccessFileName ,
                                                     SuccessFileAddress ,
                                                     FailFileName ,
                                                     FailFileAddress ,
                                                     CreateTime ,
                                                     LastUpdateDataTime
                                                 )
                            VALUES ( @uploadFileName ,
                                     @uploadFileAddress ,
                                     @successFileName ,
                                     @successFileAddress ,
                                     @failFileName ,
                                     @failFileAddress ,
                                     GETDATE(),
                                     GETDATE()
                                     )";
            var    sqlParam = new[]
            {
                new SqlParameter("@uploadFileName", log.UploadFileName),
                new SqlParameter("@uploadFileAddress", log.UploadFileAddress),
                new SqlParameter("@successFileName", log.SuccessFileName),
                new SqlParameter("@successFileAddress", log.SuccessFileAddress),
                new SqlParameter("@failFileName", log.FailFileName),
                new SqlParameter("@failFileAddress", log.FailFileAddress),
            };

            return(SqlHelper.ExecuteNonQuery(conn, CommandType.Text, sql, sqlParam) > 0 ? true : false);
        }
Esempio n. 2
0
 public bool InsertUploadSecurityCodeLog(UploadSecurityCodeLog log)
 {
     try
     {
         return(handler.InsertUploadSecurityCodeLog(log));
     }
     catch (TuhuBizException)
     {
         throw;
     }
     catch (Exception ex)
     {
         var exception = new DownloadAppException(1, "InsertUploadSecurityCodeLog", ex);
         Logger.Log(Level.Error, exception, "InsertUploadSecurityCodeLog");
         throw ex;
     }
 }
Esempio n. 3
0
        public bool InsertUploadSecurityCodeLog(UploadSecurityCodeLog log)
        {
            Func <SqlConnection, bool> action = (connection) => DalTireSecurityCodeConfig.InsertUploadSecurityCodeLog(connection, log);

            return(dbManager.Execute(action));
        }
        public ActionResult UploadSecurityCodeLogImport(HttpPostedFileBase fileBase)
        {
            HttpPostedFileBase file = Request.Files["files"];

            #region 【参数初始化】
            string uploadFileName     = "";
            string uploadFileAddress  = "";
            string successFileName    = "";
            string successFileAddress = "";
            string failFileName       = "";
            string failFileAddress    = "";
            string ext          = "";
            string noFileName   = "";
            string uploadDomain = "/TireLog/SecurityCode";
            string batchNum     = DateTime.Now.ToString("yyyyMMddHHmmss");
            #endregion

            #region 【导入文件预判断】
            if (file == null || file.ContentLength <= 0)
            {
                return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "文件不能为空" }));
            }

            var filesize = file.ContentLength;                                      //获取上传文件的大小单位为字节byte
            ext        = System.IO.Path.GetExtension(file.FileName);                //获取上传文件的扩展名
            noFileName = System.IO.Path.GetFileNameWithoutExtension(file.FileName); //获取无扩展名的文件名
            const string fileType = ".txt";                                         //定义上传文件的类型字符串

            if (string.IsNullOrWhiteSpace(ext))
            {
                return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "文件扩展名不能为空" }));
            }
            if (!fileType.Contains(ext))
            {
                return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "文件类型不对,只能导入txt格式的文件" }));
            }
            #endregion

            #region 【源文件上传】
            var stream = file.InputStream;
            var buffer = new byte[stream.Length];
            stream.Read(buffer, 0, buffer.Length);
            uploadFileName = DateTime.Now.ToString("yyyyMMddhhmmss") + '_' + noFileName + ext;
            var result = FileUploadService.UploadFile(buffer, ext, uploadFileName, uploadDomain);
            if (!string.IsNullOrWhiteSpace(result))
            {
                uploadFileAddress = "https://img1.tuhu.org" + result;
            }
            else
            {
                return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "文件上传失败" }));
            }
            #endregion

            #region 【拆分异常数据、去重】
            stream.Position = 0;
            StreamReader  sr        = new StreamReader(stream, System.Text.Encoding.GetEncoding("gb2312"));
            StringBuilder successSB = new StringBuilder();
            StringBuilder failSB    = new StringBuilder();
            string        line;
            List <TireSecurityCodeConfig> congifList = new List <TireSecurityCodeConfig>();
            while ((line = sr.ReadLine()) != null)
            {
                if (line.Contains("二") && line.Contains("维"))
                {
                }
                else
                {
                    string uCode        = "";
                    string fCode        = "";
                    string securityCode = "";
                    try
                    {
                        uCode        = line.Substring(line.IndexOf("?u=") + 3, line.IndexOf("&f") - line.IndexOf("?u=") - 3);
                        fCode        = line.Substring(line.IndexOf("&f=") + 3, line.LastIndexOf(",") - line.IndexOf("&f=") - 3);
                        securityCode = line.Substring(line.LastIndexOf(",") + 1, line.Length - line.LastIndexOf(",") - 1).Trim();
                    }
                    catch (Exception ex)
                    {
                        failSB.AppendLine(line + ":参数错误");
                        continue;
                    }

                    if (uCode == "" || !IsNumeric(uCode) ||
                        fCode == "" || !IsNumeric(fCode) ||
                        securityCode == "" || !IsNumeric(securityCode))
                    {
                        failSB.AppendLine(line + ":参数错误");
                        continue;
                    }
                    else
                    {
                        TireSecurityCodeConfig config = new TireSecurityCodeConfig
                        {
                            CodeID             = Guid.NewGuid(),
                            CreateTime         = DateTime.Now,
                            LastUpdateDataTime = DateTime.Now,
                            UCode         = uCode,
                            FCode         = fCode,
                            SecurityCode  = securityCode,
                            DataIntegrity = false,
                            BatchNum      = batchNum
                        };
                        congifList.Add(config);
                        continue;
                    }
                }
            }

            congifList = congifList
                         .GroupBy(item => item.SecurityCode)
                         .Select(item => item.First())
                         .ToList <TireSecurityCodeConfig>();
            #endregion

            #region 【批量插入数据】
            var insertResult = TireSecurityCodeConfigManager.InsertTireSecurityCodeConfig(congifList);
            if (insertResult)
            {
                var insertList = TireSecurityCodeConfigManager.QuerySecurityCodeConfigModelByBatchNum(batchNum);
                if (insertList == null || insertList.Count == 0)
                {
                    return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "本次上传数据均存在,不做更新." }));
                }
                foreach (var insert in insertList)
                {
                    string lineSuccees = "https://wx.tuhu.cn/vue/antifake/pages/home/select?guid=" + insert.CodeID.ToString("D") + "," + insert.SecurityCode;
                    successSB.AppendLine(lineSuccees);
                }
            }
            else
            {
                failSB.AppendLine("数据失败,刷新页面重试.");
            }
            #endregion

            #region 【生成成功\失败文件地址】
            if (successSB.Length > 0)
            {
                byte[] arraySuccess = Encoding.GetEncoding("gb2312").GetBytes(successSB.ToString());
                successFileName = DateTime.Now.ToString("yyyyMMddhhmmss") + '_' + noFileName + "_二维码" + ext;
                result          = FileUploadService.UploadFile(arraySuccess, ext, successFileName, uploadDomain);
                if (!string.IsNullOrWhiteSpace(result))
                {
                    successFileAddress = "https://img1.tuhu.org" + result;
                }
                else
                {
                    TireSecurityCodeConfigManager.DeleleSecurityCodeConfigModelByBatchNum(batchNum);
                    return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "文件上传失败" }));
                }
            }

            if (failSB.Length > 0)
            {
                byte[] arrayFail = Encoding.GetEncoding("gb2312").GetBytes(failSB.ToString());
                failFileName = DateTime.Now.ToString("yyyyMMddhhmmss") + '_' + noFileName + "_Error" + ext;
                result       = FileUploadService.UploadFile(arrayFail, ext, failFileName, uploadDomain);
                if (!string.IsNullOrWhiteSpace(result))
                {
                    failFileAddress = "https://img1.tuhu.org" + result;
                }
                else
                {
                    TireSecurityCodeConfigManager.DeleleSecurityCodeConfigModelByBatchNum(batchNum);
                    return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "文件上传失败" }));
                }
            }
            #endregion

            #region 【记录上传文件日志】
            UploadSecurityCodeLog scLog = new UploadSecurityCodeLog
            {
                UploadFileName     = uploadFileName,
                UploadFileAddress  = uploadFileAddress,
                SuccessFileName    = successFileName,
                SuccessFileAddress = successFileAddress,
                FailFileName       = failFileName,
                FailFileAddress    = failFileAddress,
                CreateTime         = DateTime.Now,
                LastUpdateDataTime = DateTime.Now,
                Operator           = ThreadIdentity.Operator.Name,
            };

            var insertLog = TireSecurityCodeConfigManager.InsertUploadSecurityCodeLog(scLog);
            #endregion

            return(RedirectToAction("UploadSecurityCodeLog", "TireSecurityCode", new { msg = "导入成功" }));
        }