DeepSeek在编写代码方面,也没有大家说的那么神。
[*]pub async fn get_order_list(&self,[*] mobile: String,
[*] token: Option,
[*] db: Arc,
[*] req_encrypt: EncryptedMessage,
[*] ) -> Result {
[*] let mut query = Payments::find();
[*] let decrypted_message = EncryptedMessage::decrypt_message(
[*] &req_encrypt,
[*] &token.clone().unwrap_or_default(),
[*] )
[*] .map_err(|e| {
[*] eprintln!("Decryption error: {}", e);
[*] warp::reject::custom(crate::models::utils::DatabaseError("Decryption failed".into()))
[*] })?;
[*] let req:QueryOrderRequest = serde_json::from_str(&decrypted_message).map_err(|e| {
[*] eprintln!("Deserialization error: {}", e);
[*] warp::reject::custom(crate::models::utils::DatabaseError("Invalid request format".into()))
[*] })?;
[*]
[*] let user = match User::find()
[*] .filter(user::Column::Username.contains(mobile.as_str()))
[*] .one(&*db)
[*] .await
[*] {
[*] Ok(Some(emp)) => emp,
[*] Ok(None) => {
[*] return Ok(send_error_message(404,"failed".to_string(),"404 - 用户不存在".to_string(),None));
[*] }
[*] Err(e) => {
[*] eprintln!("DB query error: {:?}", e);
[*]
[*] return Ok(send_error_message(404,"failed".to_string(),"404 - 数据库查询失败".to_string(),None));
[*] }
[*] };
[*]
[*] let order_list_result = query
[*] .filter(Payments::Column::UserId.contains(user.id.to_string()))
[*] .limit(req.limit)
[*] .offset(req.page * req.limit)
[*] .all(&*db)
[*] .await;
[*]
[*] let order_list = match order_list_result {
[*] Ok(order_list) => order_list,
[*] Err(e) => {
[*] eprintln!("DB query error: {:?}", e);
[*] return Ok(send_error_message(404,"failed".to_string(),"404 - 数据库查询失败".to_string(),None));
[*] }
[*]
[*] };
[*]
[*] let total_result = Payments::find()
[*] .filter(Payments::Column::UserId.contains(user.id.to_string()))
[*] .count()
[*] .all(&*db);
[*]
[*]
[*]
[*]
[*] }复制代码
这个rust的let total_result = Payments::find()
.filter(Payments::Column::UserId.contains(user.id.to_string()))
.count()
.all(&*db);
是错误的。请帮我纠正它
如果 得出。
let total_result = Payments::find()
.filter(Payments::Column::UserId.eq(user.id)) // 使用eq匹配数值类型,移除不必要的字符串转换
.count(&*db)// 直接执行计数查询
.await; // 异步等待结果
这就是错误的。实际上编译不过去。count 方法缺少引用。
你问它是不是缺少引用。然后就一本正经的胡说八道了。
GPT。经过引导能正确给出
[*] let page = req.page; // 默认第 1 页
[*] let page_size = req.limit; // 默认每页 10 条
[*]
[*] // 创建分页器
[*] let paginator = query.paginate(&*db, page_size as u64);
[*]
[*] // 获取总数
[*] let total = paginator
[*] .num_items()
[*] .await
[*] .map_err(|e| {
[*] eprintln!("Error fetching total count: {}", e);
[*] return Ok(send_error_message(404,"failed".to_string(),"404 - 数据库查询失败".to_string(),None));
[*] })?;
[*]
[*] // 获取当前页的员工列表
[*] let order_list_result = paginator
[*] .fetch_page((page - 1) as usize as u64) // page-1 因为 fetch_page 从 0 开始
[*] .await;
[*]复制代码
https://url.tz/ap9qud1
哪个好用用哪个 没有必要非要分出个绝对的高低
能打破垄断把价格打下来就是好事 可以先检查一下有没有开深度思考(R1),不开的话V3版本还是差了点,开了智力直接提升一个数量级
static/image/smiley/default/lol.gif
页:
[1]