using OASystem.Domain.Dtos.Groups; using OASystem.Domain.Entities.Groups; using OASystem.Domain.ViewModels.CRM; using System.ComponentModel; namespace OASystem.API.OAMethodLib.QiYeWeChatAPI.AppNotice { public enum QiyeWeChatEnum { /// /// 测试用 /// [Description("groupstatuschat01")] TestChat = 0, /// /// 团组通知-公司客户群(国交部经理、主管、财务部),发送条件(1.确认出团) /// [Description("CompanyCRMChat01")] CompanyCRMChat = 1, /// /// 团组通知-市场客户群(市场部经理、主管;国交部经理、主管)发送条件(1.确认出团) 暂时不用 /// [Description("MarketCRMChat01")] MarketCRMChat, /// /// 团组通知-财务群(财务部全员),发送条件(1.费用审核-通过;2,团组出访时间出发-7 天,结束-3 天,通知财务三人签合同、收尾款) /// [Description("CaiWuChat01")] CaiWuChat, /// /// 团组通知-财务群(财务部全员),发送条件(团组出访时间出发-7 天,结束-3 天,第二天,通知财务三人签合同、收尾款) /// [Description("CaiWuChat02")] CaiWuChat02, /// /// 团组通知-国交管理群(国交部经理、主管),发送条件(1.费用审核-提交) /// [Description("GuoJiaoLeader01")] GuoJiaoLeaderChat, /// /// 团组通知-国交群(3天内结束行程) /// [Description("GuoJiaoChat01")] GuoJiaoChat01, } public class MarkdownLib { /// /// 通知文本-确认出团 /// /// /// public static string GroupStatus_Create(GroupStatus_CreateModel info) { string result = string.Format(@" `确认出团` >团组名称:{0} >团组类型:{1} >出访日期:{2} >出访人数/天数:{3}人/{4}天 >客户单位:{5} >客户名称:{6} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", info.TeamName, info.TeamDid_Text, info.VisitDateRange, info.VisitPNumber, info.VisitDays, info.ClientUnit, info.ClientName); return result; } /// /// 通知文本-费用申请 /// /// public static string GroupStatus_ApplyFee(GroupStatus_ApplyFeeModel info) { string result = string.Format(@" `团组费用录入` >团组:{0} - {7} >费用模块:{1} >费用名称:{2} >付款金额:{3} >申请人:{4} >申请时间:{5} - 当前团组费用待审核数量: {6} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", info.TeamName, info.PriceModule, info.PriceName, info.Price, info.CreateUser, info.CreateDt, info.QueueCount, info.TitleStr); return result; } /// /// 费用审核通知-团组费用-群聊 /// /// /// public static string AuditResult_ApplyFee_Chat(AuditResult_ApplyFee_GroupModel info) { string result = string.Format(@" `{0}` {2} >审核时间:{8} >团组:{3} >费用模块:{4} >费用名称:{5} >付款金额:{6} >申请人:{7} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", info.Title, info.ResultColor, info.Result, info.TeamName, info.PriceModule, info.PriceName, info.Price, info.CreateUser, info.GMAuditDate); return result; } /// /// 费用审核通知-团组费用-用户 /// /// /// public static string AuditResult_ApplyFee_User(AuditResult_ApplyFee_GroupModel info) { string result = string.Format(@" `{0}` {2} >审核时间:{7} >团组:{3} >费用模块:{4} >费用名称:{5} >付款金额:{6} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", info.Title, info.ResultColor, info.Result, info.TeamName, info.PriceModule, info.PriceName, info.Price, info.GMAuditDate); return result; } /// /// 费用支付通知-团组费用-用户 /// /// /// public static string PayResult_Group_ToUser(PayResult_Group_ToUserModel info) { string result = string.Format(@" `团组费用支付` >团组:{0} >费用模块:{1} >费用名称:{2} >付款金额:{3} >该笔费用已支付 >支付时间:{4} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", info.TeamName, info.PriceModule, info.PriceName, info.Price, info.PayDt); return result; } /// /// 团组出发前一周提醒财务检查合同、尾款 /// /// public static string GroupRemindersToGuojiao(List list_3day) { string teamNames2 = ">暂无"; if (list_3day.Count > 0) { teamNames2 = ""; foreach (var item in list_3day) { string endDt = item.VisitEndDate.ToString("yyyy-MM-dd"); teamNames2 += ">(" + endDt + ")" + item.TeamName + " \n\n"; } //list_3day.ForEach(s => teamNames2 += ">" + s.TeamName + "\n\n"); } string result = string.Format(@" `团组行程结束提醒` > - 下列团组将于3天内结束: {0} 请各位注意检查业务费用是否录入完整 [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", teamNames2); return result; } /// /// 团组出发前一周提醒HR /// /// public static string GroupRemindersToHR(List list_7day) { string teamNames2 = ">暂无"; if (list_7day.Count > 0) { teamNames2 = ""; foreach (var item in list_7day) { string startDt = item.VisitStartDate.ToString("yyyy-MM-dd"); teamNames2 += ">(" + startDt + ")" + item.TeamName + " \n\n"; } } string result = string.Format(@" `团组行程提醒` > - 下列团组将于7天内出发: {0} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", teamNames2); return result; } /// /// 团组出发前一周提醒财务检查合同、尾款 /// /// public static string GroupRemindersToCaiwuChat(List list_7day, List list_3day, List list_minus1day) { string teamNames1 = ">暂无"; string teamNames2 = ">暂无"; string teamNames3 = ">暂无"; if (list_7day.Count > 0) { teamNames1 = ""; foreach (var item in list_7day) { string startDt = item.VisitStartDate.ToString("yyyy-MM-dd"); teamNames1 += ">(" + startDt + ")" + item.TeamName + " \n\n"; } //list_7day.ForEach(s => teamNames1 += ">" + s.TeamName + "\n\n"); } if (list_3day.Count > 0) { teamNames2 = ""; foreach (var item in list_3day) { string endDt = item.VisitEndDate.ToString("yyyy-MM-dd"); teamNames2 += ">(" + endDt + ")" + item.TeamName + " \n\n"; } //list_3day.ForEach(s => teamNames2 += ">" + s.TeamName + "\n\n"); } if (list_minus1day.Count > 0) { teamNames3 = ""; foreach (var item in list_minus1day) { string endDt = item.VisitEndDate.ToString("yyyy-MM-dd"); teamNames3 += ">(" + endDt + ")" + item.TeamName + " \n\n"; } } string result = string.Format(@" `团组状态提醒` > - 下列团组将于7天内出发: {0} > - 下列团组将于3天内结束: {1} > - 下列团组已于昨日结束行程: {2} 请注意检查合同、尾款状态 [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", teamNames1, teamNames2, teamNames3); return result; } /// /// 日付申请提交时推送财务群 /// /// public static string DailyPayReminders_Create_ToCaiwuChat(DailyPayReminders_Create_ToCaiwuChatModel info) { string result = string.Format(@" `日付申请录入` - {6} >费用名称:{0} >公司:{5} >费用标识:{4} >付款金额:{1} >申请人:{2} >申请时间:{3} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", info.PriceName, info.Price, info.CreateUser, info.CreateDt, info.FeeSign, info.Company, info.TitleStr); return result; } /// /// 日付申请审核结果推送给申请人 /// /// public static string DailyPayReminder_Audit_ToUser(DailyPayReminder_Audit_ToUserModel info) { string result = string.Format(@" `日付申请` {1} >费用名称:{2} >付款金额:{3} >审核时间:{4} ", info.ResultColor, info.Result, info.PriceName, info.Price, info.AuditDate); return result; } /// /// 日付申请审核结果推送给财务群(总经理审核通过) /// /// public static string DailyPayReminder_Audit_ToCaiwuChat(DailyPayReminder_Audit_ToCaiwuChatModel info) { string result = string.Format(@" `日付申请` - 新增一笔通过总经理审核的日付申请 >费用名称:{0} >付款金额:{1} >申请人:{2} >审核时间:{3} ", info.PriceName, info.Price, info.CreateUser, info.AuditDate); return result; } /// /// 日付申请已付款推送给申请人 /// /// public static string DailyPayReminder_Pay_ToUser(DailyPayReminder_Pay_ToUserModel info) { string result = string.Format(@" `日付申请` 你有一笔日付申请费用已付款 >费用名称:{0} >付款金额:{1} >支付时间:{2} ", info.PriceName, info.Price, info.PayDt); return result; } /// /// 成本通知发送给用户 /// /// public static string GroupShare_ToUser(GroupShare_ToUserModel info) { string result = string.Format(@" `成本通知` 团组成本费用已更新 >团组名称:{0} >更新时间:{1} >请注意在费用录入页面中核对成本信息 >若无对应团组权限请联系国交部经理或信息部人员 ", info.TeamName, info.RefreshDate); return result; } /// /// 出入境费用明细更改通知发送给用户 /// /// public static string GroupShare_ToGM(GroupShare_ToGMModel info) { string result = string.Format(@" `出入境费用明细操作通知` >团组:{0} >操作人员:{1} >操作时间:{2} [请点击进入明细进行查看或确认]({3}) ", info.TeamName, info.CreateUser, info.RefreshDate, info.Url); return result; } /// /// 出入境费用 确认 通知发送给 财务相关人员 /// /// public static string GroupShare_ToFinance(GroupShare_ToUserModel info) { string result = string.Format(@" `出入境费用确认操作通知` >团组:{0} >操作时间:{1} [出入境费用已确认,请进行相关流程操作。] ", info.TeamName, info.RefreshDate); return result; } /// /// CRM统计通知(周) /// /// /// public static string CRMStatistics_ToUser(List list, string beginDt, string endDt) { string users = "暂无"; if (list.Count > 0) { users = ""; foreach (var item in list) { users += ">【" + item.UserName + "】 - 新增 " + item.InsertNum + " 条,删除 " + item.DeleteNum + " 条\n\n"; } } string result = string.Format(@" `市场客户资料周统计({0} - {1})` {2} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", beginDt, endDt, users); return result; } /// /// CRM统计通知(月) /// /// /// public static string CRMStatistics_Month_ToUser(List list, string beginDt, string endDt, int totalInsert, int totalDelete) { string users = "暂无"; if (list.Count > 0) { users = ""; foreach (var item in list) { users += ">【" + item.UserName + "】 - 新增 " + item.InsertNum + " 条,删除 " + item.DeleteNum + " 条\n\n"; } } string result = string.Format(@" `市场客户资料月统计({0} - {1})` > 总共 - 新增 {3} 条,删除 {4} 条 {2} [详细信息请前往OA系统查看](http://oa.pan-american-intl.com:4399/) ", beginDt, endDt, users, totalInsert, totalDelete); return result; } public static string BlackCodeInfo_ToVisaUser(BlackCodeInfo_ToVisaUser info) { string result = string.Format(@" `国家出入时间通知` 详细时间 >团组名称:{0} >更新时间:{1} ", info.TeamName, info.RefreshDate); foreach (var item in info.info) { var black = string.Empty; for (int i = 0; i < item.Country.Length; i++) { black += " "; } black += " "; result += $@" >{item.Country}-抵达:{item.StartTime.ToString("yyyy-MM-dd HH:mm")} >{black}离开:{item.EndTime.ToString("yyyy-MM-dd HH:mm")}"; } return result; } public static string GroupDateTime_ToVisaUser(GroupDateTime_ToVisaUser info) { string result = string.Format(@" `团组时间通知` 详细时间 >团组名称:{0} >更新时间:{1} >开始时间:{2} >结束时间:{3} ", info.TeamName, info.RefreshDate, info.StartTime, info.EndTime); return result; } } #region 实体类 public class GroupShare_ToGMModel : GroupShare_ToUserModel { public string CreateUser { get; set; } public string Url { get; set; } } public class GroupShare_ToUserModel { public string TeamName { get; set; } public string RefreshDate { get; set; } } public class DailyPayReminder_Pay_ToUserModel { public string PriceName { get; set; } public string Price { get; set; } public string PayDt { get; set; } } public class DailyPayReminder_Audit_ToCaiwuChatModel { public string PriceName { get; set; } public string Price { get; set; } public string CreateUser { get; set; } public string AuditDate { get; set; } } public class DailyPayReminder_Audit_ToUserModel { public string ResultColor { get; set; } = "info"; //warning public string Result { get; set; } = "你有一笔日付申请已通过审核"; // 你有一笔日付申请未通过财务/总经理审核 public string PriceName { get; set; } public string Price { get; set; } /// /// 财务或总经理审核时间 /// public string AuditDate { get; set; } } public class DailyPayReminders_Create_ToCaiwuChatModel { public string PriceName { get; set; } public string Price { get; set; } public string CreateUser { get; set; } public string CreateDt { get; set; } public string FeeSign { get; set; } public string Company { get; set; } /// /// [更新]一项费用待审核 /// public string TitleStr { get; set; } = "[新增]一项费用待审核"; } public class PayResult_Group_ToUserModel { public string TeamName { get; set; } public string PriceModule { get; set; } public string PriceName { get; set; } public string Price { get; set; } public string PayDt { get; set; } } public class AuditResult_ApplyFee_GroupModel { public string Title { get; set; } = "团组费用审核结果"; public string ResultColor { get; set; } = "info"; //info 或 warning public string Result { get; set; } = "总经理审核通过"; //总经理审核通过 或 总经理审核未通过 public string TeamName { get; set; } public string PriceModule { get; set; } public string PriceName { get; set; } public string Price { get; set; } public string CreateUser { get; set; } public string GMAuditDate { get; set; } } public class GroupStatus_ApplyFeeModel { public string TeamName { get; set; } public string PriceModule { get; set; } public string PriceName { get; set; } public string Price { get; set; } public string CreateUser { get; set; } public string CreateDt { get; set; } public int QueueCount { get; set; } /// /// [更新]一项费用待审核 /// public string TitleStr { get; set; } = "[新增]一项费用待审核"; } public class GroupStatus_CreateModel { public string TeamName { get; set; } public string TeamDid_Text { get; set; } public string VisitDateRange { get; set; } public int VisitPNumber { get; set; } public int VisitDays { get; set; } public string ClientUnit { get; set; } public string ClientName { get; set; } } public class BlackCodeInfo_ToVisaUser { public string TeamName { get; set; } public List info { get; set; } public string RefreshDate { get; set; } } public class GroupDateTime_ToVisaUser { public string TeamName { get; set; } public string RefreshDate { get; set; } public string StartTime { get; set; } public string EndTime { get; set; } } #endregion }