為了減少service層的代碼量,進一步解耦,同時提高代碼復用率,可使用節點翻譯器完成復雜節點的實現邏輯。
例如
~~~
@TranslateEnable
@ApiModel(description = "訂單列表查詢接口返回報文返回內容節點")
public class OrderListRsp extends RspData {
@ApiModelProperty(value = "訂單編號", required = true, position = 70)
private Long tradeId;
@Translate(translator=OrderItemsRspTranslator.class)
@ApiModelProperty(value = "訂單屬性信息節點", required = false, position = 500)
private List<OrderItemsRsp> orderItems;
//set/get方法省略。。。
}
~~~
返回報文需用@TranslateEnable進行標注,其中orderItems節點使用@Translate進行標注,并指定OrderItemsRspTranslator.class
OrderItemsRspTranslator類就是orderItems節點的取值邏輯
~~~
@Component
public class OrderItemsRspTranslator extends BaseTranslator {
@Resource(name = "sqlSessionDao")
private BaseSqlSessionDao dao;
@SuppressWarnings("unchecked")
@Override
public <T> T translate(Object sourceObject) {
Long tradeId = (Long)sourceObject;
List<OrderItemsRsp> orderItems = new ArrayList<OrderItemsRsp>();
//查詢數據庫
TfBTradePreItem cond = new TfBTradePreItem();
cond.setTradeId(tradeId).asCondition();
List<TfBTradePreItem> datas = dao.selectList(cond);
//遍歷
for (TfBTradePreItem tfBTradePreItem : datas) {
OrderItemsRsp orderItemsRsp = new OrderItemsRsp();
orderItemsRsp.setAttrCode(tfBTradePreItem.getAttrCode());
orderItemsRsp.setAttrValue(tfBTradePreItem.getAttrValue());
orderItemsRsp.setAttrTypeCode(tfBTradePreItem.getAttrTypeCode());
orderItemsRsp.setStartDate(decodeTimestamp(tfBTradePreItem.getStartDate()));
orderItemsRsp.setEndDate(decodeTimestamp(tfBTradePreItem.getEndDate()));
orderItems.add(orderItemsRsp);
}
return (T) orderItems;
}
}
~~~
sourceObject是在service層注冊的傳參。
~~~
// 注冊OrderListRsp.orderItems節點翻譯器入參
orderListRsp.registerPropertyTranslatorSourceObject("orderItems", row.getTradeId());
~~~
- walk簡介
- 核心模塊
- walk-data
- IData
- EntityHelper
- walk-cache
- 緩存管理器
- 緩存對象
- 緩存注解
- walk-batis
- 單表操作
- 批量操作
- 列表/分頁查詢
- 所有方法列表
- sql熱部署
- 二級緩存
- 數據庫方言
- 其他使用技巧
- 實體類生成工具
- walk-mq
- 隊列管理器
- 隊列對象
- 訂閱/發布管理器
- 訂閱器
- 發布器
- walk-shiro
- 用戶認證/授權
- url動態授權/回收
- 分布式會話
- 無狀態會話支持
- walk-base
- 前端基礎框架
- 公共頁面
- 自定義標簽
- 自定義函數
- 組件及工具
- 后端基礎框架
- 基礎結構
- 表單校驗
- 數據導入
- 數據導出
- 上傳下載
- 靜態參數加載器
- 靜態參數翻譯器
- 實體類翻譯器
- sql翻譯器
- 自定義翻譯器
- 靜態參數校驗器
- 分布式任務
- 增刪改查代碼生成器
- walk-restful
- 請求報文
- 返回報文
- 節點翻譯器
- api代碼生成
- walk-activiti
- 接口封裝
- 模型管理
- 流程圖展示
- 集成方法
- walk-console
- 在線會話管理
- 靜態參數表緩存管理
- 緩存管理
- 隊列管理
- 發布/訂閱管理
- walk-boot
- 常用功能
- 持久層操作
- 分布式緩存
- 分布式會話
- 分布式任務
- 前端常用功能
- 后端常用功能
- 工作流封裝
- 多數據源支持
- 關于讀寫分離
- 常用工具類
- 代碼生成工具
- SpringCloud集成
- 阿里edas平臺支持
- 其他
- 開發規約
- 環境要求
- 工程示例
- 工程結構
- web工程
- API工程
- 后臺任務
- 常見問題
- 事務不生效
- 分布式任務不生效
- 事務鎖
- 變更歷史