扫码登陆

This commit is contained in:
tanglong 2026-02-03 16:07:59 +08:00
parent 195c1d6d72
commit 2d5dcdcf83
4 changed files with 48 additions and 30 deletions

View File

@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Mvc;
using YD_WeChatApplet.Api.Services.Interface;
using YD_WeChatApplet.Commons.Dto.HomeWork;
using YD_WeChatApplet.Commons.Dto.JingShiTiJiao;
using YD_WeChatApplet.Commons.Dto.Patriarch;
using YD_WeChatApplet.Services;
@ -25,14 +26,29 @@ namespace YD_WeChatApplet.Api.Controllers
/// <summary>
/// Ai一体机扫描登录
/// </summary>
/// <param name="code"></param>
/// <param name="schoolCode"></param>
/// <param name="teacherNo"></param>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("ScanCodeLogin")]
public async Task<bool> ScanCodeLogin(string code, string? schoolCode = null, string? teacherNo = null)
public async Task<bool> ScanCodeLogin(ScanCodeLoginRequest request)
{
return await _frameworkService.ScanCodeLogin(code, schoolCode, teacherNo);
if (request==null)
{
throw new Exception("参数为空!");
}
if (string.IsNullOrWhiteSpace(request.Code))
{
throw new Exception("设备编号为空!");
}
if (string.IsNullOrWhiteSpace(request.SchoolCode))
{
throw new Exception("学校编号为空!");
}
if (string.IsNullOrWhiteSpace(request.TeacherNo))
{
throw new Exception("老师编号为空!");
}
return await _frameworkService.ScanCodeLogin(request);
}
}
}

View File

@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
using YD_WeChatApplet.Api.Services.Interface;
using YD_WeChatApplet.Api.SmartSportsEntitys;
using YD_WeChatApplet.Api.Utilities;
using YD_WeChatApplet.Commons.Dto.JingShiTiJiao;
using YD_WeChatApplet.Context;
namespace YD_WeChatApplet.Api.Services.Impl
@ -21,27 +22,13 @@ namespace YD_WeChatApplet.Api.Services.Impl
/// <summary>
/// Ai一体机扫描登录
/// </summary>
/// <param name="code"></param>
/// <param name="schoolCode"></param>
/// <param name="teacherNo"></param>
/// <param name="request"></param>
/// <returns></returns>
public async Task<bool> ScanCodeLogin(string code, string? schoolCode = null, string? teacherNo = null)
public async Task<bool> ScanCodeLogin(ScanCodeLoginRequest request)
{
// 如果 schoolCode 为空,则取当前登录用户的 SchoolCode
if (string.IsNullOrWhiteSpace(schoolCode))
{
schoolCode = UserLoginContext.Current.SchoolCode;
}
// 如果 teacherNo 为空,则取当前登录用户的 UserNo
if (string.IsNullOrWhiteSpace(teacherNo))
{
teacherNo = UserLoginContext.Current.UserNo;
}
// 先检查是否已存在相同的记录
var exist = await _sportsContext.Ai_ScanCodeLogin
.AnyAsync(x => x.Code == code && x.SchoolCode == schoolCode);
.AnyAsync(x => x.Code == request.Code && x.SchoolCode == request.SchoolCode);
if (exist)
return true; // 已存在,认为成功
@ -49,10 +36,10 @@ namespace YD_WeChatApplet.Api.Services.Impl
// 不存在则添加
var entity = new Ai_ScanCodeLogin
{
Code = code,
SchoolCode = schoolCode,
Code = request.Code,
SchoolCode = request.SchoolCode,
TeacherId = 0,
TeacherPhoneNo = teacherNo,
TeacherPhoneNo = request.TeacherNo,
CreateDate = DateTime.Now
};

View File

@ -1,4 +1,6 @@
namespace YD_WeChatApplet.Api.Services.Interface
using YD_WeChatApplet.Commons.Dto.JingShiTiJiao;
namespace YD_WeChatApplet.Api.Services.Interface
{
/// <summary>
/// 公共接口
@ -8,10 +10,8 @@
/// <summary>
/// Ai一体机扫描登录
/// </summary>
/// <param name="code"></param>
/// <param name="schoolCode"></param>
/// <param name="teacherNo"></param>
/// <param name="request"></param>
/// <returns></returns>
Task<bool> ScanCodeLogin(string code, string? schoolCode = null, string? teacherNo = null);
Task<bool> ScanCodeLogin(ScanCodeLoginRequest request);
}
}

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YD_WeChatApplet.Commons.Dto.JingShiTiJiao
{
public class ScanCodeLoginRequest
{
public string Code { get; set; } = null!;
public string SchoolCode { get; set; } = null!;
public string TeacherNo { get; set; } = null!;
}
}