Ejemplo n.º 1
0
 /// <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));
 }
Ejemplo n.º 2
0
        /// <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 = "发货:操作失败";
            }
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
            }
        }