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.
 
 
 
 
 
 

550 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 UserIBLL userIBLL = new UserBLL();
  98. private Response TranTest(dynamic _)
  99. {
  100. return Success("ok");
  101. }
  102. private Response GetAllLesson(dynamic _)
  103. {
  104. var result = lessonInfoIbll.GetAllLesson();
  105. return Success(result);
  106. }
  107. private Response GetAllClass(dynamic _)
  108. {
  109. var result = classInfoIbll.GetAllClass();
  110. return Success(result);
  111. }
  112. private Response GetAllTeachers(dynamic _)
  113. {
  114. var result = empInfoIbll.GetAllList().Where(m => m.CheckMark == true).ToList();
  115. return Success(result);
  116. }
  117. private Response GetAllTeachersUsers(dynamic _)
  118. {
  119. var result = userIbll.GetAllList().Where(m => m.F_DeleteMark == 0 && m.F_EnabledMark == 1 && m.F_Description == "教师").ToList();
  120. return Success(result);
  121. }
  122. private Response GetAllSchools(dynamic _)
  123. {
  124. var result = companyIbll.GetList();
  125. return Success(result);
  126. }
  127. private Response GetAllClassLesson(dynamic _)
  128. {
  129. string AcademicYearNo = Request.Query["AcademicYearNo"];
  130. string Semester = Request.Query["Semester"];
  131. var result = arrangeLessonTermIBLL.GetAllClassLesson(AcademicYearNo, Semester);
  132. return Success(result);
  133. }
  134. private Response InitBasicData(dynamic _)
  135. {
  136. string AcademicYearNo = Request.Query["AcademicYearNo"];
  137. string Semester = Request.Query["Semester"];
  138. string BaseTable = Request.Query["BaseTable"];
  139. if (string.IsNullOrEmpty(AcademicYearNo) || string.IsNullOrEmpty(Semester))
  140. {
  141. return Fail("学年学期参数不能为空");
  142. }
  143. if (string.IsNullOrEmpty(BaseTable))
  144. {
  145. return Fail("基础表参数不能为空");
  146. }
  147. ArrangeLessonTermEntity arrangeLessonTermEntity = new ArrangeLessonTermEntity();
  148. arrangeLessonTermEntity.AcademicYearNo = AcademicYearNo;
  149. arrangeLessonTermEntity.Semester = Semester;
  150. arrangeLessonTermEntity.SyncBasicTable = BaseTable;
  151. arrangeLessonTermIBLL.InitAsyncDataByCondition(arrangeLessonTermEntity);
  152. return Success("操作成功");
  153. }
  154. private Response GetAllElectiveLesson(dynamic _)
  155. {
  156. string AcademicYearNo = Request.Query["AcademicYearNo"];
  157. string Semester = Request.Query["Semester"];
  158. var result = stuSelectLessonListOfElectiveIbll.GetAllElectiveLesson(AcademicYearNo, Semester);
  159. return Success(result);
  160. }
  161. private Response GetAllUsers(dynamic _)
  162. {
  163. var webrootpath = Config.GetValue("webrootpath");
  164. var result = userIbll.GetAllList().Where(m => !m.F_Account.Contains("System") && m.F_DeleteMark == 0 && m.F_EnabledMark == 1).Select(m => new
  165. {
  166. m.F_UserId,
  167. m.F_CompanyId,
  168. m.F_DepartmentId,
  169. F_Description = m.F_Description == "教师" ? "2" : "3",
  170. ClassNo = stuInfoBasicIbll.GetStuInfoBasicEntityByStuNo(m.F_Account)?.ClassNo,
  171. m.F_RealName,
  172. m.F_Account,
  173. Year = "20" + stuInfoBasicIbll.GetStuInfoBasicEntityByStuNo(m.F_Account)?.Grade,
  174. m.F_IdentityCardNo,
  175. F_HeadIcon = webrootpath + m?.F_HeadIcon
  176. });
  177. return Success(result);
  178. }
  179. private Response GetAllStudents(dynamic _)
  180. {
  181. var webrootpath = Config.GetValue("webrootpath");
  182. var result = stuInfoBasicIbll.GetAllList();
  183. foreach (var item in result)
  184. {
  185. if (!string.IsNullOrEmpty(item.Photo))
  186. {
  187. var annfile = annexesFileIbll.GetEntityByFolderId(item.Photo);
  188. if (annfile != null && annfile.F_FilePath != null)
  189. {
  190. if (annfile.F_FilePath.IndexOf("Resource") != -1)
  191. {
  192. item.Photo = webrootpath + annfile.F_FilePath.Substring(annfile.F_FilePath.IndexOf("Resource") - 1);
  193. }
  194. else
  195. item.Photo = "";
  196. }
  197. else
  198. item.Photo = "";
  199. }
  200. else
  201. {
  202. item.Photo = "";
  203. }
  204. }
  205. return Success(result);
  206. }
  207. private Response GetDepartment(dynamic _)
  208. {
  209. var result = departmentIBLL.GetAllList();
  210. return Success(result);
  211. }
  212. private Response GetAllDept(dynamic _)
  213. {
  214. var result = cdDeptIbll.GetAllList();
  215. return Success(result);
  216. }
  217. private Response GetAllMajor(dynamic _)
  218. {
  219. var result = cdMajorIbll.GetAllList();
  220. return Success(result);
  221. }
  222. private Response GetLessonTypes(dynamic _)
  223. {
  224. var result = arrangeLessonTermIBLL.GetLessonTypes();
  225. return Success(result);
  226. }
  227. private Response GetDepts(dynamic _)
  228. {
  229. string AcademicYearNo = Request.Query["AcademicYearNo"];
  230. string Semester = Request.Query["Semester"];
  231. var result = arrangeLessonTermIBLL.GetDepts(AcademicYearNo, Semester);
  232. return Success(result);
  233. }
  234. private Response GetDeptsNotRecord(dynamic _)
  235. {
  236. string AcademicYearNo = Request.Query["AcademicYearNo"];
  237. string Semester = Request.Query["Semester"];
  238. var result = arrangeLessonTermIBLL.GetDeptsNotRecord(AcademicYearNo, Semester);
  239. return Success(result);
  240. }
  241. private Response GetSchools(dynamic _)
  242. {
  243. string AcademicYearNo = Request.Query["AcademicYearNo"];
  244. string Semester = Request.Query["Semester"];
  245. var result = arrangeLessonTermIBLL.GetSchools(AcademicYearNo, Semester);
  246. return Success(result);
  247. }
  248. private Response GetSchoolsNotRecord(dynamic _)
  249. {
  250. string AcademicYearNo = Request.Query["AcademicYearNo"];
  251. string Semester = Request.Query["Semester"];
  252. var result = arrangeLessonTermIBLL.GetSchoolsNotRecord(AcademicYearNo, Semester);
  253. return Success(result);
  254. }
  255. private Response GetClassLessons(dynamic _)
  256. {
  257. var result = arrangeLessonTermIBLL.GetClassLessons().Select(m => new
  258. {
  259. m.AcademicYearNo,
  260. m.Semester,
  261. m.DeptNo,
  262. m.MajorNo,
  263. m.LessonNo,
  264. m.TeachClassNo,
  265. m.EmpNo,
  266. m.LessonSortNo
  267. });
  268. return Success(result);
  269. }
  270. public Response GetStudents(dynamic _)
  271. {
  272. var result = arrangeLessonTermIBLL.GetStudents();
  273. return Success(result);
  274. }
  275. public Response GetMajors(dynamic _)
  276. {
  277. string AcademicYearNo = Request.Query["AcademicYearNo"];
  278. string Semester = Request.Query["Semester"];
  279. var result = arrangeLessonTermIBLL.GetMajors(AcademicYearNo, Semester);
  280. return Success(result);
  281. }
  282. public Response GetMajorsNotRecord(dynamic _)
  283. {
  284. string AcademicYearNo = Request.Query["AcademicYearNo"];
  285. string Semester = Request.Query["Semester"];
  286. var result = arrangeLessonTermIBLL.GetMajorsNotRecord(AcademicYearNo, Semester);
  287. return Success(result);
  288. }
  289. public Response GetClassrooms(dynamic _)
  290. {
  291. string AcademicYearNo = Request.Query["AcademicYearNo"];
  292. string Semester = Request.Query["Semester"];
  293. var result = arrangeLessonTermIBLL.GetClassrooms(AcademicYearNo, Semester);
  294. return Success(result);
  295. }
  296. public Response GetClassroomsNotRecord(dynamic _)
  297. {
  298. string AcademicYearNo = Request.Query["AcademicYearNo"];
  299. string Semester = Request.Query["Semester"];
  300. var result = arrangeLessonTermIBLL.GetClassroomsNotRecord(AcademicYearNo, Semester);
  301. return Success(result);
  302. }
  303. public Response GetClassType(dynamic _)
  304. {
  305. var result = arrangeLessonTermIBLL.GetClassType();
  306. return Success(result);
  307. }
  308. public Response GetLessons(dynamic _)
  309. {
  310. string AcademicYearNo = Request.Query["AcademicYearNo"];
  311. string Semester = Request.Query["Semester"];
  312. var result = arrangeLessonTermIBLL.GetLessons(AcademicYearNo, Semester);
  313. return Success(result);
  314. }
  315. public Response GetLessonsNotRecord(dynamic _)
  316. {
  317. string AcademicYearNo = Request.Query["AcademicYearNo"];
  318. string Semester = Request.Query["Semester"];
  319. var result = arrangeLessonTermIBLL.GetLessonsNotRecord(AcademicYearNo, Semester);
  320. return Success(result);
  321. }
  322. public Response GetLessonSortDetails(dynamic _)
  323. {
  324. var result = arrangeLessonTermIBLL.GetLessonSortDetails();
  325. return Success(result);
  326. }
  327. public Response GetLessonSorts(dynamic _)
  328. {
  329. var result = arrangeLessonTermIBLL.GetLessonSorts();
  330. return Success(result);
  331. }
  332. public Response GetTeachers(dynamic _)
  333. {
  334. string AcademicYearNo = Request.Query["AcademicYearNo"];
  335. string Semester = Request.Query["Semester"];
  336. var result = arrangeLessonTermIBLL.GetTeachers(AcademicYearNo, Semester);
  337. return Success(result);
  338. }
  339. public Response GetTeachersNotRecord(dynamic _)
  340. {
  341. string AcademicYearNo = Request.Query["AcademicYearNo"];
  342. string Semester = Request.Query["Semester"];
  343. var result = arrangeLessonTermIBLL.GetTeachersNotRecord(AcademicYearNo, Semester);
  344. return Success(result);
  345. }
  346. public Response GetClasses(dynamic _)
  347. {
  348. string AcademicYearNo = Request.Query["AcademicYearNo"];
  349. string Semester = Request.Query["Semester"];
  350. var result = arrangeLessonTermIBLL.GetClasses(AcademicYearNo, Semester);
  351. return Success(result);
  352. }
  353. public Response GetClassesNotRecord(dynamic _)
  354. {
  355. string AcademicYearNo = Request.Query["AcademicYearNo"];
  356. string Semester = Request.Query["Semester"];
  357. var result = arrangeLessonTermIBLL.GetClassesNotRecord(AcademicYearNo, Semester);
  358. return Success(result);
  359. }
  360. public Response GetStus(dynamic _)
  361. {
  362. string AcademicYearNo = Request.Query["AcademicYearNo"];
  363. string Semester = Request.Query["Semester"];
  364. var result = arrangeLessonTermIBLL.GetStus(AcademicYearNo, Semester);
  365. return Success(result);
  366. }
  367. public Response GetStusNotRecord(dynamic _)
  368. {
  369. string AcademicYearNo = Request.Query["AcademicYearNo"];
  370. string Semester = Request.Query["Semester"];
  371. var result = arrangeLessonTermIBLL.GetStusNotRecord(AcademicYearNo, Semester);
  372. return Success(result);
  373. }
  374. /// <summary>
  375. /// 补考名单数据
  376. /// </summary>
  377. /// <param name="_"></param>
  378. /// <returns></returns>
  379. private Response GetBuKaoList(dynamic _)
  380. {
  381. var allList = new List<StuScoreEntity>();
  382. var notPassList = stuScoreIBLL.GetStuScoreNotPassList();
  383. allList.AddRange(notPassList);
  384. var notPassTwoList = stuScoreIBLL.GetStuScoreNotPassTwoList();
  385. allList.AddRange(notPassTwoList);
  386. 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);
  387. return Success(result);
  388. }
  389. /// <summary>
  390. /// 获取学校简介
  391. /// </summary>
  392. /// <param name="_"></param>
  393. /// <returns></returns>
  394. private Response GetBriefIntroductionById(dynamic _)
  395. {
  396. var result = companyIbll.GetDetail();
  397. if (result == null)
  398. return Success("");//Fail("找不到数据!");
  399. else
  400. {
  401. return Success(WebHelper.HtmlDecode(result.F_BriefIntroduction));
  402. }
  403. }
  404. /// <summary>
  405. /// 获取学校新闻列表、校园风光列表
  406. /// </summary>
  407. /// <param name="_"></param>
  408. /// <returns></returns>
  409. public Response GetSchoolNewList(dynamic _)
  410. {
  411. string categoryId = Request.Query["categoryId"];
  412. var result = schoolNewsIBLL.GetListByCategoryId(categoryId);
  413. return Success(result);
  414. }
  415. /// <summary>
  416. /// 获取专业列表
  417. /// </summary>
  418. /// <param name="_"></param>
  419. /// <returns></returns>
  420. public Response GetCdMajorList(dynamic _)
  421. {
  422. string keyword = Request.Query["keyword"];
  423. var result = cdMajorIBLL.GetAllList(keyword);
  424. return Success(result);
  425. }
  426. /// <summary>
  427. /// 获取详情
  428. /// </summary>
  429. /// <param name="_"></param>
  430. /// <returns></returns>
  431. public Response GetSchoolNewsDetails(dynamic _)
  432. {
  433. string Id = Request.Query["Id"];
  434. //type: 1学校新闻,2校园风光,3 专业介绍
  435. string type = Request.Query["type"];
  436. var title = "";
  437. var time = "";
  438. var desc = "";
  439. switch (type)
  440. {
  441. case "1":
  442. {
  443. //学校新闻
  444. var result = schoolNewsIBLL.GetLR_OA_SchoolNewsEntity(Id);
  445. if (result != null)
  446. {
  447. title = result.F_FullHead;
  448. time = result.F_ReleaseTime.HasValue ? result.F_ReleaseTime.Value.ToString("yyyy-MM-dd") : "";
  449. desc = result.F_NewsContent;
  450. }
  451. break;
  452. }
  453. case "2":
  454. {
  455. //校园风光
  456. var result = schoolNewsIBLL.GetLR_OA_SchoolNewsEntity(Id);
  457. if (result != null)
  458. {
  459. title = result.F_FullHead;
  460. time = result.F_ReleaseTime.HasValue ? result.F_ReleaseTime.Value.ToString("yyyy-MM-dd") : "";
  461. desc = result.F_NewsContent;
  462. }
  463. break;
  464. }
  465. case "3":
  466. {
  467. //专业介绍
  468. var result = cdMajorIBLL.GetCdMajorEntity(Id);
  469. if (result != null)
  470. {
  471. title = result.MajorName;
  472. time = "";
  473. desc = result.Introduce;
  474. }
  475. break;
  476. }
  477. }
  478. object obj = new { title = title, desc = WebHelper.HtmlDecode(desc) };
  479. return Success(obj);
  480. }
  481. /// <summary>
  482. /// 获取校历
  483. /// </summary>
  484. /// <param name="_"></param>
  485. /// <returns></returns>
  486. public Response GetCalendarList(dynamic _)
  487. {
  488. var result = schoolCalendarIBLL.GetList();
  489. return Success(result);
  490. }
  491. /// <summary>
  492. /// 获取校历详情
  493. /// </summary>
  494. /// <param name="_"></param>
  495. /// <returns></returns>
  496. public Response GetCalendarDetails(dynamic _)
  497. {
  498. string keyValue = Request.Query["keyValue"];
  499. var result = schoolCalendarIBLL.GetSchoolCalendarEntity(keyValue);
  500. return Success(result);
  501. }
  502. public Response GetQRCode(dynamic _)
  503. {
  504. string keyValue = Request.Query["keyValue"];
  505. int Types = Request.Query["Types"];
  506. var result = "";
  507. if (Types == 0)
  508. {
  509. var Data = officeEquipmentIBLL.GetOfficeEquipmentEntity(keyValue);
  510. var emp = userIBLL.GetEntityByUserId(Data.UserId);
  511. var Unit = dataItemIBLL.GetDetailList("sldw").Where(x => x.F_ItemValue == Data.Unit).FirstOrDefault();
  512. result = "资产名称:" + Data.DeviceName + ";<br>资产编号:" + Data.Code + ";<br>品牌:" +
  513. Data.Brand + ";<br>型号:" + Data.Model + ";<br>参数:" + Data.Argument + ";<br>单位:(" + Unit.F_ItemName + ");<br>数量:" + Data.Nuantity + ";<br>使用管理人:" + emp.F_RealName + ";<br>备注:" + Data.Remark;
  514. }
  515. else
  516. {
  517. var Data = fixedAssetsIBLL.GetFixedAssetsEntity(keyValue);
  518. var emp = empinfoIBLL.GetEmpInfoEntityByEmpNo(Data.UsePeople);
  519. var Unit = dataItemIBLL.GetDetailList("sldw").Where(x => x.F_ItemValue == Data.Unit).FirstOrDefault();
  520. result = "资产名称:" + Data.AssetsName + ";<br>资产编号:" + Data.Code + ";<br>品牌:" +
  521. Data.Brand + ";<br>型号:" + Data.Model + ";<br>参数:" + Data.Argument + ";<br>单位:(" + Unit.F_ItemName + ");<br>数量:" + Data.Nuantity + ";<br>使用管理人:" + emp.EmpName + ";<br>备注:" + Data.Remark;
  522. }
  523. return Response.AsText(result).WithContentType("text/html;charset=utf-8");
  524. }
  525. }
  526. }