MsgWarnTemplateConstant.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. package kd.cosmic.jkjt.tmc.bei.common.constant;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import kd.cosmic.jkjt.tmc.bei.common.CommonUtils;
  6. import java.math.BigDecimal;
  7. public class MsgWarnTemplateConstant {
  8. /** 飞书消息模板 */
  9. public static final String TEMPLATESTR = "{\"schema\":\"2.0\",\"config\":{\"update_multi\":true,\"style\":{\"text_size\":{\"normal_v2\":{\"default\":\"normal\",\"pc\":\"normal\",\"mobile\":\"heading\"}}}},\"body\":{\"direction\":\"vertical\",\"padding\":\"12px 12px 12px 12px\",\"elements\":[{\"tag\":\"div\",\"text\":{\"tag\":\"plain_text\",\"content\":\"付款信息\",\"text_size\":\"normal_v2\",\"text_align\":\"left\",\"text_color\":\"default\"},\"margin\":\"0px 0px 0px 0px\"}]},\"header\":{\"title\":{\"tag\":\"plain_text\",\"content\":\"\"},\"subtitle\":{\"tag\":\"plain_text\",\"content\":\"消息发送\"},\"template\":\"blue\",\"padding\":\"12px 12px 12px 12px\"}}";
  10. public static final String TEMPLATESTR_OTHERACCOUNT = "{\"schema\":\"2.0\",\"config\":{\"update_multi\":true,\"style\":{\"text_size\":{\"normal_v2\":{\"default\":\"normal\",\"pc\":\"normal\",\"mobile\":\"heading\"}}}},\"body\":{\"direction\":\"vertical\",\"padding\":\"12px 12px 12px 12px\",\"elements\":[{\"tag\":\"div\",\"text\":{\"tag\":\"plain_text\",\"content\":\"按公司规定,此账户严禁对私转账\",\"text_size\":\"normal_v2\",\"text_align\":\"left\",\"text_color\":\"red\"},\"margin\":\"0px 0px 0px 0px\"},{\"tag\":\"div\",\"text\":{\"tag\":\"plain_text\",\"content\":\"付款信息\",\"text_size\":\"normal_v2\",\"text_align\":\"left\",\"text_color\":\"default\"},\"margin\":\"0px 0px 0px 0px\"}]},\"header\":{\"title\":{\"tag\":\"plain_text\",\"content\":\"\"},\"subtitle\":{\"tag\":\"plain_text\",\"content\":\"消息发送\"},\"template\":\"blue\",\"padding\":\"12px 12px 12px 12px\"}}";
  11. // 收款通知模板
  12. /** 大额转账消息格式化
  13. * @param payerAccount 付方账户
  14. * @param payerAccountId 付方账号
  15. * @param payerBank 付方开户行
  16. * @param amount 支出金额
  17. * @param receiver 收方
  18. * @param description 摘要
  19. * @param time 时间
  20. * @return 格式化后的字符串
  21. */
  22. public static String formatLargeTransMessage(String payerAccount, String payerAccountId, String payerBank, String amount,
  23. String receiver, String description, String time) {
  24. String MSGTEMPLATE_LARGETRANS = new StringBuffer()
  25. .append("收款方:").append("%s").append("\r\n")
  26. .append("支出金额:").append("%s").append("\r\n")
  27. .append("付款方账户:").append("%s").append("\r\n")
  28. .append("付款方账号:").append("%s").append("\r\n")
  29. .append("付款方开户行:").append("%s").append("\r\n")
  30. .append("摘要:").append("%s").append("\r\n")
  31. .append("时间:").append("%s").append("\r\n")
  32. .toString();
  33. return String.format(MSGTEMPLATE_LARGETRANS,receiver,amount,payerAccount, payerAccountId, payerBank, description, time);
  34. }
  35. public static String formatDailyMessage(String time ,String payerAccount, String payerAccountId, String payerBank,
  36. String receiver, String paymentCount, String totalAmount) {
  37. String MSGTEMPLATE_PAYMENT_NOTIFICATION = new StringBuffer()
  38. .append("时间:").append("%s").append("\r\n")
  39. .append("收款方:").append("%s").append("\r\n")
  40. .append("合计金额:").append("%s元").append("\r\n")
  41. .append("付款方账户:").append("%s").append("\r\n")
  42. .append("付款方账号:").append("%s").append("\r\n")
  43. .append("付款方开户行:").append("%s").append("\r\n")
  44. .append("付款笔数:").append("%s").append("\r\n")
  45. .toString();
  46. return String.format(MSGTEMPLATE_PAYMENT_NOTIFICATION,
  47. time,
  48. receiver,
  49. totalAmount,
  50. payerAccount,
  51. payerAccountId,
  52. payerBank,
  53. paymentCount);
  54. }
  55. public static String formatDailyNightMessage(String receiver , String amount, String payerAccount, String payerAccountId, String payerBank,
  56. String description,String time ) {
  57. String MSGTEMPLATE_PAYMENT_NOTIFICATION = new StringBuffer()
  58. .append("收款方:").append("%s").append("\r\n")
  59. .append("金额:").append("%s元").append("\r\n")
  60. .append("付款方账户:").append("%s").append("\r\n")
  61. .append("付款方账号:").append("%s").append("\r\n")
  62. .append("付款方开户行:").append("%s").append("\r\n")
  63. .append("摘要:").append("%s").append("\r\n")
  64. .append("时间:").append("%s").append("\r\n")
  65. .toString();
  66. return String.format(MSGTEMPLATE_PAYMENT_NOTIFICATION,
  67. receiver,
  68. amount,
  69. payerAccount,
  70. payerAccountId,
  71. payerBank,
  72. description,
  73. time);
  74. }
  75. public static String formatOtherAccountMessage(String payerAccount, String payerAccountId, String payerBank, String amount,
  76. String receiver, String description, String time) {
  77. String MSGTEMPLATE_LARGETRANS = new StringBuffer()
  78. .append("收款方:").append("%s").append("\r\n")
  79. .append("金额:").append("%s元").append("\r\n")
  80. .append("付款方账户:").append("%s").append("\r\n")
  81. .append("付款方账号:").append("%s").append("\r\n")
  82. .append("付款方开户行:").append("%s").append("\r\n")
  83. .append("摘要:").append("%s").append("\r\n")
  84. .append("时间:").append("%s").append("\r\n")
  85. .toString();
  86. return String.format(MSGTEMPLATE_LARGETRANS,receiver,amount,payerAccount, payerAccountId, payerBank, description, time);
  87. }
  88. /** 付款通知消息格式化
  89. * @param amount 支出金额
  90. * @param payerAccount 付方账户
  91. * @param payerAccountId 付方账号
  92. * @param payerBank 付方开户行
  93. * @param receiver 收方
  94. * @param description 摘要
  95. * @param time 时间
  96. * @return 格式化后的字符串
  97. */
  98. public static String formatAccChangeDebitMessage(String amount, String payerAccount, String payerAccountId, String payerBank,
  99. String receiver, String description, String time) {
  100. String MSGTEMPLATE_ACCCHANGE_DEBIT = new StringBuffer()
  101. .append("收款方:").append("%s").append("\r\n")
  102. .append("转出金额:").append("%s元").append("\r\n")
  103. .append("付款方账户:").append("%s").append("\r\n")
  104. .append("付款方账号:").append("%s").append("\r\n")
  105. .append("付款方开户行:").append("%s").append("\r\n")
  106. .append("摘要:").append("%s").append("\r\n")
  107. .append("时间:").append("%s").append("\r\n")
  108. .append("流水同步时间会晚于动账提醒").append("\r\n")
  109. .toString();
  110. return String.format(MSGTEMPLATE_ACCCHANGE_DEBIT, receiver,amount, payerAccount, payerAccountId, payerBank, description, time);
  111. }
  112. public static String formatNonDirectMessageDebit(String time,String payerAccount, String payerAccountId, String payerBank,
  113. String paymentCount, String totalAmount) {
  114. String wyAmountStr = CommonUtils.convertToTenThousandYuan(new BigDecimal(totalAmount));
  115. String MSGTEMPLATE_PAYMENT_NOTIFICATION = new StringBuffer()
  116. .append("时间:").append("%s").append("\r\n")
  117. .append("付款方账户:").append("%s").append("\r\n")
  118. .append("付款方账号:").append("%s").append("\r\n")
  119. .append("付款方开户行:").append("%s").append("\r\n")
  120. .append("付款笔数:").append("%s").append("\r\n")
  121. .append("合计金额:").append("%s元,").append(wyAmountStr).append("\r\n")
  122. .toString();
  123. return String.format(MSGTEMPLATE_PAYMENT_NOTIFICATION,
  124. time,
  125. payerAccount,
  126. payerAccountId,
  127. payerBank,
  128. paymentCount,
  129. totalAmount);
  130. }
  131. public static String formatNonDirectMessageCredit(String time,String payerAccount, String payerAccountId, String payerBank,
  132. String paymentCount, String totalAmount) {
  133. String wyAmountStr = CommonUtils.convertToTenThousandYuan(new BigDecimal(totalAmount));
  134. String MSGTEMPLATE_PAYMENT_NOTIFICATION = new StringBuffer()
  135. .append("时间:").append("%s").append("\r\n")
  136. .append("付款方账户:").append("%s").append("\r\n")
  137. .append("付款方账号:").append("%s").append("\r\n")
  138. .append("付款方开户行:").append("%s").append("\r\n")
  139. .append("收款笔数:").append("%s").append("\r\n")
  140. .append("合计金额:").append("%s元,").append(wyAmountStr).append("\r\n")
  141. .toString();
  142. return String.format(MSGTEMPLATE_PAYMENT_NOTIFICATION,
  143. time,
  144. payerAccount,
  145. payerAccountId,
  146. payerBank,
  147. paymentCount,
  148. totalAmount);
  149. }
  150. /** 收款通知消息格式化
  151. * @param amount 到账金额
  152. * @param payerAccount 付款方账户
  153. * @param receiveAccount 收款方账号
  154. * @param receiveBank 收款方开户行
  155. * @param description 摘要
  156. * @param time 到账时间
  157. * @return 格式化后的字符串
  158. */
  159. public static String formatAccChangeCreditMessage(String amount, String payerAccount, String receiveAccount,
  160. String receiveBank, String description, String time) {
  161. String MSGTEMPLATE_ACCCHANGE_CREDIT = new StringBuffer()
  162. .append("到账金额:").append("%s元").append("\r\n")
  163. .append("付款方账户:").append("%s").append("\r\n")
  164. .append("收款方账号:").append("%s").append("\r\n")
  165. .append("收款方开户行:").append("%s").append("\r\n")
  166. .append("摘要:").append("%s").append("\r\n")
  167. .append("到账时间:").append("%s").append("\r\n")
  168. .append("流水同步时间会晚于动账提醒").append("\r\n")
  169. .toString();
  170. return String.format(MSGTEMPLATE_ACCCHANGE_CREDIT, amount, payerAccount, receiveAccount, receiveBank, description, time);
  171. }
  172. public static String getFeishuTemplate(String title , String content) {
  173. return getFeishuTemplate(title,content,TEMPLATESTR);
  174. }
  175. public static String getFeishuTemplate(String title , String content , String template) {
  176. JSONObject templateObj = JSON.parseObject(template);
  177. templateObj.getJSONObject("header").getJSONObject("subtitle").put("content", title);
  178. JSONArray elements = templateObj.getJSONObject("body").getJSONArray("elements");
  179. for(int i = 0; i < elements.size(); i++){
  180. String contentTemplate = elements.getJSONObject(i).getJSONObject("text").getString("content");
  181. if("付款信息".equals(contentTemplate)){
  182. elements.getJSONObject(i).getJSONObject("text").put("content", content);
  183. break;
  184. }
  185. }
  186. return templateObj.toJSONString();
  187. }
  188. }