| 
					
				 | 
			
			
				@@ -0,0 +1,124 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using AutoMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using OASystem.Domain; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using OASystem.Domain.Dtos.Groups; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using OASystem.Domain.Entities.Groups; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using OASystem.Domain.ViewModels.Groups; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Collections.Generic; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Linq; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using System.Threading.Tasks; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace OASystem.Infrastructure.Repositories.Groups 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public class CarTouristGuideGroundRepository:BaseRepository<Grp_CarTouristGuideGroundReservations, Grp_CarTouristGuideGroundReservationsContent> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private readonly IMapper _mapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public CarTouristGuideGroundRepository(SqlSugarClient sqlSugar, IMapper mapper) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            : base(sqlSugar) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            _mapper = mapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public async Task<Result> QueryCarTouristGuideGroundByDiId(CarTouristGuideGroundDto dto) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Result result = new Result() { Code = -2, Msg = "未知错误" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (dto.PortType == 0 || string.IsNullOrWhiteSpace(dto.PortType.ToString())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return result = new Result() { Code = -1, Msg = "请传入PortType参数,请求端口分类 1 Web 2 Android 3 IOS" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #region SQL条件拼接 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                string sqlWhere = string.Empty; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sqlWhere += string.Format(@"And t.DIId={0} and t.isdel={1}", dto.DiId, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                string UserId = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Grp_GroupsTaskAssignment> gtaUIdList = _sqlSugar.Queryable<Grp_GroupsTaskAssignment>().Where(a => a.DIId == dto.DiId && a.IsDel == 0 && a.CTId == 79).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                foreach (Grp_GroupsTaskAssignment gta in gtaUIdList) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    UserId += gta.UId + ","; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!string.IsNullOrWhiteSpace(UserId)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    UserId = UserId.Substring(0, UserId.Length - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    UserId = "0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sqlWhere += string.Format(@" And t.CreateUserId in ({0})", UserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!string.IsNullOrEmpty(sqlWhere.Trim())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Regex r = new Regex("And"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    sqlWhere = r.Replace(sqlWhere, "Where", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int startIndex = (dto.PageIndex - 1) * dto.PageSize + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                int endIndex = startIndex + dto.PageSize - 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (dto.PortType == 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    string sql = string.Format(@"select t.*,s.Name as CurrencyStr,c.IsAuditGM,c.PayPercentage,c.PayMoney from  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                Grp_CarTouristGuideGroundReservations t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                left Join Grp_CreditCardPayment c on CTable=79 and c.CId=t.Id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                left Join Sys_SetData s on s.Id=t.CId {0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                order by CreateTime desc", sqlWhere); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    List<Grp_CarTouristGuideGroundView> infoViews = _sqlSugar.SqlQueryable<Grp_CarTouristGuideGroundView>(sql).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    foreach (var item in infoViews) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        item.PayThenMoney = Math.Round(item.PayPercentage/100 * item.ServiceQuotedPrice, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        item.RemainingBalance = Math.Round(item.ServiceQuotedPrice- item.PayPercentage / 100 * item.ServiceQuotedPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return result = new Result() { Code = 0, Msg = "查询成功!", Data = infoViews }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else if (dto.PortType == 2 || dto.PortType == 3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    string sql = string.Format(@"Select * From (	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            Select row_number() over (order by t.Id Desc) as RowNumber,t.*,s.Name as CurrencyStr,c.IsAuditGM,c.PayPercentage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            from  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            Grp_CarTouristGuideGroundReservations t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            left Join Grp_CreditCardPayment c on CTable=79 and c.CId=t.Id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            left Join Sys_SetData s on s.Id=t.CId {0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            ) temp Where RowNumber Between {1} and {2}", sqlWhere, startIndex, endIndex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    List<Grp_CarTouristGuideGroundView> grp_CarTourists = _sqlSugar.SqlQueryable<Grp_CarTouristGuideGroundView>(sql).ToList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    foreach (var item in grp_CarTourists) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        item.PayThenMoney = Math.Round(item.PayPercentage / 100 * item.ServiceQuotedPrice, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        item.RemainingBalance = Math.Round(item.ServiceQuotedPrice - item.PayPercentage / 100 * item.ServiceQuotedPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    string CountSql = string.Format(@"Select COUNT(1) as Count From (	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        select t.*,s.Name as CurrencyStr,c.IsAuditGM,c.PayPercentage from  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        Grp_CarTouristGuideGroundReservations t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        left Join Grp_CreditCardPayment c on CTable=79 and c.CId=t.Id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        left Join Sys_SetData s on s.Id=t.CId {0} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        ) temp ", sqlWhere); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    DataCount dataCount = _sqlSugar.SqlQueryable<DataCount>(CountSql).First(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (dataCount != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        int count = dataCount.Count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        float totalPage = (float)count / dto.PageSize;//总页数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (totalPage == 0) totalPage = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        else totalPage = (int)Math.Ceiling((double)totalPage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ListViewBase<Grp_CarTouristGuideGroundView> rst = new ListViewBase<Grp_CarTouristGuideGroundView>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rst.DataList = grp_CarTourists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rst.DataCount = count; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rst.CurrPageIndex = dto.PageIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rst.CurrPageSize = dto.PageSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return result = new Result() { Code = 0, Msg = "查询成功!", Data = rst }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            catch (Exception) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return result = new Result() { Code = -2, Msg = "未知错误" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |