選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

506 行
20 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Web;
  6. using Learun.Application.Base.SystemModule;
  7. using Learun.Application.TwoDevelopment.EducationalAdministration;
  8. using Learun.Application.TwoDevelopment.LogisticsManagement;
  9. using Learun.Application.TwoDevelopment.ReceiveSendFeeManagement;
  10. using Learun.Util;
  11. using Nancy;
  12. namespace Learun.Application.WebApi.Modules
  13. {
  14. public class StuInfoFreshApi : BaseApi
  15. {
  16. public StuInfoFreshApi()
  17. : base("/StuInfoFresh")
  18. {
  19. Get["/stuInfoFreshEntity"] = GetStuInfoFreshEntity;
  20. Get["/stuInfoFresh"] = GetStuInfoFresh;
  21. Get["/saveStuInfoFresh"] = GetSaveStuInfoFresh;
  22. Get["/saveLoan"] = GetSaveLoan;
  23. Post["/savePhoto"] = GetSavePhoto;
  24. Get["/payFeeDetail"] = GetPayFeeDetail;
  25. Get["/pageList"] = GetPageList;
  26. Get["/form"] = GetForm;
  27. Post["/save"] = SaveForm;
  28. Post["/upload"] = Upload;
  29. Post["/deleteFiles"] = DeleteFiles;
  30. }
  31. private StuInfoFreshIBLL stuInfoFreshIBLL = new StuInfoFreshBLL();
  32. private CdMajorIBLL cdMajorIBLL = new CdMajorBLL();
  33. private CdDeptIBLL cdDeptIBLL = new CdDeptBLL();
  34. private ClassInfoIBLL classInfoIBLL = new ClassInfoBLL();
  35. private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
  36. private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL();
  37. private AccommodationIBLL accdormitoryIBLL = new AccommodationBLL();
  38. private FinaChargesStandardIBLL finaChargesStandardIBLL = new FinaChargesStandardBLL();
  39. private ClassroomInfoIBLL classroomInfoIBLL = new ClassroomInfoBLL();
  40. /// <summary>
  41. /// 获取个人信息
  42. /// </summary>
  43. /// <param name="_"></param>
  44. /// <returns></returns>
  45. private Response GetStuInfoFreshEntity(dynamic _)
  46. {
  47. var url = Config.GetValue("defaultheadimg");
  48. var StuInfoFreshFamilyList = new List<StuInfoFreshFamilyEntity>();
  49. var StuInfoFreshEmergePeopleList = new List<StuInfoFreshEmergePeopleEntity>();
  50. var StuInfoFreshEntity = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(GetReqData());
  51. if (StuInfoFreshEntity != null)
  52. {
  53. //处理数据源
  54. StuInfoFreshEntity.MajorNo = cdMajorIBLL.GetCdMajorEntityByMajorNo(StuInfoFreshEntity.MajorNo)?.MajorName;
  55. StuInfoFreshEntity.DeptNo = cdDeptIBLL.GetCdDeptEntityByNo(StuInfoFreshEntity.DeptNo)?.DeptName;
  56. var classInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(StuInfoFreshEntity.ClassNo);
  57. if (classInfoEntity != null)
  58. {
  59. StuInfoFreshEntity.ClassNo = classInfoEntity.ClassName;
  60. if (classInfoEntity.ClassTutorNo != null)
  61. {
  62. StuInfoFreshEntity.ClassTutorNo = classInfoEntity.ClassTutorNo;
  63. var empInfoEntity = empInfoIBLL.GetEmpInfoEntityByEmpNo(classInfoEntity.ClassTutorNo);
  64. if (empInfoEntity != null)
  65. {
  66. StuInfoFreshEntity.ClassTutorName = empInfoEntity.EmpName;
  67. StuInfoFreshEntity.ClassTutorMobile = empInfoEntity.mobile;
  68. }
  69. }
  70. if (classInfoEntity.ClassDiredctorNo != null)
  71. {
  72. StuInfoFreshEntity.ClassDiredctorNo = classInfoEntity.ClassDiredctorNo;
  73. var empInfoEntity2 = empInfoIBLL.GetEmpInfoEntityByEmpNo(classInfoEntity.ClassDiredctorNo);
  74. if (empInfoEntity2 != null)
  75. {
  76. StuInfoFreshEntity.ClassDiredctorName = empInfoEntity2.EmpName;
  77. StuInfoFreshEntity.ClassDiredctorMobile = empInfoEntity2.mobile;
  78. }
  79. }
  80. if (classInfoEntity.SerialNum != null)
  81. {
  82. StuInfoFreshEntity.DefaultClassRoomNo = classInfoEntity.SerialNum;
  83. var classroomEntity = classroomInfoIBLL.GetClassroomInfoEntityByNo(classInfoEntity.SerialNum);
  84. if (classroomEntity != null)
  85. {
  86. StuInfoFreshEntity.DefaultClassRoomName = classroomEntity.ClassroomName;
  87. }
  88. }
  89. }
  90. //获取头像地址
  91. if (StuInfoFreshEntity.IsPhoto == true && !string.IsNullOrEmpty(StuInfoFreshEntity.Photo))
  92. {
  93. var annexesFileEntity = annexesFileIBLL.GetEntity(StuInfoFreshEntity.Photo);
  94. if (annexesFileEntity != null)
  95. {
  96. url = annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource"));
  97. StuInfoFreshEntity.Url = url;
  98. }
  99. }
  100. //获取附件列表
  101. var annexesFileList = annexesFileIBLL.GetList(StuInfoFreshEntity.ID);
  102. if (annexesFileList.Any())
  103. {
  104. foreach (var item in annexesFileList)
  105. {
  106. item.F_FilePath = item.F_FilePath.Substring(item.F_FilePath.IndexOf("Resource"));
  107. }
  108. StuInfoFreshEntity.FilesList = annexesFileList.ToList();
  109. }
  110. StuInfoFreshEntity.DormitoryName = accdormitoryIBLL.GetDormitoryInfoByPlanStuNo(StuInfoFreshEntity.ID);
  111. if (StuInfoFreshEntity.IsPoor != "1")
  112. {
  113. StuInfoFreshEntity.IsPoor = "0";
  114. }
  115. if (StuInfoFreshEntity.GetKeyStatus != "1")
  116. {
  117. StuInfoFreshEntity.GetKeyStatus = "0";
  118. }
  119. if (StuInfoFreshEntity.GetCardStatus != "1")
  120. {
  121. StuInfoFreshEntity.GetCardStatus = "0";
  122. }
  123. if (StuInfoFreshEntity.OtherPayFeeStatus != "1")
  124. {
  125. StuInfoFreshEntity.OtherPayFeeStatus = "0";
  126. }
  127. if (StuInfoFreshEntity.CollectFileStatus != "1")
  128. {
  129. StuInfoFreshEntity.CollectFileStatus = "0";
  130. }
  131. //是否完善信息
  132. StuInfoFreshFamilyList = stuInfoFreshIBLL.GetStuInfoFreshFamilyList(StuInfoFreshEntity.ID).ToList();
  133. StuInfoFreshEmergePeopleList = stuInfoFreshIBLL.GetStuInfoFreshEmergePeopleList(StuInfoFreshEntity.ID).ToList();
  134. StuInfoFreshEntity.IsCompleteInfo = StuInfoFreshFamilyList.Any() ? "已完善" : "未完善";
  135. }
  136. var result = new
  137. {
  138. StuInfoFreshEntity = StuInfoFreshEntity,
  139. StuInfoFreshFamilyList = StuInfoFreshFamilyList,
  140. StuInfoFreshEmergePeopleList = StuInfoFreshEmergePeopleList,
  141. Url = url
  142. };
  143. return Success(result);
  144. }
  145. /// <summary>
  146. /// 获取个人信息
  147. /// </summary>
  148. /// <param name="_"></param>
  149. /// <returns></returns>
  150. private Response GetStuInfoFresh(dynamic _)
  151. {
  152. var StuInfoFreshEntity = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(userInfo.account);
  153. var result = new
  154. {
  155. StuInfoFreshEntity = StuInfoFreshEntity
  156. };
  157. return Success(result);
  158. }
  159. /// <summary>
  160. /// 保存完善个人信息
  161. /// </summary>
  162. /// <param name="_"></param>
  163. /// <returns></returns>
  164. private Response GetSaveStuInfoFresh(dynamic _)
  165. {
  166. var model = this.GetReqData<StuInfoFreshModel>();
  167. var entity = stuInfoFreshIBLL.GetStuInfoFreshEntity(model.ID);
  168. entity.RegionNo = model.RegionNo;
  169. entity.FamilyAddress = model.FamilyAddress;
  170. entity.telephone = model.telephone;
  171. if (!string.IsNullOrEmpty(model.Photo))
  172. {
  173. entity.IsPhoto = true;
  174. entity.Photo = model.Photo;
  175. }
  176. else
  177. {
  178. entity.IsPhoto = false;
  179. entity.Photo = "";
  180. }
  181. stuInfoFreshIBLL.SaveEntity(entity.ID, entity, model.StuInfoFreshEmergePeopleEntities, model.StuInfoFreshFamilyEntities);
  182. return Success("保存成功");
  183. }
  184. /// <summary>
  185. /// 保存贷款回执码
  186. /// </summary>
  187. /// <param name="_"></param>
  188. /// <returns></returns>
  189. private Response GetSaveLoan(dynamic _)
  190. {
  191. var model = this.GetReqData<StuInfoFreshModel>();
  192. var entity = stuInfoFreshIBLL.GetStuInfoFreshEntity(model.ID);
  193. entity.StudentLoan = model.StudentLoan;
  194. entity.StudentLoanStatus = model.StudentLoanStatus;
  195. stuInfoFreshIBLL.SaveEntity(entity.ID, entity);
  196. return Success("保存成功");
  197. }
  198. /// <summary>
  199. /// 头像
  200. /// </summary>
  201. /// <param name="_"></param>
  202. /// <returns></returns>
  203. private Response GetSavePhoto(dynamic _)
  204. {
  205. var model = this.GetReqData<PhotoModel>();
  206. var folderId = Guid.NewGuid().ToString();
  207. string filePath = Config.GetValue("AnnexesFile");
  208. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  209. string FileEextension = ".png";
  210. string fileGuid = Guid.NewGuid().ToString();
  211. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.account, uploadDate, fileGuid, FileEextension);
  212. //创建文件夹
  213. string path = Path.GetDirectoryName(virtualPath);
  214. Directory.CreateDirectory(path);
  215. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  216. if (!System.IO.File.Exists(virtualPath))
  217. {
  218. //byte[] bytes = Convert.FromBase64String(model.Base64Url.Replace("data:image/jpeg;base64,", ""));
  219. byte[] bytes = Convert.FromBase64String(model.Base64Url.Substring(model.Base64Url.IndexOf("base64,") + 7));
  220. FileInfo file = new FileInfo(virtualPath);
  221. FileStream fs = file.Create();
  222. fs.Write(bytes, 0, bytes.Length);
  223. fs.Close();
  224. //文件信息写入数据库
  225. fileAnnexesEntity.F_Id = fileGuid;
  226. fileAnnexesEntity.F_FileName = "userphoto.png";
  227. fileAnnexesEntity.F_FilePath = virtualPath;
  228. fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
  229. fileAnnexesEntity.F_FileExtensions = FileEextension;
  230. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  231. fileAnnexesEntity.F_CreateUserId = userInfo.userId;
  232. fileAnnexesEntity.F_CreateUserName = userInfo.realName;
  233. annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
  234. }
  235. var data = new
  236. {
  237. Url = virtualPath.Substring(virtualPath.IndexOf("Resource")),
  238. AnnexesFileId = fileGuid
  239. };
  240. return Success(data);
  241. }
  242. /// <summary>
  243. /// 学费查询
  244. /// </summary>
  245. /// <param name="_"></param>
  246. /// <returns></returns>
  247. private Response GetPayFeeDetail(dynamic _)
  248. {
  249. var academicAndYear = Common.GetSemesterAndYear();
  250. var finaChargesStandardList = new List<FinaChargesStandardEntity>();
  251. var stuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(userInfo.account);
  252. if (stuInfoFreshData != null)
  253. {
  254. if (!string.IsNullOrEmpty(stuInfoFreshData.ClassNo) && !string.IsNullOrEmpty(stuInfoFreshData.MajorNo))
  255. {
  256. var classInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(stuInfoFreshData.ClassNo);
  257. if (classInfoEntity != null)
  258. {
  259. finaChargesStandardList = finaChargesStandardIBLL.GetFinaChargesStandardListByMajorNoOfNotAll(stuInfoFreshData.MajorNo, academicAndYear.AcademicYearShort, academicAndYear.Semester, classInfoEntity.Grade).ToList();
  260. }
  261. }
  262. }
  263. var payFeeTotal = finaChargesStandardList.Select(x => x.Standard).Sum();
  264. var result = new
  265. {
  266. FinaChargesStandardList = finaChargesStandardList,
  267. PayFeeTotal = payFeeTotal,
  268. AcademicYearNo = academicAndYear.AcademicYearShort,
  269. Semester = academicAndYear.Semester,
  270. };
  271. return Success(result);
  272. }
  273. /// <summary>
  274. /// 根据班级查询新生列表
  275. /// <summary>
  276. /// <param name="_"></param>
  277. /// <returns></returns>
  278. public Response GetPageList(dynamic _)
  279. {
  280. ReqPageParam parameter = this.GetReqData<ReqPageParam>();
  281. var data = stuInfoFreshIBLL.GetPageList(parameter.pagination, parameter.queryJson);
  282. var jsonData = new
  283. {
  284. rows = data,
  285. total = parameter.pagination.total,
  286. page = parameter.pagination.page,
  287. records = parameter.pagination.records
  288. };
  289. return Success(jsonData);
  290. }
  291. /// <summary>
  292. /// 获取表单数据
  293. /// <summary>
  294. /// <param name="_"></param>
  295. /// <returns></returns>
  296. public Response GetForm(dynamic _)
  297. {
  298. string keyValue = this.GetReqData();
  299. var StuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntity(keyValue);
  300. var jsonData = new
  301. {
  302. StuInfoFresh = StuInfoFreshData,
  303. };
  304. return Success(jsonData);
  305. }
  306. /// <summary>
  307. /// 保存实体数据(新增、修改)
  308. /// <param name="_"></param>
  309. /// <summary>
  310. /// <returns></returns>
  311. public Response SaveForm(dynamic _)
  312. {
  313. ReqFormEntity parameter = this.GetReqData<ReqFormEntity>();
  314. StuInfoFreshEntity entity = parameter.strEntity.ToObject<StuInfoFreshEntity>();
  315. stuInfoFreshIBLL.SaveEntity(parameter.keyValue, entity);
  316. return Success("保存成功!");
  317. }
  318. /// <summary>
  319. /// 上传附件图片文件
  320. /// <summary>
  321. /// <returns></returns>
  322. public Response Upload(dynamic _)
  323. {
  324. var files = (List<HttpFile>)this.Context.Request.Files;
  325. var folderId = this.GetReq<FileModel>().folderId;//文件夹id=新生id
  326. var name = this.GetReq<FileModel>().name;//文件夹id=新生id
  327. string filePath = Config.GetValue("AnnexesFile");
  328. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  329. //string FileEextension = name;
  330. string FileEextension = Path.GetExtension(name);
  331. string fileGuid = Guid.NewGuid().ToString();
  332. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, FileEextension);
  333. //创建文件夹
  334. string path = Path.GetDirectoryName(virtualPath);
  335. Directory.CreateDirectory(path);
  336. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  337. if (!System.IO.File.Exists(virtualPath))
  338. {
  339. byte[] bytes = new byte[files[0].Value.Length];
  340. files[0].Value.Read(bytes, 0, bytes.Length);
  341. FileInfo file = new FileInfo(virtualPath);
  342. FileStream fs = file.Create();
  343. fs.Write(bytes, 0, bytes.Length);
  344. fs.Close();
  345. //文件信息写入数据库
  346. fileAnnexesEntity.F_Id = fileGuid;
  347. fileAnnexesEntity.F_FolderId = folderId;
  348. fileAnnexesEntity.F_FileName = name;
  349. fileAnnexesEntity.F_FilePath = virtualPath;
  350. fileAnnexesEntity.F_FileSize = files[0].Value.Length.ToString();
  351. fileAnnexesEntity.F_FileExtensions = FileEextension;
  352. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  353. fileAnnexesEntity.F_CreateUserId = userInfo.userId;
  354. fileAnnexesEntity.F_CreateUserName = userInfo.realName;
  355. annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
  356. }
  357. //文件地址截取到resource后
  358. //fileAnnexesEntity.F_FilePath = fileAnnexesEntity.F_FilePath.Substring(fileAnnexesEntity.F_FilePath.IndexOf("Resource"));
  359. return SuccessString(folderId);
  360. }
  361. /// <summary>
  362. /// 删除附件
  363. /// </summary>
  364. /// <param name="_"></param>
  365. /// <returns></returns>
  366. public Response DeleteFiles(dynamic _)
  367. {
  368. var fileId = this.GetReqData<FileModel>().id;
  369. AnnexesFileEntity fileInfoEntity = annexesFileIBLL.GetEntity(fileId);
  370. if (fileInfoEntity != null)
  371. {
  372. //删除附件表
  373. annexesFileIBLL.DeleteEntity(fileId);
  374. //删除文件
  375. if (System.IO.File.Exists(fileInfoEntity.F_FilePath))
  376. {
  377. System.IO.File.Delete(fileInfoEntity.F_FilePath);
  378. }
  379. //下载
  380. //if (FileDownHelper.FileExists(fileInfoEntity.F_FilePath))
  381. //{
  382. // FileDownHelper.DownLoadnew(fileInfoEntity.F_FilePath);
  383. //}
  384. }
  385. return Success("删除成功");
  386. }
  387. #region 私有类
  388. /// <summary>
  389. /// 表单实体类
  390. /// <summary>
  391. private class ReqFormEntity
  392. {
  393. public string keyValue { get; set; }
  394. public string strEntity { get; set; }
  395. }
  396. #endregion
  397. /// <summary>
  398. /// 个人信息
  399. /// </summary>
  400. public class StuInfoFreshModel
  401. {
  402. /// <summary>
  403. /// 主键
  404. /// </summary>
  405. public string ID { get; set; }
  406. /// <summary>
  407. /// 籍贯
  408. /// </summary>
  409. public string RegionNo { get; set; }
  410. /// <summary>
  411. /// 家庭住址
  412. /// </summary>
  413. public string FamilyAddress { get; set; }
  414. /// <summary>
  415. /// 联系电话
  416. /// </summary>
  417. public string telephone { get; set; }
  418. /// <summary>
  419. /// 头像地址
  420. /// </summary>
  421. public string Photo { get; set; }
  422. /// <summary>
  423. /// 贷款回执码
  424. /// </summary>
  425. public string StudentLoan { get; set; }
  426. /// <summary>
  427. /// 贷款回执码状态
  428. /// </summary>
  429. public string StudentLoanStatus { get; set; }
  430. /// <summary>
  431. /// 家庭成员
  432. /// </summary>
  433. public List<StuInfoFreshFamilyEntity> StuInfoFreshFamilyEntities { get; set; }
  434. /// <summary>
  435. /// 紧急联系人
  436. /// </summary>
  437. public List<StuInfoFreshEmergePeopleEntity> StuInfoFreshEmergePeopleEntities { get; set; }
  438. }
  439. public class PhotoModel
  440. {
  441. public string Base64Url { get; set; }
  442. public string account { get; set; }
  443. }
  444. public class FileModel
  445. {
  446. public string folderId { get; set; }
  447. public string name { get; set; }
  448. public string id { get; set; }
  449. }
  450. }
  451. }