using Api.Framework.Enums; using Api.Framework.SDK; using AutoAnswer.Controls; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using UI.Framework.Entitys; using static Api.Framework.Config.SystemConfig; using static AutoAnswer.Enums; namespace AutoAnswer { /// /// 配置插件配置文件: Name = 文件名,IsSaveDB = 是否保存到数据库, IsEncryption = 是否对数据加密 /// [Config(Name = "插件-问答插件-配置")] public class Config { #region 基础属性 /// /// 图灵开关 /// [Browsable(false)] public bool TuLing_OnOff { get; set; } /// /// 图灵apikey /// [Browsable(false)] public string TuLing_apikey { get; set; } /// /// 图灵响应的前缀 /// [Browsable(false)] public string TuLing_prefix { get; set; } /// /// 是否开启自动回复 /// [Browsable(false)] public bool Is_Auto_Answer { get; set; } /// /// 是否置顶用户 /// [Browsable(false)] public bool Is_Top_User { get; set; } /// /// 都否开启自动清理 /// [Browsable(false)] public bool Is_AutoClear_Start { get; set; } /// /// 删除多少天之前的数据 /// [Browsable(false)] public int Logs_Keep_Days { get; set; } /// /// 是否记录包含默认回复的关键词 /// [Browsable(false)] public bool Is_Log { get; set; } /// /// 默认回复集合 /// [Browsable(false)] public List DefaultContents { get; set; } #endregion #region 呼叫客服属性 /// /// 呼叫客服开关 /// [ Category("1)、呼叫客服"), DisplayName("01.呼叫客服开关"), DefaultValue(SwitchType.开启) ] public SwitchType CellCustomerServiceSwitch { get; set; } /// /// 触发关键词 /// [Category("1)、呼叫客服"), DisplayName("02.触发关键词"), DefaultValue(@"^(客服|在吗|人呢)$"), Description(@"支持正则表达式,通过指令可以触发下面的提示语!")] public string TriggerAntistop { get; set; } /// /// 是否置顶 /// [ Category("1)、呼叫客服"), DisplayName("03.呼叫后自动置顶"), DefaultValue(SwitchType.开启), Description(@"只支持微信,呼叫后自动置顶") ] public SwitchType IsStickSwitch { get; set; } /// /// 工作日 /// [ Category("1)、呼叫客服"), DisplayName("04.工作日"), DefaultValue(@"星期一,星期二,星期三,星期四,星期五,星期六"), Description(@""), Editor(typeof(CategoryControl), typeof(System.Drawing.Design.UITypeEditor)) ] public string WeekDay { get; set; } private string[] _workdayTimes; /// /// 发送任务时间段 /// [ Category("1)、呼叫客服"), DisplayName("05.上班时间"), Description(@"每一行为一个上班时间区间段 格式:时间1-时间2 注:时间1 必须大于 时间2") ] public string[] WorkDayTimes { get { return _workdayTimes; } set { var sendTaskTimes = value as string[]; if (sendTaskTimes != null && sendTaskTimes.Length != 0) { for (int i = 0; i < sendTaskTimes.Length; i++) { var times = sendTaskTimes[i].Trim().Split('-'); if (times.Length == 2) { var begin = DateTime.Parse(times[0]); var end = DateTime.Parse(times[1]); if (begin >= end) throw new Exception($"开始时间必须小于结束时间:[{sendTaskTimes[i]}]"); } } } _workdayTimes = value; } } /// /// 上班时间触发内容 /// [ Category("1)、呼叫客服"), DisplayName("06.上班时回复"), DefaultValue(@"正在为您呼叫客服,请稍等...."), Description(@""), Editor(typeof(PropertyGridRichText), typeof(System.Drawing.Design.UITypeEditor)) ] public string OnDuty_ReplyMessage { get; set; } /// /// 下班时间触发内容 /// [ Category("1)、呼叫客服"), DisplayName("07.下班时回复"), DefaultValue(@"客服正在休息,您可以继续留言,客服上班后会联系您!"), Description(@""), Editor(typeof(PropertyGridRichText), typeof(System.Drawing.Design.UITypeEditor)) ] public string OffDuty_ReplyMessage { get; set; } /// /// 休息日触发内容 /// [ Category("1)、呼叫客服"), DisplayName("08.节假日回复"), DefaultValue(@"亲,今天客服不上班!\r\n您有疑问可以给我们留言哦,上班后会给您处理!"), Description(@"用户触发关键词,将自动发送本文内容"), Editor(typeof(PropertyGridRichText), typeof(System.Drawing.Design.UITypeEditor)) ] public string UnWeekDay_ReplyMessage { get; set; } ///// ///// 休息日触发内容 ///// //[ // Category("1)、呼叫客服"), DisplayName("09.钉钉群机器人"), DefaultValue(@""), // Description(@"钉钉群机器人,不填写将会调用主程序链接!"), // Editor(typeof(PropertyGridRichText), typeof(System.Drawing.Design.UITypeEditor)) //] //public string DingdingRobot { get; set; } ///// ///// 休息日触发内容 ///// //[ // Category("1)、呼叫客服"), DisplayName("10.钉钉群Token"), DefaultValue(@""), // Description(@"钉钉群机器人,不填写将会调用主程序链接!"), // Editor(typeof(PropertyGridRichText), typeof(System.Drawing.Design.UITypeEditor)) //] //public string DingdingRobotToken { get; set; } /// /// 钉钉群通知 /// [Category("1)、呼叫客服"), DisplayName("09.钉钉/微信群机器人"), DefaultValue("请选择(钉钉/微信群机器人API名称)"), Description("请选择已存在的机器人名称,如果还没有添加,在【系统管理->群通知机器人】中添加机器人!"), TypeConverter(typeof(notice_robotname_item))] public string notice_robotname { get; set; } /// /// 回复模式 /// [ Category("1)、呼叫客服"), DisplayName("10.钉钉传递消息模式"), DefaultValue(ReplyModel.传递最近5条消息), Description(@"1、传递最近5条消息:钉钉将收到用户最近触发的5条消息 2、传递当前消息:钉钉将收到用户当前发送的消息") ] public ReplyModel MatchModel { get; set; } /// /// /// [ Category("1)、呼叫客服"), DisplayName("11.触发客服关键词后继续推送默认消息"), DefaultValue(SwitchType.关闭), Description(@"触发客服关键词后继续推送默认消息") ] public SwitchType ForcedResponse { get; set; } #endregion #region 未识别的消息转发 #endregion /// /// 机器人调用默认的构造函数 /// public Config() { #region 基础属性 TuLing_OnOff = false; TuLing_prefix = "#|~"; TuLing_apikey = ""; DefaultContents = new List();//初始化集合对象 Logs_Keep_Days = 15;//初始化天数 Is_AutoClear_Start = true;//默认打开自动清理 Is_Auto_Answer = false;//默认关闭自动回复 Is_Top_User = false;//默认关闭自定置顶 Is_Log = false; #endregion #region 呼叫客服属性 this.CellCustomerServiceSwitch = SwitchType.关闭; this.IsStickSwitch = SwitchType.开启; this.TriggerAntistop = @"^(客服|在吗|人呢)$"; this.WeekDay = @"星期一,星期二,星期三,星期四,星期五,星期六"; this._workdayTimes = new string[] { "09:00-12:00", "13:00-22:00" }; this.OnDuty_ReplyMessage = @"正在为您呼叫客服,请稍等...."; this.OffDuty_ReplyMessage = @"客服正在休息,您可以继续留言,客服上班后会联系您!"; this.UnWeekDay_ReplyMessage = @"亲,今天客服不上班!\r\n您有疑问可以给我们留言哦,上班后会给您处理!"; this.notice_robotname = "请选择(钉钉/微信群机器人API名称)"; this.MatchModel = ReplyModel.传递最近5条消息; this.ForcedResponse = SwitchType.关闭; #endregion } } }