/// <summary> /// 添加订单 /// </summary> public void AddOrder(string oorderInfo, string websiteOwner) { OOrder oorder = ZentCloud.Common.JSONHelper.JsonToModel <OOrder>(oorderInfo); WXMallOrderInfo mallOrder = bllMall.Get <WXMallOrderInfo>(string.Format(" WebsiteOwner='{0}' AND OutOrderId='{1}'", websiteOwner, oorder.orderId)); if (mallOrder == null) { mallOrder = new WXMallOrderInfo(); ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZentCloud.ZCBLLEngine.BLLTransaction(); mallOrder.OrderID = bllMall.GetGUID(ZentCloud.BLLJIMP.TransacType.AddMallOrder); mallOrder.OutOrderId = oorder.orderId; mallOrder.Address = oorder.address; mallOrder.OrderType = 8; mallOrder.WebsiteOwner = websiteOwner; mallOrder.TakeOutType = "Eleme"; mallOrder.OrderMemo = oorder.description; if (!string.IsNullOrEmpty(oorder.createdAt)) { mallOrder.InsertDate = GetDate(oorder.createdAt); } if (!string.IsNullOrEmpty(oorder.activeAt)) { mallOrder.PayTime = GetDate(oorder.activeAt); } if (oorder.deliverFee.HasValue) { mallOrder.Transport_Fee = (decimal)oorder.deliverFee; } if (!string.IsNullOrEmpty(oorder.deliverTime)) { mallOrder.Ex2 = GetDate(oorder.deliverTime).ToString(); } mallOrder.Ex3 = oorder.invoice; mallOrder.Ex4 = oorder.book.ToString(); mallOrder.Ex5 = oorder.onlinePaid.ToString(); List <string> phoneList = oorder.phoneList; if (phoneList.Count > 0) { for (int i = 0; i < phoneList.Count; i++) { if (i == 0) { mallOrder.Phone = phoneList[i]; } mallOrder.Ex6 += phoneList[i] + ","; } mallOrder.Ex6 = mallOrder.Ex6.Remove(mallOrder.Ex6.Length - 1, 1); } mallOrder.Ex7 = oorder.shopId.ToString(); mallOrder.Ex9 = oorder.shopName; mallOrder.OrderUserID = oorder.userId.ToString(); if (oorder.totalPrice.HasValue) { mallOrder.TotalAmount = (decimal)oorder.totalPrice; } if (oorder.originalPrice.HasValue) { mallOrder.Ex10 = oorder.originalPrice.ToString(); } mallOrder.Consignee = oorder.consignee; mallOrder.Ex11 = oorder.deliveryGeo; mallOrder.Ex12 = oorder.deliveryPoiAddress; mallOrder.Ex13 = oorder.invoiced.ToString(); if (oorder.income.HasValue) { mallOrder.Ex14 = oorder.income.ToString(); } if (oorder.serviceRate.HasValue) { mallOrder.Ex15 = oorder.serviceRate.ToString(); } if (oorder.serviceFee.HasValue) { mallOrder.Ex16 = oorder.serviceFee.ToString(); } if (oorder.hongbao.HasValue) { mallOrder.Ex17 = oorder.hongbao.ToString(); } if (oorder.packageFee.HasValue) { mallOrder.Ex18 = oorder.packageFee.ToString(); } if (oorder.activityTotal.HasValue) { mallOrder.Ex19 = oorder.activityTotal.ToString(); } if (oorder.shopPart.HasValue) { mallOrder.Ex20 = oorder.shopPart.ToString(); } if (oorder.elemePart.HasValue) { mallOrder.Ex21 = oorder.elemePart.ToString(); } if (mallOrder.TotalAmount > 0) { mallOrder.PaymentStatus = 1; } mallOrder.Ex22 = oorder.downgraded.ToString(); mallOrder.OutOrderStatus = GetOrderStatus(oorder.status); mallOrder.Status = "待发货"; mallOrder.OutRefundStatus = GetRefStatus(oorder.refundStatus); mallOrder.Ex8 = oorder.openId; if (oorder.vipDeliveryFeeDiscount.HasValue) { mallOrder.Ex10 = oorder.vipDeliveryFeeDiscount.ToString(); } if (!bllWebsite.Add(mallOrder, tran)) { tran.Rollback(); resp.msg = "添加订单出错"; Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } List <OGoodsGroup> goodsGroupList = oorder.groups; foreach (var item in goodsGroupList) { WXMallOrderDetailsInfo oorderDetail = new WXMallOrderDetailsInfo(); oorderDetail.Ex1 = item.name; oorderDetail.Ex2 = item.type; oorderDetail.OrderID = mallOrder.OrderID; List <OGoodsItem> goodItems = item.items; foreach (var good in goodItems) { oorderDetail.PID = good.id.ToString(); oorderDetail.Ex3 = good.id.ToString(); oorderDetail.Ex9 = good.skuId.ToString(); oorderDetail.ProductName = good.name; oorderDetail.Ex4 = good.categoryId.ToString(); if (good.price.HasValue) { oorderDetail.OrderPrice = (decimal)good.price; } oorderDetail.TotalCount = good.quantity; if (good.total.HasValue) { oorderDetail.TotalPrice = (decimal)good.total; } oorderDetail.Ex7 = good.extendCode; oorderDetail.Ex8 = good.barCode; if (good.userPrice.HasValue) { oorderDetail.Ex10 = good.userPrice.ToString(); } if (good.shopPrice.HasValue) { oorderDetail.Ex11 = good.shopPrice.ToString(); } if (good.weight.HasValue) { oorderDetail.Wegith = (decimal)good.weight; } oorderDetail.Unit = "元"; if (good.newSpecs != null) { List <OGroupItemSpec> specList = good.newSpecs; oorderDetail.Ex5 = ZentCloud.Common.JSONHelper.ListToJson <OGroupItemSpec>(specList); } if (good.attributes != null) { List <OGroupItemAttribute> attrList = good.attributes; oorderDetail.Ex6 = ZentCloud.Common.JSONHelper.ListToJson <OGroupItemAttribute>(attrList); } if (!bllWebsite.Add(oorderDetail, tran)) { tran.Rollback(); resp.msg = "添加商品出错"; Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp)); return; } } } tran.Commit(); } }
/// <summary> /// 收货 /// </summary> private void ReceiptConfirm() { try { var orderList = bllMall.GetList <WXMallOrderInfo>(string.Format(" Status='已发货' And PayMentStatus=1 And DATEDIFF(day,DeliveryTime,GETDATE())>=8 And WebSiteOwner='{0}'", websiteOwner)); ToLog(string.Format("共获取到{0}笔订单,开始自动收货...", orderList.Count)); DateTime dtNow = DateTime.Now; int index = 1; int successCount = 0; foreach (var orderInfo in orderList) { ToLog(string.Format("正在处理第{0}笔订单,共{1}笔...", index, orderList.Count)); UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZentCloud.ZCBLLEngine.BLLTransaction(); try { orderInfo.Status = "交易成功"; if (bllMall.Update(orderInfo, " Status='交易成功'", string.Format(" OrderId='{0}'", orderInfo.OrderID), tran) <= 0) { tran.Rollback(); continue; } //增加积分 ScoreConfig scoreConfig = bllScore.Get <ScoreConfig>(string.Format(" WebsiteOwner='{0}'", websiteOwner)); if (scoreConfig.OrderAmount == 0) { scoreConfig.OrderAmount = 1; } int addScore = (int)(orderInfo.PayableAmount / (scoreConfig.OrderAmount / scoreConfig.OrderScore)); if (addScore > 0) { WXMallScoreRecord scoreRecord = new WXMallScoreRecord(); scoreRecord.InsertDate = DateTime.Now; scoreRecord.Remark = "微商城-交易完成获得积分"; scoreRecord.Score = addScore; scoreRecord.UserId = orderInfo.OrderUserID; scoreRecord.WebsiteOwner = websiteOwner; scoreRecord.OrderID = orderInfo.OrderID; scoreRecord.Type = 1; if (!bllMall.Add(scoreRecord, tran)) { tran.Rollback(); continue; } if (bllUser.Update(orderUserInfo, string.Format(" TotalScore+={0},HistoryTotalScore+={0}", addScore), string.Format(" AutoID={0}", orderUserInfo.AutoID), tran) <= 0) { tran.Rollback(); continue; } try { //驿氪同步 yiKeClient.BonusUpdate(orderUserInfo.Ex2, addScore, string.Format("订单交易成功获得{0}积分", addScore)); //驿氪同步 yiKeClient.ChangeStatus(orderInfo.OrderID, orderInfo.Status); } catch (Exception) { } } // //更新订单明细表状态 List <WXMallOrderDetailsInfo> orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID); foreach (var orderDetail in orderDetailList) { orderDetail.IsComplete = 1; if (bllMall.Update(orderDetail, "IsComplete=1", string.Format(" OrderId='{0}'", orderInfo.OrderID)) <= 0) { tran.Rollback(); continue; } } } catch (Exception ex) { tran.Rollback(); continue; } tran.Commit(); successCount++; // } ToLog("操作完成。耗时:" + (DateTime.Now - dtNow).TotalSeconds + "S"); WriteLog(string.Format("自动收货完成.耗时{0}秒,自动收货订单数量{1}", (DateTime.Now - dtNow).TotalSeconds, successCount)); } catch (Exception ex) { ToLog(ex.Message); WriteLog(ex.Message); } }