溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

關(guān)于同類業(yè)務(wù)有多個(gè)分支的接口設(shè)計(jì)

發(fā)布時(shí)間:2020-06-24 04:51:02 來源:網(wǎng)絡(luò) 閱讀:799 作者:zheng854938169 欄目:軟件技術(shù)

同業(yè)務(wù)多分支的接口設(shè)計(jì)

場(chǎng)景說明
比如處于下游的系統(tǒng),在接收源系統(tǒng)的計(jì)劃訂單的時(shí)候,因訂單的種類比較多,例如:采購(gòu)訂單、銷售訂單、調(diào)撥訂單、預(yù)售訂單等待,如果這些訂單的差異比較大,需要分開建多個(gè)表,這樣后臺(tái)接口就需要設(shè)計(jì)一番了。
下面就按步驟直接貼代碼案例
第一步: 創(chuàng)建一個(gè)接口,定義接收訂單的方法;
public interface OrderRepeaterServiceI {

 Result receiveOrder(ReceiveProductOrder order);

}

第二步: 定義接口的實(shí)現(xiàn)類,2個(gè)@Service
br/>@Service
br/>@Override
System.out.println("采購(gòu)訂單執(zhí)行分支...");
return null;
}

@Service
public class SaleOrderServiceImpl implements OrderRepeaterServiceI {@Override
br/>@Override
System.out.println("銷售訂單執(zhí)行分支...");
return null;
}
}

第三步: 定義分發(fā)器服務(wù)@Service
br/>@Service

@Resource
private OrderRepeaterServiceI purchaseOrderServiceImpl;

@Resource
private OrderRepeaterServiceI saleOrderServiceImpl;

public Result receiveOrder(String orderType, ReceiveProductOrder order) throws Exception {
    OrderRepeaterServiceI orderService = null;
    switch (orderType) {
        case "10" : orderService = purchaseOrderServiceImpl;break;
        case "20" : orderService = saleOrderServiceImpl;break;
    }
    if (orderService != null) {
        orderService.receiveOrder(order);
    } else {
        throw new RuntimeException("訂單類型未知異常.");
    }
    return Result.successWithData("成功");
}

}

第四步: 定義接收源系統(tǒng)的控制器@Controller
br/>@Controller
public class OrderApiController {

private static final Logger logger = Logger.getLogger(OrderSapApiController.class);

@Resource
private OrderRepeaterService orderRepeaterService;

@RequestMapping(value = "/testService")
@ResponseBody
public Result testService(String orderType) {

    try {
        ReceiveProductOrder order = new ReceiveProductOrder();
        order.setOrderTypeCode("10");
        order.setRelatedDocCode("SO18031610001");
        return orderRepeaterService.receiveOrder(orderType, order);
    } catch (Exception e) {
        logger.error("接口測(cè)試異常.");
        return Result.errorWithData("測(cè)試異常");
    }
}

}

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI