class StockToLongHuBangMapper extends AbstractMapper <Stock, LongHuBangInfo> {


    public StockToLongHuBangMapper() {
        this(null);
    }


    /**
     * @param strategy 超时等待策略（null则设置为默认等待策略）
     */
    public StockToLongHuBangMapper(TimeWaitingStrategy strategy) {
        super(strategy);
    }

    @Override
    public LongHuBangInfo mapLogic(Stock stock) throws Exception {

        if(stock == null || stock == EmptyObject.emptyStock) return EmptyObject.emptyLongHuBangInfo;

        Date date = stock.getStockQueryDate();

        if (date == EmptyObject.emptyDate)
            throw new IllegalArgumentException("lost parameter: stockQueryDate");

        String dateParam = DateParser.getTimePrefix(date, false);

        String target = URLMapper.LONGHUBANG_JSON.toString();
        RequestParaBuilder builder = new RequestParaBuilder(target)
                .addParameter("date", dateParam)
                .addParameter("symbol", stock.getStockNo());
        URL url = new URL(builder.build());

        String json = request(url);
        JsonNode node = mapper.readTree(json);
        return processNode(stock, node);

    }

    private LongHuBangInfo processNode(Stock stock, JsonNode node) {

        JsonNode detail = node.get("detail");
        JsonNode buyListNode = detail.get("tqQtBizunittrdinfoBuyList");
        JsonNode saleListNode = detail.get("tqQtBizunittrdinfoSaleList");

        Set<LongHuBangInfo.BizsunitInfo> buyList = new HashSet<>();
        Set<LongHuBangInfo.BizsunitInfo> saleList = new HashSet<>();

        for (JsonNode jsonNode : buyListNode) {
            LongHuBangInfo.BizsunitInfo info = composeInfo(jsonNode);
            buyList.add(info);
        }

        for (JsonNode jsonNode : saleListNode) {
            LongHuBangInfo.BizsunitInfo info = composeInfo(jsonNode);
            saleList.add(info);
        }

        return new LongHuBangInfo(stock, stock.getStockQueryDate(), buyList, saleList);
    }

    private LongHuBangInfo.BizsunitInfo composeInfo(JsonNode jsonNode) {<FILL_FUNCTION_BODY>}


}


        String bizsunitcode = jsonNode.get("bizsunitcode").asText();
        String bizsunitname = jsonNode.get("bizsunitname").asText();
        String buyamt = jsonNode.get("buyamt").asText();
        String saleamt = jsonNode.get("saleamt").asText();
        String tradedate = jsonNode.get("tradedate").asText();

        return new LongHuBangInfo.BizsunitInfo(bizsunitcode, bizsunitname, buyamt, saleamt, tradedate);
    
<methods>public void <init>(org.decaywood.timeWaitingStrategy.TimeWaitingStrategy) ,public void <init>(org.decaywood.timeWaitingStrategy.TimeWaitingStrategy, java.lang.String) ,public org.decaywood.entity.LongHuBangInfo apply(org.decaywood.entity.Stock) <variables>