跳转到内容

消息

背景

通常,我们在业务开发过程中存在符合预期情况下的正常消息提示 & 不符合预期情况下的异常消息通知需求,还需要针对消息做国际化。为此,Trantor 提供了一套消息机制,让用户可简单地声明消息并使用,同时将消息作为一种资源,可在国际化进行配置。

在线编辑声明

进入 制品中心->配置->业务域->消息,新增消息:

image-20211125151248059用户可以在先配置消息,并通过部署到Maven仓库,并依赖到自己的工程里。

Trantor会按照配置生成一个 Java Interface,如下所示:

public interface TradeMsg {
@Message(value = "The goods not found!", type = MessageType.Error)
String ERROR_GOODS_NOT_FOUND = "Trade.goodsNotFound";
@Message(value = "The goods [${shopId}] info update success!", type = MessageType.Success)
String SUCCESS_GOODS_INFO_UPDATE = "Trade.goodInfoUpdateSuccess";
}

使用

Trantor 提供了两类消息:

  1. 提示消息(BusinessMessage): 符合预期的提示消息
  2. 异常消息(BusinessException): 不符合预期的异常消息

消息的使用有两种用途,一种是直接返回具体提示消息,另一种是作为异常的信息将消息抛出并返回给页面提示。

1、提示消息

@FunctionImpl(name = "更新商品实现")
public class UpdateItemFuncImpl implements UpdateItemFunc {
@Override
public BusinessMessage execute(ItemBO item) {
DS.update(item);
//当消息需要传递参数时用Map传递,对应键的名称必须要和消息声明{}里声明的一致
HashMap<Object, Object> map = new HashMap<>();
map.put("shopId", "food");
return BusinessMessage.success(TradeMsg.SUCCESS_GOODS_INFO_UPDATE, map);
}
}

2、异常消息

@FunctionImpl(name = "删除商品实现")
public final class DeleteItemFuncImpl implements DeleteItemFunc {
@Override
public void execute(ItemBO item) {
try {
DS.delete(item);
} catch (Exception e) {
//不需要传递参数时直接调用
throw new BusinessException(TradeMsg.ERROR_GOODS_NOT_FOUND);
}
}
}

国际化

目前 Trantor 交付控制台的国际化模块提供对消息进行手动设置翻译的操作,具体操作流程如下:

  1. 制品中心->配置->国际化页面创建 & 启用,例如创建zh-CN类型,具体参考下图:
    image1

  2. 点击翻译查看zh-CN页面内容并选择消息,查看所有的消息并对消息进行翻译
    image1

  3. 对当前语言包启用并重新发布项目,新的语言包才会生效 image1