|
- using Nancy;
- using Learun.Util;
- using System.Collections.Generic;
- using Learun.Application.TwoDevelopment.EducationalAdministration;
- using static Learun.Application.WebApi.Modules.StuInfoFreshApi;
- using System;
- using System.IO;
- using Learun.Application.Base.SystemModule;
- using System.Net;
- using System.Linq;
-
- namespace Learun.Application.WebApi
- {
- /// <summary>
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 力软敏捷开发框架
- /// Copyright (c) 2013-2018 上海力软信息技术有限公司
- /// 创 建:超级管理员
- /// 日 期:2019-08-19 17:50
- /// 描 述:教师注册
- /// </summary>
-
- public class EmpInfoApi : BaseNoLoginApi
- {
- private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL();
- private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
- private TeachSwitchIBLL teachSwitchIBLL = new TeachSwitchBLL();
- private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
-
- /// <summary>
- /// 注册接口
- /// <summary>
- public EmpInfoApi()
- //: base("/Learun/adms/EducationalAdministration/EmpRegister")
- : base()
- {
- Get["/Learun/adms/EducationalAdministration/EmpRegister/pagelist"] = GetPageList;
- Get["/Learun/adms/EducationalAdministration/EmpRegister/list"] = GetList;
- Get["/Learun/adms/EducationalAdministration/EmpRegister/form"] = GetForm;
- Get["/Learun/adms/EducationalAdministration/EmpRegister/formForNo"] = GetFormForNo;
- Post["/Learun/adms/EducationalAdministration/EmpRegister/delete"] = DeleteForm;
- Post["/Learun/adms/EducationalAdministration/EmpRegister/save"] = SaveForm;
- Post["/Learun/adms/EducationalAdministration/EmpRegister/savePhoto"] = GetSavePhoto;
- Get["/Learun/adms/EducationalAdministration/EmpRegister/registerbutton"] = RegisterButton;
- Post["/Learun/adms/EducationalAdministration/EmpRegister/signon"] = Signon;
- //根据身份证号更新学生和老师的照片
- Post["/EducationalAdministration/EmpRegister/updatePhotoByIdCard"] = UpdatePhotoByIdCard;
- }
-
- private Response Signon(dynamic _)
- {
- SignUpHelper.AddQueue("德玛西亚", "140181199110080255");
- return Success("成功");
- }
-
- #region 获取数据
-
- /// <summary>
- /// 获取页面显示列表分页数据
- /// <summary>
- /// <param name="_"></param>
- /// <returns></returns>
- public Response GetPageList(dynamic _)
- {
- ReqPageParam parameter = this.GetReqData<ReqPageParam>();
- var data = empInfoIBLL.GetPageList(parameter.pagination, parameter.queryJson);
- var jsonData = new
- {
- rows = data,
- total = parameter.pagination.total,
- page = parameter.pagination.page,
- records = parameter.pagination.records
- };
- return Success(jsonData);
- }
- /// <summary>
- /// 获取页面显示列表数据
- /// <summary>
- /// <param name="_"></param>
- /// <returns></returns>
- public Response GetList(dynamic _)
- {
- string queryJson = this.GetReqData();
- var data = empInfoIBLL.GetList(queryJson);
- return Success(data);
- }
-
-
- public Response RegisterButton(dynamic _)
- {
- var result = teachSwitchIBLL.FindFirst("js").ToString();
- return Success(result);
- }
- /// <summary>
- /// 获取表单数据
- /// <summary>
- /// <param name="_"></param>
- /// <returns></returns>
- public Response GetForm(dynamic _)
- {
- string keyValue = this.GetReqData();
- var EmpInfoData = empInfoIBLL.GetEmpInfoEntity(keyValue);
- var jsonData = new
- {
- EmpInfo = EmpInfoData,
- };
- return Success(jsonData);
- }
- /// <summary>
- /// 获取表单数据
- /// <summary>
- /// <param name="_"></param>
- /// <returns></returns>
- public Response GetFormForNo(dynamic _)
- {
- string keyValue = this.GetReqData();
- var EmpInfoData = empInfoIBLL.GetEmpInfoEntityByEmpNo(keyValue);
- var jsonData = new
- {
- EmpInfo = EmpInfoData,
- };
- return Success(jsonData);
- }
- #endregion
-
- #region 提交数据
-
-
- /// <summary>
- /// 头像
- /// </summary>
- /// <param name="_"></param>
- /// <returns></returns>
- private Response GetSavePhoto(dynamic _)
- {
- var model = this.GetReqData<PhotoModel>();
-
- var folderId = Guid.NewGuid().ToString();
- string filePath = Config.GetValue("AnnexesFile");
- string uploadDate = DateTime.Now.ToString("yyyyMMdd");
- string FileEextension = ".png";
- string fileGuid = Guid.NewGuid().ToString();
- string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, model.account, uploadDate, fileGuid, FileEextension);
-
- //创建文件夹
- string path = Path.GetDirectoryName(virtualPath);
- Directory.CreateDirectory(path);
- AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
- if (!System.IO.File.Exists(virtualPath))
- {
- //byte[] bytes = Convert.FromBase64String(model.Base64Url.Replace("data:image/jpeg;base64,", ""));
- byte[] bytes = Convert.FromBase64String(model.Base64Url.Substring(model.Base64Url.IndexOf("base64,") + 7));
- FileInfo file = new FileInfo(virtualPath);
- FileStream fs = file.Create();
- fs.Write(bytes, 0, bytes.Length);
- fs.Close();
-
- //文件信息写入数据库
- fileAnnexesEntity.F_Id = fileGuid;
- fileAnnexesEntity.F_FileName = "userphoto.png";
- fileAnnexesEntity.F_FilePath = virtualPath;
- fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
- fileAnnexesEntity.F_FileExtensions = FileEextension;
- fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
- annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
- }
-
- var data = new
- {
- Url = virtualPath.Substring(virtualPath.IndexOf("Resource")),
- AnnexesFileId = fileGuid
- };
-
- return Success(data);
- }
-
- /// <summary>
- /// 删除实体数据
- /// <param name="_"></param>
- /// <summary>
- /// <returns></returns>
- public Response DeleteForm(dynamic _)
- {
- string keyValue = this.GetReqData();
- empInfoIBLL.DeleteEntity(keyValue);
- return Success("删除成功!");
- }
- /// <summary>
- /// 保存实体数据(新增、修改)
- /// <param name="_"></param>
- /// <summary>
- /// <returns></returns>
- public Response SaveForm(dynamic _)
- {
- ReqFormEntity parameter = this.GetReqData<ReqFormEntity>();
- EmpInfoEntity entity = parameter.strEntity.ToObject<EmpInfoEntity>();
- empInfoIBLL.SaveEntity(this.userInfo, parameter.keyValue, entity);
- return Success("保存成功!");
- }
-
-
- /// <summary>
- /// 根据身份证号更新学生和老师的照片
- /// </summary>
- /// <param name="_"></param>
- /// <returns></returns>
- private Response UpdatePhotoByIdCard(dynamic _)
- {
- //传参
- var requestModels = this.GetReq<List<RequestModel>>();
- //回参
- var responseModels = new List<ResponseModel>();
- //限制每次最多传值50条
- if (requestModels.Count() > 50)
- {
- return Fail("限制每次最多传值50条");
- }
- //图片保存的文件夹地址
- string FileEextension = ".png";
- string directoryPathOfEmp = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "ApiOfUpdatePhotoByIdCard", "Teacher");
- string directoryPathOfStu = string.Format("{0}/{1}/{2}", Config.GetValue("AnnexesFile"), "ApiOfUpdatePhotoByIdCard", "Student");
- if (!Directory.Exists(directoryPathOfEmp))
- {
- Directory.CreateDirectory(directoryPathOfEmp);
- };
- if (!Directory.Exists(directoryPathOfStu))
- {
- Directory.CreateDirectory(directoryPathOfStu);
- };
- //循环处理
- foreach (var item in requestModels)
- {
- if (item.IdentityFlag == 1)//老师
- {
- var entity = empInfoIBLL.GetEmpInfoEntityByIdCard(item.IdCard);
- if (entity == null)
- {
- var pmodel = new ResponseModel()
- {
- IdCard = item.IdCard,
- OperateFlag = false,
- FailMsg = "该身份证号的教师信息不存在!"
- };
- responseModels.Add(pmodel);
- }
- else
- {
- //图片地址
- var imgPath = string.Format("{0}/{1}{2}", directoryPathOfEmp, item.IdCard, FileEextension);
- //下载图片到本地
- //WebClient my = new WebClient();
- //byte[] mybyte = my.DownloadData(item.PhotoUrl);
- //FileInfo file = new FileInfo(imgPath);
- //FileStream fs = file.Create();
- //fs.Write(mybyte, 0, mybyte.Length);
- //fs.Close();
-
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(item.PhotoUrl);
- request.Timeout = 5000;
- long len = 0;
- try
- {
- var wresp = (HttpWebResponse)request.GetResponse();
- var stream = wresp.GetResponseStream();
- System.Drawing.Image.FromStream(stream).Save(imgPath, System.Drawing.Imaging.ImageFormat.Png);
- len = wresp.ContentLength;
- stream.Close();
- wresp.Close();
- }
- catch (Exception ex)
- {
- //回参
- var pmodel2 = new ResponseModel()
- {
- IdCard = item.IdCard,
- OperateFlag = false,
- FailMsg = "请求图片地址失败!" + ex.Message
- };
- responseModels.Add(pmodel2);
-
- continue;
- }
-
- //图片地址保存到LR_Base_AnnexesFile表中
- var folderId = Guid.NewGuid().ToString();
- AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
- fileAnnexesEntity.F_Id = Guid.NewGuid().ToString();
- fileAnnexesEntity.F_FileName = string.Format("{0}{1}", item.IdCard, FileEextension);
- fileAnnexesEntity.F_FilePath = imgPath;
- fileAnnexesEntity.F_FileSize = len.ToString();
- fileAnnexesEntity.F_FileExtensions = FileEextension;
- fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
- annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
- //更新EmpInfo表照片字段
- entity.Photo = folderId;
- empInfoIBLL.SaveEntity(entity.EmpId, entity);
- //回参
- var pmodel = new ResponseModel()
- {
- IdCard = item.IdCard,
- OperateFlag = true
- };
- responseModels.Add(pmodel);
- }
- }
- else if (item.IdentityFlag == 2)//学生
- {
- var entity = stuInfoBasicIBLL.GetStuInfoBasicEntityByIdCard(item.IdCard);
- if (entity == null)
- {
- var pmodel = new ResponseModel()
- {
- IdCard = item.IdCard,
- OperateFlag = false,
- FailMsg = "该身份证号的学生信息不存在!"
- };
- responseModels.Add(pmodel);
- }
- else
- {
- //图片地址
- var imgPath = string.Format("{0}/{1}{2}", directoryPathOfStu, item.IdCard, FileEextension);
- //下载图片到本地
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(item.PhotoUrl);
- request.Timeout = 5000;
- long len = 0;
- try
- {
- var wresp = (HttpWebResponse)request.GetResponse();
- var stream = wresp.GetResponseStream();
- System.Drawing.Image.FromStream(stream).Save(imgPath, System.Drawing.Imaging.ImageFormat.Png);
- len = wresp.ContentLength;
- stream.Close();
- wresp.Close();
- }
- catch (Exception ex)
- {
- //回参
- var pmodel2 = new ResponseModel()
- {
- IdCard = item.IdCard,
- OperateFlag = false,
- FailMsg = "请求图片地址失败!" + ex.Message
- };
- responseModels.Add(pmodel2);
-
- continue;
- }
-
- //图片地址保存到LR_Base_AnnexesFile表中
- var folderId = Guid.NewGuid().ToString();
- AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
- fileAnnexesEntity.F_Id = Guid.NewGuid().ToString();
- fileAnnexesEntity.F_FileName = string.Format("{0}{1}", item.IdCard, FileEextension);
- fileAnnexesEntity.F_FilePath = imgPath;
- fileAnnexesEntity.F_FileSize = len.ToString();
- fileAnnexesEntity.F_FileExtensions = FileEextension;
- fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
- annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
- //更新StuInfoBasic表照片字段
- entity.Photo = folderId;
- stuInfoBasicIBLL.SaveEntity(entity.StuId, entity);
- //回参
- var pmodel = new ResponseModel()
- {
- IdCard = item.IdCard,
- OperateFlag = true
- };
- responseModels.Add(pmodel);
- }
- }
- else
- {
- var pmodel = new ResponseModel()
- {
- IdCard = item.IdCard,
- OperateFlag = false,
- FailMsg = "身份标识不存在!"
- };
- responseModels.Add(pmodel);
- }
- }
-
- return Success(responseModels);
-
- }
-
- #endregion
-
- #region 私有类
-
- /// <summary>
- /// 表单实体类
- /// <summary>
- private class ReqFormEntity
- {
- public string keyValue { get; set; }
- public string strEntity { get; set; }
- }
- /// <summary>
- /// 更新照片传参
- /// </summary>
- private class RequestModel
- {
- /// <summary>
- /// 身份证号
- /// </summary>
- public string IdCard { get; set; }
- /// <summary>
- /// 照片地址
- /// </summary>
- public string PhotoUrl { get; set; }
- /// <summary>
- /// 身份标识(1老师,2学生)
- /// </summary>
- public int IdentityFlag { get; set; }
-
- }
- /// <summary>
- /// 更新照片回参
- /// </summary>
- private class ResponseModel
- {
- /// <summary>
- /// 身份证号
- /// </summary>
- public string IdCard { get; set; }
- /// <summary>
- /// 操作标识(true更新成功,false更新失败)
- /// </summary>
- public bool OperateFlag { get; set; }
- /// <summary>
- /// 更新失败原因
- /// </summary>
- public string FailMsg { get; set; }
- }
- #endregion
-
- }
- }
|