4.22

第二个接口算是写完了。。太坑了,主要难点在于,查数据库中没有的字段的值,要通过取的数据库中有的字段,然后写逻辑计算。而且还要与时间挂钩。

我的思路是,输入一个时间,然后把它分成一周的时间在sql里查取一周的数据(因为用到了周五的数据,所以查一周),然后对于不同种类的指数,进行逻辑计算。

呜呜呜~~~~

被== 和equals折磨了一天,才找到问题所在!!!血的教训

            if(list.get(0).getType().equals("SSEC")){
                list.get(0).setUpDown(new BigDecimal(888));
                list.get(1).setUpDown(new BigDecimal(999));
            }else if(list.get(0).getType().equals("CSI300")){
                list.get(0).setUpDown(new BigDecimal(999));
                list.get(1).setUpDown(new BigDecimal(888));
            }

上面如果写成== 则赋值不了。原因是,我们这里要比较的是内容,而不是地址!!!

1、功能不同

"=="是判断两个变量或实例是不是指向同一个内存空间。

"equals"是判断两个变量或实例所指向的内存空间的是不是相同。

2、定义不同

"equals"在JAVA中是一个方法。

"=="在JAVA中只是一个运算符合。

 以StockByChinaCommandImpl为例,取出列表要这样写:从第97行开始。

package com.simnectzbank.lbs.processlayer.stock.service.command.impl;

import com.alibaba.fastjson.JSON;
import com.csi.sbs.common.business.constant.SuccessConstant;
import com.csi.sbs.common.business.model.HeaderModel;
import com.csi.sbs.common.business.util.ResponseUtil;
import com.csi.sbs.common.business.util.ResultUtil;
import com.simnectzbank.lbs.processlayer.stock.clientmodel.*;
import com.simnectzbank.lbs.processlayer.stock.component.LocaleMessage;
import com.simnectzbank.lbs.processlayer.stock.constant.ExceptionConstant;
import com.simnectzbank.lbs.processlayer.stock.constant.ResultConstant;
import com.simnectzbank.lbs.processlayer.stock.constant.SysConstant;
import com.simnectzbank.lbs.processlayer.stock.exception.RecordNotFoundException;
import com.simnectzbank.lbs.processlayer.stock.service.command.Command;
import com.simnectzbank.lbs.processlayer.stock.service.proxy.stockinfoservice.StockInfoService;
import com.simnectzbank.lbs.processlayer.stock.service.proxy.sysadminservice.SysTransactionLogService;
import com.simnectzbank.lbs.processlayer.stock.util.CalculationUtil;
import com.simnectzbank.lbs.processlayer.stock.util.DateToStamp;
import com.simnectzbank.lbs.processlayer.stock.util.IOperationLogUtil;
import com.simnectzbank.lbs.processlayer.stock.util.IRSendLogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Component
public class StockByChinaCommandImpl extends Command {

    @Resource
    private LocaleMessage localeMessage;

    @Resource
    private IRSendLogUtil logUtil;

    @Autowired
    private SysTransactionLogService sysTransactionLogService;

    @Resource
    private StockInfoService stockInfoService;

    @Resource
    private IOperationLogUtil operationLogUtil;

    private String classname = StockByChinaCommandImpl.class.getName();


    @Override
    public void initialize(BusinessModel model, Map<String, Object> context) throws Exception {
        // debug log
        String method = "stockByChina-initialize";
        long threadId = Thread.currentThread().getId();
        HeaderModel header = model.getHeaderModel();
        logUtil.sendDebug(new Date().getTime() + "|" + threadId + "|" + SysConstant.SEND_DEBUG_HEADER + header.toString() + "|" + classname + "|" + method + SysConstant.SEND_DEBUG_METHOD_START);

        // Operation Log
        operationLogUtil.log(
                localeMessage.getMessage(ResultConstant.GET_STOCK_LIST),
                SysConstant.OPERATION_START,
                localeMessage.getMessage(ResultConstant.GET_STOCK_LIST),
                SysConstant.LOCAL_SERVICE_NAME,
                (String) context.get(SysConstant.TRANSACTION_ID),
                header);

        logUtil.sendDebug(new Date().getTime() + "|" + threadId + "|" + SysConstant.SEND_DEBUG_HEADER + header.toString() + "|" + classname + "|" + method + SysConstant.SEND_ERROR_LOG_METHOD_END);

    }

    @Override
    public ResultUtil execute(BusinessModel model) throws RecordNotFoundException, ParseException {
        String method = "stockByChina-execute";
        long threadId = Thread.currentThread().getId();
        logUtil.sendDebug(new Date().getTime() + "|" + threadId + "|" + classname + "|" + method  + SysConstant.SEND_DEBUG_METHOD_START);

        ResultUtil result = null;
        StockIndexModel stockIndexModel = (StockIndexModel) model.getTransctionModel();
        GetStockIndexModel getStockIndexModel = new GetStockIndexModel();
        //getStockIndexModel.setType(stockIndexModel.getType());

        Map<String, String> selectMap = DateToStamp.stamp2Date(stockIndexModel.getSelectDate());
        getStockIndexModel.setSelectDate(selectMap.get("sd0"));//获取一下值先,不参与逻辑
        getStockIndexModel.setFromDate(selectMap.get("sd7"));//过去七天
        getStockIndexModel.setToDate(selectMap.get("sd0"));


        ResultUtil stockResult = stockInfoService.findManyByChina(getStockIndexModel);
        List<StockIndexHistoryModel> list = JSON.parseArray((String) stockResult.getData(), StockIndexHistoryModel.class);
        if(list == null || list.size() == 0){
            throw new RecordNotFoundException(localeMessage.getMessage(ResultConstant.RECORD_NOTFOUND), ExceptionConstant.ERROR_CODE404010);
        }else{
            //  计算升跌
            if(list.get(0).getType().equals("SSEC")){
                list.get(0).setUpDown(CalculationUtil.calculateChinaUpDown(list).get("SSEC"));
                list.get(1).setUpDown(CalculationUtil.calculateChinaUpDown(list).get("CSI300"));
            }else if(list.get(0).getType().equals("CSI300")){
                list.get(0).setUpDown(CalculationUtil.calculateChinaUpDown(list).get("CSI300"));
                list.get(1).setUpDown(CalculationUtil.calculateChinaUpDown(list).get("SSEC"));
            }
            // 计算升跌率
            if(list.get(0).getType().equals("SSEC")){
                list.get(0).setUpDownPercentage(CalculationUtil.calculateChinaUpDownPercentage(list).get("SSEC"));
                list.get(1).setUpDownPercentage(CalculationUtil.calculateChinaUpDownPercentage(list).get("CSI300"));
            }else if(list.get(0).getType().equals("CSI300")){
                list.get(0).setUpDownPercentage(CalculationUtil.calculateChinaUpDownPercentage(list).get("CSI300"));
                list.get(1).setUpDownPercentage(CalculationUtil.calculateChinaUpDownPercentage(list).get("SSEC"));
            }
            //计算本周升跌
            if(list.get(0).getType().equals("SSEC")){
                list.get(0).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("SSEC"));
                list.get(1).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("CSI300"));
            }else if(list.get(0).getType().equals("CSI300")){
                list.get(0).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("CSI300"));
                list.get(1).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("SSEC"));
            }

            List<StockIndexHistoryModel> listTwo = new ArrayList<>();
            for(int i=0;i<2;i++){
                listTwo.add(list.get(i));
            }
            result = ResponseUtil.success(SuccessConstant.SUCCESS_CODE200, listTwo , localeMessage.getMessage(ResultConstant.SUCCESS_MSG));
        }

        logUtil.sendDebug(new Date().getTime() +"|" + threadId + "|" + classname + "|" + method  +  SysConstant.SEND_ERROR_LOG_METHOD_END );
        return result;
    }



    @Override
    public void finalize(BusinessModel model, Map<String, Object> context) throws Exception {
        // debug log
        String method = "stockByChina-finalize";
        long threadId = Thread.currentThread().getId();
        HeaderModel header = model.getHeaderModel();
        logUtil.sendDebug(new Date().getTime() + "|" + threadId + "|" + SysConstant.SEND_DEBUG_HEADER + header.toString() + "|" + classname + "|" + method + SysConstant.SEND_DEBUG_METHOD_START);

        boolean flag = (boolean) context.get(SysConstant.LOGICFLAG);
        // Operation Log
        operationLogUtil.log(
                localeMessage.getMessage(ResultConstant.GET_STOCK_LIST),
                flag? SysConstant.OPERATION_SUCCESS:SysConstant.OPERATION_ERROR,
                localeMessage.getMessage(ResultConstant.GET_STOCK_LIST),
                SysConstant.LOCAL_SERVICE_NAME,
                (String) context.get(SysConstant.TRANSACTION_ID),
                header);

        logUtil.sendDebug(new Date().getTime() + "|" + threadId + "|" + SysConstant.SEND_DEBUG_HEADER + header.toString() + "|" + classname + "|" + method + SysConstant.SEND_ERROR_LOG_METHOD_END);

    }
}

汇报完了,要修改的地方:(小意思)

1.swagger显示的时候要默认参数

2.算出来的每周升跌率要加%

package com.simnectzbank.lbs.processlayer.stock.util;

import com.simnectzbank.lbs.processlayer.stock.clientmodel.StockIndexHistoryModel;
import java.math.BigDecimal;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;

public class CalculationUtil {
    @SuppressWarnings("unchecked")
    public static Map<String, BigDecimal> calculateChinaUpDown(List<StockIndexHistoryModel> list){

        //获取list对象的last字段组装成新list
        List<BigDecimal> lastList1 = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList1 = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        //创建UpDown的Map
        Map<String,BigDecimal> upDownMap = new HashMap<>();

        boolean flag1= true;
        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag1 && flag2){
                    if(typeList1.get(i).equals("SSEC")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList1.get(m).equals("SSEC")){
                                    BigDecimal subtract = lastList1.get(i).subtract(lastList1.get(m));
                                    upDownMap.put("SSEC",subtract);
                                    if(upDownMap.get("SSEC")!=null){
                                        flag2=false;
                                    }
                                }
                            }
                        }
                    }else if(typeList1.get(i).equals("CSI300")){
                        for(int n =i+1;n<list.size();n++){
                            if(flag1){
                                if(typeList1.get(n).equals("CSI300")){
                                    BigDecimal subtract = lastList1.get(i).subtract(lastList1.get(n));
                                    upDownMap.put("CSI300",subtract);
                                    if(upDownMap.get("CSI300")!=null){
                                        flag1=false;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            flag1 =true;
            flag2 =true;
        }

        return upDownMap;
    }

    public static Map<String, BigDecimal> calculateHkUpDown(List<StockIndexHistoryModel> list){

        //获取list对象的last字段组装成新list
        List<BigDecimal> lastList1 = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList1 = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        //创建UpDown的Map
        Map<String,BigDecimal> upDownMap = new HashMap<>();

        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag2){
                    if(typeList1.get(i).equals("HSI")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList1.get(m).equals("HSI")){
                                    BigDecimal subtract = lastList1.get(i).subtract(lastList1.get(m));
                                    upDownMap.put("HSI",subtract);
                                    if(upDownMap.get("HSI")!=null){
                                        flag2=false;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        return upDownMap;
    }

    public static Map<String, BigDecimal> calculateWorldUpDown(List<StockIndexHistoryModel> list){

        //获取list对象的last字段组装成新list
        List<BigDecimal> lastList1 = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList1 = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        //创建UpDown的Map
        Map<String,BigDecimal> upDownMap = new HashMap<>();

        boolean flag1= true;
        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag1 && flag2){
                    if(typeList1.get(i).equals("IXIC")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList1.get(m).equals("IXIC")){
                                    BigDecimal subtract = lastList1.get(i).subtract(lastList1.get(m));
                                    upDownMap.put("IXIC",subtract);
                                    if(upDownMap.get("IXIC")!=null){
                                        flag2=false;
                                    }
                                }
                            }
                        }
                    }else if(typeList1.get(i).equals("DJI")){
                        for(int n =i+1;n<list.size();n++){
                            if(flag1){
                                if(typeList1.get(n).equals("DJI")){
                                    BigDecimal subtract = lastList1.get(i).subtract(lastList1.get(n));
                                    upDownMap.put("DJI",subtract);
                                    if(upDownMap.get("DJI")!=null){
                                        flag1=false;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            flag1 =true;
            flag2 =true;
        }

        return upDownMap;
    }


    @SuppressWarnings("unchecked")
    public static Map<String, String> calculateChinaUpDownPercentage(List<StockIndexHistoryModel> list){

        //获取list对象的last字段组装成新list
        List<BigDecimal> upDownList = list.stream().map(StockIndexHistoryModel::getUpDown).collect(Collectors.toList());
        List<BigDecimal> lastList = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        //创建UpDown的Map
        Map<String,String> upDownMap = new HashMap<>();

        boolean flag1= true;
        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag1 && flag2){
                    if(typeList.get(i).equals("SSEC")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList.get(m).equals("SSEC")){
                                    BigDecimal divide = upDownList.get(i).divide(lastList.get(m),3,BigDecimal.ROUND_HALF_UP);
                                    divide = divide.multiply(new BigDecimal(100));
                                    upDownMap.put("SSEC",divide+"%");
                                    if(upDownMap.get("SSEC")!=null){
                                        flag2=false;
                                    }
                                }
                            }
                        }
                    }else if(typeList.get(i).equals("CSI300")){
                        for(int n =i+1;n<list.size();n++){
                            if(flag1){
                                if(typeList.get(n).equals("CSI300")){
                                    BigDecimal divide = upDownList.get(i).divide(lastList.get(n),3,BigDecimal.ROUND_HALF_UP);
                                    divide = divide.multiply(new BigDecimal(100));
                                    upDownMap.put("CSI300",divide+"%");
                                    if(upDownMap.get("CSI300")!=null){
                                        flag1=false;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            flag1 =true;
            flag2 =true;
        }

        return upDownMap;
    }

    public static Map<String, String> calculateHkUpDownPercentage(List<StockIndexHistoryModel> list){

        //获取list对象的last字段组装成新list
        List<BigDecimal> lastList = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        List<BigDecimal> upDownList = list.stream().map(StockIndexHistoryModel::getUpDown).collect(Collectors.toList());

        //创建UpDown的Map
        Map<String,String> upDownMap = new HashMap<>();

        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag2){
                    if(typeList.get(i).equals("HSI")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList.get(m).equals("HSI")){
                                    BigDecimal subtract = upDownList.get(i).divide(lastList.get(m),3,BigDecimal.ROUND_HALF_UP);
                                    subtract = subtract.multiply(new BigDecimal(100));
                                    upDownMap.put("HSI",subtract+"%");
                                    if(upDownMap.get("HSI")!=null){
                                        flag2=false;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        return upDownMap;
    }

    @SuppressWarnings("unchecked")
    public static Map<String, String> calculateWorldUpDownPercentage(List<StockIndexHistoryModel> list){

        //获取list对象的last字段组装成新list
        List<BigDecimal> upDownList = list.stream().map(StockIndexHistoryModel::getUpDown).collect(Collectors.toList());
        List<BigDecimal> lastList = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        //创建UpDown的Map
        Map<String,String> upDownMap = new HashMap<>();

        boolean flag1= true;
        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag1 && flag2){
                    if(typeList.get(i).equals("IXIC")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList.get(m).equals("IXIC")){
                                    BigDecimal divide = upDownList.get(i).divide(lastList.get(m),3,BigDecimal.ROUND_HALF_UP);
                                    divide = divide.multiply(new BigDecimal(100));
                                    upDownMap.put("IXIC",divide+"%");
                                    if(upDownMap.get("IXIC")!=null){
                                        flag2=false;
                                    }
                                }
                            }
                        }
                    }else if(typeList.get(i).equals("DJI")){
                        for(int n =i+1;n<list.size();n++){
                            if(flag1){
                                if(typeList.get(n).equals("DJI")){
                                    BigDecimal divide = upDownList.get(i).divide(lastList.get(n),3,BigDecimal.ROUND_HALF_UP);
                                    divide = divide.multiply(new BigDecimal(100));
                                    upDownMap.put("DJI",divide+"%");
                                    if(upDownMap.get("DJI")!=null){
                                        flag1=false;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            flag1 =true;
            flag2 =true;
        }

        return upDownMap;
    }

    public static Map<String, String> calculateHkUpDownWeek(List<StockIndexHistoryModel> list) throws ParseException {

        //获取list对象的last字段组装成新list
        List<BigDecimal> lastList = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        List<BigDecimal> timeList = list.stream().map(StockIndexHistoryModel::getUpdateTime).collect(Collectors.toList());


        //创建UpDown的Map
        Map<String,String> upDownMap = new HashMap<>();

        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag2){
                    if(typeList.get(i).equals("HSI")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList.get(m).equals("HSI")){
                                    if(DateToStamp.getWeek(String.valueOf(timeList.get(m))).equals("星期五")){
                                        BigDecimal subtract = lastList.get(i).subtract(lastList.get(m)).divide(lastList.get(m),3,BigDecimal.ROUND_HALF_UP);
                                        subtract = subtract.multiply(new BigDecimal(100));
                                        upDownMap.put("HSI",subtract+"%");
                                        if(upDownMap.get("HSI")!=null){
                                            flag2=false;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        return upDownMap;
    }

    @SuppressWarnings("unchecked")
    public static Map<String, String> calculateChinaUpDownWeek(List<StockIndexHistoryModel> list) throws ParseException {

        //获取list对象的last字段组装成新list
        List<BigDecimal> lastList = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        List<BigDecimal> timeList = list.stream().map(StockIndexHistoryModel::getUpdateTime).collect(Collectors.toList());

        //创建UpDown的Map
        Map<String,String> upDownMap = new HashMap<>();

        boolean flag1= true;
        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag1 && flag2){
                    if(typeList.get(i).equals("SSEC")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList.get(m).equals("SSEC")){
                                    if(DateToStamp.getWeek(String.valueOf(timeList.get(m))).equals("星期五")){
                                        BigDecimal divide = lastList.get(i).subtract(lastList.get(m)).divide(lastList.get(m),3,BigDecimal.ROUND_HALF_UP);
                                        divide = divide.multiply(new BigDecimal(100));
                                        upDownMap.put("SSEC",divide+"%");
                                        if(upDownMap.get("SSEC")!=null){
                                            flag2=false;
                                        }
                                    }
                                }
                            }
                        }
                    }else if(typeList.get(i).equals("CSI300")){
                        for(int n =i+1;n<list.size();n++){
                            if(flag1){
                                if(typeList.get(n).equals("CSI300")){
                                    if(DateToStamp.getWeek(String.valueOf(timeList.get(n))).equals("星期五")){
                                        BigDecimal divide = lastList.get(i).subtract(lastList.get(n)).divide(lastList.get(n),3,BigDecimal.ROUND_HALF_UP);
                                        divide = divide.multiply(new BigDecimal(100));
                                        upDownMap.put("CSI300",divide+"%");
                                        if(upDownMap.get("CSI300")!=null){
                                            flag1=false;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            flag1 =true;
            flag2 =true;
        }

        return upDownMap;
    }
    @SuppressWarnings("unchecked")
    public static Map<String, String> calculateWorldUpDownWeek(List<StockIndexHistoryModel> list) throws ParseException {

        //获取list对象的last字段组装成新list
        List<BigDecimal> lastList = list.stream().map(StockIndexHistoryModel::getLast).collect(Collectors.toList());
        List<String> typeList = list.stream().map(StockIndexHistoryModel::getType).collect(Collectors.toList());
        List<BigDecimal> timeList = list.stream().map(StockIndexHistoryModel::getUpdateTime).collect(Collectors.toList());

        //创建UpDown的Map
        Map<String,String> upDownMap = new HashMap<>();

        boolean flag1= true;
        boolean flag2= true;
        for(int i=0;i<2;i++){
            for(int j=0;j<list.size();j++){
                if(flag1 && flag2){
                    if(typeList.get(i).equals("IXIC")){
                        for(int m =i+1;m<list.size();m++){
                            if(flag2){
                                if(typeList.get(m).equals("IXIC")){
                                    if(DateToStamp.getWeek(String.valueOf(timeList.get(m))).equals("星期五")){
                                        BigDecimal divide = lastList.get(i).subtract(lastList.get(m)).divide(lastList.get(m),3,BigDecimal.ROUND_HALF_UP);
                                        divide = divide.multiply(new BigDecimal(100));
                                        upDownMap.put("IXIC",divide+"%");
                                        if(upDownMap.get("IXIC")!=null){
                                            flag2=false;
                                        }
                                    }
                                }
                            }
                        }
                    }else if(typeList.get(i).equals("DJI")){
                        for(int n =i+1;n<list.size();n++){
                            if(flag1){
                                if(typeList.get(n).equals("DJI")){
                                    if(DateToStamp.getWeek(String.valueOf(timeList.get(n))).equals("星期五")){
                                        BigDecimal divide = lastList.get(i).subtract(lastList.get(n)).divide(lastList.get(n),3,BigDecimal.ROUND_HALF_UP);
                                        divide = divide.multiply(new BigDecimal(100));
                                        upDownMap.put("DJI",divide+"%");
                                        if(upDownMap.get("DJI")!=null){
                                            flag1=false;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            flag1 =true;
            flag2 =true;
        }

        return upDownMap;
    }

    public static void main(String[] args) throws ParseException {

        List<StockIndexHistoryModel> list = new ArrayList<>();
        StockIndexHistoryModel s1 = new StockIndexHistoryModel(1,new BigDecimal ("4947.75"),new BigDecimal ("3314.03"),new BigDecimal ("3349.05"),new BigDecimal ("3314.03"),"2018年1月2日",new BigDecimal ("1618217381883"),"CSI300",new BigDecimal (-43.42),null,null);
        StockIndexHistoryModel s2 = new StockIndexHistoryModel(2,new BigDecimal ("3412.95"),new BigDecimal ("3347.74"),new BigDecimal ("3379.92"),new BigDecimal ("3345.29"),"2018年1月3日",new BigDecimal ("1617897600000"),"SSEC",new BigDecimal (-16.6),null,null);
        StockIndexHistoryModel s3 = new StockIndexHistoryModel(3,new BigDecimal ("3450.68"),new BigDecimal ("3371"),new BigDecimal ("3392.83"),new BigDecimal ("3365.3"),"2018年1月4日",new BigDecimal ("1617811200000"),"SSEC",new BigDecimal (-1),null,null);
        StockIndexHistoryModel s4 = new StockIndexHistoryModel(4,new BigDecimal ("5035.34"),new BigDecimal ("3386.46"),new BigDecimal ("3402.07"),new BigDecimal ("3380.24"),"2018年1月5日",new BigDecimal ("1617897600000"),"CSI300",new BigDecimal (-2),null,null);
        StockIndexHistoryModel s5 = new StockIndexHistoryModel(5,new BigDecimal ("5035.34"),new BigDecimal ("3386.46"),new BigDecimal ("3482.55"),new BigDecimal ("3380.24"),"2018年1月5日",new BigDecimal ("1515081600000"),"SSEC",null,null,null);
        StockIndexHistoryModel s6 = new StockIndexHistoryModel(6,new BigDecimal ("5035.34"),new BigDecimal ("3386.46"),new BigDecimal ("5112.21"),new BigDecimal ("3380.24"),"2018年1月5日",new BigDecimal ("1515081600000"),"CSI300",null,null,null);
        StockIndexHistoryModel s7 = new StockIndexHistoryModel(7,new BigDecimal ("5035.34"),new BigDecimal ("3386.46"),new BigDecimal ("5112.21"),new BigDecimal ("3380.24"),"2018年1月5日",new BigDecimal ("1515081600000"),"SSEC",null,null,null);
        StockIndexHistoryModel s8 = new StockIndexHistoryModel(8,new BigDecimal ("5035.34"),new BigDecimal ("3386.46"),new BigDecimal ("5112.21"),new BigDecimal ("3380.24"),"2018年1月5日",new BigDecimal ("1515081600000"),"CSI300",null,null,null);
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);
        list.add(s6);
        list.add(s7);
        list.add(s8);


//        list.get(0).setUpDownWeek(CalculationUtil.calculateHkUpDownWeek(list).get("HSI"));
//        System.out.println(list.get(0).getUpDownWeek());

        //计算本周升跌
        if(list.get(0).getType().equals("SSEC")){
            list.get(0).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("SSEC"));
            list.get(1).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("CSI300"));
        }else if(list.get(0).getType().equals("CSI300")){
            list.get(0).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("CSI300"));
            list.get(1).setUpDownWeek(CalculationUtil.calculateChinaUpDownWeek(list).get("SSEC"));
        }

        List<StockIndexHistoryModel> listTwo = new ArrayList<>();
        for(int i=0;i<2;i++){
            listTwo.add(list.get(i));
        }
        for(int i =0;i<2;i++){
            System.out.println(listTwo.get(i).getUpDownWeek());
        }
    }
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值