|
- using Learun.DataBase.Repository;
- using Learun.Util;
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- namespace Learun.Application.OA
- {
- /// <summary>
- /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
- /// Copyright (c) 2013-2018 北京泉江科技有限公司
- /// 创建人:陈彬彬
- /// 日 期:2017.04.17
- /// 描 述:公告管理
- /// </summary>
- public class NoticeService : RepositoryFactory
- {
- #region 获取数据
- /// <summary>
- /// 公告列表
- /// </summary>
- /// <param name="pagination">分页参数</param>
- /// <param name="keyword">关键词</param>
- /// <returns></returns>
- public IEnumerable<NewsEntity> GetPageList(Pagination pagination, string keyword)
- {
- try
- {
- var strSql = new StringBuilder();
- strSql.Append("SELECT * FROM LR_OA_News t WHERE t.F_TypeId = 2 and F_Status<>'-1' ");
- if (!string.IsNullOrEmpty(keyword))
- {
- strSql.Append(" AND F_FullHead like @keyword");
- }
- return this.BaseRepository().FindList<NewsEntity>(strSql.ToString(), new { keyword = "%" + keyword + "%" }, pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
- public IEnumerable<NewsEntity> GetPageListRevert(Pagination pagination, string keyword)
- {
- try
- {
- var strSql = new StringBuilder();
- strSql.Append("SELECT * FROM LR_OA_News t WHERE t.F_TypeId = 2 and F_Status='-1' ");
- if (!string.IsNullOrEmpty(keyword))
- {
- strSql.Append(" AND F_FullHead like @keyword");
- }
- return this.BaseRepository().FindList<NewsEntity>(strSql.ToString(), new { keyword = "%" + keyword + "%" }, pagination);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
- /// <summary>
- /// 新闻公告实体
- /// </summary>
- /// <param name="keyValue">主键值</param>
- /// <returns></returns>
- public NewsEntity GetEntity(string keyValue)
- {
- try
- {
- return this.BaseRepository().FindEntity<NewsEntity>(keyValue);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
- #endregion
-
- #region 提交数据
- /// <summary>
- /// 删除
- /// </summary>
- /// <param name="keyValue">主键</param>
- public void DeleteEntity(string keyValue)
- {
- var db = this.BaseRepository().BeginTrans();
- try
- {
- var list = keyValue.Split(',');
- foreach (var item in list)
- {
- var entity = db.FindEntity<NewsEntity>(x => x.F_NewsId == item);
- if (entity != null)
- {
- db.Delete(entity);
- }
- }
-
- db.Commit();
- }
- catch (Exception ex)
- {
- db.Rollback();
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- public void RecycleForm(string keyValue,string status)
- {
- var db = this.BaseRepository().BeginTrans();
- try
- {
- var list = keyValue.Split(',');
- foreach (var item in list)
- {
- var entity = db.FindEntity<NewsEntity>(x => x.F_NewsId == item);
- if (entity != null)
- {
- entity.F_Status = status;
- db.Update(entity);
- }
- }
- db.Commit();
- }
- catch (Exception ex)
- {
- db.Rollback();
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
- /// <summary>
- /// 保存(新增、修改)
- /// </summary>
- /// <param name="keyValue">主键值</param>
- /// <param name="newsEntity">新闻公告实体</param>
- /// <returns></returns>
- public void SaveEntity(string keyValue, NewsEntity newsEntity)
- {
- try
- {
- newsEntity.F_TypeId = 2;
- if (!string.IsNullOrEmpty(keyValue))
- {
- newsEntity.Modify(keyValue);
- this.BaseRepository().Update(newsEntity);
- }
- else
- {
- newsEntity.Create();
- this.BaseRepository().Insert(newsEntity);
- }
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
-
- }
- #endregion
- #region 扩展数据
-
- /// <summary>
- /// 公告列表
- /// </summary>
- /// <param name="keyword">关键词</param>
- /// <returns></returns>
- public IEnumerable<NewsEntity> GetList(string keyword, string userId, string categoryId = null)
- {
- try
- {
- var strSql = new StringBuilder();
- strSql.Append("SELECT t.*,r.RNewsId,r.RTime FROM LR_OA_News t ");
- strSql.Append(" left join LR_OA_NewsRead r on t.F_NewsId = r.NewsId and r.RUserId=@userId ");
- strSql.Append(" WHERE t.F_TypeId = 2 and F_Status<>'-1' ");
- if (!string.IsNullOrEmpty(categoryId))
- {
- strSql.Append($" AND F_CategoryId = '{categoryId}'");
- }
- if (!string.IsNullOrEmpty(keyword))
- {
- strSql.Append(" AND F_FullHead like @keyword");
- }
- strSql.Append(" ORDER BY t.F_ReleaseTime DESC ");
- return this.BaseRepository().FindList<NewsEntity>(strSql.ToString(), new { keyword = "%" + keyword + "%", userId = userId });
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
-
- #endregion
-
- public void ChangeStatusById(string keyValue, int status, string processId)
- {
- try
- {
- BaseRepository().ExecuteBySql($"UPDATE dbo.LR_OA_News SET F_Status='{status}',F_ProgressId='{processId}' WHERE F_NewsId='{keyValue}'", null);
- }
- catch (Exception ex)
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
-
- public NewsEntity GetEntityByProcessId(string processId)
- {
- try
- {
- return this.BaseRepository().FindEntity<NewsEntity>(t => t.F_ProgressId == processId);
- }
- catch (Exception ex)
- {
- if (ex is ExceptionEx)
- {
- throw;
- }
- else
- {
- throw ExceptionEx.ThrowServiceException(ex);
- }
- }
- }
- }
- }
|