Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

431 строка
17 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. }
  29. private StuInfoFreshIBLL stuInfoFreshIBLL = new StuInfoFreshBLL();
  30. private StuInfoBasicIBLL stuInfoBasicIBLL = new StuInfoBasicBLL();
  31. private CdMajorIBLL cdMajorIBLL = new CdMajorBLL();
  32. private CdDeptIBLL cdDeptIBLL = new CdDeptBLL();
  33. private ClassInfoIBLL classInfoIBLL = new ClassInfoBLL();
  34. private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
  35. private EmpInfoIBLL empInfoIBLL = new EmpInfoBLL();
  36. private AccommodationIBLL accdormitoryIBLL = new AccommodationBLL();
  37. private FinaChargesStandardIBLL finaChargesStandardIBLL = new FinaChargesStandardBLL();
  38. private ClassroomInfoIBLL classroomInfoIBLL = new ClassroomInfoBLL();
  39. /// <summary>
  40. /// 获取个人信息
  41. /// </summary>
  42. /// <param name="_"></param>
  43. /// <returns></returns>
  44. private Response GetStuInfoFreshEntity(dynamic _)
  45. {
  46. var url = Config.GetValue("defaultheadimg");
  47. var StuInfoFreshFamilyList = new List<StuInfoFreshFamilyEntity>();
  48. var StuInfoFreshEmergePeopleList = new List<StuInfoFreshEmergePeopleEntity>();
  49. var StuInfoFreshEntity = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(GetReqData());
  50. if (StuInfoFreshEntity != null)
  51. {
  52. //处理数据源
  53. StuInfoFreshEntity.MajorNo = cdMajorIBLL.GetCdMajorEntityByMajorNo(StuInfoFreshEntity.MajorNo)?.MajorName;
  54. StuInfoFreshEntity.DeptNo = cdDeptIBLL.GetCdDeptEntityByNo(StuInfoFreshEntity.DeptNo)?.DeptName;
  55. var classInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(StuInfoFreshEntity.ClassNo);
  56. if (classInfoEntity != null)
  57. {
  58. StuInfoFreshEntity.ClassNo = classInfoEntity.ClassName;
  59. if (classInfoEntity.ClassTutorNo != null)
  60. {
  61. StuInfoFreshEntity.ClassTutorNo = classInfoEntity.ClassTutorNo;
  62. var empInfoEntity = empInfoIBLL.GetEmpInfoEntityByEmpNo(classInfoEntity.ClassTutorNo);
  63. if (empInfoEntity != null)
  64. {
  65. StuInfoFreshEntity.ClassTutorName = empInfoEntity.EmpName;
  66. StuInfoFreshEntity.ClassTutorMobile = empInfoEntity.mobile;
  67. }
  68. }
  69. if (classInfoEntity.ClassDiredctorNo != null)
  70. {
  71. StuInfoFreshEntity.ClassDiredctorNo = classInfoEntity.ClassDiredctorNo;
  72. var empInfoEntity2 = empInfoIBLL.GetEmpInfoEntityByEmpNo(classInfoEntity.ClassDiredctorNo);
  73. if (empInfoEntity2 != null)
  74. {
  75. StuInfoFreshEntity.ClassDiredctorName = empInfoEntity2.EmpName;
  76. StuInfoFreshEntity.ClassDiredctorMobile = empInfoEntity2.mobile;
  77. }
  78. }
  79. if (classInfoEntity.SerialNum != null)
  80. {
  81. StuInfoFreshEntity.DefaultClassRoomNo = classInfoEntity.SerialNum;
  82. var classroomEntity = classroomInfoIBLL.GetClassroomInfoEntityByNo(classInfoEntity.SerialNum);
  83. if (classroomEntity != null)
  84. {
  85. StuInfoFreshEntity.DefaultClassRoomName = classroomEntity.ClassroomName;
  86. }
  87. }
  88. }
  89. //获取头像地址 20210913修改为获取学生学籍表中的照片
  90. var basicPhoto = stuInfoBasicIBLL.GetPhotoByStuNo(GetReqData());
  91. if (!string.IsNullOrEmpty(basicPhoto))
  92. {
  93. var annexesFileEntity = annexesFileIBLL.GetEntity(basicPhoto);
  94. if (annexesFileEntity != null)
  95. {
  96. url = annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource"));
  97. }
  98. }
  99. //if (StuInfoFreshEntity.IsPhoto == true && !string.IsNullOrEmpty(StuInfoFreshEntity.Photo))
  100. //{
  101. // var annexesFileEntity = annexesFileIBLL.GetEntity(StuInfoFreshEntity.Photo);
  102. // if (annexesFileEntity != null)
  103. // {
  104. // url = annexesFileEntity.F_FilePath.Substring(annexesFileEntity.F_FilePath.IndexOf("Resource"));
  105. // }
  106. //}
  107. StuInfoFreshEntity.DormitoryName = accdormitoryIBLL.GetDormitoryInfoByPlanStuNo(StuInfoFreshEntity.ID);
  108. if (StuInfoFreshEntity.IsPoor != "1")
  109. {
  110. StuInfoFreshEntity.IsPoor = "0";
  111. }
  112. if (StuInfoFreshEntity.GetKeyStatus != "1")
  113. {
  114. StuInfoFreshEntity.GetKeyStatus = "0";
  115. }
  116. if (StuInfoFreshEntity.GetCardStatus != "1")
  117. {
  118. StuInfoFreshEntity.GetCardStatus = "0";
  119. }
  120. if (StuInfoFreshEntity.OtherPayFeeStatus != "1")
  121. {
  122. StuInfoFreshEntity.OtherPayFeeStatus = "0";
  123. }
  124. if (StuInfoFreshEntity.CollectFileStatus != "1")
  125. {
  126. StuInfoFreshEntity.CollectFileStatus = "0";
  127. }
  128. //是否完善信息
  129. StuInfoFreshFamilyList = stuInfoFreshIBLL.GetStuInfoFreshFamilyList(StuInfoFreshEntity.ID).ToList();
  130. StuInfoFreshEmergePeopleList = stuInfoFreshIBLL.GetStuInfoFreshEmergePeopleList(StuInfoFreshEntity.ID).ToList();
  131. StuInfoFreshEntity.IsCompleteInfo = StuInfoFreshFamilyList.Any() ? "已完善" : "未完善";
  132. }
  133. var result = new
  134. {
  135. StuInfoFreshEntity = StuInfoFreshEntity,
  136. StuInfoFreshFamilyList = StuInfoFreshFamilyList,
  137. StuInfoFreshEmergePeopleList = StuInfoFreshEmergePeopleList,
  138. Url = url
  139. };
  140. return Success(result);
  141. }
  142. /// <summary>
  143. /// 获取个人信息
  144. /// </summary>
  145. /// <param name="_"></param>
  146. /// <returns></returns>
  147. private Response GetStuInfoFresh(dynamic _)
  148. {
  149. var StuInfoFreshEntity = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(userInfo.account);
  150. var result = new
  151. {
  152. StuInfoFreshEntity = StuInfoFreshEntity
  153. };
  154. return Success(result);
  155. }
  156. /// <summary>
  157. /// 保存完善个人信息
  158. /// </summary>
  159. /// <param name="_"></param>
  160. /// <returns></returns>
  161. private Response GetSaveStuInfoFresh(dynamic _)
  162. {
  163. var model = this.GetReqData<StuInfoFreshModel>();
  164. var entity = stuInfoFreshIBLL.GetStuInfoFreshEntity(model.ID);
  165. entity.RegionNo = model.RegionNo;
  166. entity.FamilyAddress = model.FamilyAddress;
  167. entity.telephone = model.telephone;
  168. entity.BankCard = model.BankCard;
  169. entity.BankLocation = model.BankLocation;
  170. entity.DepositBank = model.DepositBank;
  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. entity.StudentLoanBLStatus = model.StudentLoanBLStatus;
  196. stuInfoFreshIBLL.SaveEntity(entity.ID, entity);
  197. return Success("保存成功");
  198. }
  199. /// <summary>
  200. /// 头像
  201. /// </summary>
  202. /// <param name="_"></param>
  203. /// <returns></returns>
  204. private Response GetSavePhoto(dynamic _)
  205. {
  206. var model = this.GetReqData<PhotoModel>();
  207. var folderId = Guid.NewGuid().ToString();
  208. string filePath = Config.GetValue("AnnexesFile");
  209. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  210. string FileEextension = ".png";
  211. string fileGuid = Guid.NewGuid().ToString();
  212. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.account, uploadDate, fileGuid, FileEextension);
  213. //创建文件夹
  214. string path = Path.GetDirectoryName(virtualPath);
  215. Directory.CreateDirectory(path);
  216. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  217. if (!System.IO.File.Exists(virtualPath))
  218. {
  219. //byte[] bytes = Convert.FromBase64String(model.Base64Url.Replace("data:image/jpeg;base64,", ""));
  220. byte[] bytes = Convert.FromBase64String(model.Base64Url.Substring(model.Base64Url.IndexOf("base64,") + 7));
  221. FileInfo file = new FileInfo(virtualPath);
  222. FileStream fs = file.Create();
  223. fs.Write(bytes, 0, bytes.Length);
  224. fs.Close();
  225. //文件信息写入数据库
  226. fileAnnexesEntity.F_Id = fileGuid;
  227. fileAnnexesEntity.F_FileName = "userphoto.png";
  228. fileAnnexesEntity.F_FilePath = virtualPath;
  229. fileAnnexesEntity.F_FileSize = bytes.Length.ToString();
  230. fileAnnexesEntity.F_FileExtensions = FileEextension;
  231. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  232. fileAnnexesEntity.F_CreateUserId = userInfo.userId;
  233. fileAnnexesEntity.F_CreateUserName = userInfo.realName;
  234. annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
  235. }
  236. var data = new
  237. {
  238. Url = virtualPath.Substring(virtualPath.IndexOf("Resource")),
  239. AnnexesFileId = fileGuid
  240. };
  241. return Success(data);
  242. }
  243. /// <summary>
  244. /// 学费查询
  245. /// </summary>
  246. /// <param name="_"></param>
  247. /// <returns></returns>
  248. private Response GetPayFeeDetail(dynamic _)
  249. {
  250. var academicAndYear = Common.GetSemesterAndYear();
  251. var FinaChargesStandardList = new List<FinaChargesStandardEntity>();
  252. var StuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntityByStuNo(userInfo.account);
  253. if (StuInfoFreshData != null)
  254. {
  255. if (!string.IsNullOrEmpty(StuInfoFreshData.ClassNo) && !string.IsNullOrEmpty(StuInfoFreshData.MajorNo))
  256. {
  257. var ClassInfoEntity = classInfoIBLL.GetClassInfoEntityByClassNo(StuInfoFreshData.ClassNo);
  258. if (ClassInfoEntity != null)
  259. {
  260. FinaChargesStandardList = finaChargesStandardIBLL.GetFinaChargesStandardListByMajorNoOfNotAll(StuInfoFreshData.MajorNo, academicAndYear.AcademicYearShort, academicAndYear.Semester, ClassInfoEntity.Grade).ToList();
  261. }
  262. }
  263. }
  264. var PayFeeTotal = FinaChargesStandardList.Select(x => x.Standard).Sum();
  265. var result = new
  266. {
  267. FinaChargesStandardList = FinaChargesStandardList,
  268. PayFeeTotal = PayFeeTotal,
  269. AcademicYearNo = academicAndYear.AcademicYearShort,
  270. Semester = academicAndYear.Semester,
  271. };
  272. return Success(result);
  273. }
  274. /// <summary>
  275. /// 根据班级查询新生列表
  276. /// <summary>
  277. /// <param name="_"></param>
  278. /// <returns></returns>
  279. public Response GetPageList(dynamic _)
  280. {
  281. ReqPageParam parameter = this.GetReqData<ReqPageParam>();
  282. var data = stuInfoFreshIBLL.GetPageList(parameter.pagination, parameter.queryJson);
  283. var jsonData = new
  284. {
  285. rows = data,
  286. total = parameter.pagination.total,
  287. page = parameter.pagination.page,
  288. records = parameter.pagination.records
  289. };
  290. return Success(jsonData);
  291. }
  292. /// <summary>
  293. /// 获取表单数据
  294. /// <summary>
  295. /// <param name="_"></param>
  296. /// <returns></returns>
  297. public Response GetForm(dynamic _)
  298. {
  299. string keyValue = this.GetReqData();
  300. var StuInfoFreshData = stuInfoFreshIBLL.GetStuInfoFreshEntity(keyValue);
  301. var jsonData = new
  302. {
  303. StuInfoFresh = StuInfoFreshData,
  304. };
  305. return Success(jsonData);
  306. }
  307. /// <summary>
  308. /// 保存实体数据(新增、修改)
  309. /// <param name="_"></param>
  310. /// <summary>
  311. /// <returns></returns>
  312. public Response SaveForm(dynamic _)
  313. {
  314. ReqFormEntity parameter = this.GetReqData<ReqFormEntity>();
  315. StuInfoFreshEntity entity = parameter.strEntity.ToObject<StuInfoFreshEntity>();
  316. stuInfoFreshIBLL.SaveEntity(parameter.keyValue, entity);
  317. return Success("保存成功!");
  318. }
  319. #region 私有类
  320. /// <summary>
  321. /// 表单实体类
  322. /// <summary>
  323. private class ReqFormEntity
  324. {
  325. public string keyValue { get; set; }
  326. public string strEntity { get; set; }
  327. }
  328. #endregion
  329. /// <summary>
  330. /// 个人信息
  331. /// </summary>
  332. public class StuInfoFreshModel
  333. {
  334. /// <summary>
  335. /// 主键
  336. /// </summary>
  337. public string ID { get; set; }
  338. /// <summary>
  339. /// 籍贯
  340. /// </summary>
  341. public string RegionNo { get; set; }
  342. /// <summary>
  343. /// 家庭住址
  344. /// </summary>
  345. public string FamilyAddress { get; set; }
  346. /// <summary>
  347. /// 联系电话
  348. /// </summary>
  349. public string telephone { get; set; }
  350. /// <summary>
  351. /// 头像地址
  352. /// </summary>
  353. public string Photo { get; set; }
  354. /// <summary>
  355. /// 贷款回执码
  356. /// </summary>
  357. public string StudentLoan { get; set; }
  358. /// <summary>
  359. /// 贷款回执码状态
  360. /// </summary>
  361. public string StudentLoanStatus { get; set; }
  362. /// <summary>
  363. /// 办理贷款状态
  364. /// </summary>
  365. public string StudentLoanBLStatus { get; set; }
  366. /// <summary>
  367. /// 家庭成员
  368. /// </summary>
  369. public List<StuInfoFreshFamilyEntity> StuInfoFreshFamilyEntities { get; set; }
  370. /// <summary>
  371. /// 紧急联系人
  372. /// </summary>
  373. public List<StuInfoFreshEmergePeopleEntity> StuInfoFreshEmergePeopleEntities { get; set; }
  374. /// <summary>
  375. /// 开户行
  376. /// </summary>
  377. public string DepositBank { get; set; }
  378. /// <summary>
  379. /// 银行卡号
  380. /// </summary>
  381. public string BankCard { get; set; }
  382. /// <summary>
  383. /// 开户行位置
  384. /// </summary>
  385. public string BankLocation { get; set; }
  386. }
  387. public class PhotoModel
  388. {
  389. public string Base64Url { get; set; }
  390. public string account { get; set; }
  391. }
  392. }
  393. }