frmAddMicroTemplate.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Dynamic;
  6. namespace LYFZ.Software.MainBusiness.SMSManagement
  7. {
  8. public class frmAddMicroTemplate:LYFZ.Software.UI.SMSManagement.frmAddMicroTemplate
  9. {
  10. public frmAddMicroTemplate()
  11. {
  12. this.Load += frmAddSMSTemplate_Load;
  13. this.cboxEvent.SelectedIndexChanged += cboxEvent_SelectedIndexChanged;
  14. this.number.Value = 1;
  15. this.btnSave.Click += btnSave_Click;
  16. this.Shown += frmAddSMSTemplate_Shown;
  17. }
  18. /// <summary>
  19. /// 父窗体
  20. /// </summary>
  21. public frmSMSTemplateSet ThisParentForm = null;
  22. void btnAddTemplate_Click(object sender, EventArgs e)
  23. {
  24. this.Hide();
  25. frmAddMicroTemplateItem frmAddSTItem = new frmAddMicroTemplateItem();
  26. if (frmAddSTItem.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  27. {
  28. try
  29. {
  30. if (ThisParentForm != null)
  31. {
  32. ThisParentForm.tabControlEx1.SelectedIndex = 3;
  33. ThisParentForm.BindDgvMicroTemplateIDList();
  34. }
  35. }
  36. catch { }
  37. }
  38. this.Close();
  39. }
  40. /// <summary>
  41. /// 当前消息模板
  42. /// </summary>
  43. EnumPublic.MicroTemplate _TemplateNo = EnumPublic.MicroTemplate.新订单通知;
  44. /// <summary>
  45. /// 当前消息模板
  46. /// </summary>
  47. public EnumPublic.MicroTemplate TemplateNo
  48. {
  49. get { return _TemplateNo; }
  50. set { _TemplateNo = value; }
  51. }
  52. /// <summary>
  53. /// 当前短信类别
  54. /// </summary>
  55. EnumPublic.SmsCategory sCategory = EnumPublic.SmsCategory.公共短信;
  56. /// <summary>
  57. /// 当前短信类别
  58. /// </summary>
  59. public EnumPublic.SmsCategory SCategory
  60. {
  61. get { return sCategory; }
  62. set { sCategory = value; }
  63. }
  64. void frmAddSMSTemplate_Shown(object sender, EventArgs e)
  65. {
  66. }
  67. LYFZ.DAL.DAL_SMSTemplates smsDal = new DAL.DAL_SMSTemplates();
  68. LYFZ.Model.Model_SMSTemplates smsModel = new Model.Model_SMSTemplates();
  69. /// <summary>
  70. /// 当前模板对象
  71. /// </summary>
  72. public LYFZ.Model.Model_SMSTemplates SmsModel
  73. {
  74. get { return smsModel; }
  75. set { smsModel = value; }
  76. }
  77. LYFZ.Model.Model_SMSTemplates _TemplateIDModel = new Model.Model_SMSTemplates();
  78. /// <summary>
  79. /// 当前模板ID对象
  80. /// </summary>
  81. public LYFZ.Model.Model_SMSTemplates TemplateIDModel
  82. {
  83. get { return _TemplateIDModel; }
  84. set { _TemplateIDModel = value; }
  85. }
  86. void btnSave_Click(object sender, EventArgs e)
  87. {
  88. if (this.cboxEvent.Text.Length <= 0)
  89. {
  90. MessageBoxCustom.Show("请选择模板消息发送事件");
  91. return;
  92. }
  93. if (this.txtdescription.Text.Length <= 0)
  94. {
  95. MessageBoxCustom.Show("请输入消息描述");
  96. return;
  97. }
  98. if (this.txtRemark.Text.Length <= 0)
  99. {
  100. MessageBoxCustom.Show("请输入消息备注");
  101. return;
  102. }
  103. if (this.TemplateIDModel==null||this.TemplateIDModel.ID <= 0)
  104. {
  105. MessageBoxCustom.Show("当前选择事件还未设置消息模板,请在“微信模板库管理”设置好微信消息模板后重试");
  106. return;
  107. }
  108. int sumSmsCount = 0;
  109. try
  110. {
  111. sumSmsCount = smsDal.GetRecordCount("ST_Type=" + (int)EnumPublic.SmsTemplateType.微信消息模板 + " and ST_DividedShop='" + LYFZ.BLL.BLL_ErpCompanyInfo.CurrentCompanyInfoID + "'");
  112. }
  113. catch { }
  114. smsModel.ST_Type = (int)EnumPublic.SmsTemplateType.微信消息模板;
  115. smsModel.ST_Title = this.TemplateNo.ToString();
  116. smsModel.ST_Category=(int)this.SCategory;
  117. smsModel.ST_SendChannel = 1;
  118. smsModel.ST_ReceiveObjects = this.txtURL.Text.Trim();
  119. smsModel.ST_SendEvent = (int)((EnumPublic.MicroSendEvent)Enum.Parse(typeof(EnumPublic.MicroSendEvent), this.cboxEvent.Text));
  120. smsModel.ST_SMSContent = this.txtdescription.Text.Trim();
  121. smsModel.ST_Remark = this.txtRemark.Text.Trim();
  122. smsModel.ST_IsEnabled = this.checkBoxEx1.Checked;
  123. smsModel.ST_CreateDatetime = SDateTime.Now;
  124. smsModel.ST_UpdateDatetime = SDateTime.Now;
  125. smsModel.ST_DividedShop =LYFZ.BLL.BLL_ErpCompanyInfo.CurrentCompanyInfoID;
  126. this.smsModel.ST_SendEventValue = Convert.ToInt32(this.number.Value).ToString();
  127. bool ret = false;
  128. if (smsModel.ID > 0)
  129. {
  130. ret = smsDal.Update(smsModel);
  131. }
  132. else
  133. {
  134. if (smsDal.GetRecordCount("ST_Type=" + smsModel.ST_Type.ToString() + " and [ST_Category]=" + smsModel.ST_Category.ToString() + " and [ST_SendEvent]=" + smsModel.ST_SendEvent.ToString() + " and [ST_Title]='" + smsModel.ST_Title + "' and ST_DividedShop='" + LYFZ.BLL.BLL_ErpCompanyInfo.CurrentCompanyInfoID + "'") > 0)
  135. {
  136. MessageBoxCustom.Show("请不要重复添加模板");
  137. return;
  138. }
  139. if (sumSmsCount > 1000)
  140. {
  141. MessageBoxCustom.Show("对不起,微信模板设置多只能添加1000条记录,请删除无用微信模板设置记录后重试。");
  142. return;
  143. }
  144. ret = smsDal.Add(smsModel);
  145. }
  146. if (ret)
  147. {
  148. MessageBoxCustom.Show("保存成功\r\n温馨提醒:请不要在模板消息中输入任何营销类文字,严格按照微信公众号使用规范发送模板消息,以免被微信封号!!!");
  149. this.DialogResult = System.Windows.Forms.DialogResult.OK;
  150. }
  151. else
  152. {
  153. MessageBoxCustom.Show("保存失败,请检查网络环境或关闭后重试。");
  154. }
  155. }
  156. LYFZ.EnumPublic.MicroSendEvent currentEvent = EnumPublic.MicroSendEvent.客人订单后X分钟;
  157. /// <summary>
  158. /// 当前事件
  159. /// </summary>
  160. public LYFZ.EnumPublic.MicroSendEvent CurrentEvent
  161. {
  162. get { return currentEvent; }
  163. set { currentEvent = value; }
  164. }
  165. LYFZ.ComponentLibrary.NumericUpDownEx number = new ComponentLibrary.NumericUpDownEx();
  166. LYFZ.ComponentLibrary.NumericUpDownEx number2 = new ComponentLibrary.NumericUpDownEx();
  167. LYFZ.ComponentLibrary.LabelEx labTxt = new ComponentLibrary.LabelEx();
  168. void cboxEvent_SelectedIndexChanged(object sender, EventArgs e)
  169. {
  170. try
  171. {
  172. this.CurrentEvent = (EnumPublic.MicroSendEvent)Enum.Parse(typeof(EnumPublic.MicroSendEvent), this.cboxEvent.Text);
  173. this.TemplateNo = (EnumPublic.MicroTemplate)Convert.ToInt32(LYFZ.WinAPI.CustomPublicMethod.ConvertEnumToDescription(this.CurrentEvent));
  174. this.lbTitle.Text = this.TemplateNo.ToString();
  175. this.lbContentExamples.Text = LYFZ.BLL.BLL_SMSTemplates.GetMicroTemplateExample(this.TemplateNo);
  176. this.TemplateIDModel = (LYFZ.Model.Model_SMSTemplates)smsDal.GetModelObject("ST_Category=" + (int)this.TemplateNo + " and ST_DividedShop='" + LYFZ.BLL.BLL_ErpCompanyInfo.CurrentCompanyInfoID + "'");
  177. this.lbNo.Text = this.TemplateIDModel.ST_Remark.Trim();
  178. if (this.lbNo.Text.Trim().Length <= 1)
  179. {
  180. this.lbNo.Text = "没有找到相关模板";
  181. this.lbNo.ForeColor = System.Drawing.Color.Red;
  182. }
  183. else {
  184. this.lbNo.ForeColor = this.lbTitle.ForeColor;
  185. }
  186. }
  187. catch { }
  188. // LYFZ.ComponentLibrary.TextBoxEx textBox = new ComponentLibrary.TextBoxEx();
  189. this.plEventValue.Controls.Clear();
  190. number.Maximum=999999;
  191. number.Minimum=0;
  192. number.TextAlign= System.Windows.Forms.HorizontalAlignment.Center;
  193. number.Width = 90;
  194. number.Font = this.cboxEvent.Font;
  195. number.Location = new System.Drawing.Point(10, 4);
  196. labTxt.Text = "分钟";
  197. labTxt.Width = 60;
  198. labTxt.Font = this.cboxEvent.Font;
  199. labTxt.Location = new System.Drawing.Point(number.Location.X + number.Width+5,6);
  200. this.plEventValue.Controls.Add(number);
  201. this.plEventValue.Controls.Add(labTxt);
  202. this.lbTips.Text = GetControlPropertyAttribute(this.CurrentEvent,SCategory);
  203. }
  204. /// <summary>
  205. /// 设置事件值
  206. /// </summary>
  207. /// <param name="value"></param>
  208. void SetSendEventValue(string value)
  209. {
  210. int i = 0;
  211. if (value.Trim().Length > 0)
  212. {
  213. if (int.TryParse(value, out i))
  214. {
  215. this.number.Value = i;
  216. }
  217. else if (value.Contains(":"))
  218. {
  219. string[] tempIs = value.Split(':');
  220. if (tempIs.Length > 0) {
  221. if (int.TryParse(tempIs[0], out i))
  222. {
  223. this.number.Value = i;
  224. }
  225. }
  226. if (tempIs.Length > 1)
  227. {
  228. if (int.TryParse(tempIs[1], out i))
  229. {
  230. this.number2.Value = i;
  231. }
  232. }
  233. }
  234. }
  235. }
  236. /// <summary>
  237. /// 获取事件的说明属性信息
  238. /// </summary>
  239. /// <param name="sEvent"></param>
  240. /// <returns></returns>
  241. public static string GetControlPropertyAttribute(EnumPublic.MicroSendEvent sEvent,EnumPublic.SmsCategory sType)
  242. {
  243. string XXBString = "";
  244. if (sType == EnumPublic.SmsCategory.儿童短信)
  245. {
  246. XXBString = "、XXB 为宝宝(儿童)名字 ";
  247. }
  248. return "说明:XXX 为客户姓名 "
  249. + XXBString
  250. + "\r\nXXSPDM 为店名、XXSPTEL 为本店电话、XXSPDZ 为本店地址、XXSPDZM 为本店店长"//XXSPWZ 为本店网址、
  251. +"\r\n[注意替换代码一定要大写,客人称呼为“先生/女士”] 以上内容建义不要超过100个字符";
  252. }
  253. void frmAddSMSTemplate_Load(object sender, EventArgs e)
  254. {
  255. BindSendEvent();
  256. BindTemplateInfo();
  257. }
  258. void BindTemplateInfo()
  259. {
  260. if (smsModel.ID > 0)
  261. {
  262. SetSendEventValue(SmsModel.ST_SendEventValue);
  263. this.checkBoxEx1.Checked = this.SmsModel.ST_IsEnabled;
  264. this.TemplateNo = (EnumPublic.MicroTemplate)Enum.Parse(typeof(EnumPublic.MicroTemplate), SmsModel.ST_Title);
  265. this.txtdescription.Text = SmsModel.ST_SMSContent;
  266. this.txtRemark.Text = SmsModel.ST_Remark;
  267. this.txtURL.Text = SmsModel.ST_ReceiveObjects;
  268. this.cboxEvent.SelectedItem = ((EnumPublic.MicroSendEvent)this.SmsModel.ST_SendEvent).ToString();
  269. this.SCategory = (EnumPublic.SmsCategory)SmsModel.ST_Category;
  270. this.Text = "编辑" + this.SCategory.ToString().Replace("短信", "微信模板消息推送") + "事件设置";
  271. }
  272. }
  273. /// <summary>
  274. /// 邦定短信事件
  275. /// </summary>
  276. void BindSendEvent()
  277. {
  278. this.cboxEvent.Items.Clear();
  279. this.cboxEvent.DataSource = GetEventList();
  280. cboxEvent_SelectedIndexChanged(null,null);
  281. }
  282. List<string> GetEventList()
  283. {
  284. List<string> elist = new List<string>();
  285. //elist.AddRange(Enum.GetNames(typeof(LYFZ.EnumPublic.SmsSendEvent)));
  286. Array arrys = Enum.GetValues(typeof(LYFZ.EnumPublic.MicroSendEvent));
  287. foreach (int value in arrys)
  288. {
  289. switch (this.SCategory)
  290. {
  291. case EnumPublic.SmsCategory.公共短信:
  292. if (value >= 999980)
  293. {
  294. elist.Add(((LYFZ.EnumPublic.MicroSendEvent)value).ToString());
  295. }
  296. break;
  297. case EnumPublic.SmsCategory.婚纱短信:
  298. case EnumPublic.SmsCategory.儿童短信:
  299. case EnumPublic.SmsCategory.写真短信:
  300. case EnumPublic.SmsCategory.医院跟踪短信:
  301. if (value < 999980)
  302. {
  303. elist.Add(((LYFZ.EnumPublic.MicroSendEvent)value).ToString());
  304. }
  305. break;
  306. case EnumPublic.SmsCategory.婚庆订单短信:
  307. case EnumPublic.SmsCategory.服务订单短信:
  308. if (value == 999901 || value == 999906 || value == 999907 || value == 999950 || value == 999951)
  309. {
  310. if (value != 999950)
  311. {
  312. if (value == 999951)
  313. {
  314. elist.Insert(1, LYFZ.EnumPublic.MicroSendEvent.服务预约后X分钟.ToString());
  315. elist.Insert(2, LYFZ.EnumPublic.MicroSendEvent.服务完成后X分钟.ToString());
  316. }
  317. else
  318. {
  319. elist.Add(((LYFZ.EnumPublic.MicroSendEvent)value).ToString());
  320. }
  321. }
  322. }
  323. break;
  324. }
  325. }
  326. switch (this.SCategory)
  327. {
  328. case EnumPublic.SmsCategory.婚纱短信:
  329. case EnumPublic.SmsCategory.儿童短信:
  330. case EnumPublic.SmsCategory.写真短信:
  331. elist.Remove(EnumPublic.MicroSendEvent.服务预约后X分钟.ToString());
  332. elist.Remove(EnumPublic.MicroSendEvent.服务完成后X分钟.ToString());
  333. elist.Insert(3, EnumPublic.MicroSendEvent.服务预约后X分钟.ToString());
  334. elist.Insert(4, EnumPublic.MicroSendEvent.服务完成后X分钟.ToString());
  335. break;
  336. }
  337. return elist;
  338. }
  339. }
  340. }