using Attribute; using Model; using Model.Base; using Repository; using Service; using Microsoft.AspNetCore.Mvc; using Vo.Admin; using Common; using System.Text.RegularExpressions; namespace Services { /// /// APP项目对应参数Service业务层处理 /// [AppService(ServiceType = typeof(IAppProjectParamService), ServiceLifetime = LifeTime.Transient)] public class AppProjectParamService : BaseService, IAppProjectParamService { /// /// APP项目对应参数-列表 /// /// 参数请求体 /// 分页参数 /// 列表 public PagedInfo getAppProjectParamList([FromQuery] PagerInfo page, [FromQuery] AppProjectParam param) { //拼装查询条件 var predicate = Expressionable.Create(); predicate = predicate.AndIF(param.appId > 0, m => m.appId == param.appId); predicate = predicate.AndIF(param.moduleId > 0, m => m.moduleId == param.moduleId); predicate = predicate.AndIF(!string.IsNullOrEmpty(param.paramTitle), m => m.paramTitle.Contains(param.paramTitle)); predicate = predicate.AndIF(!string.IsNullOrEmpty(param.paramName), m => m.paramName.Contains(param.paramName)); var response = Queryable() .Where(predicate.ToExpression()) .OrderByDescending(m => m.id) .ToPage(page); return response; } /// /// APP项目对应参数-初始化数据 /// /// 参数请求体 /// 初始化数据 public void initAppProjectParam(int appId,string moduleIds, List moduleAndroidCodes, List moduleIosCodes) { if (string.IsNullOrEmpty(moduleIds)) { return; } var moduleList = Tools.SpitIntArrary(moduleIds).ToList(); foreach (var moduleId in moduleList) { var moduleAndroidCode = moduleAndroidCodes.FirstOrDefault(m => m.moduleId == moduleId); var moduleIosCode = moduleIosCodes.FirstOrDefault(m => m.moduleId == moduleId); List paramList = new List(); if (moduleAndroidCode != null) { paramList.Add(moduleAndroidCode.stringsParamCode ?? ""); foreach (string item in paramList) { MatchCollection matches = Regex.Matches(item, "\\$\\{.*?\\}"); foreach (Match match in matches) { string paramString = match.Value; string paramName = paramString.Replace("${", "").Replace("}", ""); if (!Any(m => m.appId == appId && m.moduleId == moduleAndroidCode.moduleId && m.paramName == paramName)) { AppProjectParam appProjectParam = new AppProjectParam { appId = appId, moduleId = moduleAndroidCode.moduleId, paramName = paramName, createTime = DateTime.Now, createBy = "admin", }; Add(appProjectParam); } } } } if (moduleIosCode != null) { paramList.Add(moduleIosCode.rightCode ?? ""); paramList.Add(moduleIosCode.appDelegateLaunchCode ?? ""); paramList.Add(moduleIosCode.appDelegateLaunchAsyncCode ?? ""); foreach (string item in paramList) { MatchCollection matches = Regex.Matches(item, "\\$\\{.*?\\}"); foreach (Match match in matches) { string paramString = match.Value; string paramName = paramString.Replace("${", "").Replace("}", ""); if (!Any(m => m.appId == appId && m.moduleId == moduleIosCode.moduleId && m.paramName == paramName)) { AppProjectParam appProjectParam = new AppProjectParam { appId = appId, moduleId = moduleIosCode.moduleId, paramName = paramName, createTime = DateTime.Now, createBy = "admin", }; Add(appProjectParam); } } } } } } } }