| ¶Ô±ÈÐÂÎļþ |
| | |
| | | using Gs.Toolbox; |
| | | using Gs.Toolbox.ApiCore.Abstract.Mvc; |
| | | using Gs.Toolbox.ApiCore.Common.Mvc; |
| | | using Gs.Toolbox.ApiCore.Group; |
| | | using GS.Sys.Models; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Http.HttpResults; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using Newtonsoft.Json.Linq; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | |
| | | namespace GS.Sys.Service; |
| | | |
| | | /// <summary> |
| | | /// çæ¿ç®å½ç®¡çï¼åå¨è¿ç¨çæ¬ï¼ |
| | | /// </summary> |
| | | [ApiGroup(ApiGroupNames.Sys)] |
| | | public class MesSimpleManager : Repository<MesSimple>, IRomteService |
| | | { |
| | | private readonly IHttpContextAccessor _http; |
| | | private readonly string _userCode, _userGuid, _orgFids; |
| | | |
| | | public MesSimpleManager(IHttpContextAccessor httpContextAccessor) |
| | | { |
| | | _http = httpContextAccessor; |
| | | (_userCode, _userGuid, _orgFids) = UtilityHelper.GetUserGuidAndOrgGuid(_http); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢åè¡¨ï¼æ¯æå页 |
| | | /// </summary> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | public ReturnDto<PageList<dynamic>> GetListPage(PageQuery query) |
| | | { |
| | | try |
| | | { |
| | | // æ·»å 'a.' åç¼ä»¥å¹é
åå¨è¿ç¨ |
| | | var sortField = "a." + (query.sortName?.Replace("a.", "") ?? "sort_order"); |
| | | var sortOrder = query.sortOrder?.ToUpper() ?? "ASC"; |
| | | |
| | | // æå»ºåå¨è¿ç¨åæ° |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new SqlParameter("@pageIndex", SqlDbType.Int) { Value = query.currentPage }, |
| | | new SqlParameter("@pageSize", SqlDbType.Int) { Value = query.everyPageSize }, |
| | | new SqlParameter("@sortField", SqlDbType.NVarChar, 50) { Value = sortField }, |
| | | new SqlParameter("@sortOrder", SqlDbType.NVarChar, 10) { Value = sortOrder }, |
| | | new SqlParameter("@keyWord", SqlDbType.NVarChar, 100) { Value = query.keyWord ?? "" }, |
| | | new SqlParameter("@keyWhere", SqlDbType.NVarChar, -1) { Value = "" } |
| | | }; |
| | | |
| | | // è°ç¨åå¨è¿ç¨ï¼æ³¨æåç§°ï¼ |
| | | var dset = DbHelperSQL.RunProcedure("proc_MesSimple_GetListPage", parameters, "ResultSet"); |
| | | |
| | | if (dset == null || dset.Tables.Count == 0 || dset.Tables[0].Rows.Count == 0) |
| | | { |
| | | var emptyList = new PageList<dynamic>(new List<dynamic>(), 0, query.everyPageSize); |
| | | return ReturnDto<PageList<dynamic>>.QuickReturn<PageList<dynamic>>(emptyList, ReturnCode.Success, "ææ æ°æ®"); |
| | | } |
| | | |
| | | // è·åæ»è®°å½æ° |
| | | var totalCount = 0; |
| | | if (dset.Tables[0].Rows.Count > 0) |
| | | { |
| | | var firstRow = dset.Tables[0].Rows[0]; |
| | | if (firstRow.Table.Columns.Contains("totalCount")) |
| | | { |
| | | totalCount = Convert.ToInt32(firstRow["totalCount"]); |
| | | } |
| | | } |
| | | |
| | | // 转æ¢ä¸ºå¨æå¯¹è±¡å表 |
| | | var itemsList = dset.Tables[0].TableToDynamicList(); |
| | | |
| | | var pageList = new PageList<dynamic>(itemsList, totalCount, query.everyPageSize); |
| | | return ReturnDto<PageList<dynamic>>.QuickReturn<PageList<dynamic>>(pageList, ReturnCode.Success, "读åæå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(ToString(), $"GetListPage error: {ex.Message}\nStackTrace: {ex.StackTrace}"); |
| | | var emptyList = new PageList<dynamic>(new List<dynamic>(), 0, query.everyPageSize); |
| | | return ReturnDto<PageList<dynamic>>.QuickReturn<PageList<dynamic>>(emptyList, ReturnCode.Exception, "æ¥è¯¢å¤±è´¥ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 读ååæ¡è®°å½ |
| | | /// </summary> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | public ReturnDto<dynamic> GetModel([FromBody] MesSimple model) |
| | | { |
| | | try |
| | | { |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new SqlParameter("@id", SqlDbType.BigInt) { Value = model.Id } |
| | | }; |
| | | |
| | | var dset = DbHelperSQL.RunProcedure("proc_MesSimple_GetModel", parameters, "ResultSet"); |
| | | |
| | | if (dset == null || dset.Tables.Count == 0 || dset.Tables[0].Rows.Count == 0) |
| | | { |
| | | return ReturnDto<dynamic>.QuickReturn<dynamic>(null, ReturnCode.Default, "æ°æ®ä¸åå¨ï¼"); |
| | | } |
| | | |
| | | var m = dset.Tables[0].Rows[0].RowToDynamic(); |
| | | return ReturnDto<dynamic>.QuickReturn<dynamic>(m, ReturnCode.Success, "读åæåï¼"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(ToString(), $"GetModel error: {ex.Message}"); |
| | | return ReturnDto<dynamic>.QuickReturn<dynamic>(null, ReturnCode.Exception, "读å失败ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¿åæ°æ® (æ°å¢/ä¿®æ¹) |
| | | /// </summary> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | public ReturnDto<string> SaveModel([FromBody] MesSimple model) |
| | | { |
| | | try |
| | | { |
| | | if (string.IsNullOrWhiteSpace(model.Title)) |
| | | { |
| | | return ReturnDto<string>.QuickReturn("", ReturnCode.Default, "åç§°ä¸è½ä¸ºç©ºï¼"); |
| | | } |
| | | |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new SqlParameter("@id", SqlDbType.BigInt) { Value = model.Id }, |
| | | new SqlParameter("@parentId", SqlDbType.BigInt) { Value = model.ParentId.HasValue ? (object)model.ParentId.Value : DBNull.Value }, |
| | | new SqlParameter("@nodeType", SqlDbType.TinyInt) { Value = model.NodeType }, |
| | | new SqlParameter("@code", SqlDbType.NVarChar, 50) { Value = string.IsNullOrEmpty(model.Code) ? DBNull.Value : model.Code }, |
| | | new SqlParameter("@title", SqlDbType.NVarChar, 255) { Value = model.Title }, |
| | | new SqlParameter("@url", SqlDbType.NVarChar, 500) { Value = string.IsNullOrEmpty(model.Url) ? DBNull.Value : model.Url }, |
| | | new SqlParameter("@carouselDuration", SqlDbType.Int) { Value = model.CarouselDuration.HasValue ? (object)model.CarouselDuration.Value : DBNull.Value }, |
| | | new SqlParameter("@isExpanded", SqlDbType.Bit) { Value = model.IsExpanded }, |
| | | new SqlParameter("@isEnabled", SqlDbType.Bit) { Value = model.IsEnabled }, |
| | | new SqlParameter("@sortOrder", SqlDbType.Int) { Value = model.SortOrder }, |
| | | new SqlParameter("@userCode", SqlDbType.NVarChar, 50) { Value = _userCode ?? "SYSTEM" }, |
| | | new SqlParameter("@outId", SqlDbType.BigInt) { Direction = ParameterDirection.Output }, |
| | | new SqlParameter("@outMsg", SqlDbType.NVarChar, 500) { Direction = ParameterDirection.Output } |
| | | }; |
| | | // æ·»å è°è¯æ¥å¿ |
| | | LogHelper.Debug(ToString(), $"SaveModel - åæ°æ°é: {parameters.Length}"); |
| | | DbHelperSQL.RunProcedure("proc_MesSimple_Save", parameters, "0");//ResultSet |
| | | var outId = parameters[11].Value != DBNull.Value ? Convert.ToInt64(parameters[11].Value) : 0; |
| | | var outMsg = parameters[12].Value != DBNull.Value ? parameters[12].Value.ToString() : "æä½æå"; |
| | | |
| | | if (outId > 0) |
| | | { |
| | | return ReturnDto<string>.QuickReturn(outId.ToString(), ReturnCode.Success, outMsg); |
| | | } |
| | | else |
| | | { |
| | | return ReturnDto<string>.QuickReturn("", ReturnCode.Default, outMsg); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(ToString(), $"SaveModel error: {ex.Message}"); |
| | | return ReturnDto<string>.QuickReturn("", ReturnCode.Exception, "ä¿å失败ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å 餿°æ® (软å é¤) - ä¿®å¤ç |
| | | /// </summary> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | public ReturnDto<int> DeleteModel([FromBody] JToken data) |
| | | { |
| | | try |
| | | { |
| | | string idStr = null; |
| | | |
| | | LogHelper.Debug(ToString(), $"DeleteModel received: {data?.ToString()}, Type: {data?.Type}"); |
| | | |
| | | if (data == null) |
| | | { |
| | | return ReturnDto<int>.QuickReturn(0, ReturnCode.Default, "è¯·éæ©è¦å é¤çæ°æ®ï¼"); |
| | | } |
| | | |
| | | // æºè½è§£æåç§æ°æ®æ ¼å¼ |
| | | if (data is JArray jArray) |
| | | { |
| | | if (jArray.Count == 0) |
| | | { |
| | | return ReturnDto<int>.QuickReturn(0, ReturnCode.Default, "è¯·éæ©è¦å é¤çæ°æ®ï¼"); |
| | | } |
| | | idStr = jArray[0].ToString(); |
| | | } |
| | | else if (data is JValue jValue) |
| | | { |
| | | idStr = jValue.ToString(); |
| | | } |
| | | else if (data is JObject jObject) |
| | | { |
| | | idStr = jObject["id"]?.ToString() ?? jObject["Id"]?.ToString(); |
| | | } |
| | | else |
| | | { |
| | | idStr = data.ToString(); |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(idStr) || !long.TryParse(idStr, out long id)) |
| | | { |
| | | return ReturnDto<int>.QuickReturn(0, ReturnCode.Default, $"æ æçIDï¼{idStr}"); |
| | | } |
| | | |
| | | LogHelper.Debug(ToString(), $"DeleteModel parsed ID: {id}"); |
| | | |
| | | // è°ç¨åå¨è¿ç¨ï¼æ³¨æåæ°åæ¯ @idsï¼ |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new SqlParameter("@ids", SqlDbType.NVarChar, -1) { Value = id.ToString() }, |
| | | new SqlParameter("@userCode", SqlDbType.NVarChar, 50) { Value = _userCode ?? "SYSTEM" }, |
| | | new SqlParameter("@outCode", SqlDbType.Int) { Direction = ParameterDirection.Output }, |
| | | new SqlParameter("@outMsg", SqlDbType.NVarChar, 500) { Direction = ParameterDirection.Output } |
| | | }; |
| | | |
| | | DbHelperSQL.RunProcedure("proc_MesSimple_Delete", parameters, "0"); |
| | | |
| | | var outCode = parameters[2].Value != DBNull.Value ? Convert.ToInt32(parameters[2].Value) : 0; |
| | | var outMsg = parameters[3].Value != DBNull.Value ? parameters[3].Value.ToString() : "æªç¥é误"; |
| | | |
| | | LogHelper.Debug(ToString(), $"DeleteModel result: code={outCode}, msg={outMsg}"); |
| | | |
| | | if (outCode > 0) |
| | | { |
| | | return ReturnDto<int>.QuickReturn(outCode, ReturnCode.Success, outMsg); |
| | | } |
| | | else |
| | | { |
| | | return ReturnDto<int>.QuickReturn(0, ReturnCode.Default, outMsg); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(ToString(), $"DeleteModel error: {ex.Message}\n{ex.StackTrace}"); |
| | | return ReturnDto<int>.QuickReturn(0, ReturnCode.Exception, "å é¤å¤±è´¥ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åæ å½¢ç»æ |
| | | /// </summary> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | public ReturnDto<List<dynamic>> GetTree(long? rootId = null) |
| | | { |
| | | try |
| | | { |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new SqlParameter("@RootId", SqlDbType.BigInt) { Value = rootId.HasValue ? (object)rootId.Value : DBNull.Value } |
| | | }; |
| | | |
| | | var dset = DbHelperSQL.RunProcedure("usp_MesSimple_GetTree", parameters, "ResultSet"); |
| | | |
| | | if (dset == null || dset.Tables.Count == 0) |
| | | { |
| | | return ReturnDto<List<dynamic>>.QuickReturn<List<dynamic>>(new List<dynamic>(), ReturnCode.Success, "ææ æ°æ®"); |
| | | } |
| | | |
| | | var treeList = dset.Tables[0].TableToDynamicList(); |
| | | return ReturnDto<List<dynamic>>.QuickReturn<List<dynamic>>(treeList, ReturnCode.Success, "读åæå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(ToString(), $"GetTree error: {ex.Message}"); |
| | | return ReturnDto<List<dynamic>>.QuickReturn<List<dynamic>>(new List<dynamic>(), ReturnCode.Exception, "æ¥è¯¢å¤±è´¥ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°æåºåºå· |
| | | /// </summary> |
| | | [RequestMethod(RequestMethods.POST)] |
| | | public ReturnDto<bool> UpdateSortOrder(long id, int sortOrder) |
| | | { |
| | | try |
| | | { |
| | | var parameters = new SqlParameter[] |
| | | { |
| | | new SqlParameter("@Id", SqlDbType.BigInt) { Value = id }, |
| | | new SqlParameter("@NewSortOrder", SqlDbType.Int) { Value = sortOrder } |
| | | }; |
| | | |
| | | var dset = DbHelperSQL.RunProcedure("usp_MesSimple_UpdateSortOrder", parameters, "ResultSet"); |
| | | |
| | | if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) |
| | | { |
| | | var row = dset.Tables[0].Rows[0]; |
| | | var rtnCode = Convert.ToInt32(row["rtnCode"]); |
| | | var rtnMsg = row["rtnMsg"].ToString(); |
| | | |
| | | if (rtnCode > 0) |
| | | { |
| | | return ReturnDto<bool>.QuickReturn(true, ReturnCode.Success, rtnMsg); |
| | | } |
| | | else |
| | | { |
| | | return ReturnDto<bool>.QuickReturn(false, ReturnCode.Default, rtnMsg); |
| | | } |
| | | } |
| | | |
| | | return ReturnDto<bool>.QuickReturn(false, ReturnCode.Default, "æ´æ°å¤±è´¥ï¼"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Debug(ToString(), $"UpdateSortOrder error: {ex.Message}"); |
| | | return ReturnDto<bool>.QuickReturn(false, ReturnCode.Exception, "æ´æ°å¤±è´¥ï¼" + ex.Message); |
| | | } |
| | | } |
| | | } |