You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

549 lines
22 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Net.Http;
  6. using System.Text;
  7. using System.Web;
  8. using Learun.Application.Base.SystemModule;
  9. using Learun.Application.Organization;
  10. using Learun.Application.TwoDevelopment.EducationalAdministration;
  11. using Learun.Util;
  12. using Nancy;
  13. namespace Learun.Application.WebApi.Modules
  14. {
  15. public class Arrangelesson : BaseNoAuthentication
  16. {
  17. public Arrangelesson()
  18. : base("/arrangelesson/")
  19. {
  20. Get["/lessontype"] = GetLessonTypes;
  21. Get["/classtype"] = GetClassType;
  22. Get["/student"] = GetStudents;
  23. Get["/lessonsortdetail"] = GetLessonSortDetails;
  24. Get["/lessonsort"] = GetLessonSorts;
  25. Get["/classlesson"] = GetClassLessons;
  26. Get["/bukaolist"] = GetBuKaoList;
  27. //以下接口需要传值学年学期
  28. Get["/school"] = GetSchools;
  29. Get["/dept"] = GetDepts;
  30. Get["/major"] = GetMajors;
  31. Get["/classroom"] = GetClassrooms;
  32. Get["/lesson"] = GetLessons;
  33. Get["/teacher"] = GetTeachers;
  34. Get["/class"] = GetClasses;
  35. Get["/stu"] = GetStus;
  36. //以下返回全部
  37. Get["/department"] = GetDepartment;
  38. Get["/allteacher"] = GetAllTeachers;
  39. Get["/allstudent"] = GetAllStudents;
  40. Get["/alldept"] = GetAllDept;
  41. Get["/allmajor"] = GetAllMajor;
  42. Get["/alllesson"] = GetAllLesson;
  43. Get["/allclass"] = GetAllClass;
  44. Get["/alluser"] = GetAllUsers;
  45. Get["/allschool"] = GetAllSchools;
  46. Get["/allclasslesson"] = GetAllClassLesson;
  47. Get["/allelelectivelesson"] = GetAllElectiveLesson;
  48. Get["/allteacheruser"] = GetAllTeachersUsers;
  49. //以下接口不往ArrangeLessonSync里记录已传数据
  50. Get["/schoolNotRecord"] = GetSchoolsNotRecord;
  51. Get["/deptNotRecord"] = GetDeptsNotRecord;
  52. Get["/majorNotRecord"] = GetMajorsNotRecord;
  53. Get["/classroomNotRecord"] = GetClassroomsNotRecord;
  54. Get["/lessonNotRecord"] = GetLessonsNotRecord;
  55. Get["/teacherNotRecord"] = GetTeachersNotRecord;
  56. Get["/classNotRecord"] = GetClassesNotRecord;
  57. Get["/stuNotRecord"] = GetStusNotRecord;
  58. Get["trantest"] = TranTest;
  59. //按条件重置基础数据同步状态
  60. Get["/initbasicdata"] = InitBasicData;
  61. //信息浏览
  62. //校区简介
  63. Get["/getBriefIntroductionById"] = GetBriefIntroductionById;
  64. //学校新闻、校园风光
  65. Get["/getSchoolNewList"] = GetSchoolNewList;
  66. //专业列表
  67. Get["/getCdMajorList"] = GetCdMajorList;
  68. //新闻详情
  69. Get["/getSchoolNewsDetails"] = GetSchoolNewsDetails;
  70. //校历
  71. Get["/getCalendarList"] = GetCalendarList;
  72. //校历详情
  73. Get["/getCalendarDetails"] = GetCalendarDetails;
  74. Get["/getqrcode"] = GetQRCode;
  75. }
  76. private readonly ArrangeLessonTermIBLL arrangeLessonTermIBLL = new ArrangeLessonTermBLL();
  77. private readonly StuScoreIBLL stuScoreIBLL = new StuScoreBLL();
  78. private DepartmentIBLL departmentIBLL = new DepartmentBLL();
  79. EmpInfoIBLL empInfoIbll = new EmpInfoBLL();
  80. private StuInfoBasicIBLL stuInfoBasicIbll = new StuInfoBasicBLL();
  81. CdDeptIBLL cdDeptIbll = new CdDeptBLL();
  82. CdMajorIBLL cdMajorIbll = new CdMajorBLL();
  83. private LessonInfoIBLL lessonInfoIbll = new LessonInfoBLL();
  84. ClassInfoIBLL classInfoIbll = new ClassInfoBLL();
  85. UserIBLL userIbll = new UserBLL();
  86. private CompanyIBLL companyIbll = new CompanyBLL();
  87. private SchoolNewsIBLL schoolNewsIBLL = new SchoolNewsBLL();
  88. private CdMajorIBLL cdMajorIBLL = new CdMajorBLL();
  89. private SchoolCalendarIBLL schoolCalendarIBLL = new SchoolCalendarBLL();
  90. private StuSelectLessonListOfElectiveIBLL stuSelectLessonListOfElectiveIbll =
  91. new StuSelectLessonListOfElectiveBLL();
  92. private AnnexesFileIBLL annexesFileIbll = new AnnexesFileBLL();
  93. private OfficeEquipmentIBLL officeEquipmentIBLL = new OfficeEquipmentBLL();
  94. private FixedAssetsIBLL fixedAssetsIBLL = new FixedAssetsBLL();
  95. private DataItemIBLL dataItemIBLL = new DataItemBLL();
  96. private EmpInfoIBLL empinfoIBLL = new EmpInfoBLL();
  97. private Response TranTest(dynamic _)
  98. {
  99. return Success("ok");
  100. }
  101. private Response GetAllLesson(dynamic _)
  102. {
  103. var result = lessonInfoIbll.GetAllLesson();
  104. return Success(result);
  105. }
  106. private Response GetAllClass(dynamic _)
  107. {
  108. var result = classInfoIbll.GetAllClass();
  109. return Success(result);
  110. }
  111. private Response GetAllTeachers(dynamic _)
  112. {
  113. var result = empInfoIbll.GetAllList().Where(m => m.CheckMark == true).ToList();
  114. return Success(result);
  115. }
  116. private Response GetAllTeachersUsers(dynamic _)
  117. {
  118. var result = userIbll.GetAllList().Where(m => m.F_DeleteMark == 0 && m.F_EnabledMark == 1 && m.F_Description == "教师").ToList();
  119. return Success(result);
  120. }
  121. private Response GetAllSchools(dynamic _)
  122. {
  123. var result = companyIbll.GetList();
  124. return Success(result);
  125. }
  126. private Response GetAllClassLesson(dynamic _)
  127. {
  128. string AcademicYearNo = Request.Query["AcademicYearNo"];
  129. string Semester = Request.Query["Semester"];
  130. var result = arrangeLessonTermIBLL.GetAllClassLesson(AcademicYearNo, Semester);
  131. return Success(result);
  132. }
  133. private Response InitBasicData(dynamic _)
  134. {
  135. string AcademicYearNo = Request.Query["AcademicYearNo"];
  136. string Semester = Request.Query["Semester"];
  137. string BaseTable = Request.Query["BaseTable"];
  138. if (string.IsNullOrEmpty(AcademicYearNo) || string.IsNullOrEmpty(Semester))
  139. {
  140. return Fail("学年学期参数不能为空");
  141. }
  142. if (string.IsNullOrEmpty(BaseTable))
  143. {
  144. return Fail("基础表参数不能为空");
  145. }
  146. ArrangeLessonTermEntity arrangeLessonTermEntity = new ArrangeLessonTermEntity();
  147. arrangeLessonTermEntity.AcademicYearNo = AcademicYearNo;
  148. arrangeLessonTermEntity.Semester = Semester;
  149. arrangeLessonTermEntity.SyncBasicTable = BaseTable;
  150. arrangeLessonTermIBLL.InitAsyncDataByCondition(arrangeLessonTermEntity);
  151. return Success("操作成功");
  152. }
  153. private Response GetAllElectiveLesson(dynamic _)
  154. {
  155. string AcademicYearNo = Request.Query["AcademicYearNo"];
  156. string Semester = Request.Query["Semester"];
  157. var result = stuSelectLessonListOfElectiveIbll.GetAllElectiveLesson(AcademicYearNo, Semester);
  158. return Success(result);
  159. }
  160. private Response GetAllUsers(dynamic _)
  161. {
  162. var webrootpath = Config.GetValue("webrootpath");
  163. var result = userIbll.GetAllList().Where(m => !m.F_Account.Contains("System") && m.F_DeleteMark == 0 && m.F_EnabledMark == 1).Select(m => new
  164. {
  165. m.F_UserId,
  166. m.F_CompanyId,
  167. m.F_DepartmentId,
  168. F_Description = m.F_Description == "教师" ? "2" : "3",
  169. ClassNo = stuInfoBasicIbll.GetStuInfoBasicEntityByStuNo(m.F_Account)?.ClassNo,
  170. m.F_RealName,
  171. m.F_Account,
  172. Year = "20" + stuInfoBasicIbll.GetStuInfoBasicEntityByStuNo(m.F_Account)?.Grade,
  173. m.F_IdentityCardNo,
  174. F_HeadIcon = webrootpath + m?.F_HeadIcon
  175. });
  176. return Success(result);
  177. }
  178. private Response GetAllStudents(dynamic _)
  179. {
  180. var webrootpath = Config.GetValue("webrootpath");
  181. var result = stuInfoBasicIbll.GetAllList();
  182. foreach (var item in result)
  183. {
  184. if (!string.IsNullOrEmpty(item.Photo))
  185. {
  186. var annfile = annexesFileIbll.GetEntityByFolderId(item.Photo);
  187. if (annfile != null && annfile.F_FilePath != null)
  188. {
  189. if (annfile.F_FilePath.IndexOf("Resource") != -1)
  190. {
  191. item.Photo = webrootpath + annfile.F_FilePath.Substring(annfile.F_FilePath.IndexOf("Resource") - 1);
  192. }
  193. else
  194. item.Photo = "";
  195. }
  196. else
  197. item.Photo = "";
  198. }
  199. else
  200. {
  201. item.Photo = "";
  202. }
  203. }
  204. return Success(result);
  205. }
  206. private Response GetDepartment(dynamic _)
  207. {
  208. var result = departmentIBLL.GetAllList();
  209. return Success(result);
  210. }
  211. private Response GetAllDept(dynamic _)
  212. {
  213. var result = cdDeptIbll.GetAllList();
  214. return Success(result);
  215. }
  216. private Response GetAllMajor(dynamic _)
  217. {
  218. var result = cdMajorIbll.GetAllList();
  219. return Success(result);
  220. }
  221. private Response GetLessonTypes(dynamic _)
  222. {
  223. var result = arrangeLessonTermIBLL.GetLessonTypes();
  224. return Success(result);
  225. }
  226. private Response GetDepts(dynamic _)
  227. {
  228. string AcademicYearNo = Request.Query["AcademicYearNo"];
  229. string Semester = Request.Query["Semester"];
  230. var result = arrangeLessonTermIBLL.GetDepts(AcademicYearNo, Semester);
  231. return Success(result);
  232. }
  233. private Response GetDeptsNotRecord(dynamic _)
  234. {
  235. string AcademicYearNo = Request.Query["AcademicYearNo"];
  236. string Semester = Request.Query["Semester"];
  237. var result = arrangeLessonTermIBLL.GetDeptsNotRecord(AcademicYearNo, Semester);
  238. return Success(result);
  239. }
  240. private Response GetSchools(dynamic _)
  241. {
  242. string AcademicYearNo = Request.Query["AcademicYearNo"];
  243. string Semester = Request.Query["Semester"];
  244. var result = arrangeLessonTermIBLL.GetSchools(AcademicYearNo, Semester);
  245. return Success(result);
  246. }
  247. private Response GetSchoolsNotRecord(dynamic _)
  248. {
  249. string AcademicYearNo = Request.Query["AcademicYearNo"];
  250. string Semester = Request.Query["Semester"];
  251. var result = arrangeLessonTermIBLL.GetSchoolsNotRecord(AcademicYearNo, Semester);
  252. return Success(result);
  253. }
  254. private Response GetClassLessons(dynamic _)
  255. {
  256. var result = arrangeLessonTermIBLL.GetClassLessons().Select(m => new
  257. {
  258. m.AcademicYearNo,
  259. m.Semester,
  260. m.DeptNo,
  261. m.MajorNo,
  262. m.LessonNo,
  263. m.TeachClassNo,
  264. m.EmpNo,
  265. m.LessonSortNo
  266. });
  267. return Success(result);
  268. }
  269. public Response GetStudents(dynamic _)
  270. {
  271. var result = arrangeLessonTermIBLL.GetStudents();
  272. return Success(result);
  273. }
  274. public Response GetMajors(dynamic _)
  275. {
  276. string AcademicYearNo = Request.Query["AcademicYearNo"];
  277. string Semester = Request.Query["Semester"];
  278. var result = arrangeLessonTermIBLL.GetMajors(AcademicYearNo, Semester);
  279. return Success(result);
  280. }
  281. public Response GetMajorsNotRecord(dynamic _)
  282. {
  283. string AcademicYearNo = Request.Query["AcademicYearNo"];
  284. string Semester = Request.Query["Semester"];
  285. var result = arrangeLessonTermIBLL.GetMajorsNotRecord(AcademicYearNo, Semester);
  286. return Success(result);
  287. }
  288. public Response GetClassrooms(dynamic _)
  289. {
  290. string AcademicYearNo = Request.Query["AcademicYearNo"];
  291. string Semester = Request.Query["Semester"];
  292. var result = arrangeLessonTermIBLL.GetClassrooms(AcademicYearNo, Semester);
  293. return Success(result);
  294. }
  295. public Response GetClassroomsNotRecord(dynamic _)
  296. {
  297. string AcademicYearNo = Request.Query["AcademicYearNo"];
  298. string Semester = Request.Query["Semester"];
  299. var result = arrangeLessonTermIBLL.GetClassroomsNotRecord(AcademicYearNo, Semester);
  300. return Success(result);
  301. }
  302. public Response GetClassType(dynamic _)
  303. {
  304. var result = arrangeLessonTermIBLL.GetClassType();
  305. return Success(result);
  306. }
  307. public Response GetLessons(dynamic _)
  308. {
  309. string AcademicYearNo = Request.Query["AcademicYearNo"];
  310. string Semester = Request.Query["Semester"];
  311. var result = arrangeLessonTermIBLL.GetLessons(AcademicYearNo, Semester);
  312. return Success(result);
  313. }
  314. public Response GetLessonsNotRecord(dynamic _)
  315. {
  316. string AcademicYearNo = Request.Query["AcademicYearNo"];
  317. string Semester = Request.Query["Semester"];
  318. var result = arrangeLessonTermIBLL.GetLessonsNotRecord(AcademicYearNo, Semester);
  319. return Success(result);
  320. }
  321. public Response GetLessonSortDetails(dynamic _)
  322. {
  323. var result = arrangeLessonTermIBLL.GetLessonSortDetails();
  324. return Success(result);
  325. }
  326. public Response GetLessonSorts(dynamic _)
  327. {
  328. var result = arrangeLessonTermIBLL.GetLessonSorts();
  329. return Success(result);
  330. }
  331. public Response GetTeachers(dynamic _)
  332. {
  333. string AcademicYearNo = Request.Query["AcademicYearNo"];
  334. string Semester = Request.Query["Semester"];
  335. var result = arrangeLessonTermIBLL.GetTeachers(AcademicYearNo, Semester);
  336. return Success(result);
  337. }
  338. public Response GetTeachersNotRecord(dynamic _)
  339. {
  340. string AcademicYearNo = Request.Query["AcademicYearNo"];
  341. string Semester = Request.Query["Semester"];
  342. var result = arrangeLessonTermIBLL.GetTeachersNotRecord(AcademicYearNo, Semester);
  343. return Success(result);
  344. }
  345. public Response GetClasses(dynamic _)
  346. {
  347. string AcademicYearNo = Request.Query["AcademicYearNo"];
  348. string Semester = Request.Query["Semester"];
  349. var result = arrangeLessonTermIBLL.GetClasses(AcademicYearNo, Semester);
  350. return Success(result);
  351. }
  352. public Response GetClassesNotRecord(dynamic _)
  353. {
  354. string AcademicYearNo = Request.Query["AcademicYearNo"];
  355. string Semester = Request.Query["Semester"];
  356. var result = arrangeLessonTermIBLL.GetClassesNotRecord(AcademicYearNo, Semester);
  357. return Success(result);
  358. }
  359. public Response GetStus(dynamic _)
  360. {
  361. string AcademicYearNo = Request.Query["AcademicYearNo"];
  362. string Semester = Request.Query["Semester"];
  363. var result = arrangeLessonTermIBLL.GetStus(AcademicYearNo, Semester);
  364. return Success(result);
  365. }
  366. public Response GetStusNotRecord(dynamic _)
  367. {
  368. string AcademicYearNo = Request.Query["AcademicYearNo"];
  369. string Semester = Request.Query["Semester"];
  370. var result = arrangeLessonTermIBLL.GetStusNotRecord(AcademicYearNo, Semester);
  371. return Success(result);
  372. }
  373. /// <summary>
  374. /// 补考名单数据
  375. /// </summary>
  376. /// <param name="_"></param>
  377. /// <returns></returns>
  378. private Response GetBuKaoList(dynamic _)
  379. {
  380. var allList = new List<StuScoreEntity>();
  381. var notPassList = stuScoreIBLL.GetStuScoreNotPassList();
  382. allList.AddRange(notPassList);
  383. var notPassTwoList = stuScoreIBLL.GetStuScoreNotPassTwoList();
  384. allList.AddRange(notPassTwoList);
  385. var result = allList.Select(x => new { x.BuKaoFlag, x.AcademicYearNo, x.Semester, x.StuId, x.StuName, x.LessonId, x.LessonName, x.ClassId, x.ClassName, x.EmpId, x.EmpName }).OrderBy(x => x.BuKaoFlag).ThenByDescending(x => x.AcademicYearNo).ThenByDescending(x => x.Semester).ThenBy(x => x.StuId);
  386. return Success(result);
  387. }
  388. /// <summary>
  389. /// 获取学校简介
  390. /// </summary>
  391. /// <param name="_"></param>
  392. /// <returns></returns>
  393. private Response GetBriefIntroductionById(dynamic _)
  394. {
  395. var result = companyIbll.GetDetail();
  396. if (result == null)
  397. return Success("");//Fail("找不到数据!");
  398. else
  399. {
  400. return Success(WebHelper.HtmlDecode(result.F_BriefIntroduction));
  401. }
  402. }
  403. /// <summary>
  404. /// 获取学校新闻列表、校园风光列表
  405. /// </summary>
  406. /// <param name="_"></param>
  407. /// <returns></returns>
  408. public Response GetSchoolNewList(dynamic _)
  409. {
  410. string categoryId = Request.Query["categoryId"];
  411. var result = schoolNewsIBLL.GetListByCategoryId(categoryId);
  412. return Success(result);
  413. }
  414. /// <summary>
  415. /// 获取专业列表
  416. /// </summary>
  417. /// <param name="_"></param>
  418. /// <returns></returns>
  419. public Response GetCdMajorList(dynamic _)
  420. {
  421. string keyword = Request.Query["keyword"];
  422. var result = cdMajorIBLL.GetAllList(keyword);
  423. return Success(result);
  424. }
  425. /// <summary>
  426. /// 获取详情
  427. /// </summary>
  428. /// <param name="_"></param>
  429. /// <returns></returns>
  430. public Response GetSchoolNewsDetails(dynamic _)
  431. {
  432. string Id = Request.Query["Id"];
  433. //type: 1学校新闻,2校园风光,3 专业介绍
  434. string type = Request.Query["type"];
  435. var title = "";
  436. var time = "";
  437. var desc = "";
  438. switch (type)
  439. {
  440. case "1":
  441. {
  442. //学校新闻
  443. var result = schoolNewsIBLL.GetLR_OA_SchoolNewsEntity(Id);
  444. if (result != null)
  445. {
  446. title = result.F_FullHead;
  447. time = result.F_ReleaseTime.HasValue ? result.F_ReleaseTime.Value.ToString("yyyy-MM-dd") : "";
  448. desc = result.F_NewsContent;
  449. }
  450. break;
  451. }
  452. case "2":
  453. {
  454. //校园风光
  455. var result = schoolNewsIBLL.GetLR_OA_SchoolNewsEntity(Id);
  456. if (result != null)
  457. {
  458. title = result.F_FullHead;
  459. time = result.F_ReleaseTime.HasValue ? result.F_ReleaseTime.Value.ToString("yyyy-MM-dd") : "";
  460. desc = result.F_NewsContent;
  461. }
  462. break;
  463. }
  464. case "3":
  465. {
  466. //专业介绍
  467. var result = cdMajorIBLL.GetCdMajorEntity(Id);
  468. if (result != null)
  469. {
  470. title = result.MajorName;
  471. time = "";
  472. desc = result.Introduce;
  473. }
  474. break;
  475. }
  476. }
  477. object obj = new { title = title, desc = WebHelper.HtmlDecode(desc) };
  478. return Success(obj);
  479. }
  480. /// <summary>
  481. /// 获取校历
  482. /// </summary>
  483. /// <param name="_"></param>
  484. /// <returns></returns>
  485. public Response GetCalendarList(dynamic _)
  486. {
  487. var result = schoolCalendarIBLL.GetList();
  488. return Success(result);
  489. }
  490. /// <summary>
  491. /// 获取校历详情
  492. /// </summary>
  493. /// <param name="_"></param>
  494. /// <returns></returns>
  495. public Response GetCalendarDetails(dynamic _)
  496. {
  497. string keyValue = Request.Query["keyValue"];
  498. var result = schoolCalendarIBLL.GetSchoolCalendarEntity(keyValue);
  499. return Success(result);
  500. }
  501. public Response GetQRCode(dynamic _)
  502. {
  503. string keyValue = Request.Query["keyValue"];
  504. int Types = Request.Query["Types"];
  505. var result = "";
  506. if (Types == 0)
  507. {
  508. var Data = officeEquipmentIBLL.GetOfficeEquipmentEntity(keyValue);
  509. var emp = empinfoIBLL.GetEmpInfoEntityByEmpNo(Data.Name);
  510. var Unit = dataItemIBLL.GetDetailList("sldw").Where(x => x.F_ItemValue == Data.Unit).FirstOrDefault();
  511. result = "资产名称:" + Data.DeviceName + ";<br>资产编号:" + Data.Code + ";<br>品牌:" +
  512. Data.Brand + ";<br>型号:" + Data.Model + ";<br>参数:" + Data.Argument + ";<br>单位:(" + Unit.F_ItemName + ");<br>数量:" + Data.Nuantity + ";<br>使用管理人:" + emp.EmpName + ";<br>备注:" + Data.Remark;
  513. }
  514. else
  515. {
  516. var Data = fixedAssetsIBLL.GetFixedAssetsEntity(keyValue);
  517. var emp = empinfoIBLL.GetEmpInfoEntityByEmpNo(Data.UsePeople);
  518. var Unit = dataItemIBLL.GetDetailList("sldw").Where(x => x.F_ItemValue == Data.Unit).FirstOrDefault();
  519. result = "资产名称:" + Data.AssetsName + ";<br>资产编号:" + Data.Code + ";<br>品牌:" +
  520. Data.Brand + ";<br>型号:" + Data.Model + ";<br>参数:" + Data.Argument + ";<br>单位:(" + Unit.F_ItemName + ");<br>数量:" + Data.Nuantity + ";<br>使用管理人:" + emp.EmpName + ";<br>备注:" + Data.Remark;
  521. }
  522. return Response.AsText(result).WithContentType("text/html;charset=utf-8");
  523. }
  524. }
  525. }