|
@@ -1,4 +1,6 @@
|
|
|
-using System.Collections.Generic;
|
|
|
+using OASystem.API.OAMethodLib;
|
|
|
+using OASystem.Domain.Dtos.Resource;
|
|
|
+using System.Collections.Generic;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
|
{
|
|
@@ -985,6 +987,241 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
#endregion
|
|
|
#endregion
|
|
|
+
|
|
|
+ #region 备忘录
|
|
|
+ /// <summary>
|
|
|
+ /// 备忘录查询
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="paras">Json序列化</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostSearchMemo(JsonDtoBase _jsonDto)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(_jsonDto.Paras))
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "参数为空"));
|
|
|
+ }
|
|
|
+
|
|
|
+ Search_ResMemoDto _memoDto = JsonConvert.DeserializeObject<Search_ResMemoDto>(_jsonDto.Paras);
|
|
|
+ if (_memoDto != null)
|
|
|
+ {
|
|
|
+ if (_memoDto.SearchType == 2)
|
|
|
+ {
|
|
|
+ //获取列表
|
|
|
+ string sqlWhere = string.Format(" Where IsDel=0 ");
|
|
|
+
|
|
|
+ #region SqlWhere
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(_memoDto.Abstracts))
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@" And m.Abstracts Like '%{0}%' ", _memoDto.Abstracts);
|
|
|
+ }
|
|
|
+ if (!string.IsNullOrEmpty(_memoDto.Title))
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@" And m.Title Like '%{0}%' ", _memoDto.Title);
|
|
|
+ }
|
|
|
+ if (_memoDto.ReadLevel > 0)
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@" And m.ReadLevel = {0} ", _memoDto.ReadLevel);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ int currPIndex = (((_memoDto.PageIndex > 0) ? (_memoDto.PageIndex - 1) : 0) * _memoDto.PageSize) + 1;
|
|
|
+ int currPSize = (((_memoDto.PageIndex > 0) ? (_memoDto.PageIndex - 1) : 0) + 1) * _memoDto.PageSize;
|
|
|
+ string sql = string.Format(@" Select * From(Select ROW_NUMBER() Over(order By m.Id desc) as RowNumber,
|
|
|
+m.Id as MemoId,d.DepName as DepartmentName,m.ReadLevel,m.Title,m.Abstracts,
|
|
|
+m.LastedEditDt,m.LastedEditorId
|
|
|
+From Res_Memo as m With(Nolock) Inner Join Sys_Users as u With(Nolock) On m.CreateUserId=u.Id
|
|
|
+Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id {2}
|
|
|
+) as tb Where tb.RowNumber Between {0} And {1} ", currPIndex, currPSize, sqlWhere);
|
|
|
+ Res_MemoListView rst = new Res_MemoListView();
|
|
|
+ rst.CurrPageIndex = currPIndex;
|
|
|
+ rst.CurrPageSize = currPSize;
|
|
|
+ List<Res_MemoView> dataSource = _carDataRep._sqlSugar.SqlQueryable<Res_MemoView>(sql).ToList();
|
|
|
+ Dictionary<int, string> userDic = new Dictionary<int, string>();
|
|
|
+
|
|
|
+ foreach (var item in dataSource)
|
|
|
+ {
|
|
|
+ if (userDic.ContainsKey(item.LastedEditorId))
|
|
|
+ {
|
|
|
+ item.LastedEditor = userDic[item.LastedEditorId];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Sys_Users _sysUser = _carDataRep.Query<Sys_Users>(s => s.Id == item.LastedEditorId).First();
|
|
|
+ userDic[item.LastedEditorId] = _sysUser.CnName;
|
|
|
+ item.LastedEditor = _sysUser.CnName;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ rst.DataList = new List<Res_MemoView>(dataSource);
|
|
|
+
|
|
|
+ if (rst.DataList.Count > 0)
|
|
|
+ {
|
|
|
+ string sqlCount = string.Format(@" Select Id From Res_Memo as m With(Nolock) {0} ", sqlWhere);
|
|
|
+ int dataCount = _carDataRep._sqlSugar.SqlQueryable<Res_MemoInfo>(sqlCount).Count();
|
|
|
+ rst.DataCount = dataCount;
|
|
|
+ }
|
|
|
+ return Ok(JsonView(rst));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //获取对象
|
|
|
+ string sqlSingle = string.Format(@" Select
|
|
|
+m.Id as MemoId,d.DepName as DepartmentName,m.ReadLevel,m.Title,m.Abstracts,
|
|
|
+m.LastedEditDt,m.LastedEditor,m.MDFilePath
|
|
|
+From Res_Memo as m With(Nolock) Inner Join Sys_Users as u With(Nolock) On m.CreateUserId=u.Id
|
|
|
+Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _memoDto.MemoId);
|
|
|
+ Res_MemoView _result = _carDataRep._sqlSugar.SqlQueryable<Res_MemoView>(sqlSingle).First();
|
|
|
+ if (_result != null)
|
|
|
+ {
|
|
|
+ Sys_Users _sysUser = _carDataRep.Query<Sys_Users>(s => s.Id == _result.LastedEditorId).First();
|
|
|
+ _result.LastedEditor = _sysUser.CnName;
|
|
|
+ _result.MarkDownContent = new IOOperatorHelper().Read(_result.MDFilePath);
|
|
|
+ return Ok(JsonView(_result));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "参数反序列化失败"));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return Ok(JsonView(false));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 创建/编辑/删除备忘录信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="_dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostEditMemo(Edit_ResMemoDto _dto)
|
|
|
+ {
|
|
|
+ bool rst = false;
|
|
|
+ if (_dto.SysUserId < 1)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "操作人失效"));
|
|
|
+ }
|
|
|
+ Sys_Users _sysUser = _resItemInfoRep.Query<Sys_Users>(s => s.Id == _dto.SysUserId).First();
|
|
|
+ if (_sysUser == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "操作人失效02"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (_dto.EditType >= 0)
|
|
|
+ {
|
|
|
+ if (_dto.ReadLevel < 1)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "未知的阅读等级"));
|
|
|
+ }
|
|
|
+ if (string.IsNullOrEmpty(_dto.Title.Trim()))
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "标题不能为空"));
|
|
|
+ }
|
|
|
+ if (string.IsNullOrEmpty(_dto.Content.Trim()))
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "正文内容不能为空"));
|
|
|
+ }
|
|
|
+ //新增备忘录
|
|
|
+ DateTime dtNow = DateTime.Now;
|
|
|
+ string dir = AppSettingsHelper.Get("MemoCurrPath");
|
|
|
+ string fileName = dtNow.ToString("yyyyMMddHHmmss") + _dto.Title + ".md";
|
|
|
+ string content = JsonConvert.SerializeObject(_dto.Content);
|
|
|
+ if (_dto.EditType == 0)//新增
|
|
|
+ {
|
|
|
+ string savePath = new IOOperatorHelper().Write_CoverFile(content, dir, fileName);
|
|
|
+
|
|
|
+ if (savePath.Length > 0)
|
|
|
+ {
|
|
|
+ Res_MemoInfo _insert = new Res_MemoInfo();
|
|
|
+ _insert.Abstracts = _dto.Abstracts;
|
|
|
+ _insert.Title = _dto.Title;
|
|
|
+ _insert.DepartmentId = _sysUser.DepId;
|
|
|
+ _insert.CreateUserId = _sysUser.Id;
|
|
|
+ _insert.LastedEditDt = dtNow;
|
|
|
+ _insert.LastedEditor = _sysUser.Id;
|
|
|
+ _insert.MDFilePath = savePath;
|
|
|
+ _insert.ReadLevel = _dto.ReadLevel;
|
|
|
+ _insert.Title = _dto.Title;
|
|
|
+ int result = await _resItemInfoRep.AddAsync(_insert);
|
|
|
+ return Ok(JsonView(result > 0));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "路径保存失败"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else//修改
|
|
|
+ {
|
|
|
+ if (_dto.MemoId < 1)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "MemoId不存在"));
|
|
|
+ }
|
|
|
+
|
|
|
+ Res_MemoInfo _source = _resItemInfoRep.Query<Res_MemoInfo>(s => s.Id == _dto.MemoId).First();
|
|
|
+ if (_source == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "MemoInfo不存在"));
|
|
|
+ }
|
|
|
+ //修改
|
|
|
+ string sourcePath = _source.MDFilePath;
|
|
|
+ string recycDir = AppSettingsHelper.Get("MemoRecycleBinPath");
|
|
|
+ new IOOperatorHelper().MoveFile(sourcePath, recycDir);
|
|
|
+ string savePath = new IOOperatorHelper().Write_CoverFile(content, dir, fileName);
|
|
|
+
|
|
|
+ if (savePath.Length > 0)
|
|
|
+ {
|
|
|
+ var result = await _resItemInfoRep._sqlSugar.Updateable<Res_MemoInfo>()
|
|
|
+ .SetColumns(it => it.LastedEditDt == DateTime.Now)
|
|
|
+ .SetColumns(it => it.LastedEditor == _sysUser.Id)
|
|
|
+ .SetColumns(it => it.Abstracts == _dto.Abstracts)
|
|
|
+ .SetColumns(it => it.MDFilePath == savePath)
|
|
|
+ .SetColumns(it => it.ReadLevel == _dto.ReadLevel)
|
|
|
+ .SetColumns(it => it.Title == _dto.Title)
|
|
|
+ .Where(s => s.Id == _source.Id)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+ return Ok(JsonView(result > 0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //删除
|
|
|
+ if (_dto.MemoId < 1)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "MemoId不存在"));
|
|
|
+ }
|
|
|
+
|
|
|
+ Res_MemoInfo _source = _resItemInfoRep.Query<Res_MemoInfo>(s => s.Id == _dto.MemoId).First();
|
|
|
+ if (_source == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "MemoInfo不存在"));
|
|
|
+ }
|
|
|
+ //修改
|
|
|
+ string sourcePath = _source.MDFilePath;
|
|
|
+ string recycDir = AppSettingsHelper.Get("MemoRecycleBinPath");
|
|
|
+ new IOOperatorHelper().MoveFile(sourcePath, recycDir);
|
|
|
+
|
|
|
+ var result = await _resItemInfoRep._sqlSugar.Updateable<Res_MemoInfo>()
|
|
|
+ .SetColumns(it => it.IsDel == 1)
|
|
|
+ .SetColumns(it => it.DeleteUserId == _sysUser.Id)
|
|
|
+ .SetColumns(it => it.DeleteTime == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
|
|
|
+ .Where(s => s.Id == _source.Id)
|
|
|
+ .ExecuteCommandAsync();
|
|
|
+ return Ok(JsonView(result > 0));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return Ok(JsonView(rst));
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
}
|
|
|
|
|
|
|