From 152f48ca3cae46bbffca3fa0af4bc9e8216fafff Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期五, 11 十月 2024 10:39:28 +0800 Subject: [PATCH] 两次打卡必须超过10分钟! --- cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs | 399 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 340 insertions(+), 59 deletions(-) diff --git a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs index 3f658a3..d246803 100644 --- a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs +++ b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs @@ -3,9 +3,12 @@ using cylsg.Core; using cylsg.Model.OrderModel; using cylsg.Model.UserModel; +using EzTencentCloud; using Furion.LinqBuilder; using MapsterMapper; +using Microsoft.IdentityModel.Tokens; using Org.BouncyCastle.Asn1.X509; +using SqlSugar.Extensions; using System; using System.Collections.Generic; using System.Linq; @@ -26,11 +29,13 @@ private readonly ISystemService _systemService; private ISqlSugarClient _sqlSugarClient; private IMapper _mapper; - public OrderWorkerAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper) + private readonly ITencentCloudService _tencentCloudService; + public OrderWorkerAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper,ITencentCloudService tencentCloudService) { _systemService = systemService; _sqlSugarClient = sqlSugarClient; _mapper = mapper; + _tencentCloudService = tencentCloudService; } @@ -42,11 +47,19 @@ [HttpPost] public async Task<PageResult<OrderDto>> PostListPage(OrderPageSearch page) { + var UserID = App.User?.FindFirstValue("UserID"); + int userid = 0; + if (!string.IsNullOrEmpty(UserID)) + { + userid = int.Parse(UserID); + } + PageResult<OrderDto> result = new PageResult<OrderDto>(); Expression<Func<Order, bool>> expression = t => true; expression = expression.And(t => t.IsDeleted == false && t.IsEn == true && t.OrderStatus == 0); + expression = expression.And(t => t.WordStartTime >= DateTime.Now.Date.AddDays(-30)); if (!string.IsNullOrEmpty(page.OrderName)) { expression = expression.And(t => t.OrderName.Contains(page.OrderName)); @@ -64,6 +77,7 @@ var orderRepository = new BaseRepository<Order>(); var orderBiddingRepository = new BaseRepository<OrderBidding>(); + var userCompanyRepository = new BaseRepository<UserCompany>(); var data = await orderRepository.Context.Queryable<Order>() .Where(expression) @@ -77,6 +91,41 @@ { var orderBiddings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false); orderDto.WorderCounted = orderBiddings; + var userCompany = await userCompanyRepository.GetFirstAsync(x => x.UserId == orderDto.OrderUserId && x.IsDeleted == false && x.IsEn == true); + if (userCompany != null) + { + orderDto.OrderComName = userCompany.Suppliername; + } + if (userid > 0) + { + var orderBidding = await orderBiddingRepository.GetFirstAsync(x => x.OrderId == orderDto.Id && x.WorkerUserId == userid && x.IsEn == true && x.IsDeleted == false); + if (orderBidding != null) + { + if (!orderBidding.IsSelected.HasValue) + { + orderDto.IsSelectedName = "瀹℃牳涓�"; + } + else if (orderBidding.IsSelected.Value == true) + { + orderDto.IsSelectedName = "宸茬‘璁�"; + } + else + { + orderDto.IsSelectedName = "涓嶅綍鐢�"; + } + + } + else + { + orderDto.IsSelectedName = null; + } + } + else + { + orderDto.IsSelectedName = null; + } + + } } @@ -130,6 +179,7 @@ var orderBiddingRepository = new BaseRepository<OrderBidding>(); + var userCompanyRepository = new BaseRepository<UserCompany>(); var data = await orderRepository.Context.Queryable<Order>() .Where(expression) @@ -157,14 +207,23 @@ if (orderBidding != null) { orderDto.IsSelected = orderBidding.IsSelected; - if (orderDto.IsSelected.HasValue && orderDto.IsSelected.Value) + if (!orderDto.IsSelected.HasValue ) { - orderDto.IsSelectedName ="宸茬‘璁�"; + orderDto.IsSelectedName = "瀹℃牳涓�"; + } + else if(orderDto.IsSelected.Value) + { + orderDto.IsSelectedName = "宸茬‘璁�"; } else { - orderDto.IsSelectedName = "鏈‘璁�"; + orderDto.IsSelectedName = "涓嶅綍鐢�"; } + } + var userCompany = await userCompanyRepository.GetFirstAsync(x => x.UserId == orderDto.OrderUserId && x.IsDeleted == false && x.IsEn == true); + if (userCompany != null) + { + orderDto.OrderComName = userCompany.Suppliername; } } @@ -176,6 +235,7 @@ return result; } + @@ -199,6 +259,8 @@ OrderDto orderDto = new OrderDto(); var orderRes = new BaseRepository<Order>(); var orderBiddingRes = new BaseRepository<OrderBidding>(); + var userWorkerRes = new BaseRepository<UserWorker>(); + var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); var userRes = new BaseRepository<User>(); var order = await orderRes.GetByIdAsync(orderid); orderDto = _mapper.Map<OrderDto>(order); @@ -209,45 +271,93 @@ case (int)OrderStatuses.jiesuanwanbi: orderDto.OrderStatusName = "缁撶畻瀹屾瘯"; break; default: break; } - var orderBiddings = await orderBiddingRes.GetListAsync(x => x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == false); + var orderBiddings = await orderBiddingRes.GetListAsync(x => x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == false ); //&& (x.IsSelected ==null || x.IsSelected !=false) var IsSelected = orderBiddings.Count(x => x.IsSelected == true); orderDto.WorderCounted = IsSelected; var orderBidding = orderBiddings.Where(x => x.WorkerUserId == userid).FirstOrDefault(); if (orderBidding != null) { + var dangqianshijian = DateTime.Now.Date; + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrices = await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == orderBidding.Id && x.IsEn == true && x.IsDeleted == false ); + + orderBiddingWorkPrices = orderBiddingWorkPrices.OrderByDescending(x => x.Id).ToList(); + orderDto.orderBiddingWorkPrices = orderBiddingWorkPrices; + var orderBiddingWorkPrice = orderBiddingWorkPrices.Where(x => x.EffectTime <= DateTime.Now.Date).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + orderDto.WorkPriceDangqian = orderBiddingWorkPrice.WorkPrice; + } + else + { + orderDto.WorkPriceDangqian = orderDto.WorkPrice; + } + + orderDto.IsSelected = orderBidding.IsSelected; - if (orderDto.IsSelected.HasValue && orderDto.IsSelected.Value) + if (!orderDto.IsSelected.HasValue) + { + orderDto.IsSelectedName = "瀹℃牳涓�"; + } + else if (orderDto.IsSelected.Value) { orderDto.IsSelectedName = "宸茬‘璁�"; } else { - orderDto.IsSelectedName = "鏈‘璁�"; + orderDto.IsSelectedName = "涓嶅綍鐢�"; } } - + orderBiddings = orderBiddings.Where(x => (x.IsSelected == null || x.IsSelected != false)).ToList(); var orderBiddingDtos = _mapper.Map<List<OrderBiddingDto>>(orderBiddings); if(orderBiddingDtos != null&& orderBiddingDtos.Count > 0) { foreach (var orderBiddingDto in orderBiddingDtos) { - if (orderBiddingDto.IsSelected.HasValue && orderBiddingDto.IsSelected.Value) + if (!orderBiddingDto.IsSelected.HasValue) + { + orderBiddingDto.IsSelectedName = "瀹℃牳涓�"; + } + else if (orderBiddingDto.IsSelected.Value) { orderBiddingDto.IsSelectedName = "宸茬‘璁�"; } else { - orderBiddingDto.IsSelectedName = "鏈‘璁�"; + orderBiddingDto.IsSelectedName = "涓嶅綍鐢�"; } + var user = await userRes.GetByIdAsync(orderBiddingDto.WorkerUserId); + if (user != null) { - orderBiddingDto.WorkerName = user.name; orderBiddingDto.WorkerAvatar = user.Avatar; } + var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderBiddingDto.WorkerUserId && x.IsEn == true && x.IsDeleted == false); + if (userWorker != null) + { + orderBiddingDto.WorkerName = userWorker.name; + } + + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrices = await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == orderBiddingDto.Id && x.IsEn == true && x.IsDeleted == false); + orderBiddingWorkPrices = orderBiddingWorkPrices.OrderByDescending(x => x.Id).ToList(); + orderBiddingDto.orderBiddingWorkPrices = orderBiddingWorkPrices; + var orderBiddingWorkPrice = orderBiddingWorkPrices.Where(x => x.EffectTime <= DateTime.Now.Date).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + + orderBiddingDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; + } + else + { + orderBiddingDto.WorkPrice = orderDto.WorkPrice; + } + + } } @@ -273,7 +383,7 @@ var UserID = App.User?.FindFirstValue("UserID"); int userid = 0; - string ITCode = App.User?.FindFirstValue("ITCode"); + string NickName = App.User?.FindFirstValue("NickName"); if (!string.IsNullOrEmpty(UserID)) { userid = int.Parse(UserID); @@ -289,9 +399,13 @@ } var order = await orderRes.GetByIdAsync(baoMingDto.OrderId); - if (order == null || order.OrderStatus>0) + if (order == null || order.OrderStatus>0 || order.IsEn !=true ) { throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡缁忔棤娉曟姇閫掞紒"); + } + if (order.OrderUserId == userid) + { + throw Oops.Oh("鑷繁鏃犳硶鎶曢�掕嚜宸卞彂甯冪殑鎷涘伐锛�"); } bool res; @@ -315,10 +429,10 @@ OrderBidding orderBidding1 = new OrderBidding(); orderBidding1.WorkerUserId = userid; orderBidding1.OrderId = baoMingDto.OrderId; - orderBidding1.IsSelected = false; - orderBidding1.UpDataBy = ITCode; + orderBidding1.IsSelected = null; + orderBidding1.UpDataBy = NickName; orderBidding1.UpDataTime = DateTime.Now; - orderBidding1.CreateBy = ITCode; + orderBidding1.CreateBy = NickName; orderBidding1.CreateTime = DateTime.Now; res = await orderBiddingRes.InsertAsync(orderBidding1); @@ -338,7 +452,7 @@ { var UserID = App.User?.FindFirstValue("UserID"); int userid = 0; - string ITCode = App.User?.FindFirstValue("ITCode"); + string NickName = App.User?.FindFirstValue("NickName"); if (!string.IsNullOrEmpty(UserID)) { userid = int.Parse(UserID); @@ -350,6 +464,7 @@ var orderRes = new BaseRepository<Order>(); var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>(); var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>(); + var userWorkerRes = new BaseRepository<UserWorker>(); var order = await orderRes.GetByIdAsync(baoMingDto.OrderId); if (order == null || order.OrderStatus > 1) { @@ -369,6 +484,11 @@ throw Oops.Oh("褰撳ぉ鐨勬墦鍗″凡缁忔彁浜わ紝涓嶈兘鎵撳崱锛�"); } orderBiddingDetailDto = _mapper.Map<OrderBiddingDetailDto>(orderBiddingDetail); + orderBiddingDetailDto.WorkerUserId = orderBidding.WorkerUserId; + var worker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderBidding.WorkerUserId); + if(worker != null) + orderBiddingDetailDto.WorkerName = worker.name; + var orderBiddingDetailChecks = await OrderBiddingDetailCheckRes.GetListAsync(x => x.OrderBiddingDetailId == orderBiddingDetail.Id && x.IsDeleted == false && x.IsEn == true); orderBiddingDetailDto.orderBiddingDetailCheck = _mapper.Map<List<OrderBiddingDetailCheckDto>>(orderBiddingDetailChecks); } @@ -387,7 +507,7 @@ var UserID = App.User?.FindFirstValue("UserID"); int userid = 0; - string ITCode = App.User?.FindFirstValue("ITCode"); + string NickName = App.User?.FindFirstValue("NickName"); if (!string.IsNullOrEmpty(UserID)) { userid = int.Parse(UserID); @@ -398,24 +518,65 @@ var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>(); var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>(); - var orderBidding = await orderBiddingRes.GetByIdAsync(dakaDto.OrderBiddingId); + var order = await orderRes.GetByIdAsync(dakaDto.OrderId); + if (order == null || order.OrderStatus > 1) + { + throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡鏃犳硶鎵撳崱锛�"); + } + + var orderBidding = await orderBiddingRes.GetFirstAsync(x => x.OrderId == dakaDto.OrderId && x.WorkerUserId == userid && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false );//GetByIdAsync(dakaDto.OrderBiddingId); if (orderBidding == null || orderBidding.IsDeleted ==true || orderBidding.IsEn == false || orderBidding.IsSelected !=true ) { throw Oops.Oh("璇ユ姇閫掔姸鎬佹棤娉曟墦鍗★紒"); } - var order = await orderRes.GetByIdAsync(orderBidding.OrderId); - if (order == null || order.OrderStatus > 1) - { - throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡鏃犳硶鎵撳崱锛�"); - } + bool res; var dateTime = DateTime.Now.Date; + if ( dateTime < order.WordStartTime.Value && dateTime > order.WordEndTime.Value ) + { + throw Oops.Oh("涓嶅湪鍏佽鎵撳崱鐨勬椂闂磋寖鍥达紒"); + } var orderBiddingDetail = await orderBiddingDetailRes.GetFirstAsync(x => x.OrderBiddingId == orderBidding.Id && x.WorkDate == dateTime && x.IsDeleted == false && x.IsEn == true); if (orderBiddingDetail!=null && orderBiddingDetail.IsShenPi>0) { throw Oops.Oh("璇ユ墦鍗¤褰曞凡缁忓鎵癸紝涓嶈兘鎵撳崱锛�"); } + if (orderBiddingDetail != null) + { + var orderBiddingDetailCheck1 = (await OrderBiddingDetailCheckRes.GetListAsync(x => x.OrderBiddingDetailId == orderBiddingDetail.Id && x.IsDeleted == false && x.IsEn == true )).OrderByDescending(x=>x.Checktime).FirstOrDefault(); + if (orderBiddingDetailCheck1 != null && orderBiddingDetailCheck1.Checktime >= DateTime.Now.AddMinutes(-10)) + { + throw Oops.Oh("涓ゆ鎵撳崱鏃堕棿涔嬮棿蹇呴』闂撮殧瓒呰繃10鍒嗛挓锛�"); + } + } + + + + //浜鸿劯璇嗗埆 + if (App.Configuration["VerifyFace:Enable"].ObjToBool()) + { + if (string.IsNullOrWhiteSpace(dakaDto.FaceImg)) + { + throw Oops.Oh("鏈瘑鍒汉鑴�"); + } + + var UserWorkRes = await new BaseRepository<UserWorker>().GetFirstAsync(x => x.UserId == userid); + if (UserWorkRes == null) + { + throw Oops.Oh("鍛樺伐鏈敞鍐屾垚宸ヤ汉"); + } + var faseres = _tencentCloudService.VerifyFace(dakaDto.FaceImg, UserWorkRes.IdCode); + + if (faseres.IsMatch != true) + { + throw Oops.Oh("涓嶆槸鏈汉"); + } + } + + + + if(orderBiddingDetail == null) { orderBiddingDetail = new OrderBiddingDetail(); @@ -423,9 +584,9 @@ orderBiddingDetail.WorkDate = dateTime; orderBiddingDetail.IsShenPi = 0; orderBiddingDetail.IsTiXian = false; - orderBiddingDetail.UpDataBy = ITCode; + orderBiddingDetail.UpDataBy = NickName; orderBiddingDetail.UpDataTime = DateTime.Now; - orderBiddingDetail.CreateBy = ITCode; + orderBiddingDetail.CreateBy = NickName; orderBiddingDetail.CreateTime = DateTime.Now; orderBiddingDetail.Id = await orderBiddingDetailRes.InsertReturnIdentityAsync(orderBiddingDetail); } @@ -434,9 +595,9 @@ orderBiddingDetailCheck.OrderBiddingDetailId = orderBiddingDetail.Id; orderBiddingDetailCheck.CheckPhoto = dakaDto.CheckPhoto; orderBiddingDetailCheck.Checktime = DateTime.Now; - orderBiddingDetailCheck.UpDataBy = ITCode; + orderBiddingDetailCheck.UpDataBy = NickName; orderBiddingDetailCheck.UpDataTime = DateTime.Now; - orderBiddingDetailCheck.CreateBy = ITCode; + orderBiddingDetailCheck.CreateBy = NickName; orderBiddingDetailCheck.CreateTime = DateTime.Now; res = await OrderBiddingDetailCheckRes.InsertAsync(orderBiddingDetailCheck); @@ -473,18 +634,22 @@ var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>(); - - var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail>((a, b ,c) => + var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); + var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail ,UserCompany>((a, b ,c ,d) => new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId , - JoinType.Inner, b.Id == c.OrderBiddingId + JoinType.Inner, b.Id == c.OrderBiddingId , + JoinType.Inner, a.OrderUserId == d.UserId )) - .Where((a, b, c) => a.IsEn == true && a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false - && b.IsSelected == true && b.WorkerUserId == userid) - .WhereIF(page.WordDate.HasValue, (a, b, c) => (c.WorkDate == page.WordDate)) - .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == true, (a, b, c) => (c.IsShenPi == 2)) - .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == false, (a, b, c) => (c.IsShenPi < 2)) - .OrderByDescending((a, b, c) => c.WorkDate) - .Select((a, b, c) => new OrderDakaDto + .Where((a, b, c, d) => a.IsEn == true && a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false + && b.IsSelected == true && b.WorkerUserId == userid && d.IsEn == true && d.IsDeleted == false ) + .WhereIF(page.WordDate.HasValue, (a, b, c, d) => (c.WorkDate == page.WordDate)) + .WhereIF(page.WordDateStart.HasValue, (a, b, c, d) => (c.WorkDate >= page.WordDateStart)) + .WhereIF(page.WordDateEnd.HasValue, (a, b, c, d) => (c.WorkDate <= page.WordDateEnd)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == true, (a, b, c, d) => (c.IsShenPi == 2)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == false, (a, b, c, d) => (c.IsShenPi < 2)) + .WhereIF(!string.IsNullOrEmpty(page.Suppliername), (a, b, c, d) =>d.Suppliername.Contains(page.Suppliername)) + .OrderByDescending((a, b, c, d) => c.WorkDate) + .Select((a, b, c, d) => new OrderDakaDto { OrderBiddingDetailId = c.Id, OrderName = a.OrderName, @@ -495,10 +660,29 @@ TodaySalary = c.TodaySalary, IsShenPi = c.IsShenPi, WorkCount = c.WorkCount, - + Suppliername = d.Suppliername, + OrderBiddingId = c.OrderBiddingId, }) .ToPageListAsync(page.PageIndex, page.PageSize, total); + + + + + var heji = orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail, UserCompany>((a, b, c, d) => + new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId, + JoinType.Inner, b.Id == c.OrderBiddingId, + JoinType.Inner, a.OrderUserId == d.UserId + )) + .Where((a, b, c, d) => a.IsEn == true && a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false + && b.IsSelected == true && b.WorkerUserId == userid && d.IsEn == true && d.IsDeleted == false) + .WhereIF(page.WordDate.HasValue, (a, b, c, d) => (c.WorkDate == page.WordDate)) + .WhereIF(page.WordDateStart.HasValue, (a, b, c, d) => (c.WorkDate >= page.WordDateStart)) + .WhereIF(page.WordDateEnd.HasValue, (a, b, c, d) => (c.WorkDate <= page.WordDateEnd)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == true, (a, b, c, d) => (c.IsShenPi == 2)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == false, (a, b, c, d) => (c.IsShenPi < 2)) + .WhereIF(!string.IsNullOrEmpty(page.Suppliername), (a, b, c, d) => d.Suppliername.Contains(page.Suppliername)) + .Sum((a, b, c, d) => c.TodaySalary); if (data != null && data.Count > 0) { @@ -531,6 +715,12 @@ //濡傛灉褰撳ぉ杩樻病鏈夊~鍐欑敵璇凤紝鍒欒绠楀伐浣滄椂闂村拰宸ヨ祫 if(dakaDto.IsShenPi == 0) { + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrice = (await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == dakaDto.OrderBiddingId && x.IsEn == true && x.IsDeleted == false && x.EffectTime <= dakaDto.WorkDate)).OrderByDescending(x => x.Id).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + dakaDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; + } dakaDto.WorkTime = hours+(minutes/60); if(dakaDto.WorkerType == 0) { @@ -555,7 +745,7 @@ switch (dakaDto.WorkerType) { case (int)WorkerTypes.time: dakaDto.WorkerTypeName = "璁℃椂"; break; - case (int)WorkerTypes.count: dakaDto.WorkerTypeName = "璁′环"; break; + case (int)WorkerTypes.count: dakaDto.WorkerTypeName = "璁′欢"; break; default: break; } @@ -572,7 +762,7 @@ result.PageIndex = page.PageIndex; result.PageSize = page.PageSize; result.TotalCount = total; - + result.Heji = heji ?? 0; return result; } @@ -591,7 +781,7 @@ { var UserID = App.User?.FindFirstValue("UserID"); int userid = 0; - string ITCode = App.User?.FindFirstValue("ITCode"); + string NickName = App.User?.FindFirstValue("NickName"); if (!string.IsNullOrEmpty(UserID)) { userid = int.Parse(UserID); @@ -603,8 +793,9 @@ var orderRes = new BaseRepository<Order>(); var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>(); var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>(); + var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); var userRes = new BaseRepository<User>(); - + var userWorkerRes = new BaseRepository<UserWorker>(); var orderBiddingDetail = await orderBiddingDetailRes.GetByIdAsync(dakaDetailDto.OrderBiddingDetailId); var orderBidding = await orderBiddingRes.GetByIdAsync(orderBiddingDetail.OrderBiddingId); @@ -626,10 +817,13 @@ var user = await userRes.GetByIdAsync(orderDakaMingxiDto.WorkerUserId); if (user != null) { - orderDakaMingxiDto.WorkerUserName = user.name; orderDakaMingxiDto.WorkerUserAvatar = user.Avatar; } - + var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderDakaMingxiDto.WorkerUserId && x.IsEn == true && x.IsDeleted == false); + if (userWorker != null) + { + orderDakaMingxiDto.WorkerUserName = userWorker.name; + } switch (orderDakaMingxiDto.IsShenPi) @@ -643,7 +837,7 @@ switch (orderDakaMingxiDto.WorkerType) { case (int)WorkerTypes.time: orderDakaMingxiDto.WorkerTypeName = "璁℃椂"; break; - case (int)WorkerTypes.count: orderDakaMingxiDto.WorkerTypeName = "璁′环"; break; + case (int)WorkerTypes.count: orderDakaMingxiDto.WorkerTypeName = "璁′欢"; break; default: break; } @@ -663,7 +857,12 @@ } } - + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrice = (await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == orderBidding.Id && x.IsEn == true && x.IsDeleted == false && x.EffectTime <= orderDakaMingxiDto.WorkDate)).OrderByDescending(x => x.Id).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + orderDakaMingxiDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; + } orderDakaMingxiDto.WorkTime = hours + (minutes / 60); if (orderDakaMingxiDto.WorkerType == 0) { @@ -695,7 +894,7 @@ var UserID = App.User?.FindFirstValue("UserID"); int userid = 0; - string ITCode = App.User?.FindFirstValue("ITCode"); + string NickName = App.User?.FindFirstValue("NickName"); if (!string.IsNullOrEmpty(UserID)) { userid = int.Parse(UserID); @@ -707,30 +906,40 @@ //var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>(); var orderBiddingDetail = await orderBiddingDetailRes.GetByIdAsync(dakaDto.OrderBiddingDetailId); + if (orderBiddingDetail == null || orderBiddingDetail.IsShenPi > 1 || orderBiddingDetail.IsDeleted == true || orderBiddingDetail.IsEn == false) + { + throw Oops.Oh("璇ユ墦鍗$姸鎬佸凡鏃犳硶鎵撳崱纭锛�"); + } var orderBidding = await orderBiddingRes.GetByIdAsync(orderBiddingDetail.OrderBiddingId); - var order = await orderRes.GetByIdAsync(orderBidding.OrderId); - if (orderBidding == null || orderBidding.IsDeleted == true || orderBidding.IsEn == false || orderBidding.IsSelected != true) { throw Oops.Oh("璇ユ姇閫掔姸鎬佹棤娉曟墦鍗$‘璁わ紒"); } - if (order == null || order.OrderStatus > 1) + var order = await orderRes.GetByIdAsync(orderBidding.OrderId); + + + if (order == null || order.OrderStatus > 1 || order.IsDeleted == true || order.IsEn == false ) { throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡鏃犳硶鎵撳崱纭锛�"); } - if (orderBiddingDetail == null || orderBiddingDetail.IsShenPi > 1) - { - throw Oops.Oh("璇ユ墦鍗$姸鎬佸凡鏃犳硶鎵撳崱纭锛�"); - } + orderBiddingDetail.WorkTime = dakaDto.WorkTime; orderBiddingDetail.WorkCount = dakaDto.WorkCount; - orderBiddingDetail.TodaySalary = dakaDto.TodaySalary; - orderBiddingDetail.IsShenPi = 1; - orderBiddingDetail.UpDataBy = ITCode; + if(order.WorkerType == (int)WorkerTypes.count) + { + orderBiddingDetail.TodaySalary = dakaDto.WorkCount * order.WorkPrice; + } + else + { + orderBiddingDetail.TodaySalary = dakaDto.TodaySalary; + } + + orderBiddingDetail.IsShenPi = (int)IsShenPis.tijiao; + orderBiddingDetail.UpDataBy = NickName; orderBiddingDetail.UpDataTime = DateTime.Now; - //orderBiddingDetail.CreateBy = ITCode; + //orderBiddingDetail.CreateBy = NickName; //orderBiddingDetail.CreateTime = DateTime.Now; var res = await orderBiddingDetailRes.UpdateAsync(orderBiddingDetail); @@ -742,5 +951,77 @@ + + /// <summary> + /// 鏌ヨ宸ヤ汉鐨勬敹鍏ヨ褰� + /// </summary> + /// <param name="page"></param> + /// <returns></returns> + [Authorize] + [HttpPost] + public async Task<PageResult<UserTiXianDetailDto>> PostMyTiXianDetailListPage(PageBaseSearch page) + { + var UserID = App.User?.FindFirstValue("UserID"); + int userid = 0; + if (!string.IsNullOrEmpty(UserID)) + { + userid = int.Parse(UserID); + } + + PageResult<UserTiXianDetailDto> result = new PageResult<UserTiXianDetailDto>(); + + RefAsync<int> total = 0; + + + var userTiXianDetailRepository = new BaseRepository<UserTiXianDetail>(); + + var data = await userTiXianDetailRepository.Context.Queryable<UserTiXianDetail>() + .Where(a => a.IsEn == true && a.IsDeleted == false && a.UserId == userid) + .OrderByDescending(a => a.CreateTime) + .Select(a => new UserTiXianDetailDto + { + Id = a.Id, + UserId = a.UserId, + YiTiXianJine = a.YiTiXianJine, + ZhiChuShouRu = a.ZhiChuShouRu, + Remark = a.Remark, + + + }) + + .ToPageListAsync(page.PageIndex, page.PageSize, total); + + if (data != null && data.Count > 0) + { + foreach (var userTiXianDetailDto in data) + { + + switch (userTiXianDetailDto.ZhiChuShouRu) + { + case (int)ZhiChuShouRus.zhichu: userTiXianDetailDto.ZhiChuShouRuName = "鏀嚭"; break; + case (int)ZhiChuShouRus.shouru: userTiXianDetailDto.ZhiChuShouRuName = "鏀跺叆"; break; + default: break; + } + + + + + + + + + } + + } + result.Items = data; + result.PageIndex = page.PageIndex; + result.PageSize = page.PageSize; + result.TotalCount = total; + + return result; + } + + + } } -- Gitblit v1.9.1