/// <summary> /// 试乘试驾列表查询接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public string QueryList(DriveRecordRequest request) { var filter = string.Empty; if (request.Status != null && request.Status != 0) { filter += $"<condition attribute='mcs_drivestatus' operator='eq' value='{request.Status}' />"; } if (request.DealerId != null) { filter += $"<condition attribute='mcs_dealerid' operator='eq' value='{request.DealerId}' />"; } if (request.OrderTime != null) { filter += $"<condition attribute='mcs_ordertime' operator='on' value='{request.OrderTime}' />"; } if (!string.IsNullOrWhiteSpace(request.Search)) { filter += $"<filter type='or'>"; filter += $"<condition attribute='mcs_fullname' operator='like' value='%{request.Search}%' />"; filter += $"<condition attribute='mcs_mobilephone' operator='like' value='%{request.Search}%' />"; filter += $"<condition attribute='mcs_name' operator='like' value='%{request.Search}%' />"; filter += $"</filter>"; } var fetchString = $@"<fetch version='1.0' count='{request.PageSize}' page='{request.PageIndex}' output-format='xml-platform' mapping='logical' distinct='false'> <entity name='mcs_driverecord'> <all-attributes /> <order attribute='mcs_ordertime' descending='true' /> <filter type='and'> <condition attribute='statecode' operator='eq' value='0' /> {filter} </filter> <link-entity name='mcs_reservationconfiguration' from='mcs_reservationconfigurationid' to='mcs_testdrivetime' visible='false' link-type='outer' > <attribute name='mcs_name' alias='reservationname'/> </link-entity> </entity> </fetch>"; return(fetchString); }
/// <summary> /// 查询试乘试驾各个状态数量 /// </summary> /// <param name="request"></param> /// <param name="status"></param> /// <returns></returns> public string QueryListByCount(DriveRecordRequest request, int status) { var filter = string.Empty; if (status != 0) { filter += $"<condition attribute='mcs_drivestatus' operator='eq' value='{status}' />"; } if (request.DealerId != null) { filter += $"<condition attribute='mcs_dealerid' operator='eq' value='{request.DealerId}' />"; } if (request.OrderTime != null) { filter += $"<condition attribute='mcs_ordertime' operator='on' value='{request.OrderTime}' />"; } if (!string.IsNullOrWhiteSpace(request.Search)) { filter += $"<filter type='or'>"; filter += $"<condition attribute='mcs_fullname' operator='like' value='%{request.Search}%' />"; filter += $"<condition attribute='mcs_mobilephone' operator='like' value='%{request.Search}%' />"; filter += $"<condition attribute='mcs_name' operator='like' value='%{request.Search}%' />"; filter += $"</filter>"; } var fetchString = $@"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' aggregate='true'> <entity name='mcs_driverecord'> <attribute name='mcs_driverecordid' aggregate='countcolumn' alias='count'/> <filter type='and'> <condition attribute='statecode' operator='eq' value='0' /> {filter} </filter> </entity> </fetch>"; return(fetchString); }
/// <summary> /// 试乘试驾列表查询接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <DriveRecordListResponse <CrmEntity> > QueryList(DriveRecordRequest request) { try { var userInfo = ContextContainer.GetValue <UserInfo>(ContextExtensionTypes.CurrentUserInfo); if (userInfo != null && !string.IsNullOrWhiteSpace(userInfo.mcs_dealerid)) { // request.DealerId = Guid.Parse(userInfo.mcs_dealerid); } #region 查询结果集 var fetchString = _driveRecordRepository.QueryList(request); var fetchXdoc = XDocument.Parse(fetchString); var fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_driverecord", FetchXml = fetchXdoc, ProxyUserId = userInfo?.systemuserid }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); var fetchResponse = await _crmService.Execute(fetchRequest); var fetchResponseResult = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion #region 查询总条数 var status = 0; var fetchAllTotalCountString = _driveRecordRepository.QueryListByCount(request, status); var fetchAllTotalXdoc = XDocument.Parse(fetchAllTotalCountString); fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_driverecord", FetchXml = fetchAllTotalXdoc, ProxyUserId = userInfo?.systemuserid }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); fetchResponse = await _crmService.Execute(fetchRequest); var allTotalCountResults = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion #region 已提交 status = 10; var fetchSubmittedCountString = _driveRecordRepository.QueryListByCount(request, status); var fetchSubmittedXdoc = XDocument.Parse(fetchSubmittedCountString); fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_driverecord", FetchXml = fetchSubmittedXdoc, ProxyUserId = userInfo?.systemuserid }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); fetchResponse = await _crmService.Execute(fetchRequest); var SubmittedCountResults = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion #region 已排程 status = 12; var fetchScheduledCountString = _driveRecordRepository.QueryListByCount(request, status); var fetchScheduledXdoc = XDocument.Parse(fetchScheduledCountString); fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() { EntityName = "mcs_driverecord", FetchXml = fetchScheduledXdoc, ProxyUserId = userInfo?.systemuserid }; fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); fetchResponse = await _crmService.Execute(fetchRequest); var ScheduledCountResults = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; #endregion //#region 已取消 //status = 13; //var fetchCancelledCountString = _driveRecordRepository.QueryListByCount(request, status); //var fetchCancelledXdoc = XDocument.Parse(fetchCancelledCountString); //fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() //{ // EntityName = "mcs_driverecord", // FetchXml = fetchCancelledXdoc, // ProxyUserId = userInfo?.systemuserid //}; //fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); //fetchResponse = await _crmService.Execute(fetchRequest); //var CancelledCountResults = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; //#endregion //#region 开始试驾 //status = 14; //var fetchCancelledCountString = _driveRecordRepository.QueryListByCount(request, status); //var fetchCancelledXdoc = XDocument.Parse(fetchCancelledCountString); //fetchRequest = new CrmRetrieveMultipleFetchRequestMessage() //{ // EntityName = "mcs_driverecord", // FetchXml = fetchCancelledXdoc //}; //fetchRequest.Headers.Add(dicHeadKey, dicHead[dicHeadKey]); //fetchResponse = await _crmService.Execute(fetchRequest); //var CancelledCountResults = fetchResponse as CrmRetrieveMultipleFetchResponseMessage; //#endregion var queryResult = new DriveRecordListResponse <CrmEntity>(); queryResult.Results = fetchResponseResult.Value.Results; queryResult.CurrentPage = request.PageIndex; queryResult.ALLTotalCount = (int)allTotalCountResults.Value.Results[0].Attributes["count"]; queryResult.ScheduledCount = (int)ScheduledCountResults.Value.Results[0].Attributes["count"]; queryResult.SubmittedCount = (int)SubmittedCountResults.Value.Results[0].Attributes["count"]; return(queryResult); } catch (Exception ex) { throw ex; } }
public async Task <NewtonsoftJsonActionResult <DriveRecordListResponse <CrmEntity> > > GetList([FromQuery] DriveRecordRequest request) { var list = await app.QueryList(request); return(list); }
/// <summary> /// 试乘试驾列表查询接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <DriveRecordListResponse <CrmEntity> > QueryList(DriveRecordRequest request) { return(await _driveRecordService.QueryList(request)); }