package kd.cosmic.jkjt.tmc.bei.common.constant; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import kd.cosmic.jkjt.tmc.bei.common.CommonUtils; import java.math.BigDecimal; public class MsgWarnTemplateConstant { /** 飞书消息模板 */ 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\"}}"; 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\"}}"; // 收款通知模板 /** 大额转账消息格式化 * @param payerAccount 付方账户 * @param payerAccountId 付方账号 * @param payerBank 付方开户行 * @param amount 支出金额 * @param receiver 收方 * @param description 摘要 * @param time 时间 * @return 格式化后的字符串 */ public static String formatLargeTransMessage(String payerAccount, String payerAccountId, String payerBank, String amount, String receiver, String description, String time) { String MSGTEMPLATE_LARGETRANS = new StringBuffer() .append("收款方:").append("%s").append("\r\n") .append("支出金额:").append("%s").append("\r\n") .append("付款方账户:").append("%s").append("\r\n") .append("付款方账号:").append("%s").append("\r\n") .append("付款方开户行:").append("%s").append("\r\n") .append("摘要:").append("%s").append("\r\n") .append("时间:").append("%s").append("\r\n") .toString(); return String.format(MSGTEMPLATE_LARGETRANS,receiver,amount,payerAccount, payerAccountId, payerBank, description, time); } public static String formatDailyMessage(String payerAccount, String payerAccountId, String payerBank, String receiver, String paymentCount, String totalAmount) { String MSGTEMPLATE_PAYMENT_NOTIFICATION = new StringBuffer() .append("收款方:").append("%s").append("\r\n") .append("合计金额:").append("%s").append("\r\n") .append("付款方账户:").append("%s").append("\r\n") .append("付款方账号:").append("%s").append("\r\n") .append("付款方开户行:").append("%s").append("\r\n") .append("付款笔数:").append("%s").append("\r\n") .toString(); return String.format(MSGTEMPLATE_PAYMENT_NOTIFICATION, receiver, totalAmount, payerAccount, payerAccountId, payerBank, paymentCount); } public static String formatOtherAccountMessage(String payerAccount, String payerAccountId, String payerBank, String amount, String receiver, String description, String time) { String MSGTEMPLATE_LARGETRANS = new StringBuffer() .append("收款方:").append("%s").append("\r\n") .append("金额:").append("%s").append("\r\n") .append("付款方账户:").append("%s").append("\r\n") .append("付款方账号:").append("%s").append("\r\n") .append("付款方开户行:").append("%s").append("\r\n") .append("摘要:").append("%s").append("\r\n") .append("时间:").append("%s").append("\r\n") .toString(); return String.format(MSGTEMPLATE_LARGETRANS,receiver,amount,payerAccount, payerAccountId, payerBank, description, time); } /** 付款通知消息格式化 * @param amount 支出金额 * @param payerAccount 付方账户 * @param payerAccountId 付方账号 * @param payerBank 付方开户行 * @param receiver 收方 * @param description 摘要 * @param time 时间 * @return 格式化后的字符串 */ public static String formatAccChangeDebitMessage(String amount, String payerAccount, String payerAccountId, String payerBank, String receiver, String description, String time) { String MSGTEMPLATE_ACCCHANGE_DEBIT = new StringBuffer() .append("收款方:").append("%s").append("\r\n") .append("转出金额:").append("%s").append("\r\n") .append("付款方账户:").append("%s").append("\r\n") .append("付款方账号:").append("%s").append("\r\n") .append("付款方开户行:").append("%s").append("\r\n") .append("摘要:").append("%s").append("\r\n") .append("时间:").append("%s").append("\r\n") .toString(); return String.format(MSGTEMPLATE_ACCCHANGE_DEBIT, receiver,amount, payerAccount, payerAccountId, payerBank, description, time); } public static String formatNonDirectMessageDebit(String time,String payerAccount, String payerAccountId, String payerBank, String paymentCount, String totalAmount) { String wyAmountStr = CommonUtils.convertToTenThousandYuan(new BigDecimal(totalAmount)); String MSGTEMPLATE_PAYMENT_NOTIFICATION = new StringBuffer() .append("时间:").append("%s").append("\r\n") .append("付款方账户:").append("%s").append("\r\n") .append("付款方账号:").append("%s").append("\r\n") .append("付款方开户行:").append("%s").append("\r\n") .append("付款笔数:").append("%s").append("\r\n") .append("合计金额:").append("%s元,").append(wyAmountStr).append("\r\n") .toString(); return String.format(MSGTEMPLATE_PAYMENT_NOTIFICATION, time, payerAccount, payerAccountId, payerBank, paymentCount, totalAmount); } public static String formatNonDirectMessageCredit(String time,String payerAccount, String payerAccountId, String payerBank, String paymentCount, String totalAmount) { String wyAmountStr = CommonUtils.convertToTenThousandYuan(new BigDecimal(totalAmount)); String MSGTEMPLATE_PAYMENT_NOTIFICATION = new StringBuffer() .append("时间:").append("%s").append("\r\n") .append("付款方账户:").append("%s").append("\r\n") .append("付款方账号:").append("%s").append("\r\n") .append("付款方开户行:").append("%s").append("\r\n") .append("收款笔数:").append("%s").append("\r\n") .append("合计金额:").append("%s元,").append(wyAmountStr).append("\r\n") .toString(); return String.format(MSGTEMPLATE_PAYMENT_NOTIFICATION, time, payerAccount, payerAccountId, payerBank, paymentCount, totalAmount); } /** 收款通知消息格式化 * @param amount 到账金额 * @param payerAccount 付方账户 * @param payerAccountId 付方账号 * @param payerBank 付方开户行 * @param receiver 收方 * @param description 摘要 * @param time 到账时间 * @return 格式化后的字符串 */ public static String formatAccChangeCreditMessage(String amount, String payerAccount, String payerAccountId, String payerBank, String receiver, String description, String time) { String MSGTEMPLATE_ACCCHANGE_CREDIT = new StringBuffer() .append("收款方:").append("%s").append("\r\n") .append("到账金额:").append("%s").append("\r\n") .append("付款方账户:").append("%s").append("\r\n") .append("付款方账号:").append("%s").append("\r\n") .append("付款方开户行:").append("%s").append("\r\n") .append("摘要:").append("%s").append("\r\n") .append("到账时间:").append("%s").append("\r\n") .toString(); return String.format(MSGTEMPLATE_ACCCHANGE_CREDIT, receiver,amount, payerAccount, payerAccountId, payerBank, description, time); } public static String getFeishuTemplate(String title , String content) { return getFeishuTemplate(title,content,TEMPLATESTR); } public static String getFeishuTemplate(String title , String content , String template) { JSONObject templateObj = JSON.parseObject(template); templateObj.getJSONObject("header").getJSONObject("subtitle").put("content", title); JSONArray elements = templateObj.getJSONObject("body").getJSONArray("elements"); for(int i = 0; i < elements.size(); i++){ String contentTemplate = elements.getJSONObject(i).getJSONObject("text").getString("content"); if("付款信息".equals(contentTemplate)){ elements.getJSONObject(i).getJSONObject("text").put("content", content); break; } } return templateObj.toJSONString(); } }