From 326eead888b31d77dbd8e6b6f5e42450b1f2e6a9 Mon Sep 17 00:00:00 2001 From: liangkun Date: Fri, 19 Aug 2022 17:07:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E8=84=B8=E6=8E=A5=E5=8F=A3=E3=80=81?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...化智慧校园基础信息接口V1.0.docx | Bin 33645 -> 36696 bytes .../Learun.Application.WebApi.csproj | 1 + .../Modules/Arrangelesson.cs | 92 ++++++++++++++++++ .../Modules/StuInfoFreshApi.cs | 7 +- .../StuInfoFresh/StuInfoFreshBLL.cs | 19 ++++ .../StuInfoFresh/StuInfoFreshIBLL.cs | 1 + .../StuInfoFresh/StuInfoFreshService.cs | 34 ++++++- 7 files changed, 149 insertions(+), 5 deletions(-) diff --git a/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx b/Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx index 6b72618489457ea93d03c75d9d5083b02ee05ed7..0dfb584e1cc9e73c695aaf67106b6c84f35db36c 100644 GIT binary patch delta 22226 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 I=>M$#AN2A4r2qf` delta 19126 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
  • DNn5heVd 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 S6Rj5&2B@TpGic&|jQ$7SUcNs7 diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj index 35d60c2f6..b15e9bd60 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj @@ -106,6 +106,7 @@ False ..\packages\Oracle.ManagedDataAccess.EntityFramework.12.1.2400\lib\net45\Oracle.ManagedDataAccess.EntityFramework.dll + diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs index 02a7431ae..6f91ae6e3 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.Configuration; using System.Linq; using System.Web; +using Learun.Application.Base.SystemModule; using Learun.Application.Organization; using Learun.Application.TwoDevelopment.EducationalAdministration; using Nancy; @@ -54,6 +56,9 @@ namespace Learun.Application.WebApi.Modules Get["trantest"] = TranTest; //按条件重置基础数据同步状态 Get["/initbasicdata"] = InitBasicData; + Get["/getnewstudentlist"] = GetNewStudentList; + Post["/newstudentcompare"] = NewStudentCompare; + } private readonly ArrangeLessonTermIBLL arrangeLessonTermIBLL = new ArrangeLessonTermBLL(); @@ -70,6 +75,8 @@ namespace Learun.Application.WebApi.Modules private StuSelectLessonListOfElectiveIBLL stuSelectLessonListOfElectiveIbll = new StuSelectLessonListOfElectiveBLL(); + private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); + private StuInfoFreshIBLL stuInfoFreshIBLL = new StuInfoFreshBLL(); private Response TranTest(dynamic _) { @@ -341,5 +348,90 @@ namespace Learun.Application.WebApi.Modules var result = allList.Select(x => new { x.BuKaoFlag, x.AcademicYearNo, x.Semester, x.StuId, x.StuName, x.LessonId, x.LessonName, x.ClassId, x.ClassName, x.EmpId, x.EmpName }).OrderBy(x => x.BuKaoFlag).ThenByDescending(x => x.AcademicYearNo).ThenByDescending(x => x.Semester).ThenBy(x => x.StuId); return Success(result); } + + /// + /// 新生对接人脸平台接口 + /// + /// + /// + public Response GetNewStudentList(dynamic _) + { + string webrootpath = ConfigurationManager.AppSettings["webrootpath"]; + string grade = Request.Query["Grade"]; + if (string.IsNullOrEmpty(grade)) + { + return Fail("缺少参数:Grade"); + } + string query = "{\"Grade\":\"" + grade + "\"}"; + var list = stuInfoFreshIBLL.GetList2(query).Where(m => !string.IsNullOrEmpty(m.ExamPhoto)); + foreach (var item in list) + { + var annexesFileEntity = annexesFileIBLL.GetEntityByFolderId(item.ExamPhoto); + if (annexesFileEntity != null && annexesFileEntity.F_FilePath.IndexOf("Resource") != -1) + { + item.ExamPhoto = webrootpath + "/" + annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource")); + } + } + return Success(list.Select(m => new + { + m.StuNo, + m.IdentityCardNo, + m.ksh, + m.StuName, + m.GenderNo, + m.ProvinceNo, + m.MajorName, + m.ClassName, + m.ExamPhoto + })); + } + + public class StudentCompareEntity + { + /// + /// 身份号码 + /// + public string IdentityCardNo { get; set; } + /// + /// 核验结果 + /// + public int PhotoCheckStatus { get; set; } + /// + /// 身份证照片URL + /// + public string IdentPhoto { get; set; } + /// + /// 现场照片URL + /// + public string ScenePhoto { get; set; } + + } + /// + /// 身份核验结果 + /// + /// + /// + public Response NewStudentCompare(dynamic _) + { + StudentCompareEntity studentCompareEntity = this.GetReq(); + if (studentCompareEntity==null) + { + return Fail("传入参数有误"); + } + if (string.IsNullOrEmpty(studentCompareEntity.IdentityCardNo)) + { + return Fail("传入参数:身份证号不能为空"); + } + if (string.IsNullOrEmpty(studentCompareEntity.ScenePhoto)) + { + return Fail("传入参数:现场照片URL不能为空"); + } + if (string.IsNullOrEmpty(studentCompareEntity.IdentPhoto)) + { + return Fail("传入参数:身份证照片URL不能为空"); + } + stuInfoFreshIBLL.SaveStudentCompare(studentCompareEntity.IdentityCardNo, studentCompareEntity.PhotoCheckStatus, studentCompareEntity.IdentPhoto, studentCompareEntity.ScenePhoto); + return Success("ok"); + } } } \ No newline at end of file diff --git a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/StuInfoFreshApi.cs b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/StuInfoFreshApi.cs index 0733c7fe2..f13febd48 100644 --- a/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/StuInfoFreshApi.cs +++ b/Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/StuInfoFreshApi.cs @@ -1,5 +1,8 @@ using System; +using System.Activities.Statements; using System.Collections.Generic; +using System.Configuration; +using System.Data.Entity.Infrastructure.Design; using System.IO; using System.Linq; using System.Web; @@ -349,6 +352,8 @@ namespace Learun.Application.WebApi.Modules return Success("保存成功!"); } + + #region 私有类 /// @@ -393,7 +398,7 @@ namespace Learun.Application.WebApi.Modules /// /// 贷款回执码状态 /// - public string StudentLoanStatus { get; set; } + public string StudentLoanStatus { get; set; } /// /// 办理贷款状态 /// diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshBLL.cs index 8e32e5404..323bbb315 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshBLL.cs @@ -1032,6 +1032,25 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration } } + public void SaveStudentCompare(string identityCardNo, int photoCheckStatus, string identPhoto, string scenePhoto) + { + try + { + stuInfoFreshService.SaveStudentCompare(identityCardNo, photoCheckStatus, identPhoto, scenePhoto); + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowBusinessException(ex); + } + } + } + #endregion } } diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshIBLL.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshIBLL.cs index a7a0bce7a..95bb8df9b 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshIBLL.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshIBLL.cs @@ -256,5 +256,6 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration #endregion StuEnrollFeeOrderEntity GetStuEnrollFeeOrder(string keyValue, bool IsNewOrOld); + void SaveStudentCompare(string identityCardNo, int photoCheckStatus, string identPhoto, string scenePhoto); } } diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshService.cs index 180f1a50d..aea94072e 100644 --- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshService.cs +++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/StuInfoFresh/StuInfoFreshService.cs @@ -2089,14 +2089,14 @@ where bb.StuNo not in (select b.StuNo from StuInfoBasic b where b.StuNo=bb.StuNo #endregion - public StuEnrollFeeOrderEntity GetStuEnrollFeeOrder(string keyValue,bool IsNewOrOld) + public StuEnrollFeeOrderEntity GetStuEnrollFeeOrder(string keyValue, bool IsNewOrOld) { try { if (IsNewOrOld) { var stufreshinfo = BaseRepository("CollegeMIS").FindEntity(m => m.ID == keyValue); - int year =Convert.ToInt32("20" + stufreshinfo.Grade.ToString()); + int year = Convert.ToInt32("20" + stufreshinfo.Grade.ToString()); var model = BaseRepository("CollegeMIS").FindEntity(a => a.StuNo == stufreshinfo.StuNo && a.Status == 1 && a.billStatus == true && !string.IsNullOrEmpty(a.billUrl) && a.YearNo == year); if (model != null) { @@ -2109,7 +2109,7 @@ where bb.StuNo not in (select b.StuNo from StuInfoBasic b where b.StuNo=bb.StuNo } else { - var StuInfoBasic_PayFee =BaseRepository("CollegeMIS").FindEntity(m => m.Id == keyValue); + var StuInfoBasic_PayFee = BaseRepository("CollegeMIS").FindEntity(m => m.Id == keyValue); var model = BaseRepository("CollegeMIS").FindEntity(a => a.StuNo == StuInfoBasic_PayFee.StuNo && a.Status == 1 && a.billStatus == true && !string.IsNullOrEmpty(a.billUrl) && a.YearNo == StuInfoBasic_PayFee.PayYear); if (model != null) { @@ -2120,7 +2120,33 @@ where bb.StuNo not in (select b.StuNo from StuInfoBasic b where b.StuNo=bb.StuNo return null; } } - + + } + catch (Exception ex) + { + if (ex is ExceptionEx) + { + throw; + } + else + { + throw ExceptionEx.ThrowServiceException(ex); + } + } + } + + public void SaveStudentCompare(string identityCardNo, int photoCheckStatus, string identPhoto, string scenePhoto) + { + try + { + var stufresh = BaseRepository("CollegeMIS").FindEntity("select * from StuInfoFresh where IdentityCardNo='" + identityCardNo + "'"); + if (stufresh != null) + { + stufresh.PhotoCheckStatus = photoCheckStatus; + stufresh.IdentPhoto = identPhoto; + stufresh.ScenePhoto = scenePhoto; + BaseRepository().Update(stufresh); + } } catch (Exception ex) {