public ActionResult UploadApp() { var formFile = (FormFile)Request.Form.Files[0]; var softwareInfo = Request.Form["software"]; var jObject = JObject.Parse(softwareInfo); var stream = formFile.OpenReadStream(); byte[] data; using (var memoryStream = new MemoryStream()) { stream.CopyTo(memoryStream); data = memoryStream.ToArray(); } var file = new AppFile() { Name = formFile.FileName, MimeType = formFile.ContentType, Data = data }; var app = new App(jObject["version"].ToString(), file, jObject["releaseNotes"].ToString(), DateTime.Now); _appService.Add(app); return(Ok()); }
public async Task AddOrder([FromBody] object model) { //获取请求报文 var requestContent = ""; if (Request.ContentType == "application/octet-stream") { var bytePacket = (byte[])model; requestContent = Encoding.UTF8.GetString(bytePacket); } else { if (model == null) { model = ""; } requestContent = model.ToString(); } if (string.IsNullOrWhiteSpace(requestContent)) { var log = $"请求类型是{Request.ContentType}的请求要求报文不允许为空,AddOrder添加订单操作终止"; LogWarn($"{log} 日期:{DateTime.Now:yyyy-MM-dd HH:mm:ss}"); await WriteAsync(log); return; } LogInfo($"{Request.ContentType}添加订单AddOrder原始请求报文:{requestContent}"); //解析报文 var dic = requestContent.UrlFormat(); var logisticsInterface = dic.ContainsKey("logistics_interface") ? dic["logistics_interface"] : ""; var dataDigest = dic.ContainsKey("data_digest") ? dic["data_digest"] : ""; //签名检查 if (!AliHandler.CheckRequest(logisticsInterface, dataDigest)) { var log = AliHandler.ErrDetail(2001, "sub"); LogError($"身份验证失败,订单数据原始报文:{logisticsInterface}\r\n接收到的签名:{dataDigest}"); await WriteAsync(log); return; } //序列化订单数据 var logisticId = ""; Aorder aorder; try { aorder = AliHandler.JsonToClass(logisticsInterface); logisticId = aorder.logisticID; } catch (Exception ex) { var msg = ex.Message; if (ex.InnerException?.InnerException != null) { msg = ex.InnerException.InnerException.Message; } var log = AliHandler.ErrDetail(logisticId, 3001, "sub"); LogError($"序列化订单数据失败,原始报文:{logisticsInterface}", msg, ex.StackTrace); await WriteAsync(log); return; } //映射提交订单的实体 LogInfo($"提交订单原始数据:{JsonConvert.SerializeObject(aorder)}"); var mySqlOrder = AliHandler.CreateMap(aorder, logisticsInterface); if (mySqlOrder == null) { var log = AliHandler.ErrDetail(logisticId, 3001, "sub"); await WriteAsync(log); return; } if (!string.IsNullOrEmpty(aorder.mailNo)) { //如果运单号为“6”开头则表示电子面单或菜鸟仓配面单,不通过本接口写入数据库 var sub = aorder.mailNo.Substring(0, 1); if (sub == "6") { LogInfo($"运单号为“6”开头则表示电子面单或菜鸟仓配面单,不通过本接口写入数据库,提交订单动作终止。运单号:{aorder.mailNo}AL订单号:{aorder.logisticID}"); return; } } //提交订单数据进入MySql库 var hasSuccess = await AppService.Add(mySqlOrder); if (!hasSuccess) { var log = AliHandler.ErrDetail(logisticId, 3001, "sub"); await WriteAsync(log); return; } var result = AliHandler.ErrDetail(logisticId, 1000, "sub"); LogInfo($"{result}\r\n运单号:{aorder.mailNo}写入数据库成功!"); await WriteAsync(result); }
async Task <bool> UpdateSite(T_ORDER dbOrder) { try { List <SiteDetail> sd = null; List <MQuerySite> lQuerySite = new List <MQuerySite>(); MQuerySite site = null; site = new MQuerySite(); site.orderid = dbOrder.ORDER_NO + "-send"; site.address = dbOrder.SENDER_PROVINCE + dbOrder.SENDER_CITY + dbOrder.SENDER_COUNTY + dbOrder.SENDER_ADDRESS; site.operSource = "OMS"; if (!lQuerySite.Contains(site)) { lQuerySite.Add(site); } site = new MQuerySite(); site.orderid = dbOrder.ORDER_NO + "-rec"; site.address = dbOrder.RECEIVER_PROVINCE + dbOrder.RECEIVER_CITY + dbOrder.RECEIVER_COUNTY + dbOrder.RECEIVER_ADDRESS; site.operSource = "OMS"; if (!lQuerySite.Contains(site)) { lQuerySite.Add(site); } sd = AliHandler.GetSite(lQuerySite); SiteDetail resultsite = null; T_NAVIGATE_DISTANCE distance; bool bdistance = false;//是否插入距离表,如果2端距离都没有则不插入 if (sd != null && sd.Count > 0) { distance = new T_NAVIGATE_DISTANCE(); distance.MAIL_NO = dbOrder.BILL_NO; distance.ORDER_NO = dbOrder.ORDER_NO; //distance.PICKUP_DISTANCE = "0"; //distance.SEND_DISTANCE = "0"; resultsite = sd.FirstOrDefault(p => p.orderid == dbOrder.ORDER_NO + "-send"); if (resultsite != null) { distance.PICKUP_DISTANCE = resultsite.distance; //distance.PICKUP_DISTANCE = resultsite.distance == null ? "0" : resultsite.distance; if (!string.IsNullOrEmpty(resultsite.bizAreaValue)) { if (dbOrder.PICKUP_SITE != resultsite.bizAreaValue && !string.IsNullOrEmpty(distance.PICKUP_DISTANCE))//如果是修改订单,网点可能没做修改 { bdistance = true; } dbOrder.PICKUP_SITE = resultsite.bizAreaValue; //取件网点编号 string sitename = await AppService.QuerySiteName(resultsite.bizAreaValue); //dbHelper.mapper.QueryForObject<string>("T_SITE_INFO.GetName", resultsite.bizAreaValue); if (!string.IsNullOrEmpty(sitename)) { if (dbOrder.ORDER_STATUS == 10) { dbOrder.ORDER_STATUS = 20; } dbOrder.PICKUP_SITECODE = sitename; //名称 dbOrder.ASSIGNED_SITE_CODE = sitename; //名称 dbOrder.PUSH_OUTSYS_STATUS = 1; dbOrder.PUSH_OUTSYS_FAIL_NUM = 0; dbOrder.ASSIGNSITE_TYPE = 0; } } } resultsite = sd.FirstOrDefault(p => p.orderid == dbOrder.ORDER_NO + "-rec"); if (resultsite != null) { distance.SEND_DISTANCE = resultsite.distance; if (!string.IsNullOrEmpty(resultsite.bizAreaValue)) { if (dbOrder.SENDTO_SITE != resultsite.bizAreaValue && !string.IsNullOrEmpty(distance.SEND_DISTANCE))//如果是修改订单,网点可能没做修改 { bdistance = true; } dbOrder.SENDTO_SITE = resultsite.bizAreaValue; string sitename = await AppService.QuerySiteName(resultsite.bizAreaValue);//dbHelper.mapper.QueryForObject<string>("T_SITE_INFO.GetName", resultsite.bizAreaValue); if (!string.IsNullOrEmpty(sitename)) { dbOrder.SENDTO_SITECODE = sitename;//名称 } } } int i = await AppService.UpdateSite(dbOrder);//dbHelper.mapper.Update("T_ORDER.UpdateSite", dbOrder); if (bdistance) { await AppService.Add(distance); //dbHelper.mapper.Insert("T_NAVIGATE_DISTANCE.Insert", distance); } } } catch (Exception e) { return(false); } return(true); }
public ActionResult Create(AppDTO appParam) { _appService.Add(appParam); return(Json("Sucess")); }