From 48c1ff4a312b814c2849e4566236d240364a8aba Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期四, 22 八月 2024 08:38:42 +0800
Subject: [PATCH] tijiao
---
cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs | 504 ++++++++++++
cylsg/cylsg.Application/Users/UserAppService.cs | 206 +++++
cylsg/cylsg.Model/UserModel/UserWorker.cs | 13
cylsg/cylsg.Application/Orders/Dtos/Mapper.cs | 28
cylsg/cylsg.Application/Orders/Dtos/PageBaseSearch.cs | 97 ++
cylsg/cylsg.Application/Users/Dtos/Mapper.cs | 24
cylsg/cylsg.Model/OrderModel/Order.cs | 4
cylsg/cylsg.Model/OrderModel/OrderBidding.cs | 6
cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs | 72 +
cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs | 530 ++++++++++++
cylsg/cylsg.Model/OrderModel/OrderBiddingDetail.cs | 14
cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs | 746 ++++++++++++++++++
cylsg/cylsg.Application/Users/Dtos/UserDto.cs | 193 ++++
13 files changed, 2,427 insertions(+), 10 deletions(-)
diff --git a/cylsg/cylsg.Application/Orders/Dtos/Mapper.cs b/cylsg/cylsg.Application/Orders/Dtos/Mapper.cs
new file mode 100644
index 0000000..0e74ae9
--- /dev/null
+++ b/cylsg/cylsg.Application/Orders/Dtos/Mapper.cs
@@ -0,0 +1,28 @@
+锘縰sing cylsg.Model.OrderModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.Orders.Dtos
+{
+ public class Mapper : IRegister
+ {
+ public void Register(TypeAdapterConfig config)
+ {
+ config.ForType<Order, OrderDto>();
+ config.ForType<OrderDto, Order>();
+
+ config.ForType<OrderBidding, OrderBiddingDto>();
+ config.ForType<OrderBiddingDto, OrderBidding>();
+
+ config.ForType<OrderBiddingDetail, OrderBiddingDetailDto>();
+ config.ForType<OrderBiddingDetailDto, OrderBiddingDetail>();
+
+ config.ForType<OrderBiddingDetailCheck, OrderBiddingDetailCheckDto>();
+ config.ForType<OrderBiddingDetailCheckDto, OrderBiddingDetailCheck>();
+
+ }
+ }
+}
diff --git a/cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs b/cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs
new file mode 100644
index 0000000..c524481
--- /dev/null
+++ b/cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs
@@ -0,0 +1,504 @@
+锘縰sing cylsg.Model.OrderModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.Orders.Dtos
+{
+ public class OrderDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐Id
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鎷涘伐鐢ㄦ埛id
+ /// </summary>
+ public int OrderUserId { get; set; }
+
+ /// <summary>
+ /// 鎷涘伐鍚嶇О
+ /// </summary>
+ public string OrderName { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔寮�濮嬫椂闂�
+ /// </summary>
+ public DateTime? WordStartTime { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔缁撴潫鏃堕棿
+ /// </summary>
+ public DateTime? WordEndTime { get; set; }
+
+ /// <summary>
+ /// 闇�姹�
+ /// </summary>
+ public string Demand { get; set; }
+
+ /// <summary>
+ /// 鎷涘伐浜烘暟
+ /// </summary>
+ public int? WorderCount { get; set; }
+
+ /// <summary>
+ /// 宸叉嫑宸ヤ汉鏁�
+ /// </summary>
+ public int WorderCounted { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鍦扮偣
+ /// </summary>
+ public string WorderAddress { get; set; }
+
+
+ /// <summary>
+ /// 鑱旂郴鐢佃瘽
+ /// </summary>
+ public string ContactPhone { get; set; }
+
+
+ /// <summary>
+ /// 宸ヤ綔鏂瑰紡
+ /// </summary>
+ public int? WorkerType { get; set; }
+
+
+ /// <summary>
+ /// 宸ヤ环
+ /// </summary>
+ public decimal? WorkPrice { get; set; }
+
+
+ /// <summary>
+ /// 鎷涘伐鐘舵��
+ /// </summary>
+ public int? OrderStatus { get; set; }
+
+ /// <summary>
+ /// 鏄惁閫変腑
+ /// </summary>
+ public string OrderStatusName { get; set; }
+
+ /// <summary>
+ /// 鏄惁閫変腑
+ /// </summary>
+ public bool? IsSelected { get; set; }
+ /// <summary>
+ /// 鏄惁閫変腑
+ /// </summary>
+ public string IsSelectedName { get; set; }
+
+ /// <summary>
+ /// 鎷涘伐鏄庣粏
+ /// </summary>
+ public List<OrderBiddingDto> orderBidding { get; set; }
+
+ }
+
+
+ /// <summary>
+ /// 鎷涘伐鏄庣粏
+ /// </summary>
+ public class OrderBiddingDto()
+ {
+ /// <summary>
+ /// 宸ヤ汉鎶曢�扞d
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛id
+ /// </summary>
+ public int WorkerUserId { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛鏄电О
+ /// </summary>
+ public string WorkerName { get; set; }
+
+
+ /// <summary>
+ /// 鐢ㄦ埛鏄电О
+ /// </summary>
+ public string WorkerAvatar { get; set; }
+
+ /// <summary>
+ /// 鎷涘伐id
+ /// </summary>
+ public int OrderId { get; set; }
+
+
+ /// <summary>
+ /// 鏄惁閫変腑
+ /// </summary>
+ public bool? IsSelected { get; set; }
+
+ /// <summary>
+ /// 鏄惁閫変腑
+ /// </summary>
+ public string IsSelectedName { get; set; }
+
+ /// <summary>
+ /// 閫変腑鏃堕棿
+ /// </summary>
+ public DateTime? Selectedtime { get; set; }
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ public string Remark { get; set; }
+
+ /// <summary>
+ /// 宸ヨ祫鎬婚
+ /// </summary>
+ public decimal? Salary { get; set; }
+
+ }
+
+
+
+
+ public class BaoMingDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐OrderId
+ /// </summary>
+ public int OrderId { get; set; }
+
+
+
+
+
+ }
+
+
+ public class QueRenDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐鏄庣粏OrderBiddingId
+ /// </summary>
+ public int OrderBiddingId { get; set; }
+
+
+
+
+
+ }
+
+ public class DakaDetailDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐鏄庣粏OrderBiddingId
+ /// </summary>
+ public int OrderBiddingDetailId { get; set; }
+
+
+
+
+
+ }
+
+
+ public class DakaDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐鏄庣粏OrderBiddingId
+ /// </summary>
+ public int OrderBiddingId { get; set; }
+
+
+ /// <summary>
+ /// 鎵撳崱鐓х墖
+ /// </summary>
+ public string CheckPhoto { get; set; }
+
+
+
+ }
+
+ public class OrderBiddingDetailDto
+ {
+
+ /// <summary>
+ /// 宸ヤ汉宸ヤ綔鏄庣粏琛↖d
+ /// </summary>
+ public int OrderBiddingDetailId { get; set; }
+
+ /// <summary>
+ /// 宸ヤ汉鎶曢�抜d
+ /// </summary>
+ public int OrderBiddingId { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏃ユ湡
+ /// </summary>
+ public DateTime? WorkDate { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏃堕暱
+ /// </summary>
+ public decimal? WorkTime { get; set; }
+
+ /// <summary>
+ /// 璁′欢鏁伴噺
+ /// </summary>
+ public decimal? WorkCount { get; set; }
+
+ /// <summary>
+ /// 褰撴棩宸ヨ祫
+ /// </summary>
+ public decimal? TodaySalary { get; set; }
+
+ /// <summary>
+ /// 瀹℃壒鐘舵��
+ /// </summary>
+ public int? IsShenPi { get; set; }
+
+ /// <summary>
+ /// 瀹℃壒鏃堕棿
+ /// </summary>
+ public DateTime? ShenPitime { get; set; }
+
+
+ /// <summary>
+ /// 鏄惁鎻愮幇
+ /// </summary>
+ public bool? IsTiXian { get; set; }
+
+ /// <summary>
+ /// 鎻愮幇鏃堕棿
+ /// </summary>
+ public DateTime? TiXiantime { get; set; }
+
+
+ /// <summary>
+ /// 鎵撳崱鏄庣粏
+ /// </summary>
+ public List<OrderBiddingDetailCheckDto> orderBiddingDetailCheck { get; set; }
+
+
+ }
+
+
+ public class OrderBiddingDetailCheckDto
+ {
+ /// <summary>
+ /// 鎵撳崱璁板綍琛↖d
+ /// </summary>
+ public int OrderBiddingDetailCheckId { get; set; }
+
+ /// <summary>
+ /// 宸ヤ汉宸ヤ綔鏄庣粏琛↖d
+ /// </summary>
+ public int OrderBiddingDetailId { get; set; }
+
+
+ /// <summary>
+ /// 鎵撳崱鐓х墖
+ /// </summary>
+ public string CheckPhoto { get; set; }
+
+
+ /// <summary>
+ /// 鎵撳崱鏃堕棿
+ /// </summary>
+ public DateTime? Checktime { get; set; }
+ }
+
+
+
+
+ public class OrderDakaDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐鎵撳崱Id
+ /// </summary>
+ public int OrderBiddingDetailId { get; set; }
+
+
+
+ /// <summary>
+ /// 鎷涘伐鍚嶇О
+ /// </summary>
+ public string OrderName { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏃ユ湡
+ /// </summary>
+ public DateTime? WorkDate { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏃堕暱
+ /// </summary>
+ public decimal? WorkTime { get; set; }
+
+
+ /// <summary>
+ /// 宸ヤ綔鏂瑰紡
+ /// </summary>
+ public int? WorkerType { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏂瑰紡鍚嶇О
+ /// </summary>
+ public string WorkerTypeName { get; set; }
+
+
+ /// <summary>
+ /// 宸ヤ环
+ /// </summary>
+ public decimal? WorkPrice { get; set; }
+
+ /// <summary>
+ /// 璁′欢鏁伴噺
+ /// </summary>
+ public decimal? WorkCount { get; set; }
+
+ /// <summary>
+ /// 褰撴棩宸ヨ祫
+ /// </summary>
+ public decimal? TodaySalary { get; set; }
+
+
+ /// <summary>
+ /// 瀹℃壒鐘舵��
+ /// </summary>
+ public int? IsShenPi { get; set; }
+
+
+ /// <summary>
+ /// 瀹℃壒鐘舵�佸悕绉�
+ /// </summary>
+ public string IsShenPiName { get; set; }
+
+ /// <summary>
+ /// 鎵撳崱鏄庣粏
+ /// </summary>
+ public string DakaMingxi { get; set; }
+
+ }
+
+
+
+ public class OrderDakaMingxiDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐鎵撳崱Id
+ /// </summary>
+ public int OrderBiddingDetailId { get; set; }
+
+
+
+ /// <summary>
+ /// 鎷涘伐鍚嶇О
+ /// </summary>
+ public string OrderName { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏃ユ湡
+ /// </summary>
+ public DateTime? WorkDate { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏃堕暱
+ /// </summary>
+ public decimal? WorkTime { get; set; }
+
+
+ /// <summary>
+ /// 宸ヤ綔鏂瑰紡
+ /// </summary>
+ public int? WorkerType { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔鏂瑰紡鍚嶇О
+ /// </summary>
+ public string WorkerTypeName { get; set; }
+
+
+ /// <summary>
+ /// 宸ヤ环
+ /// </summary>
+ public decimal? WorkPrice { get; set; }
+
+ /// <summary>
+ /// 璁′欢鏁伴噺
+ /// </summary>
+ public decimal? WorkCount { get; set; }
+
+ /// <summary>
+ /// 褰撴棩宸ヨ祫
+ /// </summary>
+ public decimal? TodaySalary { get; set; }
+
+
+ /// <summary>
+ /// 瀹℃壒鐘舵��
+ /// </summary>
+ public int? IsShenPi { get; set; }
+
+
+ /// <summary>
+ /// 瀹℃壒鐘舵�佸悕绉�
+ /// </summary>
+ public string IsShenPiName { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛id
+ /// </summary>
+ public int WorkerUserId { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛鏄电О
+ /// </summary>
+ public string WorkerUserName { get; set; }
+ /// <summary>
+ /// 鐢ㄦ埛澶村儚
+ /// </summary>
+ public string WorkerUserAvatar { get; set; }
+
+ /// <summary>
+ /// 鎵撳崱鏄庣粏
+ /// </summary>
+ public List<OrderBiddingDetailCheckDto> orderBiddingDetailCheck { get; set; }
+
+ }
+
+
+ public class DakaQuerenDetailDto
+ {
+
+ /// <summary>
+ /// 鎷涘伐鎵撳崱Id
+ /// </summary>
+ public int OrderBiddingDetailId { get; set; }
+
+
+ /// <summary>
+ /// 宸ヤ綔鏃堕暱
+ /// </summary>
+ public decimal? WorkTime { get; set; }
+
+ /// <summary>
+ /// 璁′欢鏁伴噺
+ /// </summary>
+ public decimal? WorkCount { get; set; }
+
+ /// <summary>
+ /// 褰撴棩宸ヨ祫
+ /// </summary>
+ public decimal? TodaySalary { get; set; }
+
+ }
+}
diff --git a/cylsg/cylsg.Application/Orders/Dtos/PageBaseSearch.cs b/cylsg/cylsg.Application/Orders/Dtos/PageBaseSearch.cs
new file mode 100644
index 0000000..35e3d5c
--- /dev/null
+++ b/cylsg/cylsg.Application/Orders/Dtos/PageBaseSearch.cs
@@ -0,0 +1,97 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.Orders.Dtos
+{
+ public class PageBaseSearch
+ {
+ /// <summary>
+ /// 椤电爜
+ /// </summary>
+ public int PageIndex { get; set; } = 1;
+
+ /// <summary>
+ /// 鍒嗛〉澶у皬
+ /// </summary>
+ public int PageSize { get; set; } = 20;
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鏁版嵁淇℃伅
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ public class PageResult<T>
+ {
+ /// <summary>
+ /// 椤电爜
+ /// </summary>
+ public int PageIndex { get; set; }
+
+ /// <summary>
+ /// 鍒嗛〉澶у皬
+ /// </summary>
+ public int PageSize { get; set; }
+
+ /// <summary>
+ /// 璁板綍鎬绘暟
+ /// </summary>
+ public int TotalCount { get; set; }
+
+ /// <summary>
+ /// 璁板綍闆嗗悎
+ /// </summary>
+ public List<T> Items { get; set; } = new();
+ /// <summary>
+ /// 鎬婚〉鏁�
+ /// </summary>
+ public int TotalPage { get; set; }
+
+
+ }
+
+
+ /// <summary>
+ /// 鎷涘伐璁㈠崟鍒嗛〉鏌ヨ
+ /// </summary>
+ public class OrderPageSearch : PageBaseSearch
+ {
+ /// <summary>
+ /// 鎷涘伐鍚嶇О
+ /// </summary>
+ public string OrderName { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔寮�濮嬫椂闂�
+ /// </summary>
+ public DateTime? WordStartTime { get; set; }
+
+ /// <summary>
+ /// 宸ヤ綔缁撴潫鏃堕棿
+ /// </summary>
+ public DateTime? WordEndTime { get; set; }
+ }
+
+
+
+
+ /// <summary>
+ /// 鎷涘伐璁㈠崟鍒嗛〉鏌ヨ
+ /// </summary>
+ public class OrderDakaPageSearch : PageBaseSearch
+ {
+
+
+ /// <summary>
+ /// 宸ヤ綔鏃ユ湡
+ /// </summary>
+ public DateTime? WordDate { get; set; }
+
+ /// <summary>
+ /// 鏄惁缁撶畻
+ /// </summary>
+ public bool? IsJieSuan { get; set; }
+ }
+}
diff --git a/cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs b/cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs
new file mode 100644
index 0000000..c0e305c
--- /dev/null
+++ b/cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs
@@ -0,0 +1,530 @@
+锘縰sing cylsg.Application.Orders.Dtos;
+using cylsg.Application.Users.Dtos;
+using cylsg.Core;
+using cylsg.Model.OrderModel;
+using cylsg.Model.UserModel;
+using Furion.LinqBuilder;
+using MapsterMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.Orders
+{
+ /// <summary>
+ /// 璁㈠崟鍏徃鎺ュ彛
+ /// </summary>
+ public class OrderCompanyAppService : IDynamicApiController
+ {
+ private readonly ISystemService _systemService;
+ private ISqlSugarClient _sqlSugarClient;
+ private IMapper _mapper;
+ public OrderCompanyAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper)
+ {
+ _systemService = systemService;
+ _sqlSugarClient = sqlSugarClient;
+ _mapper = mapper;
+ }
+
+
+ /// <summary>
+ /// 鏌ヨ鍏徃宸茬粡鍙戝竷鐨勬嫑宸ヨ鍗�
+ /// </summary>
+ /// <param name="page"></param>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<PageResult<OrderDto>> PostMyListPage(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>();
+ var orderRepository = new BaseRepository<Order>();
+ Expression<Func<Order, bool>> expression = t => true;
+
+ expression = expression.And(t => t.IsDeleted == false && t.IsEn == true
+ && t.OrderUserId == userid);
+
+ if (!string.IsNullOrEmpty(page.OrderName))
+ {
+ expression = expression.And(t => t.OrderName.Contains(page.OrderName));
+ }
+ if (page.WordStartTime.HasValue)
+ {
+ expression = expression.And(t => t.WordStartTime >= page.WordStartTime);
+ }
+ if (page.WordEndTime.HasValue)
+ {
+ expression = expression.And(t => t.WordStartTime <= page.WordEndTime);
+ }
+
+ RefAsync<int> total = 0;
+
+
+ var orderBiddingRepository = new BaseRepository<OrderBidding>();
+
+ var data = await orderRepository.Context.Queryable<Order>()
+ .Where(expression)
+ .OrderByDescending(c => c.WordStartTime)
+ .ToPageListAsync(page.PageIndex, page.PageSize, total);
+ var datadto = _mapper.Map<List<OrderDto>>(data);
+
+ if (datadto != null && datadto.Count > 0)
+ {
+ foreach (var orderDto in datadto)
+ {
+ switch (orderDto.OrderStatus)
+ {
+ case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "鍙戝竷"; break;
+ case (int)OrderStatuses.zhaogongwanbi: orderDto.OrderStatusName = "鎷涘伐瀹屾瘯"; break;
+ case (int)OrderStatuses.jiesuanwanbi: orderDto.OrderStatusName = "缁撶畻瀹屾瘯"; break;
+ default: break;
+ }
+
+ var orderBiddings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false);
+ orderDto.WorderCounted = orderBiddings;
+
+ }
+
+ }
+ result.Items = datadto;
+ result.PageIndex = page.PageIndex;
+ result.PageSize = page.PageSize;
+ result.TotalCount = total;
+
+ return result;
+ }
+
+
+ /// <summary>
+ /// 淇濆瓨鎷涘伐淇℃伅锛堟柊澧�/淇敼锛�
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<bool> saveOrder(OrderDto orderDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+ var userCompanyRes = new BaseRepository<UserCompany>();
+ var userCompany = await userCompanyRes.GetFirstAsync(p => p.UserId == userid && p.IsEn == true && p.IsDeleted == false);
+ if (userCompany == null || string.IsNullOrEmpty(userCompany.BusinessLicense))
+ {
+ throw Oops.Oh("璇峰厛瀹屾垚鍏徃璁よ瘉鎵嶈兘鍙戝竷鎷涘伐锛�");
+ }
+
+ var orderRes = new BaseRepository<Order>();
+ bool res;
+ if (orderDto.Id > 0)
+ {
+ var order = await orderRes.GetByIdAsync(orderDto.Id);
+ if (order.OrderStatus > 0)
+ {
+ throw Oops.Oh("鎷涘伐宸茬粡缁撴潫涓嶈兘淇敼锛�");
+ }
+ order.OrderName = orderDto.OrderName;
+ order.WordStartTime = orderDto.WordStartTime;
+ order.WordEndTime = orderDto.WordEndTime;
+ order.Demand = orderDto.Demand;
+ order.WorderCount = orderDto.WorderCount;
+ order.WorderAddress = orderDto.WorderAddress;
+ order.ContactPhone = orderDto.ContactPhone;
+ order.WorkerType = orderDto.WorkerType;
+ order.WorkPrice = orderDto.WorkPrice;
+
+
+ order.UpDataBy = ITCode;
+ order.UpDataTime = DateTime.Now;
+ res = await orderRes.UpdateAsync(order);
+
+
+ }
+ else
+ {
+ var order = _mapper.Map<Order>(orderDto);
+ order.UpDataBy = ITCode;
+ order.UpDataTime = DateTime.Now;
+ order.CreateBy = ITCode;
+ order.CreateTime = DateTime.Now;
+ order.OrderStatus = 0;
+ order.OrderUserId = userid;
+ res = await orderRes.InsertAsync(order);
+ }
+
+
+
+
+
+
+
+ return res;
+ }
+
+
+
+ /// <summary>
+ /// 鍏徃閫夋嫨宸ヤ汉
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<bool> saveQueRen(QueRenDto queRenDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var orderRes = new BaseRepository<Order>();
+
+ var orderBidding = await orderBiddingRes.GetByIdAsync(queRenDto.OrderBiddingId);
+ if (orderBidding == null || orderBidding.IsEn != true || orderBidding.IsDeleted == true )
+ {
+ throw Oops.Oh("璇ユ姇閫掑凡缁忔棤鏁堬紒");
+ }
+ if(orderBidding.IsSelected == true)
+ {
+ throw Oops.Oh("璇ユ姇閫掑凡缁忕‘璁わ紝涓嶈兘閲嶅纭锛�");
+ }
+
+ var order = await orderRes.GetByIdAsync(orderBidding.OrderId);
+ if (order == null || order.OrderStatus > 0)
+ {
+ throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡缁忔棤娉曟姇閫掞紒");
+ }
+
+ var orderBiddings = await orderBiddingRes.CountAsync(x => x.OrderId == orderBidding.OrderId && x.IsSelected == true && x.IsDeleted == false && x.IsEn == true);
+ if (orderBiddings >= order.WorderCount)
+ {
+ throw Oops.Oh("鎷涘伐浜烘暟宸茬粡婊′簡锛屼笉鑳芥姤鍚嶏紒");
+ }
+
+
+
+ bool res;
+
+ orderBidding.IsSelected = true;
+ orderBidding.Selectedtime = DateTime.Now;
+ orderBidding.UpDataBy = ITCode;
+ orderBidding.UpDataTime = DateTime.Now;
+
+
+ res = await orderBiddingRes.UpdateAsync(orderBidding);
+
+ if(order.WorderCount == (orderBiddings + 1))
+ {
+ order.OrderStatus = 1;
+ res = await orderRes.UpdateAsync(order);
+ }
+
+ return res;
+ }
+
+
+
+
+ /// <summary>
+ /// 鏌ヨ鍏徃涓嬪伐浜虹殑鎵撳崱璁板綍
+ /// </summary>
+ /// <param name="page"></param>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<PageResult<OrderDakaDto>> PostMyComDakaListPage(OrderDakaPageSearch page)
+ {
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ PageResult<OrderDakaDto> result = new PageResult<OrderDakaDto>();
+ var orderRepository = new BaseRepository<Order>();
+
+ RefAsync<int> total = 0;
+
+
+ var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>();
+
+ var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail>((a, b, c) =>
+ new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId,
+ JoinType.Inner, b.Id == c.OrderBiddingId
+ ))
+ .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 && a.OrderUserId == 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
+ {
+ OrderBiddingDetailId = c.Id,
+ OrderName = a.OrderName,
+ WorkDate = c.WorkDate,
+ WorkTime = c.WorkTime,
+ WorkerType = a.WorkerType,
+ WorkPrice = a.WorkPrice,
+ TodaySalary = c.TodaySalary,
+ IsShenPi = c.IsShenPi,
+ WorkCount = c.WorkCount,
+ })
+
+ .ToPageListAsync(page.PageIndex, page.PageSize, total);
+
+ if (data != null && data.Count > 0)
+ {
+ foreach (var dakaDto in data)
+ {
+ int hours = 0;
+ int minutes = 0;
+ var orderBiddingDetailChecks = await orderBiddingDetailCheckRepository.GetListAsync(x => x.OrderBiddingDetailId == dakaDto.OrderBiddingDetailId && x.IsEn == true && x.IsDeleted == false);
+ string DakaMingxi = "";
+ for (int i = 0; i < orderBiddingDetailChecks.Count; i++)
+ {
+ if (i != orderBiddingDetailChecks.Count - 1)
+ {
+ DakaMingxi += orderBiddingDetailChecks[i].Checktime.Value.ToString("HH:mm") + "-";
+ }
+ else
+ {
+ DakaMingxi += orderBiddingDetailChecks[i].Checktime.Value.ToString("HH:mm");
+ }
+
+ if (i == 1 || i == 3 || i == 5 || i == 7 || i == 9 || i == 11 || i == 13 || i == 15 || i == 17 || i == 19)
+ {
+ var timeDifference = orderBiddingDetailChecks[i].Checktime.Value - orderBiddingDetailChecks[i - 1].Checktime.Value;
+ hours += timeDifference.Hours;
+ minutes += timeDifference.Minutes;
+
+ }
+ }
+
+ //濡傛灉褰撳ぉ杩樻病鏈夊~鍐欑敵璇凤紝鍒欒绠楀伐浣滄椂闂村拰宸ヨ祫
+ if (dakaDto.IsShenPi == 0)
+ {
+ dakaDto.WorkTime = hours + (minutes / 60);
+ if (dakaDto.WorkerType == 0)
+ {
+ dakaDto.TodaySalary = dakaDto.WorkTime * dakaDto.WorkPrice;
+ }
+ else
+ {
+ var WorkCount = dakaDto.WorkCount ?? 0;
+ dakaDto.TodaySalary = WorkCount * dakaDto.WorkPrice;
+ }
+
+ }
+
+ switch (dakaDto.IsShenPi)
+ {
+ case (int)IsShenPis.baocun: dakaDto.IsShenPiName = "鏈粨绠�"; break;
+ case (int)IsShenPis.tijiao: dakaDto.IsShenPiName = "鏈粨绠�"; break;
+ case (int)IsShenPis.yishenpi: dakaDto.IsShenPiName = "宸茬粨绠�"; break;
+ default: break;
+ }
+
+ switch (dakaDto.WorkerType)
+ {
+ case (int)WorkerTypes.time: dakaDto.WorkerTypeName = "璁℃椂"; break;
+ case (int)WorkerTypes.count: dakaDto.WorkerTypeName = "璁′环"; break;
+ default: break;
+ }
+
+
+
+
+
+ dakaDto.DakaMingxi = DakaMingxi;
+
+ }
+
+ }
+ result.Items = data;
+ result.PageIndex = page.PageIndex;
+ result.PageSize = page.PageSize;
+ result.TotalCount = total;
+
+ return result;
+ }
+
+
+
+
+
+ /// <summary>
+ /// 鍏徃纭宸ヤ汉褰撳ぉ鎵撳崱璇︽儏
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<bool> saveDakaDetail(DakaQuerenDetailDto dakaDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var orderRes = new BaseRepository<Order>();
+ var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>();
+ var userTiXianDetailRes = new BaseRepository<UserTiXianDetail>();
+ //var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>();
+ var userWorkerRes = new BaseRepository<UserWorker>();
+ var userCompanyRes = new BaseRepository<UserCompany>();
+
+ var orderBiddingDetail = await orderBiddingDetailRes.GetByIdAsync(dakaDto.OrderBiddingDetailId);
+ 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)
+ //{
+ // throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡鏃犳硶鎵撳崱纭锛�");
+ //}
+ var res = false;
+ try
+ {
+ var TodaySalary = orderBiddingDetail.TodaySalary.HasValue? orderBiddingDetail.TodaySalary.Value:0;
+ if(orderBiddingDetail.IsShenPi == (int)IsShenPis.yishenpi)
+ {
+ TodaySalary = dakaDto.TodaySalary.Value - TodaySalary;
+ }
+ else
+ {
+ TodaySalary = dakaDto.TodaySalary.Value;
+ }
+ orderRes.Context.Ado.BeginTran();
+
+ orderBiddingDetail.WorkTime = dakaDto.WorkTime;
+ orderBiddingDetail.WorkCount = dakaDto.WorkCount;
+ orderBiddingDetail.TodaySalary = dakaDto.TodaySalary;
+ orderBiddingDetail.IsShenPi = (int)IsShenPis.yishenpi;
+ orderBiddingDetail.ShenPitime = DateTime.Now;
+ orderBiddingDetail.UpDataBy = ITCode;
+ orderBiddingDetail.UpDataTime = DateTime.Now;
+ orderBiddingDetail.IsTiXian = true;
+ orderBiddingDetail.TiXiantime = DateTime.Now;
+ //orderBiddingDetail.CreateBy = ITCode;
+ //orderBiddingDetail.CreateTime = DateTime.Now;
+ res = await orderBiddingDetailRes.UpdateAsync(orderBiddingDetail);
+ if (!res)
+ {
+ orderRes.Context.Ado.RollbackTran();
+ throw Oops.Oh("缁撶畻澶辫触锛�");
+ }
+
+ var userCompany = await userCompanyRes.GetFirstAsync(x => x.UserId == order.OrderUserId);
+ if(userCompany!=null && userCompany.IsTiXian == true)
+ {
+ //鎻掑叆鐢ㄦ埛鐨勭粨绠楅噾棰�
+ UserTiXianDetail userTiXianDetail = new UserTiXianDetail();
+ userTiXianDetail.UserId = orderBidding.WorkerUserId;
+ userTiXianDetail.YiTiXianJine = TodaySalary;
+ userTiXianDetail.ZhiChuShouRu = (int)ZhiChuShouRus.shouru;
+ userTiXianDetail.Remark = "鎷涘伐璁㈠崟" + order.OrderName + orderBiddingDetail.WorkDate.Value.ToString("yyyy-MM-dd") + "宸ヨ祫缁撶畻";
+ userTiXianDetail.UpDataBy = ITCode;
+ userTiXianDetail.UpDataTime = DateTime.Now;
+ userTiXianDetail.CreateBy = ITCode;
+ userTiXianDetail.CreateTime = DateTime.Now;
+
+ res = await userTiXianDetailRes.InsertAsync(userTiXianDetail);
+ if (!res)
+ {
+ orderRes.Context.Ado.RollbackTran();
+ throw Oops.Oh("缁撶畻澶辫触锛�");
+ }
+ var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderBidding.WorkerUserId);
+ if (userWorker != null)
+ {
+ var TiXianZonge = userWorker.TiXianZonge ?? 0;
+
+ userWorker.TiXianZonge = TiXianZonge + TodaySalary;
+ res = await userWorkerRes.UpdateAsync(userWorker);
+ if (!res)
+ {
+ orderRes.Context.Ado.RollbackTran();
+ throw Oops.Oh("缁撶畻澶辫触锛�");
+ }
+ }
+ }
+
+
+
+
+
+ //鍒ゆ柇璁㈠崟鏄惁鍙互淇敼涓虹粨绠楃姸鎬�
+
+ if (order.WordEndTime <= DateTime.Now)
+ {
+ var sss = await orderBiddingRes.GetListAsync(x => x.OrderId == order.Id && x.IsEn == true && x.IsDeleted == false && x.IsSelected == true);
+ var bbb =sss.Select(x => x.Id).ToList();
+ var oCount = await orderBiddingDetailRes.CountAsync(x => bbb.Contains(x.OrderBiddingId) && x.IsEn == true && x.IsDeleted == false && x.IsShenPi != (int)IsShenPis.yishenpi);
+ if (oCount == 0)
+ {
+ order.OrderStatus = (int)OrderStatuses.jiesuanwanbi;
+ res = await orderRes.UpdateAsync(order);
+ if (!res)
+ {
+ orderRes.Context.Ado.RollbackTran();
+ throw Oops.Oh("缁撶畻澶辫触锛�");
+ }
+ }
+
+
+ }
+
+
+
+
+
+ orderRes.Context.Ado.CommitTran();
+ }
+ catch (Exception ex )
+ {
+ orderRes.Context.Ado.RollbackTran();
+ throw Oops.Oh(ex.Message);
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ return res;
+ }
+ }
+}
diff --git a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
new file mode 100644
index 0000000..3f658a3
--- /dev/null
+++ b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
@@ -0,0 +1,746 @@
+锘縰sing cylsg.Application.Orders.Dtos;
+using cylsg.Application.Users.Dtos;
+using cylsg.Core;
+using cylsg.Model.OrderModel;
+using cylsg.Model.UserModel;
+using Furion.LinqBuilder;
+using MapsterMapper;
+using Org.BouncyCastle.Asn1.X509;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.ChannelsECOrderDeliverySendRequest.Types.Delivery.Types;
+using static SKIT.FlurlHttpClient.Wechat.Api.Models.SemanticSemproxySearchResponse.Types;
+
+namespace cylsg.Application.Orders
+{
+ /// <summary>
+ /// 璁㈠崟宸ヤ汉鎺ュ彛
+ /// </summary>
+ public class OrderWorkerAppService : IDynamicApiController
+ {
+ private readonly ISystemService _systemService;
+ private ISqlSugarClient _sqlSugarClient;
+ private IMapper _mapper;
+ public OrderWorkerAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper)
+ {
+ _systemService = systemService;
+ _sqlSugarClient = sqlSugarClient;
+ _mapper = mapper;
+ }
+
+
+ /// <summary>
+ /// 鏌ヨ宸ヤ汉鍙互鎶曢�掔殑鎷涘伐璁㈠崟
+ /// </summary>
+ /// <param name="page"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public async Task<PageResult<OrderDto>> PostListPage(OrderPageSearch page)
+ {
+ 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);
+ if (!string.IsNullOrEmpty(page.OrderName))
+ {
+ expression = expression.And(t => t.OrderName.Contains(page.OrderName));
+ }
+ if (page.WordStartTime.HasValue)
+ {
+ expression = expression.And(t => t.WordStartTime >= page.WordStartTime);
+ }
+ if (page.WordEndTime.HasValue)
+ {
+ expression = expression.And(t => t.WordStartTime <= page.WordEndTime);
+ }
+
+ RefAsync<int> total = 0;
+ var orderRepository = new BaseRepository<Order>();
+
+ var orderBiddingRepository = new BaseRepository<OrderBidding>();
+
+ var data = await orderRepository.Context.Queryable<Order>()
+ .Where(expression)
+ .OrderByDescending(c => c.WordStartTime)
+ .ToPageListAsync(page.PageIndex, page.PageSize, total);
+ var datadto = _mapper.Map<List<OrderDto>>(data);
+
+ if (datadto != null && datadto.Count > 0)
+ {
+ foreach (var orderDto in datadto)
+ {
+ var orderBiddings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false);
+ orderDto.WorderCounted = orderBiddings;
+ }
+
+ }
+ result.Items = datadto;
+ result.PageIndex = page.PageIndex;
+ result.PageSize = page.PageSize;
+ result.TotalCount = total;
+
+ return result;
+ }
+
+
+
+ /// <summary>
+ /// 鏌ヨ宸ヤ汉宸茬粡鎶曢�掔殑鎷涘伐璁㈠崟
+ /// </summary>
+ /// <param name="page"></param>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<PageResult<OrderDto>> PostMyListPage(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>();
+ var orderRepository = new BaseRepository<Order>();
+ Expression<Func<Order, bool>> expression = t => true;
+
+ expression = expression.And(t => t.IsDeleted == false && t.IsEn == true
+ && SqlFunc.Subqueryable<OrderBidding>().Where(oi => oi.OrderId == t.Id && oi.IsDeleted == false && oi.IsEn == true && oi.WorkerUserId == userid).Any());
+
+ if (!string.IsNullOrEmpty(page.OrderName))
+ {
+ expression = expression.And(t => t.OrderName.Contains(page.OrderName));
+ }
+ if (page.WordStartTime.HasValue)
+ {
+ expression = expression.And(t => t.WordStartTime >= page.WordStartTime);
+ }
+ if (page.WordEndTime.HasValue)
+ {
+ expression = expression.And(t => t.WordStartTime <= page.WordEndTime);
+ }
+
+ RefAsync<int> total = 0;
+
+
+ var orderBiddingRepository = new BaseRepository<OrderBidding>();
+
+ var data = await orderRepository.Context.Queryable<Order>()
+ .Where(expression)
+ .OrderByDescending(c => c.WordStartTime)
+ .ToPageListAsync(page.PageIndex, page.PageSize, total);
+ var datadto = _mapper.Map<List<OrderDto>>(data);
+
+ if (datadto != null && datadto.Count > 0)
+ {
+ foreach (var orderDto in datadto)
+ {
+ switch (orderDto.OrderStatus)
+ {
+ case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "鍙戝竷"; break;
+ case (int)OrderStatuses.zhaogongwanbi: orderDto.OrderStatusName = "鎷涘伐瀹屾瘯"; break;
+ case (int)OrderStatuses.jiesuanwanbi: orderDto.OrderStatusName = "缁撶畻瀹屾瘯"; break;
+ default: break;
+ }
+
+ var orderBiddings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false);
+ orderDto.WorderCounted = orderBiddings;
+
+
+ var orderBidding = await orderBiddingRepository.GetFirstAsync(x => x.OrderId == orderDto.Id && x.WorkerUserId == userid && x.IsEn == true && x.IsDeleted == false);
+ if (orderBidding != null)
+ {
+ orderDto.IsSelected = orderBidding.IsSelected;
+ if (orderDto.IsSelected.HasValue && orderDto.IsSelected.Value)
+ {
+ orderDto.IsSelectedName ="宸茬‘璁�";
+ }
+ else
+ {
+ orderDto.IsSelectedName = "鏈‘璁�";
+ }
+ }
+ }
+
+ }
+ result.Items = datadto;
+ result.PageIndex = page.PageIndex;
+ result.PageSize = page.PageSize;
+ result.TotalCount = total;
+
+ return result;
+ }
+
+
+
+
+
+
+ /// <summary>
+ /// 鏍规嵁Id鏌ヨ鎷涘伐鏄庣粏
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ public async Task<OrderDto> getOrder(int orderid)
+ {
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ OrderDto orderDto = new OrderDto();
+ var orderRes = new BaseRepository<Order>();
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var userRes = new BaseRepository<User>();
+ var order = await orderRes.GetByIdAsync(orderid);
+ orderDto = _mapper.Map<OrderDto>(order);
+ switch (orderDto.OrderStatus)
+ {
+ case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "鍙戝竷"; break;
+ case (int)OrderStatuses.zhaogongwanbi: orderDto.OrderStatusName = "鎷涘伐瀹屾瘯"; break;
+ 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 IsSelected = orderBiddings.Count(x => x.IsSelected == true);
+ orderDto.WorderCounted = IsSelected;
+
+ var orderBidding = orderBiddings.Where(x => x.WorkerUserId == userid).FirstOrDefault();
+ if (orderBidding != null)
+ {
+ orderDto.IsSelected = orderBidding.IsSelected;
+ if (orderDto.IsSelected.HasValue && orderDto.IsSelected.Value)
+ {
+ orderDto.IsSelectedName = "宸茬‘璁�";
+ }
+ else
+ {
+ orderDto.IsSelectedName = "鏈‘璁�";
+ }
+ }
+
+
+ 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)
+ {
+ orderBiddingDto.IsSelectedName = "宸茬‘璁�";
+ }
+ else
+ {
+ orderBiddingDto.IsSelectedName = "鏈‘璁�";
+ }
+
+ var user = await userRes.GetByIdAsync(orderBiddingDto.WorkerUserId);
+ if (user != null)
+ {
+ orderBiddingDto.WorkerName = user.name;
+ orderBiddingDto.WorkerAvatar = user.Avatar;
+ }
+
+ }
+ }
+
+
+ orderDto.orderBidding = orderBiddingDtos;
+
+ return orderDto;
+ }
+
+
+
+
+
+ /// <summary>
+ /// 宸ヤ汉鎶曢��
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<bool> saveBaoMing(BaoMingDto baoMingDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var orderRes = new BaseRepository<Order>();
+ var userWorkerRes = new BaseRepository<UserWorker>();
+ var userWorker = await userWorkerRes.GetFirstAsync(p=>p.UserId == userid && p.IsEn == true && p.IsDeleted == false);
+ if (userWorker == null || string.IsNullOrEmpty(userWorker.IdCode))
+ {
+ throw Oops.Oh("璇峰厛瀹屾垚宸ヤ汉瀹炲悕璁よ瘉鎵嶈兘鎶曢�掞紒");
+ }
+
+ var order = await orderRes.GetByIdAsync(baoMingDto.OrderId);
+ if (order == null || order.OrderStatus>0)
+ {
+ throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡缁忔棤娉曟姇閫掞紒");
+ }
+
+ bool res;
+
+ var orderBidding = await orderBiddingRes.GetFirstAsync(x => x.OrderId == baoMingDto.OrderId && x.WorkerUserId == userid && x.IsDeleted == false && x.IsEn == true);
+ if (orderBidding != null)
+ {
+ throw Oops.Oh("宸茬粡鎶曢�掕繃浜嗭紒");
+ }
+ else
+ {
+
+
+ var orderBiddings = await orderBiddingRes.CountAsync(x => x.OrderId == baoMingDto.OrderId && x.IsSelected == true && x.IsDeleted == false && x.IsEn == true);
+ if(orderBiddings>= order.WorderCount)
+ {
+ throw Oops.Oh("鎷涘伐浜烘暟宸茬粡婊′簡锛屼笉鑳芥姤鍚嶏紒");
+ }
+
+
+ OrderBidding orderBidding1 = new OrderBidding();
+ orderBidding1.WorkerUserId = userid;
+ orderBidding1.OrderId = baoMingDto.OrderId;
+ orderBidding1.IsSelected = false;
+ orderBidding1.UpDataBy = ITCode;
+ orderBidding1.UpDataTime = DateTime.Now;
+ orderBidding1.CreateBy = ITCode;
+ orderBidding1.CreateTime = DateTime.Now;
+
+ res = await orderBiddingRes.InsertAsync(orderBidding1);
+
+ }
+
+ return res;
+ }
+
+ /// <summary>
+ /// 杩涘叆鎵撳崱椤甸潰
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<OrderBiddingDetailDto> getDaka(BaoMingDto baoMingDto)
+ {
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+ OrderBiddingDetailDto orderBiddingDetailDto = null;
+
+
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var orderRes = new BaseRepository<Order>();
+ var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>();
+ var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>();
+ var order = await orderRes.GetByIdAsync(baoMingDto.OrderId);
+ if (order == null || order.OrderStatus > 1)
+ {
+ throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡缁忔棤娉曟墦鍗★紒");
+ }
+ var orderBidding = await orderBiddingRes.GetFirstAsync(x => x.OrderId == baoMingDto.OrderId && x.WorkerUserId == userid && x.IsDeleted == false && x.IsEn == true);
+ if (orderBidding == null || orderBidding.IsSelected != true)
+ {
+ throw Oops.Oh("娌℃湁纭鐨勬姇閫掞紒");
+ }
+ var dateTime = DateTime.Now.Date;
+ var orderBiddingDetail = await orderBiddingDetailRes.GetFirstAsync(x => x.OrderBiddingId == orderBidding.Id && x.WorkDate == dateTime && x.IsDeleted == false && x.IsEn == true);
+ if (orderBiddingDetail != null )
+ {
+ if(orderBiddingDetail.IsShenPi>0)
+ {
+ throw Oops.Oh("褰撳ぉ鐨勬墦鍗″凡缁忔彁浜わ紝涓嶈兘鎵撳崱锛�");
+ }
+ orderBiddingDetailDto = _mapper.Map<OrderBiddingDetailDto>(orderBiddingDetail);
+ var orderBiddingDetailChecks = await OrderBiddingDetailCheckRes.GetListAsync(x => x.OrderBiddingDetailId == orderBiddingDetail.Id && x.IsDeleted == false && x.IsEn == true);
+ orderBiddingDetailDto.orderBiddingDetailCheck = _mapper.Map<List<OrderBiddingDetailCheckDto>>(orderBiddingDetailChecks);
+ }
+
+ return orderBiddingDetailDto;
+ }
+
+ /// <summary>
+ /// 宸ヤ汉鎵撳崱
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<bool> saveDaka(DakaDto dakaDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var orderRes = new BaseRepository<Order>();
+ var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>();
+ var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>();
+
+ var orderBidding = await orderBiddingRes.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;
+ 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)
+ {
+ orderBiddingDetail = new OrderBiddingDetail();
+ orderBiddingDetail.OrderBiddingId = orderBidding.Id;
+ orderBiddingDetail.WorkDate = dateTime;
+ orderBiddingDetail.IsShenPi = 0;
+ orderBiddingDetail.IsTiXian = false;
+ orderBiddingDetail.UpDataBy = ITCode;
+ orderBiddingDetail.UpDataTime = DateTime.Now;
+ orderBiddingDetail.CreateBy = ITCode;
+ orderBiddingDetail.CreateTime = DateTime.Now;
+ orderBiddingDetail.Id = await orderBiddingDetailRes.InsertReturnIdentityAsync(orderBiddingDetail);
+ }
+ //鎻掑叆鎵撳崱璁板綍
+ var orderBiddingDetailCheck = new OrderBiddingDetailCheck();
+ orderBiddingDetailCheck.OrderBiddingDetailId = orderBiddingDetail.Id;
+ orderBiddingDetailCheck.CheckPhoto = dakaDto.CheckPhoto;
+ orderBiddingDetailCheck.Checktime = DateTime.Now;
+ orderBiddingDetailCheck.UpDataBy = ITCode;
+ orderBiddingDetailCheck.UpDataTime = DateTime.Now;
+ orderBiddingDetailCheck.CreateBy = ITCode;
+ orderBiddingDetailCheck.CreateTime = DateTime.Now;
+ res = await OrderBiddingDetailCheckRes.InsertAsync(orderBiddingDetailCheck);
+
+
+
+ return res;
+ }
+
+
+
+
+
+
+ /// <summary>
+ /// 鏌ヨ宸ヤ汉鐨勬墦鍗¤褰�
+ /// </summary>
+ /// <param name="page"></param>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<PageResult<OrderDakaDto>> PostMyDakaListPage(OrderDakaPageSearch page)
+ {
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ PageResult<OrderDakaDto> result = new PageResult<OrderDakaDto>();
+ var orderRepository = new BaseRepository<Order>();
+
+ RefAsync<int> total = 0;
+
+
+ var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>();
+
+ var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail>((a, b ,c) =>
+ new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId ,
+ JoinType.Inner, b.Id == c.OrderBiddingId
+ ))
+ .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
+ {
+ OrderBiddingDetailId = c.Id,
+ OrderName = a.OrderName,
+ WorkDate = c.WorkDate,
+ WorkTime = c.WorkTime,
+ WorkerType = a.WorkerType,
+ WorkPrice = a.WorkPrice,
+ TodaySalary = c.TodaySalary,
+ IsShenPi = c.IsShenPi,
+ WorkCount = c.WorkCount,
+
+ })
+
+ .ToPageListAsync(page.PageIndex, page.PageSize, total);
+
+ if (data != null && data.Count > 0)
+ {
+ foreach (var dakaDto in data)
+ {
+ var orderBiddingDetailChecks = await orderBiddingDetailCheckRepository.GetListAsync(x => x.OrderBiddingDetailId == dakaDto.OrderBiddingDetailId && x.IsEn == true && x.IsDeleted == false);
+ string DakaMingxi = "";
+ int hours = 0;
+ int minutes = 0;
+ for (int i = 0; i < orderBiddingDetailChecks.Count; i++)
+ {
+
+ if (i != orderBiddingDetailChecks.Count - 1)
+ {
+ DakaMingxi += orderBiddingDetailChecks[i].Checktime.Value.ToString("HH:mm") + "-";
+ }
+ else
+ {
+ DakaMingxi += orderBiddingDetailChecks[i].Checktime.Value.ToString("HH:mm");
+ }
+
+ if (i == 1 || i == 3 || i == 5 || i == 7 || i == 9 || i == 11 || i == 13 || i == 15 || i == 17 || i == 19 )
+ {
+ var timeDifference = orderBiddingDetailChecks[i].Checktime.Value - orderBiddingDetailChecks[i - 1].Checktime.Value;
+ hours += timeDifference.Hours;
+ minutes += timeDifference.Minutes;
+
+ }
+ }
+ //濡傛灉褰撳ぉ杩樻病鏈夊~鍐欑敵璇凤紝鍒欒绠楀伐浣滄椂闂村拰宸ヨ祫
+ if(dakaDto.IsShenPi == 0)
+ {
+ dakaDto.WorkTime = hours+(minutes/60);
+ if(dakaDto.WorkerType == 0)
+ {
+ dakaDto.TodaySalary = dakaDto.WorkTime * dakaDto.WorkPrice;
+ }
+ else
+ {
+ var WorkCount = dakaDto.WorkCount ?? 0;
+ dakaDto.TodaySalary = WorkCount * dakaDto.WorkPrice;
+ }
+
+ }
+
+ switch (dakaDto.IsShenPi)
+ {
+ case (int)IsShenPis.baocun: dakaDto.IsShenPiName = "鏈粨绠�"; break;
+ case (int)IsShenPis.tijiao: dakaDto.IsShenPiName = "鏈粨绠�"; break;
+ case (int)IsShenPis.yishenpi: dakaDto.IsShenPiName = "宸茬粨绠�"; break;
+ default: break;
+ }
+
+ switch (dakaDto.WorkerType)
+ {
+ case (int)WorkerTypes.time: dakaDto.WorkerTypeName = "璁℃椂"; break;
+ case (int)WorkerTypes.count: dakaDto.WorkerTypeName = "璁′环"; break;
+ default: break;
+ }
+
+
+
+
+
+ dakaDto.DakaMingxi = DakaMingxi;
+
+ }
+
+ }
+ result.Items = data;
+ result.PageIndex = page.PageIndex;
+ result.PageSize = page.PageSize;
+ result.TotalCount = total;
+
+ return result;
+ }
+
+
+
+
+
+
+ /// <summary>
+ /// 杩涘叆濉啓/瀹℃壒宸ヤ环椤甸潰
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<OrderDakaMingxiDto> getDakaDetail(DakaDetailDto dakaDetailDto)
+ {
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+ OrderDakaMingxiDto orderDakaMingxiDto = new OrderDakaMingxiDto(); ;
+
+
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var orderRes = new BaseRepository<Order>();
+ var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>();
+ var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>();
+ var userRes = new BaseRepository<User>();
+
+
+ var orderBiddingDetail = await orderBiddingDetailRes.GetByIdAsync(dakaDetailDto.OrderBiddingDetailId);
+ var orderBidding = await orderBiddingRes.GetByIdAsync(orderBiddingDetail.OrderBiddingId);
+ var order = await orderRes.GetByIdAsync(orderBidding.OrderId);
+
+ var orderBiddingDetailChecks = await OrderBiddingDetailCheckRes.GetListAsync(x => x.OrderBiddingDetailId == orderBiddingDetail.Id && x.IsEn == true && x.IsDeleted == false);
+ orderDakaMingxiDto.orderBiddingDetailCheck = _mapper.Map<List<OrderBiddingDetailCheckDto>>(orderBiddingDetailChecks);
+
+ orderDakaMingxiDto.OrderBiddingDetailId = orderBiddingDetail.Id;
+ orderDakaMingxiDto.OrderName = order.OrderName;
+ orderDakaMingxiDto.WorkDate = orderBiddingDetail.WorkDate;
+ orderDakaMingxiDto.WorkTime = orderBiddingDetail.WorkTime;
+ orderDakaMingxiDto.WorkerType = order.WorkerType;
+ orderDakaMingxiDto.WorkPrice = order.WorkPrice;
+ orderDakaMingxiDto.TodaySalary = orderBiddingDetail.TodaySalary;
+ orderDakaMingxiDto.IsShenPi = orderBiddingDetail.IsShenPi;
+ orderDakaMingxiDto.WorkCount = orderBiddingDetail.WorkCount;
+ orderDakaMingxiDto.WorkerUserId = orderBidding.WorkerUserId;
+ var user = await userRes.GetByIdAsync(orderDakaMingxiDto.WorkerUserId);
+ if (user != null)
+ {
+ orderDakaMingxiDto.WorkerUserName = user.name;
+ orderDakaMingxiDto.WorkerUserAvatar = user.Avatar;
+ }
+
+
+
+ switch (orderDakaMingxiDto.IsShenPi)
+ {
+ case (int)IsShenPis.baocun: orderDakaMingxiDto.IsShenPiName = "鏈粨绠�"; break;
+ case (int)IsShenPis.tijiao: orderDakaMingxiDto.IsShenPiName = "鏈粨绠�"; break;
+ case (int)IsShenPis.yishenpi: orderDakaMingxiDto.IsShenPiName = "宸茬粨绠�"; break;
+ default: break;
+ }
+
+ switch (orderDakaMingxiDto.WorkerType)
+ {
+ case (int)WorkerTypes.time: orderDakaMingxiDto.WorkerTypeName = "璁℃椂"; break;
+ case (int)WorkerTypes.count: orderDakaMingxiDto.WorkerTypeName = "璁′环"; break;
+ default: break;
+ }
+
+ if (orderDakaMingxiDto.IsShenPi == 0)
+ {
+ int hours = 0;
+ int minutes = 0;
+
+ for (int i = 0; i < orderBiddingDetailChecks.Count; i++)
+ {
+
+ if (i == 1 || i == 3 || i == 5 || i == 7 || i == 9 || i == 11 || i == 13 || i == 15 || i == 17 || i == 19)
+ {
+ var timeDifference = orderBiddingDetailChecks[i].Checktime.Value - orderBiddingDetailChecks[i - 1].Checktime.Value;
+ hours += timeDifference.Hours;
+ minutes += timeDifference.Minutes;
+
+ }
+ }
+
+ orderDakaMingxiDto.WorkTime = hours + (minutes / 60);
+ if (orderDakaMingxiDto.WorkerType == 0)
+ {
+ orderDakaMingxiDto.TodaySalary = orderDakaMingxiDto.WorkTime * orderDakaMingxiDto.WorkPrice;
+ }
+ else
+ {
+ var WorkCount = orderDakaMingxiDto.WorkCount ?? 0;
+ orderDakaMingxiDto.TodaySalary = WorkCount * orderDakaMingxiDto.WorkPrice;
+ }
+ }
+
+
+
+
+ return orderDakaMingxiDto;
+ }
+
+
+
+ /// <summary>
+ /// 宸ヤ汉纭褰撳ぉ鎵撳崱璇︽儏
+ /// </summary>
+ /// <returns></returns>
+ [Authorize]
+ [HttpPost]
+ public async Task<bool> saveDakaDetail(DakaQuerenDetailDto dakaDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ var orderBiddingRes = new BaseRepository<OrderBidding>();
+ var orderRes = new BaseRepository<Order>();
+ var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>();
+ //var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>();
+
+ var orderBiddingDetail = await orderBiddingDetailRes.GetByIdAsync(dakaDto.OrderBiddingDetailId);
+ 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)
+ {
+ 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;
+ orderBiddingDetail.UpDataTime = DateTime.Now;
+ //orderBiddingDetail.CreateBy = ITCode;
+ //orderBiddingDetail.CreateTime = DateTime.Now;
+ var res = await orderBiddingDetailRes.UpdateAsync(orderBiddingDetail);
+
+
+
+
+ return res;
+ }
+
+
+
+ }
+}
diff --git a/cylsg/cylsg.Application/Users/Dtos/Mapper.cs b/cylsg/cylsg.Application/Users/Dtos/Mapper.cs
new file mode 100644
index 0000000..a905df2
--- /dev/null
+++ b/cylsg/cylsg.Application/Users/Dtos/Mapper.cs
@@ -0,0 +1,24 @@
+锘縰sing cylsg.Model.UserModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.Users.Dtos
+{
+ public class Mapper : IRegister
+ {
+ public void Register(TypeAdapterConfig config)
+ {
+ config.ForType<User, UserDto>();
+ config.ForType<UserDto, User>();
+
+ config.ForType<UserCompany, UserCompanyDto>();
+ config.ForType<UserCompanyDto, UserCompany>();
+
+ config.ForType<UserWorker, UserWorkerDto>();
+ config.ForType<UserWorkerDto, UserWorker>();
+ }
+ }
+}
diff --git a/cylsg/cylsg.Application/Users/Dtos/UserDto.cs b/cylsg/cylsg.Application/Users/Dtos/UserDto.cs
new file mode 100644
index 0000000..bbe62f6
--- /dev/null
+++ b/cylsg/cylsg.Application/Users/Dtos/UserDto.cs
@@ -0,0 +1,193 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.Users.Dtos
+{
+ public class UserDto
+ {
+ /// <summary>
+ /// 鐢ㄦ埛Id
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鐢佃瘽
+ /// </summary>
+ public string Phone { get; set; }
+
+ /// <summary>
+ /// 鍚嶇О
+ /// </summary>
+ public string name { get; set; }
+ /// <summary>
+ /// 鐢佃瘽鍙风爜
+ /// </summary>
+ public string ItCode { get; set; }
+
+ /// <summary>
+ /// 鏄电О
+ /// </summary>
+ public string? Nickname { get; set; }
+
+
+ /// <summary>
+ /// 瀵嗙爜
+ /// </summary>
+ public string? PassWord { get; set; }
+
+ /// <summary>
+ /// 澶村儚鍦板潃
+ /// </summary>
+ public string? Avatar { get; set; }
+ /// <summary>
+ /// 寰俊WxOpenId
+ /// </summary>
+ public string? WxOpenId { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛宸ヤ汉淇℃伅
+ /// </summary>
+ public UserWorkerDto userWorker { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛鍏徃淇℃伅
+ /// </summary>
+ public UserCompanyDto userCompany { get; set; }
+
+
+ }
+
+ public class UserWorkerDto
+ {
+ /// <summary>
+ /// 鐢ㄦ埛宸ヤ汉Id
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛id
+ /// </summary>
+ public int UserId { get; set; }
+
+ /// <summary>
+ /// 韬唤璇佹闈㈣矾寰�
+ /// </summary>
+ public string IdCardFace { get; set; }
+
+ /// <summary>
+ /// 韬唤璇佸弽闈㈣矾寰�
+ /// </summary>
+ public string IdCardBack { get; set; }
+
+ /// <summary>
+ /// 濮撳悕
+ /// </summary>
+ public string name { get; set; }
+
+ /// <summary>
+ /// 鐢佃瘽鍙风爜
+ /// </summary>
+ public string Phone { get; set; }
+
+ /// <summary>
+ /// 韬唤璇佸彿
+ /// </summary>
+ public string IdCode { get; set; }
+
+ /// <summary>
+ /// 鑱旂郴鍦板潃
+ /// </summary>
+ public string Address { get; set; }
+
+ /// <summary>
+ /// 绠�鍘嗘弿杩�
+ /// </summary>
+ public string Resume { get; set; }
+
+
+ /// <summary>
+ /// 鎻愮幇鎬婚
+ /// </summary>
+ public decimal? TiXianZonge { get; set; }
+
+
+ /// <summary>
+ /// 宸叉彁鐜伴噾棰�
+ /// </summary>
+ public decimal? YiTiXianJine { get; set; }
+ }
+
+ public class UserCompanyDto
+ {
+ /// <summary>
+ /// 鐢ㄦ埛鍏徃Id
+ /// </summary>
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 鐢ㄦ埛id
+ /// </summary>
+ public int UserId { get; set; }
+
+ /// <summary>
+ /// 钀ヤ笟鎵х収璺緞
+ /// </summary>
+ public string BusinessLicense { get; set; }
+
+
+
+ /// <summary>
+ /// 浼佷笟鍚嶇О
+ /// </summary>
+ public string Suppliername { get; set; }
+
+ /// <summary>
+ /// 娉ㄥ唽鏃堕棿
+ /// </summary>
+ public DateTime? Regtime { get; set; }
+
+ /// <summary>
+ /// 鑱旂郴鍦板潃
+ /// </summary>
+ public string Address { get; set; }
+
+ /// <summary>
+ /// 浼佷笟娉ㄥ唽鍙�
+ /// </summary>
+ public string Suppliercode { get; set; }
+
+
+ /// <summary>
+ /// 鑱旂郴浜�
+ /// </summary>
+ public string Contact { get; set; }
+
+
+ /// <summary>
+ /// 鑱旂郴鐢佃瘽
+ /// </summary>
+ public string Phone { get; set; }
+
+
+
+ /// <summary>
+ /// 鍏徃绠�浠�
+ /// </summary>
+ public string Resume { get; set; }
+
+
+ /// <summary>
+ /// 鍏呭�间綑棰�
+ /// </summary>
+ public decimal? ChongZhiYue { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍙互鍏呭�硷紝宸ヤ汉鎻愮幇
+ /// </summary>
+ public bool? IsTiXian { get; set; }
+
+ }
+}
diff --git a/cylsg/cylsg.Application/Users/UserAppService.cs b/cylsg/cylsg.Application/Users/UserAppService.cs
new file mode 100644
index 0000000..baf8708
--- /dev/null
+++ b/cylsg/cylsg.Application/Users/UserAppService.cs
@@ -0,0 +1,206 @@
+锘縰sing cylsg.Core.Attributes;
+using cylsg.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using cylsg.Application.Users.Dtos;
+using cylsg.Model.UserModel;
+using System.Security.Claims;
+using System.Runtime.Intrinsics.Arm;
+using MapsterMapper;
+
+namespace cylsg.Application.Users
+{
+ /// <summary>
+ /// 鐢ㄦ埛鎺ュ彛
+ /// </summary>
+ [Authorize]
+ public class UserAppService : IDynamicApiController
+ {
+ private readonly ISystemService _systemService;
+ private ISqlSugarClient _sqlSugarClient;
+ private IMapper _mapper;
+ public UserAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper)
+ {
+ _systemService = systemService;
+ _sqlSugarClient = sqlSugarClient;
+ _mapper = mapper;
+ }
+
+
+
+ /// <summary>
+ /// 鏌ヨ褰撳墠鐢ㄦ埛
+ /// </summary>
+ /// <returns></returns>
+ public async Task<UserDto> getUser()
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+ UserDto userDto = new UserDto();
+ var userRes = new BaseRepository<User>();
+ var userWorkerRes = new BaseRepository<UserWorker>();
+ var userCompanyRes = new BaseRepository<UserCompany>();
+ var user = await userRes.GetByIdAsync(userid);
+ userDto = _mapper.Map<UserDto>(user);
+
+ var userWorker = await userWorkerRes.GetFirstAsync(p=>p.UserId== userid);
+ userDto.userWorker = _mapper.Map<UserWorkerDto>(userWorker);
+
+ var userCompany = await userCompanyRes.GetFirstAsync(p => p.UserId == userid);
+ userDto.userCompany = _mapper.Map<UserCompanyDto>(userCompany);
+
+
+
+ return userDto;
+ }
+
+
+ /// <summary>
+ /// 淇濆瓨鐢ㄦ埛宸ヤ汉淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ public async Task<bool> saveUserWorker(UserWorkerDto userWorkerDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ var userWorkerRes = new BaseRepository<UserWorker>();
+ bool res;
+ if (userWorkerDto.Id > 0)
+ {
+ var userWorker1 = await userWorkerRes.GetByIdAsync(userWorkerDto.Id);
+ userWorker1.IdCardBack = userWorkerDto.IdCardBack;
+ userWorker1.IdCardFace = userWorkerDto.IdCardFace;
+ userWorker1.name = userWorkerDto.name;
+ userWorker1.Phone = userWorkerDto.Phone;
+ userWorker1.IdCode = userWorkerDto.IdCode;
+ userWorker1.Address = userWorkerDto.Address;
+ userWorker1.Resume = userWorkerDto.Resume;
+
+ userWorker1.UpDataBy = ITCode;
+ userWorker1.UpDataTime = DateTime.Now;
+ res = await userWorkerRes.UpdateAsync(userWorker1);
+
+
+ }
+ else
+ {
+ var userWorker = _mapper.Map<UserWorker>(userWorkerDto);
+ userWorker.UpDataBy = ITCode;
+ userWorker.UpDataTime = DateTime.Now;
+ userWorker.CreateBy = ITCode;
+ userWorker.CreateTime = DateTime.Now;
+ userWorker.UserId = userid;
+ res = await userWorkerRes.InsertAsync(userWorker);
+ }
+
+
+
+
+
+
+
+ return res;
+ }
+
+
+
+
+ /// <summary>
+ /// 淇濆瓨鐢ㄦ埛鍏徃淇℃伅
+ /// </summary>
+ /// <returns></returns>
+ public async Task<bool> saveUserCompany(UserCompanyDto userCompanyDto)
+ {
+
+ var UserID = App.User?.FindFirstValue("UserID");
+ int userid = 0;
+ string ITCode = App.User?.FindFirstValue("ITCode");
+ if (!string.IsNullOrEmpty(UserID))
+ {
+ userid = int.Parse(UserID);
+ }
+
+ var userCompanyRes = new BaseRepository<UserCompany>();
+ bool res;
+ if (userCompanyDto.Id > 0)
+ {
+ var userCompany1 = await userCompanyRes.GetByIdAsync(userCompanyDto.Id);
+ userCompany1.BusinessLicense = userCompanyDto.BusinessLicense;
+ userCompany1.Suppliername = userCompanyDto.Suppliername;
+ userCompany1.Regtime = userCompanyDto.Regtime;
+ userCompany1.Address = userCompanyDto.Address;
+ userCompany1.Suppliercode = userCompanyDto.Suppliercode;
+ userCompany1.Contact = userCompanyDto.Contact;
+ userCompany1.Phone = userCompanyDto.Phone;
+ userCompany1.Resume = userCompanyDto.Resume;
+
+
+ userCompany1.UpDataBy = ITCode;
+ userCompany1.UpDataTime = DateTime.Now;
+ res = await userCompanyRes.UpdateAsync(userCompany1);
+
+
+ }
+ else
+ {
+ var userCompany = _mapper.Map<UserCompany>(userCompanyDto);
+ userCompany.UpDataBy = ITCode;
+ userCompany.UpDataTime = DateTime.Now;
+ userCompany.CreateBy = ITCode;
+ userCompany.CreateTime = DateTime.Now;
+ userCompany.UserId = userid;
+ res = await userCompanyRes.InsertAsync(userCompany);
+ }
+
+
+
+
+
+
+
+ return res;
+ }
+
+
+
+ /// <summary>
+ /// 鏍规嵁Id鏌ヨ鐢ㄦ埛
+ /// </summary>
+ /// <returns></returns>
+ public async Task<UserDto> getUser(int userid)
+ {
+ UserDto userDto = new UserDto();
+ var userRes = new BaseRepository<User>();
+ var userWorkerRes = new BaseRepository<UserWorker>();
+ var userCompanyRes = new BaseRepository<UserCompany>();
+ var user = await userRes.GetByIdAsync(userid);
+ userDto = _mapper.Map<UserDto>(user);
+
+ var userWorker = await userWorkerRes.GetFirstAsync(p => p.UserId == userid);
+ userDto.userWorker = _mapper.Map<UserWorkerDto>(userWorker);
+
+ var userCompany = await userCompanyRes.GetFirstAsync(p => p.UserId == userid);
+ userDto.userCompany = _mapper.Map<UserCompanyDto>(userCompany);
+
+
+
+ return userDto;
+ }
+
+ }
+}
diff --git a/cylsg/cylsg.Model/OrderModel/Order.cs b/cylsg/cylsg.Model/OrderModel/Order.cs
index b76a4e7..bad6fe3 100644
--- a/cylsg/cylsg.Model/OrderModel/Order.cs
+++ b/cylsg/cylsg.Model/OrderModel/Order.cs
@@ -80,7 +80,7 @@
/// 宸ヤ綔鏂瑰紡
/// </summary>
[SugarColumn(ColumnDescription = "宸ヤ綔鏂瑰紡", IsNullable = true)]
- public WorkerTypes? WorkerType { get; set; }
+ public int? WorkerType { get; set; }
/// <summary>
@@ -94,7 +94,7 @@
/// 鎷涘伐鐘舵��
/// </summary>
[SugarColumn(ColumnDescription = "鎷涘伐鐘舵��", IsNullable = true)]
- public OrderStatuses? OrderStatus { get; set; }
+ public int? OrderStatus { get; set; }
}
diff --git a/cylsg/cylsg.Model/OrderModel/OrderBidding.cs b/cylsg/cylsg.Model/OrderModel/OrderBidding.cs
index 13602e6..39ef9c3 100644
--- a/cylsg/cylsg.Model/OrderModel/OrderBidding.cs
+++ b/cylsg/cylsg.Model/OrderModel/OrderBidding.cs
@@ -29,6 +29,12 @@
[SugarColumn(ColumnDescription = "鐢ㄦ埛id")]
public int WorkerUserId { get; set; }
+ /// <summary>
+ /// 鎷涘伐id
+ /// </summary>
+ [SugarColumn(ColumnDescription = "鎷涘伐id")]
+ public int OrderId { get; set; }
+
/// <summary>
/// 鏄惁閫変腑
diff --git a/cylsg/cylsg.Model/OrderModel/OrderBiddingDetail.cs b/cylsg/cylsg.Model/OrderModel/OrderBiddingDetail.cs
index 28d48b4..4a243a2 100644
--- a/cylsg/cylsg.Model/OrderModel/OrderBiddingDetail.cs
+++ b/cylsg/cylsg.Model/OrderModel/OrderBiddingDetail.cs
@@ -57,7 +57,7 @@
/// 瀹℃壒鐘舵��
/// </summary>
[SugarColumn(ColumnDescription = "瀹℃壒鐘舵��", IsNullable = true)]
- public IsShenPis? IsShenPi { get; set; }
+ public int? IsShenPi { get; set; }
/// <summary>
/// 瀹℃壒鏃堕棿
@@ -87,13 +87,17 @@
public enum IsShenPis
{
/// <summary>
- ///璁℃椂
+ ///淇濆瓨
/// </summary>
- weishenpi = 0,
+ baocun = 0,
/// <summary>
- ///璁′欢
+ ///鎻愪氦
/// </summary>
- yishenpi = 1
+ tijiao = 1,
+ /// <summary>
+ ///宸插鎵�
+ /// </summary>
+ yishenpi = 2
}
}
diff --git a/cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs b/cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs
new file mode 100644
index 0000000..f867e3f
--- /dev/null
+++ b/cylsg/cylsg.Model/UserModel/UserTiXianDetail.cs
@@ -0,0 +1,72 @@
+锘縰sing cylsg.Core;
+using cylsg.Core.Attributes;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Model.UserModel
+{
+ /// <summary>
+ /// 鐢ㄦ埛宸ヤ汉鎻愮幇鏄庣粏琛�
+ /// </summary>
+ [Description("鐢ㄦ埛宸ヤ汉鎻愮幇鏄庣粏琛�")]
+ [CoderFirst]
+ public class UserTiXianDetail : BaseModel
+ {
+ /// <summary>
+ /// 鎻愮幇鏄庣粏Id
+ /// </summary>
+ [SugarColumn(ColumnDescription = "鎻愮幇鏄庣粏Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+
+ /// <summary>
+ /// 鐢ㄦ埛id
+ /// </summary>
+ [SugarColumn(ColumnDescription = "鐢ㄦ埛id")]
+ public int UserId { get; set; }
+
+
+ /// <summary>
+ /// 閲戦
+ /// </summary>
+ [SugarColumn(ColumnDescription = "閲戦", Length = 18, DecimalDigits = 2, IsNullable = true)]
+ public decimal? YiTiXianJine { get; set; }
+
+
+ /// <summary>
+ /// 鏀嚭杩樻槸鏀跺叆
+ /// </summary>
+ [SugarColumn(ColumnDescription = "鏀嚭杩樻槸鏀跺叆")]
+ public int ZhiChuShouRu { get; set; }
+
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [SugarColumn(ColumnDescription = "澶囨敞", ColumnDataType = "nvarchar(200)", IsNullable = true)]
+ public string Remark { get; set; }
+
+
+ }
+
+ /// <summary>
+ /// 鎸囧嚭杩樻槸鏀跺叆
+ /// </summary>
+ public enum ZhiChuShouRus
+ {
+ /// <summary>
+ ///鏀嚭
+ /// </summary>
+ zhichu = 0,
+ /// <summary>
+ ///鏀跺叆
+ /// </summary>
+ shouru = 1
+ }
+
+}
diff --git a/cylsg/cylsg.Model/UserModel/UserWorker.cs b/cylsg/cylsg.Model/UserModel/UserWorker.cs
index 4a3235d..22f8da9 100644
--- a/cylsg/cylsg.Model/UserModel/UserWorker.cs
+++ b/cylsg/cylsg.Model/UserModel/UserWorker.cs
@@ -73,10 +73,17 @@
public string Resume { get; set; }
/// <summary>
- /// 鎻愮幇浣欓
+ /// 鎻愮幇鎬婚
/// </summary>
- [SugarColumn(ColumnDescription = "鎻愮幇浣欓", Length = 18, DecimalDigits = 2, IsNullable = true)]
- public decimal? TiXianYue { get; set; }
+ [SugarColumn(ColumnDescription = "鎻愮幇鎬婚", Length = 18, DecimalDigits = 2, IsNullable = true)]
+ public decimal? TiXianZonge { get; set; }
+
+
+ /// <summary>
+ /// 宸叉彁鐜伴噾棰�
+ /// </summary>
+ [SugarColumn(ColumnDescription = "宸叉彁鐜伴噾棰�", Length = 18, DecimalDigits = 2, IsNullable = true)]
+ public decimal? YiTiXianJine { get; set; }
}
}
--
Gitblit v1.9.1