username@email.com
2024-09-03 b53678eec74cadc4d8d5773343b10ffa2adc5330
最新代码
6个文件已修改
1个文件已添加
294 ■■■■■ 已修改文件
cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Timers/TimedBackgroundService.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Users/UserAppService.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Model/OrderModel/Order.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Web.Core/Startup.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs
@@ -29,14 +29,106 @@
        public string OrderName { get; set; }
        /// <summary>
        /// 工作开始时间
        /// 工作开始日期
        /// </summary>
        public DateTime? WordStartTime { get; set; }
        /// <summary>
        /// 工作结束时间
        /// 工作开始日期名称
        /// </summary>
        public string WordStartTimeName {
            get
            {
                if (this.WordStartTime.HasValue)
                {
                    // 可以添加自己的逻辑
                    return this.WordStartTime.Value.ToString("yyyy-MM-dd");
                }
                else
                {
                    return "";
                }
            }}
        /// <summary>
        /// 工作结束日期
        /// </summary>
        public DateTime? WordEndTime { get; set; }
        /// <summary>
        /// 工作结束日期名称
        /// </summary>
        public string WordEndTimeName
        {
            get
            {
                if (this.WordEndTime.HasValue)
                {
                    // 可以添加自己的逻辑
                    return this.WordEndTime.Value.ToString("yyyy-MM-dd");
                }
                else
                {
                    return "";
                }
            }
        }
        /// <summary>
        /// 工作开始时间
        /// </summary>
        public DateTime? StartTime { get; set; }
        /// <summary>
        /// 工作开始时间名称
        /// </summary>
        public string StartTimeName
        {
            get
            {
                if (this.StartTime.HasValue)
                {
                    // 可以添加自己的逻辑
                    return this.StartTime.Value.ToString("HH:mm");
                }
                else
                {
                    return "";
                }
            }
        }
        /// <summary>
        /// 工作结束时间
        /// </summary>
        public DateTime? EndTime { get; set; }
        /// <summary>
        /// 工作结束日期名称
        /// </summary>
        public string EndTimeName
        {
            get
            {
                if (this.EndTime.HasValue)
                {
                    // 可以添加自己的逻辑
                    return this.EndTime.Value.ToString("HH:mm");
                }
                else
                {
                    return "";
                }
            }
        }
        /// <summary>
        /// 需求
@@ -214,9 +306,9 @@
    {
        /// <summary>
        /// 招工明细OrderBiddingId
        /// 招工OrderId
        /// </summary>
        public int OrderBiddingId { get; set; }
        public int OrderId { get; set; }
        /// <summary>
@@ -290,6 +382,17 @@
        /// <summary>
        /// 用户id
        /// </summary>
        public int WorkerUserId { get; set; }
        /// <summary>
        /// 用户昵称
        /// </summary>
        public string WorkerName { get; set; }
        /// <summary>
        /// 打卡明细
        /// </summary>
        public List<OrderBiddingDetailCheckDto> orderBiddingDetailCheck { get; set; }
cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs
@@ -159,6 +159,8 @@
                order.OrderName = orderDto.OrderName;
                order.WordStartTime = orderDto.WordStartTime;
                order.WordEndTime = orderDto.WordEndTime;
                order.StartTime = orderDto.StartTime;
                order.EndTime = orderDto.EndTime;
                order.Demand = orderDto.Demand;
                order.WorderCount = orderDto.WorderCount;
                order.WorderAddress = orderDto.WorderAddress;
cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
@@ -359,6 +359,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)
            {
@@ -378,6 +379,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); 
            }
@@ -407,19 +413,25 @@
            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)
            {
@@ -438,7 +450,7 @@
                {
                    throw Oops.Oh("员工未注册成工人");
                }
                var faseres = _tencentCloudService.VerifyFace(dakaDto.FaceImg, UserWorkRes.IAIPersonId);
                var faseres =  _tencentCloudService.VerifyFace(dakaDto.FaceImg, UserWorkRes.IdCode);
                if (faseres.IsMatch != true)
                {
@@ -740,21 +752,23 @@
            //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;
cylsg/cylsg.Application/Timers/TimedBackgroundService.cs
New file
@@ -0,0 +1,59 @@
using cylsg.Core;
using cylsg.Model.OrderModel;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace cylsg.Application.Timers
{
    public class TimedBackgroundService : IHostedService, IDisposable
    {
        private Timer _timer;
        public Task StartAsync(CancellationToken cancellationToken)
        {
            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromSeconds(60*60));
            return Task.CompletedTask;
        }
        private async void DoWork(object? state)
        {
            var orderBiddingRes = new BaseRepository<OrderBidding>();
            var orderRes = new BaseRepository<Order>();
            var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>();
            var orders = await orderRes.GetListAsync(x => x.OrderStatus < 2 && x.IsEn == true && x.IsDeleted == false && x.WordEndTime <= DateTime.Now.AddDays(-1));
            foreach (var order in orders)
            {
                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;
                    var res = await orderRes.UpdateAsync(order);
                }
            }
        }
        public Task StopAsync(CancellationToken cancellationToken)
        {
            Console.WriteLine("StopAsync");
            return Task.CompletedTask;
        }
        public void Dispose()
        {
            _timer?.Dispose();
        }
    }
}
cylsg/cylsg.Application/Users/UserAppService.cs
@@ -285,6 +285,60 @@
        }
        /// <summary>
        /// 保存用户信息
        /// </summary>
        /// <returns></returns>
        public async Task<bool> saveUser(UserDto userDto)
        {
            var UserID = App.User?.FindFirstValue("UserID");
            int userid = 0;
            string NickName = App.User?.FindFirstValue("NickName");
            if (!string.IsNullOrEmpty(UserID))
            {
                userid = int.Parse(UserID);
            }
            if (!string.IsNullOrEmpty(userDto.Nickname) && userDto.Nickname.Length > 100)
            {
                throw Oops.Oh("昵称长度过长!");
            }
            if (!string.IsNullOrEmpty(userDto.Avatar) && userDto.Avatar.Length > 500)
            {
                throw Oops.Oh("头像长度过长!");
            }
            var userRes = new BaseRepository<User>();
            bool res;
            var user = await userRes.GetByIdAsync(userid);
            if (!string.IsNullOrEmpty(userDto.Nickname))
                user.Nickname = userDto.Nickname;
            if (!string.IsNullOrEmpty(userDto.Avatar))
                user.Avatar = userDto.Avatar;
            user.UpDataBy = NickName;
            user.UpDataTime = DateTime.Now;
            res = await userRes.UpdateAsync(user);
            return res;
        }
    }
}
cylsg/cylsg.Model/OrderModel/Order.cs
@@ -37,18 +37,33 @@
        public string OrderName { get; set; }
        /// <summary>
        /// 工作开始日期
        /// </summary>
        [Display(Name = "工作开始日期")]
        [SugarColumn(ColumnDescription = "工作开始日期", IsNullable = true)]
        public DateTime? WordStartTime { get; set; }
        /// <summary>
        /// 工作结束时间
        /// </summary>
        [Display(Name = "工作结束日期")]
        [SugarColumn(ColumnDescription = "工作结束日期", IsNullable = true)]
        public DateTime? WordEndTime { get; set; }
        /// <summary>
        /// 工作开始时间
        /// </summary>
        [Display(Name = "工作开始时间")]
        [SugarColumn(ColumnDescription = "工作开始时间", IsNullable = true)]
        public DateTime? WordStartTime { get; set; }
        public DateTime? StartTime { get; set; }
        /// <summary>
        /// 工作结束时间
        /// </summary>
        [Display(Name = "工作结束时间")]
        [SugarColumn(ColumnDescription = "工作结束时间", IsNullable = true)]
        public DateTime? WordEndTime { get; set; }
        public DateTime? EndTime { get; set; }
        /// <summary>
        /// 需求
cylsg/cylsg.Web.Core/Startup.cs
@@ -1,7 +1,9 @@
using cylsg.Core;
using cylsg.Application.Timers;
using cylsg.Core;
using cylsg.Web.Core.Handlers;
using Furion;
using Furion.VirtualFileServer;
using InitQ;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
@@ -28,6 +30,7 @@
            return DbContext.Instance;
        }
        );
        services.AddHostedService<TimedBackgroundService>();
        services.AddJsonOptions(options =>
           {
               //更改输出输入枚举属性为 字段名