fix: 增加对记录的查询再新增的操作

This commit is contained in:
chenwj 2024-08-01 11:43:28 +08:00
parent 9f99c2a2b4
commit 7ac4e658bf
4 changed files with 83 additions and 69 deletions

View File

@ -4,8 +4,10 @@ use std::{env, time::Duration};
use chrono::{Local, NaiveDate}; use chrono::{Local, NaiveDate};
use regex::Regex; use regex::Regex;
use scraper::{Html, Selector}; use scraper::{Html, Selector};
use sea_orm::{ActiveModelTrait, ActiveValue::Set, ConnectOptions, Database}; use sea_orm::{ColumnTrait, EntityTrait, QueryFilter};
use sea_orm::{ActiveModelTrait, ConnectOptions, Database};
use crate::model::prelude::*;
use crate::model::{sd, pls, plw}; use crate::model::{sd, pls, plw};
pub async fn get_data_from_500_com(issue_type: &str) -> Result<String, String> { pub async fn get_data_from_500_com(issue_type: &str) -> Result<String, String> {
@ -67,73 +69,85 @@ pub async fn get_data_from_500_com(issue_type: &str) -> Result<String, String> {
let code_double = numbers.iter().filter(|&&x| x % 2 == 0).count() as i32; let code_double = numbers.iter().filter(|&&x| x % 2 == 0).count() as i32;
if issue_type == "sd" { if issue_type == "sd" {
let group_type = if unique_numbers.len() == 3 { 6 } else if unique_numbers.len() == 2{ 3 } else {1}; let sd_record = Sd::find().filter(sd::Column::DrawIssue.eq(issue.clone())).one(&db).await.map_err(|e| e.to_string())?;
let new_model = sd::ActiveModel { if sd_record.is_none() {
draw_issue: Set(Some(issue)), let group_type = if unique_numbers.len() == 3 { 6 } else if unique_numbers.len() == 2{ 3 } else {1};
draw_code: Set(Some(ball)), let sd_model = sd::Model {
draw_date: Set(Some(date)), draw_issue:issue.into(),
created_at: Set(Some(Local::now().naive_local())), draw_code: ball.into(),
sum_num: Set(Some(sum)), draw_date: Some(date),
code_small: Set(Some(code_small)), created_at: Some(Local::now().naive_local()),
code_big: Set(Some(code_big)), sum_num: sum.into(),
code_single: Set(Some(code_single)), code_small: code_small.into(),
code_double: Set(Some(code_double)), code_big: code_big.into(),
hundred: Set(Some(numbers[0])), code_single: code_single.into(),
ten: Set(Some(numbers[1])), code_double: code_double.into(),
one: Set(Some(numbers[2])), hundred: numbers[0].into(),
sum_hundred_one: Set(Some(numbers[0] + numbers[2])), ten: numbers[1].into(),
sum_hundred_ten: Set(Some(numbers[0] + numbers[1])), one: numbers[2].into(),
sum_ten_one: Set(Some(numbers[1] + numbers[2])), sum_hundred_one: (numbers[0] + numbers[2]).into(),
group_type: Set(Some(group_type)), sum_hundred_ten: (numbers[0] + numbers[1]).into(),
..Default::default() sum_ten_one: (numbers[1] + numbers[2]).into(),
}; group_type: group_type.into(),
new_model.insert(&db).await.expect("insert error"); ..Default::default()
};
let new_model = sd::ActiveModel::from(sd_model);
new_model.insert(&db).await.map_err(|_e| "福彩3D数据插入失败")?;
}
} else if issue_type == "pls" { } else if issue_type == "pls" {
let group_type = if unique_numbers.len() == 3 { 6 } else if unique_numbers.len() == 2{ 3 } else {1}; let pls_record = Pls::find().filter(pls::Column::DrawIssue.eq(issue.clone())).one(&db).await.map_err(|e| e.to_string())?;
let new_model = pls::ActiveModel { if pls_record.is_none() {
draw_issue: Set(Some(issue)), let group_type = if unique_numbers.len() == 3 { 6 } else if unique_numbers.len() == 2{ 3 } else {1};
draw_code: Set(Some(ball)), let pls_model = pls::Model {
draw_date: Set(Some(date)), draw_issue:issue.into(),
created_at: Set(Some(Local::now().naive_local())), draw_code: ball.into(),
sum_num: Set(Some(sum)), draw_date: Some(date),
code_small: Set(Some(code_small)), created_at: Some(Local::now().naive_local()),
code_big: Set(Some(code_big)), sum_num: sum.into(),
code_single: Set(Some(code_single)), code_small: code_small.into(),
code_double: Set(Some(code_double)), code_big: code_big.into(),
hundred: Set(Some(numbers[0])), code_single: code_single.into(),
ten: Set(Some(numbers[1])), code_double: code_double.into(),
one: Set(Some(numbers[2])), hundred: numbers[0].into(),
sum_hundred_one: Set(Some(numbers[0] + numbers[2])), ten: numbers[1].into(),
sum_hundred_ten: Set(Some(numbers[0] + numbers[1])), one: numbers[2].into(),
sum_ten_one: Set(Some(numbers[1] + numbers[2])), sum_hundred_one: (numbers[0] + numbers[2]).into(),
group_type: Set(Some(group_type)), sum_hundred_ten: (numbers[0] + numbers[1]).into(),
..Default::default() sum_ten_one: (numbers[1] + numbers[2]).into(),
}; group_type: group_type.into(),
new_model.insert(&db).await.expect("insert error"); ..Default::default()
};
let new_model = pls::ActiveModel::from(pls_model);
new_model.insert(&db).await.map_err(|_e| "排列3数据插入失败")?;
}
} else if issue_type == "plw" { } else if issue_type == "plw" {
let new_model = plw::ActiveModel { let plw_record = Plw::find().filter(plw::Column::DrawIssue.eq(issue.clone())).one(&db).await.map_err(|e| e.to_string())?;
draw_issue: Set(Some(issue)), if plw_record.is_none() {
draw_code: Set(Some(ball)), let plw_model = plw::Model {
draw_date: Set(Some(date)), draw_issue:issue.into(),
created_at: Set(Some(Local::now().naive_local())), draw_code: ball.into(),
sum_num: Set(Some(sum)), draw_date: Some(date),
code_small: Set(Some(code_small)), created_at: Some(Local::now().naive_local()),
code_big: Set(Some(code_big)), sum_num: sum.into(),
code_single: Set(Some(code_single)), code_small: code_small.into(),
code_double: Set(Some(code_double)), code_big: code_big.into(),
ten_thousand: Set(Some(numbers[0])), code_single: code_single.into(),
thousand: Set(Some(numbers[1])), code_double: code_double.into(),
hundred: Set(Some(numbers[2])), ten_thousand: numbers[0].into(),
ten: Set(Some(numbers[3])), thousand: numbers[1].into(),
one: Set(Some(numbers[4])), hundred: numbers[2].into(),
sum_hundred_one: Set(Some(numbers[2] + numbers[4])), ten: numbers[3].into(),
sum_hundred_ten: Set(Some(numbers[2] + numbers[3])), one: numbers[4].into(),
sum_ten_one: Set(Some(numbers[3] + numbers[4])), sum_hundred_one: (numbers[2] + numbers[4]).into(),
sum_first_3: Set(Some(numbers[0] + numbers[1] + numbers[2])), sum_hundred_ten: (numbers[2] + numbers[3]).into(),
sum_next_3: Set(Some(numbers[2] + numbers[3] + numbers[4])), sum_ten_one: (numbers[3] + numbers[4]).into(),
..Default::default() sum_first_3: (numbers[0] + numbers[1] + numbers[2]).into(),
}; sum_next_3: (numbers[1] + numbers[2] + numbers[3]).into(),
new_model.insert(&db).await.expect("insert error"); ..Default::default()
};
let new_model = plw::ActiveModel::from(plw_model);
new_model.insert(&db).await.map_err(|_e| "排列五数据插入失败")?;
}
} }
// 返回获取的数据 // 返回获取的数据
Ok(ret_val) Ok(ret_val)

View File

@ -2,7 +2,7 @@
use sea_orm::entity::prelude::*; use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] #[derive(Clone, Debug, Default, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "pls")] #[sea_orm(table_name = "pls")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]

View File

@ -2,7 +2,7 @@
use sea_orm::entity::prelude::*; use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] #[derive(Clone, Debug, Default, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "plw")] #[sea_orm(table_name = "plw")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]

View File

@ -2,7 +2,7 @@
use sea_orm::entity::prelude::*; use sea_orm::entity::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)] #[derive(Clone, Debug, Default, PartialEq, DeriveEntityModel, Eq)]
#[sea_orm(table_name = "sd")] #[sea_orm(table_name = "sd")]
pub struct Model { pub struct Model {
#[sea_orm(primary_key)] #[sea_orm(primary_key)]