package com.liquidnet.service.platform.utils;

import com.liquidnet.service.adam.dto.vo.*;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.candy.entity.CandyCommonCoupon;
import com.liquidnet.service.candy.entity.CandyCouponCode;
import com.liquidnet.service.candy.entity.CandyUserCoupon;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.entity.KylinOrderCoupons;
import com.mongodb.BasicDBObject;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;

/**
 * @author AnJiabin <anjiabin@zhengzai.tv>
 * @version V1.0
 * @Description: TODO
 * @class: ObjectUtil
 * @Package com.liquidnet.service.dragon.utils
 * @Copyright: LightNet @ Copyright (c) 2021
 * @date 2021/7/21 16:00
 */
@Component
public class ObjectUtil {
    private static final HashMap<String, Object> hashMapStringAndObject = new HashMap<String, Object>();
    private static final BasicDBObject basicDBObject = new BasicDBObject();

    public static HashMap<String, Object> cloneHashMapStringAndObject() {
        return (HashMap<String, Object>) hashMapStringAndObject.clone();
    }

    public static BasicDBObject cloneBasicDBObject() {
        return (BasicDBObject) basicDBObject.clone();
    }







    private static final ArrayList<AdamTagParentVo> adamTagParentVoArrayList = new ArrayList<>();
    private static final ArrayList<AdamTagVo> adamTagVoArrayList = new ArrayList<>();
    private static final ArrayList<AdamMemberOrderSimpleVo> adamMemberOrderSimpleVoArrayList = new ArrayList<>();
    private static final ArrayList<AdamThirdPartInfoVo> adamThirdPartInfoVoArrayList = new ArrayList<>();
    private static final ArrayList<AdamEntersVo> adamEntersVoArrayList = new ArrayList<>();
    private static final ArrayList<AdamAddressesVo> adamAddressesVoArrayList = new ArrayList<>();
    private static final ArrayList<AdamMemberOrderVo> adamMemberOrderVoArrayList = new ArrayList<>();
    private static final ArrayList<AdamProPerformMarkVo> adamProPerformMarkVoArrayList = new ArrayList<>();
    private static final ArrayList<CandyCommonCoupon> candyCommonCouponArrayList = new ArrayList<>();
    private static final ArrayList<CandyCouponCode> candyCouponCodeArrayList = new ArrayList<>();
    private static final ArrayList<CandyUserCoupon> candyUserCouponArrayList = new ArrayList<>();

    private static final PagedResult<AdamCollectVo> adamCollectVoPagedResult = new PagedResult<>();
    private static final PagedResult<AdamMemberOrderSimpleVo> adamMemberOrderSimpleVoPagedResult = new PagedResult<>();
    private static final PagedResult<AdamDisposedVo> adamDisposedVoPagedResult = new PagedResult<>();
    private static final PagedResult<AdamDisposedUserVo> adamDisposedUserVoPagedResult = new PagedResult<>();
    private static final ArrayList<KylinOrderCoupons> kylinOrderCouponsArrayList = new ArrayList<>();

    public static ArrayList<AdamTagParentVo> getAdamTagParentVoArrayList() {
        return (ArrayList<AdamTagParentVo>) adamTagParentVoArrayList.clone();
    }

    public static ArrayList<AdamTagVo> getAdamTagVoArrayList() {
        return (ArrayList<AdamTagVo>) adamTagVoArrayList.clone();
    }

    public static ArrayList<AdamMemberOrderSimpleVo> getAdamMemberOrderSimpleVoArrayList() {
        return (ArrayList<AdamMemberOrderSimpleVo>) adamMemberOrderSimpleVoArrayList.clone();
    }

    public static ArrayList<AdamThirdPartInfoVo> getAdamThirdPartInfoVoArrayList() {
        return (ArrayList<AdamThirdPartInfoVo>) adamThirdPartInfoVoArrayList.clone();
    }

    public static ArrayList<AdamEntersVo> getAdamEntersVoArrayList() {
        return (ArrayList<AdamEntersVo>) adamEntersVoArrayList.clone();
    }

    public static ArrayList<AdamAddressesVo> getAdamAddressesVoArrayList() {
        return (ArrayList<AdamAddressesVo>) adamAddressesVoArrayList.clone();
    }

    public static ArrayList<AdamMemberOrderVo> getAdamMemberOrderVoArrayList() {
        return (ArrayList<AdamMemberOrderVo>) adamMemberOrderVoArrayList.clone();
    }

    public static ArrayList<AdamProPerformMarkVo> getAdamProPerformMarkVoArrayList() {
        return (ArrayList<AdamProPerformMarkVo>) adamProPerformMarkVoArrayList.clone();
    }

    public static ArrayList<CandyCommonCoupon> getCandyCommonCouponArrayList() {
        return (ArrayList<CandyCommonCoupon>) candyCommonCouponArrayList.clone();
    }

    public static ArrayList<CandyCouponCode> getCandyCouponCodeArrayList() {
        return (ArrayList<CandyCouponCode>) candyCouponCodeArrayList.clone();
    }

    public static ArrayList<CandyUserCoupon> getCandyUserCouponArrayList() {
        return (ArrayList<CandyUserCoupon>) candyUserCouponArrayList.clone();
    }

    public static PagedResult<AdamCollectVo> getAdamCollectVoPagedResult() {
        return adamCollectVoPagedResult.clone();
    }

    public static PagedResult<AdamMemberOrderSimpleVo> getAdamMemberOrderSimpleVoPagedResult() {
        return adamMemberOrderSimpleVoPagedResult.clone();
    }

    public static PagedResult<AdamDisposedVo> getAdamDisposedVoPagedResult() {
        return adamDisposedVoPagedResult.clone();
    }

    public static PagedResult<AdamDisposedUserVo> getAdamDisposedUserVoPagedResult() {
        return adamDisposedUserVoPagedResult.clone();
    }

    public static ArrayList<KylinOrderCoupons> getKylinOrderCouponsArrayList() {
        return (ArrayList<KylinOrderCoupons>) kylinOrderCouponsArrayList.clone();
    }
}
