/// <summary> /// 发送消息给订餐项目组 /// </summary> public void SendMessageToWorkGroup(P_ORDER order) { P_WeChatOrder orderInfo = JsonConvert.DeserializeObject <P_WeChatOrder>(order.Detail); List <string> listMessage = new List <string>(); List <string> listTouser = new List <string>(); if (order.State == OrderState.WAITAPPROVE) { // 有MMCoE需要审批 var msg = $"您有需要审批的订单,{order.PO},供应商: {order.Channel.ToUpper()},请<a href='{WebConfigHandler.H5Domain}/P/Order/OrderApproval/{order.ID}'>点击这里</a>。"; listMessage.Add(msg); listTouser = groupMemberService.GetGroupMembersByType(GroupTypeEnum.MMCoE).Select(a => a.UserId).ToList(); } else if (order.State == OrderState.FOODLOSE) { // 未送达 var evaluate = evaluateService.LoadByOrderID(order.ID); if (evaluate != null) { var msg = $"订单未送达:{evaluate.OnTimeDiscrpion}。{order.PO},供应商: {order.Channel.ToUpper()},{order.DeliverTime.ToString("yyyy-MM-dd HH:mm")},医院:{orderInfo.preApproval.HospitalName},收餐人:{order.Consignee},收餐人电话:{order.Phone}"; listMessage.Add(msg); listTouser = groupMemberService.GetGroupMembersByType(GroupTypeEnum.Complaints).Select(a => a.UserId).ToList(); } } else if (order.State == OrderState.EVALUATED) { // 已评价 var evaluate = evaluateService.LoadByOrderID(order.ID); if (evaluate != null) { if (evaluate.OnTime == 5) { var msg = $"迟到超过60分钟:{evaluate.OnTimeDiscrpion}。{order.PO},供应商: {order.Channel.ToUpper()},{order.DeliverTime.ToString("yyyy-MM-dd HH:mm")},医院:{orderInfo.preApproval.HospitalName},餐厅:{order.RestaurantName},收餐人:{order.Consignee},收餐人电话:{order.Phone}"; listMessage.Add(msg); } if (evaluate.IsSafe == 1) { var msg = $"食品安全存在问题:{evaluate.SafeDiscrpion}。{order.PO},供应商: {order.Channel.ToUpper()},{order.DeliverTime.ToString("yyyy-MM-dd HH:mm")},医院:{orderInfo.preApproval.HospitalName},餐厅:{order.RestaurantName},收餐人:{order.Consignee},收餐人电话:{order.Phone}"; listMessage.Add(msg); } listTouser = groupMemberService.GetGroupMembersByType(GroupTypeEnum.Complaints).Select(a => a.UserId).ToList(); } } else if (order.State == OrderState.SCHEDULEDFAIL) { var msg = $"预定失败:{order.CN},原因:{order.XmsOrderReason}。供应商:{order.Channel.ToUpper()},{order.DeliverTime.ToString("yyyy-MM-dd HH:mm")},医院:{order.HospitalName},餐厅:{order.RestaurantName},收餐人:{order.Consignee}, 收餐人电话:{order.Phone}"; //预定失败 listTouser = groupMemberService.GetGroupMembersByType(GroupTypeEnum.Complaints).Select(a => a.UserId).ToList(); } var touser = string.Join("|", listTouser); SendQyMsg(listMessage, touser); }
/// <summary> /// 发出订单金额变动消息 /// </summary> /// <param name="order"></param> public void SendMessageForChangeFee(P_ORDER order) { var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},调整内容及原因:{order.ChangeTotalPriceReason}"; var listMessage = new List <string>() { msg }; SendQyMsg(listMessage, order.UserId); }
public int RestoreOrder(Guid ID, Guid ChangeID, P_ORDER p_ORDER) { try { return(orderService.RestoreOrder(ID, p_ORDER)); } catch (Exception ex) { LogHelper.Error("Order.RestoreOrder", ex); } return(0); }
/// <summary> /// 把内存订单数据转换成数据库格式 /// </summary> /// <param name="_orderInfo"></param> /// <returns></returns> public static P_ORDER ConvterIt(P_WeChatOrder _orderInfo, P_ORDER oldOrder = null) { var order = new P_ORDER() { Market = _orderInfo.preApproval.Market, HospitalId = _orderInfo.preApproval.HospitalCode, Province = _orderInfo.preApproval.Province, City = _orderInfo.preApproval.City, HospitalName = _orderInfo.preApproval.HospitalName, Address = _orderInfo.preApproval.HospitalAddress, CN = _orderInfo.preApproval.HTCode, RestaurantId = _orderInfo.foods.resId, RestaurantName = _orderInfo.foods.resName, RestaurantLogo = _orderInfo.foods.resLogo, TotalPrice = _orderInfo.foods.allPrice, DeliveryGeo = $"{_orderInfo.hospital.Latitude},{_orderInfo.hospital.Longitude}", Detail = JsonConvert.SerializeObject(_orderInfo), FoodCount = _orderInfo.foods.foods.Sum(a => Convert.ToInt32(a.count)), AttendCount = _orderInfo.details.attendCount, DeliveryAddress = _orderInfo.details.deliveryAddress, Consignee = _orderInfo.details.consignee, Phone = _orderInfo.details.phone, DeliverTime = _orderInfo.details.deliverTime.Value, Remark = _orderInfo.details.remark, MMCoEImage = _orderInfo.preApproval.MMCoEImage, State = OrderState.SUBMITTED, ReceiveCode = string.Empty, XmsTotalPrice = -1, IsOuterMeeting = _orderInfo.hospital.External, RestaurantTel = _orderInfo.foods.resTel, RestaurantAddress = _orderInfo.foods.resAddress, MMCoEApproveState = string.IsNullOrEmpty(_orderInfo.preApproval.MMCoEImage) ? MMCoEApproveState.NO : MMCoEApproveState.WAITAPPROVE, MeetingCode = _orderInfo.preApproval.HTCode, MeetingName = _orderInfo.preApproval.MeetingName, TA = _orderInfo.preApproval.TA, IsNonHT = 0, }; if (oldOrder == null) { return(order); } else { oldOrder.RestaurantId = order.RestaurantId; oldOrder.RestaurantName = order.RestaurantName; oldOrder.RestaurantLogo = order.RestaurantLogo; oldOrder.TotalPrice = order.TotalPrice; oldOrder.FoodCount = order.FoodCount; oldOrder.AttendCount = order.AttendCount; oldOrder.DeliveryAddress = order.DeliveryAddress; oldOrder.Consignee = order.Consignee; oldOrder.Phone = order.Phone; oldOrder.DeliverTime = order.DeliverTime; oldOrder.Remark = order.Remark; oldOrder.MMCoEImage = order.MMCoEImage; oldOrder.RestaurantTel = order.RestaurantTel; oldOrder.RestaurantAddress = order.RestaurantAddress; return(oldOrder); } }
/// <summary> /// 发送订单状态变动通知给订餐人 /// </summary> /// <param name="userid"></param> /// <param name="order"></param> public void SendMessageToUser(string userid, P_ORDER order) { var listMessage = new List <string>(); //var msg = string.Empty; if (order.State == OrderState.SUBMITTED) { // 订单提交成功,等待小秘书确认 if (order.IsChange == OrderIsChange.YES) { var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的修改请求已经提交成功,等待餐厅确认。"; listMessage.Add(msg); } else if (order.MMCoEApproveState == MMCoEApproveState.APPROVESUCCESS) { var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单中央订餐项目组已审批,正在等待餐厅确认。"; listMessage.Add(msg); } else { var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单已提交成功,正在等待餐厅确认。"; listMessage.Add(msg); } } else if (order.State == OrderState.WAITAPPROVE) { // 订单提交成功,等待MMCoE审批 var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单已提交成功,正在等待中央订餐项目组确认。"; listMessage.Add(msg); } else if (order.State == OrderState.SCHEDULEDSUCCESS) { // 小秘书反馈预定成功 if (order.IsChange == OrderIsChange.SUCCESS) { var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单已修改成功,餐厅将依据修改后的订单进行配送。"; listMessage.Add(msg); } else if (order.IsChange == OrderIsChange.FAIL) { var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单修改失败,原因: {order.XmsOrderReason}。稍后呼叫中心人员会与您联系。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单修改失败,原因: {order.XmsOrderReason}。稍后呼叫中心人员会与您联系。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } else { if (order.IsOuterMeeting == 0) { // 院内会 var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单已预订成功,收货码为{order.ReceiveCode}。请在收餐时主动出示收货码,祝您用餐愉快。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单已预订成功,收货码为{order.ReceiveCode}。请在收餐时主动出示收货码,祝您用餐愉快。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } else { // 院外会 var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单已预订成功,收货码为{order.ReceiveCode};餐厅: {order.RestaurantName};餐厅地址: {order.RestaurantAddress};餐厅电话: {order.RestaurantTel},请主动出示收货码并在会议结束后收取订餐小票及发票,祝您用餐愉快。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单已预订成功,收货码为{order.ReceiveCode};餐厅: {order.RestaurantName};餐厅地址: {order.RestaurantAddress};餐厅电话: {order.RestaurantTel},请主动出示收货码并在会议结束后收取订餐小票及发票,祝您用餐愉快。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } } } else if (order.State == OrderState.SCHEDULEDFAIL) { // 小秘书反馈预定失败 var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单预订失败,原因: {order.XmsOrderReason}。稍候呼叫中心人员会与您联系。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单预订失败,原因: {order.XmsOrderReason}。稍候呼叫中心人员会与您联系。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } else if (order.State == OrderState.REJECT) { // MMCoE审批拒绝 var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单被中央订餐项目组驳回,原因:{order.MMCoEReason}。如需重新上传截图,请<a href='{WebConfigHandler.H5Domain}/P/Food/MMCoEShell/{order.ID.ToString()}'>点击这里</a>,如需修改订单,请<a href='{WebConfigHandler.H5Domain}/P/Order/Details/{order.ID.ToString()}?fromuri=2&supplier={order.Channel}'>点击这里</a>。如有疑问,请联系[email protected]"; listMessage.Add(msg); } else if (order.State == OrderState.RETURNING) { // 退订中 var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的退订请求已经提交成功,等待餐厅确认。"; listMessage.Add(msg); } else if (order.State == OrderState.RETURNSUCCES) { // 退订成功 var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的退订已成功。"; listMessage.Add(msg); } else if (order.State == OrderState.RETURNFAIL) { if (order.IsRetuen == OrderIsRetuen.FAIL) { // 退订失败 if ((order.DeliverTime - order.ReturnOrderDate).TotalHours > 1) { // 距离配送时间大于一小时 var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单退订失败,原因: {order.XmsOrderReason}。如临时决定会议照常进行,请点击<a href='{WebConfigHandler.H5Domain}/P/Order/OriginalOrder/{order.ID.ToString()}?supplier=xms'>按原订单配送</a>,稍后呼叫中心人员会与您联系。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的订单退订失败,原因: {order.XmsOrderReason}。如临时决定会议照常进行,请点击<a href='{WebConfigHandler.H5Domain}/P/Order/OriginalOrder/{order.ID.ToString()}?supplier=bds'>按原订单配送</a>,稍后呼叫中心人员会与您联系。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } else { // 距离配送时间小于一小时 var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商:{order.Channel.ToUpper()},您的订单退订失败,原因:{order.XmsOrderReason}。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商:{order.Channel.ToUpper()},您的订单退订失败,原因:{order.XmsOrderReason}。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } } else if (order.IsRetuen == OrderIsRetuen.POSTSUCCESS) { // 按原订单配送请求提交成功 var msg = $"{order.PO},供应商:{order.Channel.ToUpper()},您的餐品将按原订单配送,请耐心等候。"; listMessage.Add(msg); } else if (order.IsRetuen == OrderIsRetuen.POSTFAIL) { // 按原订单配送失败 var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},对不起,订单无法按原订单配送,原因: {order.XmsOrderReason}。稍后呼叫中心人员将会与您联系。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},对不起,订单无法按原订单配送,原因: {order.XmsOrderReason}。稍后呼叫中心人员将会与您联系。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } } else if (order.State == OrderState.PERSIONRECEIVE) { // 人类收餐 var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您已收餐完成, 请至“评价投诉”页面对本订单进行评价。"; listMessage.Add(msg); } else if (order.State == OrderState.FOODLOSE) { // 未送达 var msg = ""; switch (order.Channel.ToLower()) { case "xms": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},我们已收到您的反馈,稍后呼叫中心人员会与您联系。如有疑问,请联系: 400-820-5577"; break; case "bds": msg = $"{order.PO},供应商: {order.Channel.ToUpper()},我们已收到您的反馈,稍后呼叫中心人员会与您联系。如有疑问,请联系: 400-6868-912"; break; } listMessage.Add(msg); } else if (order.State == OrderState.EVALUATED) { // 订单已经评价 var msg = $"{order.PO},供应商: {order.Channel.ToUpper()},您的评价已提交,感谢您的反馈。"; listMessage.Add(msg); } if (order.State == OrderState.SUBMITTED || order.State == OrderState.WAITAPPROVE || order.State == OrderState.EVALUATED) { var count = orderService.NotEvaluateCount(userid, order.IsNonHT); if (count > 0) { var msg = $"您有未评价订单,请<a href='{WebConfigHandler.H5Domain}/P/Order/Index4'>点击这里</a>,选择相应订单进行评价。"; listMessage.Add(msg); } } SendQyMsg(listMessage, userid); SendMessageToWorkGroup(order); }
/// <summary> /// 发出订单状态消息 /// </summary> /// <param name="userid"></param> /// <param name="order"></param> public void SendMessageToUser(string userid, P_ORDER order) { var channel = WxMessageClientChannelFactory.GetChannel(); channel.SendWxMessageByOrder(order.ID); }
public void SendMessageToUser(string userId, P_ORDER order) { wxMessageHandler.SendMessageToUser(userId, order); }
public int RestoreOrder(Guid ID, P_ORDER p_ORDER) { return(orderDao.RestoreOrder(p_ORDER)); }