Browse Source

基础数据接口增加权限验证

西昌分支
dao 5 months ago
parent
commit
adb8daf683
8 changed files with 109 additions and 138 deletions
  1. +48
    -86
      Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx
  2. +1
    -0
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj
  3. +1
    -1
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs
  4. +11
    -0
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/ArrangelessonLogin.cs
  5. +13
    -46
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/BaseNoAuthenticationNoLogin.cs
  6. +1
    -5
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/TransferApi.cs
  7. +21
    -0
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Until/MyEnum.cs
  8. +13
    -0
      Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Attributes/EnumAttribute.cs

+ 48
- 86
Learun.Framework.Ultimate V7/Doc文档/数字化智慧校园基础信息接口V1.0.docx View File

@@ -11,11 +11,11 @@
V1.0 V1.0


接口服务器: 接口服务器:
学校服务器,部署地址:http://112.45.152.8:8083/
学校服务器,部署地址:http://10.30.0.10:9002/




调用方式: 调用方式:
标准http get请求
标准http get请求,数据接口需要在header中传参 token,否则无数据返回。
返回数据类型: 返回数据类型:
标准json 标准json
返回数据结构 返回数据结构
@@ -34,8 +34,24 @@ data
业务数据(object) 业务数据(object)
业务数据 业务数据


获取TOKEN
地址:http://部署地址/arrangelessonlogin/gettoken?sysid=1 sysid向管理员获取
属性
返回值
备注
code
200(int)
200成功 其余失败
info
响应成功(string)
状态描述
data
业务数据(object)
业务数据


部门接口 部门接口
地址:http:// /arrangelesson/department
地址:http://部署地址/arrangelessonlogin/department
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -71,7 +87,7 @@ F_OuterPhone




教师信息接口 教师信息接口
地址:http://部署地址/arrangelesson/allteacher
地址:http://部署地址/arrangelessonlogin/allteacher
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -108,7 +124,7 @@ mobile




学生信息接口 学生信息接口
地址:http://部署地址/arrangelesson/allstudent
地址:http://部署地址/arrangelessonlogin/allstudent
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -164,7 +180,7 @@ ClassNo




系部接口 系部接口
地址:http://部署地址/arrangelesson/alldept
地址:http://部署地址/arrangelessonlogin/alldept
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -184,7 +200,7 @@ DeptName


专业接口 专业接口
地址:http://部署地址/arrangelesson/allmajor
地址:http://部署地址/arrangelessonlogin/allmajor
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -207,7 +223,7 @@ DeptNo




校区接口 校区接口
地址:http://部署地址/arrangelesson/allschool
地址:http://部署地址/arrangelessonlogin/allschool
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -223,7 +239,7 @@ F_FullName


班级接口 班级接口
地址:http://部署地址/arrangelesson/allclass
地址:http://部署地址/arrangelessonlogin/allclass
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -255,7 +271,7 @@ Grade




用户接口 用户接口
地址:http://部署地址/arrangelesson/alluser
地址:http://部署地址/arrangelessonlogin/alluser
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -292,7 +308,7 @@ Year




课程接口 课程接口
地址:http://部署地址/arrangelesson/alllesson
地址:http://部署地址/arrangelessonlogin/alllesson
主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
@@ -323,7 +339,7 @@ F_SchoolId




必修开课计划接口 必修开课计划接口
地址:http://部署地址/arrangelesson/allclasslesson
地址:http://部署地址/arrangelessonlogin/allclasslesson
所需参数:AcademicYearNo=19-20&Semester=1 所需参数:AcademicYearNo=19-20&Semester=1
参数名称 参数名称
@@ -381,7 +397,7 @@ LessonTime




学生选修选课接口 学生选修选课接口
地址:http://部署地址/arrangelesson/allelelectivelesson
地址:http://部署地址/arrangelessonlogin/allelelectivelesson
所需参数:AcademicYearNo=19-20&Semester=1 所需参数:AcademicYearNo=19-20&Semester=1
参数名称 参数名称
@@ -423,95 +439,41 @@ LessonTime
16:20-17:05,17:15-18:00 两节课的时间 16:20-17:05,17:15-18:00 两节课的时间




新生信息接口(人脸平台)
地址:http://部署地址/arrangelesson/getnewstudentlist
所需参数:Grade =22
参数名称
备注
Grade
22
代表级别,22年级新生传22,23年传23

主要业务数据 其余字段可忽略
属性
返回值
备注
可否为空
StuNo
学号(string)


IdentityCardNo
身份证号(string)
根据身份证号更新照片接口
标准http post请求
地址:
http://部署地址/EducationalAdministration/EmpRegister/updatePhotoByIdCard
所需参数:(限制一次最多传值50条)



ksh
考生号(string)


StuName
学生姓名(string)


GenderNo
性别代码(string)
1男,0女

ProvinceNo
地区代码(string)


MajorName
专业名称


ClassName
班级名称


ExamPhoto
高考照片Url



新生核验结果接口(人脸平台)
地址:http://部署地址/arrangelesson/newstudentcompare
HTTP Post Content-Type=application/json
所需参数:{"IdentityCardNo":"xxxx","ScenePhoto":"xx","IdentPhoto":"xx","PhotoCheckStatus":"0"}
参数名称 参数名称
备注 备注
IdentityCardNo
身份证号(string)

ScenePhoto
现场照片URL(string)
IdCard


IdentPhoto
身份证照片URL(string)

PhotoCheckStatus
核验状态(int)
身份证号
PhotoUrl


照片地址
IdentityFlag
1、2
身份标识(1老师,2学生)


主要业务数据 其余字段可忽略 主要业务数据 其余字段可忽略
属性 属性
返回值 返回值
备注 备注
可否为空 可否为空
code
返回结果(string)
200表示成功,其他失败
IdCard


info
返回结果说明(string)
身份证号


data
忽略
OperateFlag
true , false
操作标识(true更新成功,false更新失败)


FailMsg


更新失败原因







+ 1
- 0
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Learun.Application.WebApi.csproj View File

@@ -281,6 +281,7 @@
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Modules\UserApi.cs" /> <Compile Include="Modules\UserApi.cs" />
<Compile Include="Until\MyEnum.cs" />
<Compile Include="Until\ReqEntity.cs" /> <Compile Include="Until\ReqEntity.cs" />
<Compile Include="Until\ReqPageParam.cs" /> <Compile Include="Until\ReqPageParam.cs" />
<Compile Include="Modules\PersonnelManagement\ActivityScheduleApi.cs" /> <Compile Include="Modules\PersonnelManagement\ActivityScheduleApi.cs" />


+ 1
- 1
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/Arrangelesson.cs View File

@@ -10,7 +10,7 @@ using Nancy;


namespace Learun.Application.WebApi.Modules namespace Learun.Application.WebApi.Modules
{ {
public class Arrangelesson : BaseNoAuthentication
public class Arrangelesson : BaseApi
{ {
public Arrangelesson() public Arrangelesson()
: base("/arrangelesson/") : base("/arrangelesson/")


+ 11
- 0
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/ArrangelessonLogin.cs View File

@@ -4,7 +4,9 @@ using System.Linq;
using System.Web; using System.Web;
using Learun.Application.Organization; using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.EducationalAdministration; using Learun.Application.TwoDevelopment.EducationalAdministration;
using Learun.Util;
using Nancy; using Nancy;
using static Learun.Application.WebApi.Until.MyEnum;


namespace Learun.Application.WebApi.Modules namespace Learun.Application.WebApi.Modules
{ {
@@ -13,6 +15,7 @@ namespace Learun.Application.WebApi.Modules
public ArrangelessonLogin() public ArrangelessonLogin()
: base("/arrangelessonlogin/") : base("/arrangelessonlogin/")
{ {
Get["/gettoken"] = GetToken;
Get["/lessontype"] = GetLessonTypes; Get["/lessontype"] = GetLessonTypes;
Get["/classtype"] = GetClassType; Get["/classtype"] = GetClassType;
Get["/student"] = GetStudents; Get["/student"] = GetStudents;
@@ -71,6 +74,14 @@ namespace Learun.Application.WebApi.Modules
private StuSelectLessonListOfElectiveIBLL stuSelectLessonListOfElectiveIbll = private StuSelectLessonListOfElectiveIBLL stuSelectLessonListOfElectiveIbll =
new StuSelectLessonListOfElectiveBLL(); new StuSelectLessonListOfElectiveBLL();


private Response GetToken(dynamic _)
{
string sid = Request.Query["sysid"];
var sys = EnumAttribute.GetVal(typeof(ThrSys), sid.ToInt());
if (sys.IsEmpty()) return Fail("参数错误!");
var token=DESEncrypt.Encrypt(sys);
return Success(token);
}
private Response TranTest(dynamic _) private Response TranTest(dynamic _)
{ {
return Success("ok"); return Success("ok");


+ 13
- 46
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/BaseNoAuthenticationNoLogin.cs View File

@@ -5,7 +5,8 @@ using Learun.Util.Operat;
using Nancy; using Nancy;
using Nancy.ModelBinding; using Nancy.ModelBinding;
using System;//D:\Item\repos\DigitalScholl\Learun.Framework.Ultimate V7\Learun.Application.WebApi\Modules\TransferApi.cs using System;//D:\Item\repos\DigitalScholl\Learun.Framework.Ultimate V7\Learun.Application.WebApi\Modules\TransferApi.cs
using static Learun.Application.WebApi.TransferApi;
using System.Linq;
using static Learun.Application.WebApi.Until.MyEnum;


namespace Learun.Application.WebApi namespace Learun.Application.WebApi
{ {
@@ -96,7 +97,7 @@ namespace Learun.Application.WebApi
/// <returns></returns> /// <returns></returns>
public Response Success(string info) public Response Success(string info)
{ {
ResParameter res = new ResParameter { code = ResponseCode.success, info = info, data = new object { } };
ResParameter res = new ResParameter { code = ResponseCode.success, info = "响应成功", data = info };
return Response.AsText(res.ToJson()).WithContentType("application/json"); return Response.AsText(res.ToJson()).WithContentType("application/json");
} }
/// <summary> /// <summary>
@@ -226,10 +227,6 @@ namespace Learun.Application.WebApi
#endregion #endregion


#region 权限验证 #region 权限验证
public UserInfo userInfo;
public string loginMark;
public string token;

/// <summary> /// <summary>
/// 前置拦截器 /// 前置拦截器
@@ -238,50 +235,20 @@ namespace Learun.Application.WebApi
/// <returns></returns> /// <returns></returns>
private Response BeforeRequest(NancyContext ctx) private Response BeforeRequest(NancyContext ctx)
{ {
//var Requesttoken = DESEncrypt.Decrypt(Request.Headers["token"].ToString());
var Requesttoken = DESEncrypt.Decrypt(Request.Query["token"].ToString());

var a = EnumAttribute.GetVsS(typeof(loginins));

//if (Requesttoken == loginins.school)
//{

//}
ctx.Request.Url.Query = Learun.Util.WebHelper.Formatstr(ctx.Request.Url.Query);
foreach (var p in ctx.Parameters)
{
if (p.ParameterType == typeof(string))
{
if (ctx.Parameters[p.ParameterName] != null)
{
ctx.Parameters[p.ParameterName] = Learun.Util.WebHelper.Formatstr(ctx.Parameters[p.ParameterName].ToString());
}
}
}
string path = ctx.ResolvedRoute.Description.Path; string path = ctx.ResolvedRoute.Description.Path;
//验证登录状态
ReqParameter req = this.Bind<ReqParameter>();
loginMark = req.loginMark;
token = req.token;
if (path == "/learun/adms/user/login" || path == "/learun/adms/user/loginbyIdCard" || path == "/" || path == "/bgimg" || path == "/learun/adms/user/img" || path == "/learun/adms/desktop/img" || path == "/learun/adms/user/imgfordc" || path == "/learun/adms/timetable/timeTableData" || path == "/quanjiang/sso/authorize" || path == "/learun/nologin/adms/annexes/upload" || path == "/learun/adms/annexes/wxlist" || path == "/learun/visitmanage/save" || path == "/learun/visitmanage/getweixinaccess_token")
{// 登录接口,默认页面接口不做权限验证处理
if (path == "/arrangelessonlogin/gettoken")
{// token接口,默认页面接口不做权限验证处理
return null; return null;
} }
var rToken = ctx.Request.Headers["token"].FirstOrDefault();
if(rToken.IsEmpty()) return this.FailNoLogin("权限校验失败!");


OperatorResult res = OperatorHelper.Instance.IsOnLine(req.token, req.loginMark);
if (res.stateCode == -1)
{
return this.FailNoLogin("未找到登录信息");
}
if (res.stateCode == 0)
{
return this.FailNoLogin("登录信息已过期");
}
else
{
// 获取登录者信息
userInfo = res.userInfo;
}
var tss = EnumAttribute.GetVsS(typeof(ThrSys));

var Requesttoken = DESEncrypt.Decrypt(rToken);
if(!tss.Contains(Requesttoken)) return this.FailNoLogin("权限校验失败!!");

return null; return null;
} }
#endregion #endregion


+ 1
- 5
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/TransferApi.cs View File

@@ -462,11 +462,7 @@ namespace Learun.Application.WebApi
public string PersonPicturePath { get; set; } public string PersonPicturePath { get; set; }
} }


public enum loginins
{
school,
CODE,
}
#endregion #endregion


} }

+ 21
- 0
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Until/MyEnum.cs View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Learun.Application.WebApi.Until
{
public class MyEnum
{

public enum ThrSys
{
[Description("超星")]
ChaoXin=31233
}


}
}

+ 13
- 0
Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Util/Learun.Util/Attributes/EnumAttribute.cs View File

@@ -42,6 +42,19 @@ namespace Learun.Util
return null; return null;
} }


public static string GetVal(Type enumType,int value)
{
try
{
var name = enumType.GetEnumName(value);
return name;
}
catch (Exception e)
{
return "";
}
}

/// <summary> /// <summary>
/// 返回枚举项的描述信息。 /// 返回枚举项的描述信息。
/// </summary> /// </summary>


Loading…
Cancel
Save