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.

PsychologyInfoService.cs 9.5 KiB

1 year ago
1 year ago
1 year ago
1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. using Dapper;
  2. using Learun.DataBase.Repository;
  3. using Learun.Util;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Text;
  8. using System.Linq;
  9. namespace Learun.Application.TwoDevelopment.EducationalAdministration
  10. {
  11. /// <summary>
  12. /// 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架
  13. /// Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
  14. /// 创 建:超级管理员
  15. /// 日 期:2023-03-06 12:18
  16. /// 描 述:心里预约功能
  17. /// </summary>
  18. public class PsychologyInfoService : RepositoryFactory
  19. {
  20. #region 获取数据
  21. /// <summary>
  22. /// 获取列表数据
  23. /// </summary>
  24. /// <param name="queryJson">条件参数</param>
  25. /// <returns></returns>
  26. public IEnumerable<PsychologyInfoEntity> GetList(string queryJson)
  27. {
  28. try
  29. {
  30. //参考写法
  31. //var queryParam = queryJson.ToJObject();
  32. // 虚拟参数
  33. //var dp = new DynamicParameters(new { });
  34. //dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  35. var strSql = new StringBuilder();
  36. strSql.Append(" SELECT t.*,p.ReplyContent,p.Url as Urls,p.ReplyUser,p.ReplyTime,s.StuName,s.deptNo,s.majorno,s.classno,s.GenderNo,s.IdentityCardNo,s.IsSingle FROM PsychologyInfo t ");
  37. strSql.Append(" left join PsychologyReplyInfo p on p.PsychologyInfoid = t.id ");
  38. strSql.Append(" left join StuInfoBasic s on s.StuNo = t.StuNo ");
  39. strSql.Append(" where 1=1");
  40. return this.BaseRepository("CollegeMIS").FindList<PsychologyInfoEntity>(strSql.ToString());
  41. }
  42. catch (Exception ex)
  43. {
  44. if (ex is ExceptionEx)
  45. {
  46. throw;
  47. }
  48. else
  49. {
  50. throw ExceptionEx.ThrowServiceException(ex);
  51. }
  52. }
  53. }
  54. /// <summary>
  55. /// 获取列表分页数据
  56. /// </summary>
  57. /// <param name="pagination">分页参数</param>
  58. /// <param name="queryJson">条件参数</param>
  59. /// <returns></returns>
  60. public IEnumerable<PsychologyInfoEntity> GetPageList(Pagination pagination, string queryJson)
  61. {
  62. try
  63. {
  64. var db = this.BaseRepository().getDbConnection().Database;
  65. var strSql = new StringBuilder();
  66. strSql.Append(" SELECT t.*,p.ReplyContent,p.Url as Urls,p.ReplyUser,p.ReplyTime,l.F_RealName FROM PsychologyInfo t ");
  67. strSql.Append(" left join PsychologyReplyInfo p on p.PsychologyInfoid=t.id and p.ReplyType = 2");
  68. strSql.Append($" left join {db}.dbo.LR_Base_User l on l.F_account =p.ReplyUser ");
  69. strSql.Append(" where 1=1 ");
  70. var queryParam = queryJson.ToJObject();
  71. var dp = new DynamicParameters(new { });
  72. if (!queryParam["StuNo"].IsEmpty())
  73. {
  74. dp.Add("StuNo", queryParam["StuNo"].ToString(), DbType.String);
  75. strSql.Append(" AND t.StuNo = @StuNo ");
  76. }
  77. if (!queryParam["StartTime"].IsEmpty() && !queryParam["EndTime"].IsEmpty())
  78. {
  79. dp.Add("startTime", queryParam["StartTime"].ToDate(), DbType.DateTime);
  80. dp.Add("endTime", queryParam["EndTime"].ToDate(), DbType.DateTime);
  81. strSql.Append(" AND ( t.CreateTime >= @startTime AND t.CreateTime <= @endTime ) ");
  82. }
  83. return this.BaseRepository("CollegeMIS").FindList<PsychologyInfoEntity>(strSql.ToString(), dp, pagination);
  84. }
  85. catch (Exception ex)
  86. {
  87. if (ex is ExceptionEx)
  88. {
  89. throw;
  90. }
  91. else
  92. {
  93. throw ExceptionEx.ThrowServiceException(ex);
  94. }
  95. }
  96. }
  97. /// <summary>
  98. /// 获取实体数据
  99. /// </summary>
  100. /// <param name="keyValue">主键</param>
  101. /// <returns></returns>
  102. public PsychologyInfoEntity GetEntity(string keyValue)
  103. {
  104. try
  105. {
  106. return this.BaseRepository("CollegeMIS").FindEntity<PsychologyInfoEntity>(keyValue);
  107. }
  108. catch (Exception ex)
  109. {
  110. if (ex is ExceptionEx)
  111. {
  112. throw;
  113. }
  114. else
  115. {
  116. throw ExceptionEx.ThrowServiceException(ex);
  117. }
  118. }
  119. }
  120. /// <summary>
  121. /// 学生查看
  122. /// </summary>
  123. /// <param name="keyValue"></param>
  124. /// <returns></returns>
  125. public PsychologyInfoEntity GetEntityForView(string keyValue)
  126. {
  127. try
  128. {
  129. var db = this.BaseRepository().getDbConnection().Database;
  130. var strSql = new StringBuilder();
  131. strSql.Append(" SELECT t.*,p.ReplyContent,p.Url as Urls,p.ReplyUser,p.ReplyTime,l.F_RealName FROM PsychologyInfo t ");
  132. strSql.Append(" left join PsychologyReplyInfo p on p.PsychologyInfoid=t.id and p.ReplyType = 2");
  133. strSql.Append($" left join {db}.dbo.LR_Base_User l on l.F_account =p.ReplyUser ");
  134. strSql.Append($" where t.Id='{keyValue}' ");
  135. return this.BaseRepository("CollegeMIS").FindList<PsychologyInfoEntity>(strSql.ToString()).FirstOrDefault();
  136. }
  137. catch (Exception ex)
  138. {
  139. if (ex is ExceptionEx)
  140. {
  141. throw;
  142. }
  143. else
  144. {
  145. throw ExceptionEx.ThrowServiceException(ex);
  146. }
  147. }
  148. }
  149. #endregion
  150. #region 提交数据
  151. /// <summary>
  152. /// 删除实体数据
  153. /// </summary>
  154. /// <param name="keyValue">主键</param>
  155. public void DeleteEntity(string keyValue)
  156. {
  157. try
  158. {
  159. this.BaseRepository("CollegeMIS").Delete<PsychologyInfoEntity>(t => t.Id == keyValue);
  160. }
  161. catch (Exception ex)
  162. {
  163. if (ex is ExceptionEx)
  164. {
  165. throw;
  166. }
  167. else
  168. {
  169. throw ExceptionEx.ThrowServiceException(ex);
  170. }
  171. }
  172. }
  173. /// <summary>
  174. /// 保存实体数据(新增、修改)
  175. /// <param name="keyValue">主键</param>
  176. /// <param name="entity">实体</param>
  177. /// </summary>
  178. public void SaveEntity(string keyValue, PsychologyInfoEntity entity)
  179. {
  180. try
  181. {
  182. if (!string.IsNullOrEmpty(keyValue))
  183. {
  184. entity.Modify(keyValue);
  185. this.BaseRepository("CollegeMIS").Update(entity);
  186. }
  187. else
  188. {
  189. entity.Create();
  190. this.BaseRepository("CollegeMIS").Insert(entity);
  191. }
  192. }
  193. catch (Exception ex)
  194. {
  195. if (ex is ExceptionEx)
  196. {
  197. throw;
  198. }
  199. else
  200. {
  201. throw ExceptionEx.ThrowServiceException(ex);
  202. }
  203. }
  204. }
  205. /// <summary>
  206. /// 提交实体数据
  207. /// </summary>
  208. /// <param name="keyValue">主键</param>
  209. public void SubmitEntity(string keyValue)
  210. {
  211. var db = this.BaseRepository("CollegeMIS").BeginTrans();
  212. try
  213. {
  214. var entity = db.FindEntity<PsychologyInfoEntity>(keyValue);
  215. entity.State = 2;
  216. db.Update(entity);
  217. //添加回复表数据
  218. db.ExecuteBySql(@"INSERT INTO PsychologyReplyInfo(Id, PsychologyInfoId, State, ReplyContent, ReplyType, Url, ReplyUser, ReplyTime, CreateTime)
  219. VALUES('" + Guid.NewGuid().ToString() + "', '" + keyValue + "', '2', '', '', '', '',NUll, '" + DateTime.Now + "') ");
  220. //添加消息提醒阅读表数据
  221. var account = LoginUserInfo.Get().account;
  222. //查询当前学生辅导员
  223. var classinfo = db.FindList<ClassInfoEntity>($"select t.* from classinfo t join StuInfoBasic stu on t.classno=stu.ClassNo and stu.StuNo='{account}'").FirstOrDefault();
  224. if (classinfo != null && !string.IsNullOrEmpty(classinfo.ClassTutorNo))
  225. {
  226. PsychologyReadInfo model = new PsychologyReadInfo();
  227. model.Create();
  228. model.PsychologyInfoId = keyValue;
  229. model.State = entity.State;
  230. model.Account = classinfo.ClassTutorNo;
  231. model.Description = "教师";
  232. db.Insert(model);
  233. }
  234. db.Commit();
  235. }
  236. catch (Exception ex)
  237. {
  238. db.Rollback();
  239. if (ex is ExceptionEx)
  240. {
  241. throw;
  242. }
  243. else
  244. {
  245. throw ExceptionEx.ThrowServiceException(ex);
  246. }
  247. }
  248. }
  249. #endregion
  250. }
  251. }