using DapperORMCore.Context.DataContext; using DapperORMCore.Context.Extend; using DapperORMCore.Model.BaseModel; using DapperORMCore.Model.CoreModel; using DapperORMCore.Repository.IRepositorys; using DapperORMCore.String.Consts; using DapperORMCore.String.Enums; using Microsoft.Extensions.Configuration; using NXWMS.Code; using NXWMS.DataAccess.Entity; using NXWMS.IService.NXWMS; using NXWMS.Model.AppModels.Condition; using NXWMS.Model.AppModels.Result; using NXWMS.Model.AppModels.Result.SysSettings; using NXWMS.Model.Common; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using WestDistance.DapperORM.Repository.Repositorys; namespace NXWMS.Service.NXWMS { /// /// 主键接口 /// [AutoInject(typeof(ISequenceService), InjectType.Scope)] public class SequenceService : ServiceBase, ISequenceService { /// /// 系统操作仓储中转 /// private IDataRepositoryContext _dataContext; /// /// 配置 /// private IConfiguration _configuration; /// /// SQL节点仓储 /// private ISQLNodeRepository _iSQLNodeRepository; public SequenceService(IDataRepositoryContext dataRepositoryContext, IConfiguration configuration, ISQLNodeRepository iSQLNodeRepository) { this._dataContext = dataRepositoryContext; this._configuration = configuration; this._iSQLNodeRepository = iSQLNodeRepository; } /// /// 获取单一主键当前配置 /// /// /// public OperateResultInfo Get(SequenceCondition info) { var whereList = GetFieldKeyList(info); var result = new DataRepository(_dataContext).Query("SYS_SEQUENCE", whereList).FirstOrDefault(); if (result != null) { return SuccessStatus(result); } return FailStatus(); } /// /// /// /// /// public OperateResultInfo GetNext(SequenceCondition info) { return null; } /// /// 获取主键配置列表 /// /// /// public OperateResultInfo> GetList(SequenceSearchCondition info) { var sqlAndBuilder = new StringBuilder(); var sqlOrBuilder = new StringBuilder(); var sql = @"SELECT CreateName = (SELECT USER_NAME FROM SYS_USER A WHERE A.USER_ID=CREATE_BY), UpdateName = (SELECT USER_NAME FROM SYS_USER B WHERE B.USER_ID=UPDATE_BY), * FROM SYS_SEQUENCE WHERE 1=1 AND DEL_FLAG = 0 "; if (info.IsUsed != null) { sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("USED_FLAG", info.IsUsed, DBOperationString._Equal)); } if (info.SQId != null) { if (info.SQId > 0) { sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("SQ_ID", info.SQId, DBOperationString._Equal)); } } if (!string.IsNullOrWhiteSpace(info.SQCode)) { sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("SQ_CODE", info.SQCode, DBOperationString._ContainIn)); } if (info.SQType != null) { sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("SQ_TYPE", info.SQType, DBOperationString._Equal)); } if (!string.IsNullOrWhiteSpace(info.SQIds)) { sqlAndBuilder.Append(_iSQLNodeRepository.GetAddCondition("SQ_ID", info.SQIds, DBOperationString._In)); } var result = new DataRepository(_dataContext).Query(sql); return SuccessStatus(result.ToList()); } #region Private /// /// 条件统一下,用统一筛选 /// /// /// private List GetFieldKeyList(SequenceCondition info) { var whereList = new List(); whereList = info.NewId != null ? whereList.AddFieldKeyInfo(nameof(SYS_SEQUENCE.NEWID), info.NewId, EnumCSharpPropertyType.STRING, DBOperationString._Equal) : whereList; whereList = !string.IsNullOrWhiteSpace(info.SQCode) ? whereList.AddFieldKeyInfo(nameof(SYS_SEQUENCE.SQ_CODE), info.SQCode, EnumCSharpPropertyType.STRING, DBOperationString._In) : whereList; whereList = info.SQId != null ? whereList.AddFieldKeyInfo(nameof(SYS_SEQUENCE.SQ_ID), info.SQId, EnumCSharpPropertyType.STRING, DBOperationString._Equal) : whereList; return whereList; } #endregion } }