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["/saveStuInfoFresh"] = GetSaveStuInfoFresh; Post["/savePhoto"] = GetSavePhoto; Get["/payFeeDetail"] = GetPayFeeDetail; } 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 Response GetStuInfoFreshEntity(dynamic _) { var url = Config.GetValue("defaultheadimg"); var StuInfoFreshFamilyList = new List(); var StuInfoFreshEmergePeopleList = new List(); var StuInfoFreshEntity = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(userInfo.account); 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; StuInfoFreshEntity.ClassTutorNo = classInfoEntity.ClassTutorNo; var empInfoEntity = empInfoIBLL.GetEmpInfoEntityByEmpNo(classInfoEntity.ClassTutorNo); if (empInfoEntity != null) { StuInfoFreshEntity.ClassTutorName = empInfoEntity.EmpName; StuInfoFreshEntity.ClassTutorMobile = empInfoEntity.mobile; } } if (StuInfoFreshEntity.PayFeeStatus == "1") { StuInfoFreshEntity.PayFeeStatus = "已缴费"; } else { StuInfoFreshEntity.PayFeeStatus = "未缴费"; } if (StuInfoFreshEntity.CollectFileStatus == "1") { StuInfoFreshEntity.CollectFileStatus = "已提交"; } else { StuInfoFreshEntity.CollectFileStatus = "未提交"; } if (StuInfoFreshEntity.GetKeyStatus == "1") { StuInfoFreshEntity.GetKeyStatus = "已领取"; } else { StuInfoFreshEntity.GetKeyStatus = "未领取"; } //获取头像地址 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.DormitoryName = accdormitoryIBLL.GetDormitoryInfoByPlanStuNo(StuInfoFreshEntity.ID); //是否完善信息 StuInfoFreshFamilyList = stuInfoFreshIBLL.GetStuInfoFreshFamilyList(StuInfoFreshEntity.ID).ToList(); StuInfoFreshEmergePeopleList = stuInfoFreshIBLL.GetStuInfoFreshEmergePeopleList(StuInfoFreshEntity.ID).ToList(); StuInfoFreshEntity.ClassTutorNo = StuInfoFreshFamilyList.Any() ? "已完善" : "未完善"; } var result = new { StuInfoFreshEntity = StuInfoFreshEntity, StuInfoFreshFamilyList = StuInfoFreshFamilyList, StuInfoFreshEmergePeopleList = StuInfoFreshEmergePeopleList, Url = url }; 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 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 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 List StuInfoFreshFamilyEntities { get; set; } /// /// 紧急联系人 /// public List StuInfoFreshEmergePeopleEntities { get; set; } } public class PhotoModel { public string Base64Url { get; set; } public string account { get; set; } } } }