using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using Learun.Application.Base.SystemModule; using Learun.Application.TwoDevelopment.EducationalAdministration; using Learun.Application.TwoDevelopment.LogisticsManagement; using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement; using Learun.Util; using Nancy; namespace Learun.Application.WebApi.Modules { public class StuInfoFreshApi : BaseApi { public StuInfoFreshApi() : base("/StuInfoFresh") { Get["/stuInfoFreshEntity"] = GetStuInfoFreshEntity; Get["/stuInfoFresh"] = GetStuInfoFresh; Get["/saveStuInfoFresh"] = GetSaveStuInfoFresh; Get["/saveLoan"] = GetSaveLoan; Post["/savePhoto"] = GetSavePhoto; Get["/payFeeDetail"] = GetPayFeeDetail; Get["/pageList"] = GetPageList; Get["/form"] = GetForm; Post["/save"] = SaveForm; Post["/upload"] = Upload; Post["/deleteFiles"] = DeleteFiles; } private StuInfoFreshIBLL stuInfoFreshIBLL = new StuInfoFreshBLL(); private CdMajorIBLL cdMajorIBLL = new CdMajorBLL(); private CdDeptIBLL cdDeptIBLL = new CdDeptBLL(); private ClassInfoIBLL classInfoIBLL = new ClassInfoBLL(); private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL(); private AccommodationIBLL accdormitoryIBLL = new AccommodationBLL(); private FinaChargesStandardIBLL finaChargesStandardIBLL = new FinaChargesStandardBLL(); private ClassroomInfoIBLL classroomInfoIBLL = new ClassroomInfoBLL(); /// /// 获取个人信息 /// /// /// private Response GetStuInfoFreshEntity(dynamic _) { var url = Config.GetValue("defaultheadimg"); var StuInfoFreshFamilyList = new List(); var StuInfoFreshEmergePeopleList = new List(); var StuInfoFreshEntity = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(GetReqData()); if (StuInfoFreshEntity != null) { //处理数据源 StuInfoFreshEntity.MajorNo = cdMajorIBLL.GetCdMajorEntityByMajorNo(StuInfoFreshEntity.MajorNo)?.MajorName; StuInfoFreshEntity.DeptNo = cdDeptIBLL.GetCdDeptEntityByNo(StuInfoFreshEntity.DeptNo)?.DeptName; var classInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(StuInfoFreshEntity.ClassNo); if (classInfoEntity != null) { StuInfoFreshEntity.ClassNo = classInfoEntity.ClassName; if (classInfoEntity.ClassTutorNo != null) { StuInfoFreshEntity.ClassTutorNo = classInfoEntity.ClassTutorNo; //单个辅导员修改为多个辅导员 if (!string.IsNullOrEmpty(StuInfoFreshEntity.ClassTutorNo)) { foreach (var item in StuInfoFreshEntity.ClassTutorNo.Split(',')) { var empInfoEntity = empInfoIBLL.GetEmpInfoEntityByEmpNo(item); if (empInfoEntity != null) { StuInfoFreshEntity.ClassTutorName += (empInfoEntity.EmpName + ","); StuInfoFreshEntity.ClassTutorMobile += (empInfoEntity.mobile + ","); } } if (!string.IsNullOrEmpty(StuInfoFreshEntity.ClassTutorName)) { StuInfoFreshEntity.ClassTutorName = StuInfoFreshEntity.ClassTutorName.TrimEnd(','); } if (!string.IsNullOrEmpty(StuInfoFreshEntity.ClassTutorMobile)) { StuInfoFreshEntity.ClassTutorMobile = StuInfoFreshEntity.ClassTutorMobile.TrimEnd(','); } } } if (classInfoEntity.ClassDiredctorNo != null) { StuInfoFreshEntity.ClassDiredctorNo = classInfoEntity.ClassDiredctorNo; var empInfoEntity2 = empInfoIBLL.GetEmpInfoEntityByEmpNo(classInfoEntity.ClassDiredctorNo); if (empInfoEntity2 != null) { StuInfoFreshEntity.ClassDiredctorName = empInfoEntity2.EmpName; StuInfoFreshEntity.ClassDiredctorMobile = empInfoEntity2.mobile; } } if (classInfoEntity.SerialNum != null) { StuInfoFreshEntity.DefaultClassRoomNo = classInfoEntity.SerialNum; var classroomEntity = classroomInfoIBLL.GetClassroomInfoEntityByNo(classInfoEntity.SerialNum); if (classroomEntity != null) { StuInfoFreshEntity.DefaultClassRoomName = classroomEntity.ClassroomName; } } } //获取头像地址 if (StuInfoFreshEntity.IsPhoto == true && !string.IsNullOrEmpty(StuInfoFreshEntity.Photo)) { var annexesFileEntity = annexesFileIBLL.GetEntity(StuInfoFreshEntity.Photo); if (annexesFileEntity != null) { url = annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource")); StuInfoFreshEntity.Url = url; } } //获取附件列表 var annexesFileList = annexesFileIBLL.GetList(StuInfoFreshEntity.ID); if (annexesFileList.Any()) { foreach (var item in annexesFileList) { item.F_FilePath = item.F_FilePath.Substring(item.F_FilePath.IndexOf("Resource")); } StuInfoFreshEntity.FilesList = annexesFileList.ToList(); } StuInfoFreshEntity.DormitoryName = accdormitoryIBLL.GetDormitoryInfoByPlanStuNo(StuInfoFreshEntity.ID); if (StuInfoFreshEntity.IsPoor != "1") { StuInfoFreshEntity.IsPoor = "0"; } if (StuInfoFreshEntity.GetKeyStatus != "1") { StuInfoFreshEntity.GetKeyStatus = "0"; } if (StuInfoFreshEntity.GetCardStatus != "1") { StuInfoFreshEntity.GetCardStatus = "0"; } if (StuInfoFreshEntity.OtherPayFeeStatus != "1") { StuInfoFreshEntity.OtherPayFeeStatus = "0"; } if (StuInfoFreshEntity.CollectFileStatus != "1") { StuInfoFreshEntity.CollectFileStatus = "0"; } //是否完善信息 StuInfoFreshFamilyList = stuInfoFreshIBLL.GetStuInfoFreshFamilyList(StuInfoFreshEntity.ID).ToList(); StuInfoFreshEmergePeopleList = stuInfoFreshIBLL.GetStuInfoFreshEmergePeopleList(StuInfoFreshEntity.ID).ToList(); StuInfoFreshEntity.IsCompleteInfo = StuInfoFreshFamilyList.Any() ? "已完善" : "未完善"; } var result = new { StuInfoFreshEntity = StuInfoFreshEntity, StuInfoFreshFamilyList = StuInfoFreshFamilyList, StuInfoFreshEmergePeopleList = StuInfoFreshEmergePeopleList, Url = url }; return Success(result); } /// /// 获取个人信息 /// /// /// private Response GetStuInfoFresh(dynamic _) { var StuInfoFreshEntity = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(userInfo.account); var result = new { StuInfoFreshEntity = StuInfoFreshEntity }; return Success(result); } /// /// 保存完善个人信息 /// /// /// private Response GetSaveStuInfoFresh(dynamic _) { var model = this.GetReqData(); var entity = stuInfoFreshIBLL.GetStuInfoFreshEntity(model.ID); entity.RegionNo = model.RegionNo; entity.FamilyAddress = model.FamilyAddress; entity.telephone = model.telephone; if (!string.IsNullOrEmpty(model.Photo)) { entity.IsPhoto = true; entity.Photo = model.Photo; } else { entity.IsPhoto = false; entity.Photo = ""; } stuInfoFreshIBLL.SaveEntity(entity.ID, entity, model.StuInfoFreshEmergePeopleEntities, model.StuInfoFreshFamilyEntities); return Success("保存成功"); } /// /// 保存贷款回执码 /// /// /// private Response GetSaveLoan(dynamic _) { var model = this.GetReqData(); var entity = stuInfoFreshIBLL.GetStuInfoFreshEntity(model.ID); entity.StudentLoan = model.StudentLoan; entity.StudentLoanStatus = model.StudentLoanStatus; stuInfoFreshIBLL.SaveEntity(entity.ID, entity); return Success("保存成功"); } /// /// 头像 /// /// /// private Response GetSavePhoto(dynamic _) { var model = this.GetReqData(); 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, userInfo.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(".", ""); fileAnnexesEntity.F_CreateUserId = userInfo.userId; fileAnnexesEntity.F_CreateUserName = userInfo.realName; annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity); } var data = new { Url = virtualPath.Substring(virtualPath.IndexOf("Resource")), AnnexesFileId = fileGuid }; return Success(data); } /// /// 学费查询 /// /// /// private Response GetPayFeeDetail(dynamic _) { var academicAndYear = Common.GetSemesterAndYear(); var finaChargesStandardList = new List(); var stuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(userInfo.account); if (stuInfoFreshData != null) { if (!string.IsNullOrEmpty(stuInfoFreshData.ClassNo) && !string.IsNullOrEmpty(stuInfoFreshData.MajorNo)) { var classInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(stuInfoFreshData.ClassNo); if (classInfoEntity != null) { finaChargesStandardList = finaChargesStandardIBLL.GetFinaChargesStandardListByMajorNoOfNotAll(stuInfoFreshData.MajorNo, academicAndYear.AcademicYearShort, academicAndYear.Semester, classInfoEntity.Grade).ToList(); } } } var payFeeTotal = finaChargesStandardList.Select(x => x.Standard).Sum(); var result = new { FinaChargesStandardList = finaChargesStandardList, PayFeeTotal = payFeeTotal, AcademicYearNo = academicAndYear.AcademicYearShort, Semester = academicAndYear.Semester, }; return Success(result); } /// /// 根据班级查询新生列表 /// /// /// public Response GetPageList(dynamic _) { ReqPageParam parameter = this.GetReqData(); var data = stuInfoFreshIBLL.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); } /// /// 获取表单数据 /// /// /// public Response GetForm(dynamic _) { string keyValue = this.GetReqData(); var StuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntity(keyValue); var jsonData = new { StuInfoFresh = StuInfoFreshData, }; return Success(jsonData); } /// /// 保存实体数据(新增、修改) /// /// /// public Response SaveForm(dynamic _) { ReqFormEntity parameter = this.GetReqData(); StuInfoFreshEntity entity = parameter.strEntity.ToObject(); stuInfoFreshIBLL.SaveEntity(parameter.keyValue, entity); return Success("保存成功!"); } /// /// 上传附件图片文件 /// /// public Response Upload(dynamic _) { var files = (List)this.Context.Request.Files; var folderId = this.GetReq().folderId;//文件夹id=新生id var name = this.GetReq().name;//文件夹id=新生id string filePath = Config.GetValue("AnnexesFile"); string uploadDate = DateTime.Now.ToString("yyyyMMdd"); //string FileEextension = name; string FileEextension = Path.GetExtension(name); string fileGuid = Guid.NewGuid().ToString(); string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, FileEextension); //创建文件夹 string path = Path.GetDirectoryName(virtualPath); Directory.CreateDirectory(path); AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity(); if (!System.IO.File.Exists(virtualPath)) { byte[] bytes = new byte[files[0].Value.Length]; files[0].Value.Read(bytes, 0, bytes.Length); FileInfo file = new FileInfo(virtualPath); FileStream fs = file.Create(); fs.Write(bytes, 0, bytes.Length); fs.Close(); //文件信息写入数据库 fileAnnexesEntity.F_Id = fileGuid; fileAnnexesEntity.F_FolderId = folderId; fileAnnexesEntity.F_FileName = name; fileAnnexesEntity.F_FilePath = virtualPath; fileAnnexesEntity.F_FileSize = files[0].Value.Length.ToString(); fileAnnexesEntity.F_FileExtensions = FileEextension; fileAnnexesEntity.F_FileType = FileEextension.Replace(".", ""); fileAnnexesEntity.F_CreateUserId = userInfo.userId; fileAnnexesEntity.F_CreateUserName = userInfo.realName; annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity); } //文件地址截取到resource后 //fileAnnexesEntity.F_FilePath = fileAnnexesEntity.F_FilePath.Substring(fileAnnexesEntity.F_FilePath.IndexOf("Resource")); return SuccessString(folderId); } /// /// 删除附件 /// /// /// public Response DeleteFiles(dynamic _) { var fileId = this.GetReqData().id; AnnexesFileEntity fileInfoEntity = annexesFileIBLL.GetEntity(fileId); if (fileInfoEntity != null) { //删除附件表 annexesFileIBLL.DeleteEntity(fileId); //删除文件 if (System.IO.File.Exists(fileInfoEntity.F_FilePath)) { System.IO.File.Delete(fileInfoEntity.F_FilePath); } //下载 //if (FileDownHelper.FileExists(fileInfoEntity.F_FilePath)) //{ // FileDownHelper.DownLoadnew(fileInfoEntity.F_FilePath); //} } return Success("删除成功"); } #region 私有类 /// /// 表单实体类 /// private class ReqFormEntity { public string keyValue { get; set; } public string strEntity { get; set; } } #endregion /// /// 个人信息 /// public class StuInfoFreshModel { /// /// 主键 /// public string ID { get; set; } /// /// 籍贯 /// public string RegionNo { get; set; } /// /// 家庭住址 /// public string FamilyAddress { get; set; } /// /// 联系电话 /// public string telephone { get; set; } /// /// 头像地址 /// public string Photo { get; set; } /// /// 贷款回执码 /// public string StudentLoan { get; set; } /// /// 贷款回执码状态 /// public string StudentLoanStatus { get; set; } /// /// 家庭成员 /// public List StuInfoFreshFamilyEntities { get; set; } /// /// 紧急联系人 /// public List StuInfoFreshEmergePeopleEntities { get; set; } } public class PhotoModel { public string Base64Url { get; set; } public string account { get; set; } } public class FileModel { public string folderId { get; set; } public string name { get; set; } public string id { get; set; } } } }