/// <summary> /// 新增物流信息(独立小程序版发货) /// </summary> /// <param name="orderId">EntGoodsOrderId</param> /// <param name="address">收货地址</param> /// <param name="deliveryNo">物流订单号</param> /// <param name="companyCode">物流公司代码</param> /// <param name="mark">物流备注</param> /// <returns></returns> public bool AddPlatOrderFeed(int orderId, DeliveryUpdatePost AddInfo) { return(AddDeliveryFeed(orderId: orderId, orderType: DeliveryOrderType.独立小程序订单商家发货, contactName: AddInfo.ContactName, contactTel: AddInfo.ContactTel, address: AddInfo.Address, deliveryNo: AddInfo.DeliveryNo, companyCode: AddInfo.CompanyCode, companyTitle: AddInfo.CompanyTitle, isTrack: !AddInfo.SelfDelivery, mark: AddInfo.Remark)); }
/// <summary> /// 发货 /// </summary> /// <param name="order"></param> /// <param name="msg"></param> public void SendGoods(QiyeGoodsOrder order, string attachData, ref string msg) { bool success = false; if (string.IsNullOrWhiteSpace(attachData)) { msg = "发货:物流信息不能为空"; return; } order.State = (int)QiyeOrderState.待收货; order.SendTime = DateTime.Now; //保存物流信息 DeliveryUpdatePost deliveryInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <DeliveryUpdatePost>(attachData); bool isCompleteInfo = (deliveryInfo.SelfDelivery || (!string.IsNullOrWhiteSpace(deliveryInfo.CompanyCode) && !string.IsNullOrWhiteSpace(deliveryInfo.DeliveryNo))) && !string.IsNullOrWhiteSpace(deliveryInfo.ContactName) && !string.IsNullOrWhiteSpace(deliveryInfo.ContactTel) && !string.IsNullOrWhiteSpace(deliveryInfo.Address); //物流配送 if (!deliveryInfo.SelfDelivery) { if (string.IsNullOrWhiteSpace(deliveryInfo.CompanyCode) || string.IsNullOrWhiteSpace(deliveryInfo.DeliveryNo) || string.IsNullOrWhiteSpace(deliveryInfo.ContactName) || string.IsNullOrWhiteSpace(deliveryInfo.ContactTel) || string.IsNullOrWhiteSpace(deliveryInfo.Address)) { msg = "发货:物流信息不完整"; return; } success = DeliveryFeedbackBLL.SingleModel.AddPlatOrderFeed(order.Id, deliveryInfo) && base.Update(order, "state,SendTime"); } else { if (string.IsNullOrWhiteSpace(deliveryInfo.ContactName) || string.IsNullOrWhiteSpace(deliveryInfo.ContactTel) || string.IsNullOrWhiteSpace(deliveryInfo.Address)) { msg = "发货:商家自配信息不完整"; return; } order.AccepterName = deliveryInfo.ContactName; order.AccepterTelePhone = deliveryInfo.ContactTel; order.Address = deliveryInfo.Address; order.Remark = deliveryInfo.Remark; success = base.Update(order, "state,SendTime,AccepterName,AccepterTelePhone,Address,Remark"); } if (success) { //发给用户取消通知 object orderData = TemplateMsg_Miniapp.QiyeGetTemplateMessageData(order, SendTemplateMessageTypeEnum.企业智推版订单发货提醒); TemplateMsg_Miniapp.SendTemplateMessage(order.UserId, SendTemplateMessageTypeEnum.企业智推版订单发货提醒, TmpType.企业智推版, orderData); } else { msg = "发货:操作失败"; } }
/// <summary> /// 发货 /// </summary> /// <param name="orders"></param> /// <returns></returns> public int SendGoods(List <PinGoodsOrder> orders, string attachData = "") { int code = 0; string zqOrderIds = string.Join(",", orders.Where(order => order.sendway == (int)PinEnums.SendWay.到店自取).Select(order => order.id)); string psOrderIds = string.Join(",", orders.Where(order => order.sendway == (int)PinEnums.SendWay.商家配送).Select(order => order.id)); if (string.IsNullOrEmpty(zqOrderIds) && string.IsNullOrEmpty(psOrderIds)) { return(code); } DeliveryUpdatePost DeliveryInfo = null; //如果商家配送,验证物流信息输入是否完整 if (!string.IsNullOrEmpty(psOrderIds) && !string.IsNullOrEmpty(attachData)) { DeliveryInfo = JsonConvert.DeserializeObject <DeliveryUpdatePost>(attachData); bool isCompleteInfo = ((!string.IsNullOrWhiteSpace(DeliveryInfo.CompanyCode) && !string.IsNullOrWhiteSpace(DeliveryInfo.DeliveryNo)) || DeliveryInfo.SelfDelivery) && !string.IsNullOrWhiteSpace(DeliveryInfo.ContactName) && !string.IsNullOrWhiteSpace(DeliveryInfo.ContactTel) && !string.IsNullOrWhiteSpace(DeliveryInfo.Address); if (!isCompleteInfo) { return(code); } } TransactionModel tran = new TransactionModel(); if (!string.IsNullOrEmpty(zqOrderIds)) { tran.Add($"update PinGoodsOrder set state={(int)PinEnums.PinOrderState.待自取} where id in ({zqOrderIds})"); } if (!string.IsNullOrEmpty(psOrderIds)) { tran.Add($"update PinGoodsOrder set state={(int)PinEnums.PinOrderState.待收货},attachData=@attachData where id in ({psOrderIds})", new MySqlParameter[] { new MySqlParameter("@attachData", attachData) }); } code = ExecuteTransactionDataCorect(tran.sqlArray, tran.ParameterArray) ? 1 : 0; if (code == 1 && DeliveryInfo != null) { DeliveryFeedbackBLL.SingleModel.AddOrderFeed(orders.FirstOrDefault().id, DeliveryInfo, DeliveryOrderType.拼享惠订单商家发货); } //发送模板消息通知 foreach (var order in orders) { SendTemplateMsg_Send(order); } return(code); }
/// <summary> /// 砍价发货 /// </summary> /// <param name="bargainUser"></param> /// <param name="bargain"></param> /// <param name="appId"></param> /// <param name="msg"></param> /// <returns></returns> public bool SendGoods(BargainUser bargainUser, Bargain bargain, int aid, out string msg, string attachData = "") { bool result = false; bool addExpressResult = false; if (bargainUser.State == 6) { msg = "已经发货了,不能修改!"; return(result); } //if (!string.IsNullOrEmpty(bargainUser.WayBillNo) || !string.IsNullOrEmpty(bargainUser.SendGoodsName)) //{ // msg = "已经发货了,不能修改!"; // return result; //} //if (string.IsNullOrEmpty(WayBillNo) || string.IsNullOrEmpty(SendGoodsName)) //{ // return Json(new { code = -1, msg = "快递单号或者名称不能为空!" }); //} //if (SendGoodsName.Length > 8) //{ // return Json(new { code = -1, msg = "快递名称过长" }); //} if (!string.IsNullOrEmpty(attachData)) { DeliveryUpdatePost DeliveryInfo = System.Web.Helpers.Json.Decode <DeliveryUpdatePost>(attachData); if (DeliveryInfo != null) { addExpressResult = DeliveryFeedbackBLL.SingleModel.AddOrderFeed(bargainUser.Id, DeliveryInfo, DeliveryOrderType.专业版砍价发货); if (!addExpressResult) { msg = "物流信息添加失败,发货失败!"; return(result); } } } bargainUser.State = 6; //bargainUser.WayBillNo = WayBillNo; //bargainUser.SendGoodsName = SendGoodsName; bargainUser.SendGoodsTime = DateTime.Now; if (Update(bargainUser, "SendGoodsTime,State")) { var storeName = ""; if (bargain != null) { switch (bargain.BargainType) { case 0: var store = StoreBLL.SingleModel.GetModel(bargain.StoreId); if (store != null) { var paramslist = ConfParamBLL.SingleModel.GetListByRId(aid) ?? new List <ConfParam>(); storeName = paramslist.Where(w => w.Param == "nparam").FirstOrDefault()?.Value; } break; case 1: storeName = OpenAuthorizerConfigBLL.SingleModel.GetModel($" rid = {aid} ")?.nick_name; break; default: storeName = ""; break; } } #region 模板消息 try { XcxAppAccountRelation app = XcxAppAccountRelationBLL.SingleModel.GetModel(aid); if (app == null) { throw new Exception($"发送砍价发货模板消息参数错误 app_null :aid = {aid}"); } XcxTemplate xcxTemp = XcxTemplateBLL.SingleModel.GetModel(app.TId); if (xcxTemp == null) { throw new Exception($"发送砍价发货模板消息参数错误 xcxTemp_null :xcxTempId = {app.TId}"); } Account account = AccountBLL.SingleModel.GetModel(app.AccountId); if (account == null) { throw new Exception($"发送砍价发货模板消息参数错误 account_null :accountId = {app.AccountId}"); } //电商为旧做法,兼容电商 switch (xcxTemp.Type) { case (int)TmpType.小程序电商模板: #region 购买者模板消息 var postData = new BargainUserBLL().GetTemplateMessageData_SendGoods(bargainUser.Id, storeName); TemplateMsg_Miniapp.SendTemplateMessage(bargainUser.UserId, SendTemplateMessageTypeEnum.电商订单配送通知, (int)TmpType.小程序电商模板, postData); #endregion 购买者模板消息 break; default: object orderData = TemplateMsg_Miniapp.BargainGetTemplateMessageData(bargainUser, SendTemplateMessageTypeEnum.价订单发货提醒); TemplateMsg_Miniapp.SendTemplateMessage(bargainUser.UserId, SendTemplateMessageTypeEnum.价订单发货提醒, xcxTemp.Type, orderData); break; } } catch (Exception ex) { log4net.LogHelper.WriteError(GetType(), ex); } #endregion 模板消息 result = true; msg = "发货成功!"; return(result); } else { result = false; msg = "发货异常!"; return(result); } }