2021.12.20学习笔记

1.根据日期和股票代号查询表stock_items中的股票代码,找出最大价格的日期,看是否等于当天日期,如果等于,则得分+1,再判断当天股票价格是否大于9.7,如果大于,则得分再+2,最后将计算后的得分语句再插入表stock_score.

        let commitCount = 0;
        let allData = results;
        for (let i = 0; i < allData.length; i++) {
            let dto = allData[i];
            let sqlData = [dto.getCode(), dto.getDate()];
  
            let sqlSelect = `select * from stock_items where code='601489' and date in('2021-12-17','2021-12-16','2021-12-15')`;
            connection.query(sqlSelect, sqlData, function (error, results, fields) {
                if (error)
                    throw error;
                console.log('The solution is: ', results);

                let maxR = EastScoreService.getInstance().getMaxRatio(results);
                let count = 0;
                if (maxR.Date == dto.getDate()) {
                    count = count + 1;
                }

                if (dto.getMaxAndMinRatio() > 9.7) {
                    count = count + 2;
                    console.log(count);
                }
                console.log(dto);//如果出现报错,就在错误的上方打console.log()。
                dto.setCount(count);//将计算之后的得分set进dto。
                console.log(dto);
                commitCount++;
                if (commitCount == allData.length) {//提交的次数与设置的dto的个数有关,与数据库里查询的语句条数无关。
                    let insertData = [dto.getCode(), dto.getDate(), dto.getCount(), dto.getMaxAndMinRatio()];//不能直接用最开始声明的 sqlData,否则dto里的count还是原始设置的0。
                    let sqlInsert = `insert into stock_score(code,date,count,maxAndMinRatio)values(?,?,?,?)`;
                    console.log(insertData);
                    console.log(results);
                    connection.query(sqlInsert, insertData, function (error, results, fields) {
                        if (error)
                            throw error;
                        console.log('The solution is: ', results);

                        connection.commit();
                        connection.end();

                    });

                }

            })
        }
    }

    getMaxRatio(results) {//数据库里查询到的results只用于找出最大的股票价格。
        let max = results[0];
        for (let i = 1; i < results.length; i++) {

            if (max.MaxAndMinRatio <= results[i].MaxAndMinRatio) {

                max = results[i];
            }//思路:先假定第0个为最大值,第0个与第1个比较,如果0<1,则max=[1];如果0>1,则不变。

        }
        return max;
    }




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值