移动系统liao
2025-02-08 479b6cfc60113f692f6f9146bcd7b9231a32b0e8
cylsg/cylsg.Application/Users/UserAppService.cs
@@ -10,6 +10,8 @@
using System.Security.Claims;
using System.Runtime.Intrinsics.Arm;
using MapsterMapper;
using ECTESTOA;
namespace cylsg.Application.Users
{
@@ -22,11 +24,15 @@
        private readonly ISystemService _systemService;
        private ISqlSugarClient _sqlSugarClient;
        private IMapper _mapper;
        public UserAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper)
        private readonly IOAServices _OAServices;
        public UserAppService(ISystemService systemService, ISqlSugarClient sqlSugarClient, IMapper mapper
            ,IOAServices oAServices
            )
        {
            _systemService = systemService;
            _sqlSugarClient = sqlSugarClient;
            _mapper = mapper;
            _OAServices = oAServices;
        }
@@ -52,11 +58,19 @@
            userDto = _mapper.Map<UserDto>(user);
            var userWorker = await userWorkerRes.GetFirstAsync(p=>p.UserId== userid);
            userDto.userWorker = _mapper.Map<UserWorkerDto>(userWorker);
            if (userWorker != null)
            {
                userDto.userWorker = _mapper.Map<UserWorkerDto>(userWorker);
            }
            var userCompany = await userCompanyRes.GetFirstAsync(p => p.UserId == userid);
            userDto.userCompany = _mapper.Map<UserCompanyDto>(userCompany);
            if (userCompany != null)
            {
                userDto.userCompany = _mapper.Map<UserCompanyDto>(userCompany);
            }
            //增加川印权限获取
            userDto.OAPermissions= await _OAServices.GetOAPermissions();
            return userDto;
@@ -72,17 +86,47 @@
            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);
            }
            if (!string.IsNullOrEmpty(userWorkerDto.IdCardFace) && userWorkerDto.IdCardFace.Length > 500)
            {
                throw Oops.Oh("身份证正面路径长度过长!");
            }
            if (!string.IsNullOrEmpty(userWorkerDto.IdCardBack) && userWorkerDto.IdCardBack.Length > 500)
            {
                throw Oops.Oh("身份证反面路径长度过长!");
            }
            if (!string.IsNullOrEmpty(userWorkerDto.name) && userWorkerDto.name.Length > 100)
            {
                throw Oops.Oh("姓名长度过长!");
            }
            if (!string.IsNullOrEmpty(userWorkerDto.Phone) && userWorkerDto.Phone.Length > 30)
            {
                throw Oops.Oh("电话号码长度过长!");
            }
            if (!string.IsNullOrEmpty(userWorkerDto.IdCode) && userWorkerDto.IdCode.Length > 30)
            {
                throw Oops.Oh("身份证号长度过长!");
            }
            if (!string.IsNullOrEmpty(userWorkerDto.Address) && userWorkerDto.Address.Length > 500)
            {
                throw Oops.Oh("联系地址长度过长!");
            }
            if (!string.IsNullOrEmpty(userWorkerDto.Resume) && userWorkerDto.Resume.Length > 2000)
            {
                throw Oops.Oh("简历描述长度过长!");
            }
            var userWorkerRes = new BaseRepository<UserWorker>();
            bool res;
            if (userWorkerDto.Id > 0)
            var userWorker1 = await userWorkerRes.GetFirstAsync(x => x.UserId == userid && x.IsEn == true && x.IsDeleted == false);
            if (userWorker1!=null)
            {
                var userWorker1 = await userWorkerRes.GetByIdAsync(userWorkerDto.Id);
               //.GetByIdAsync(userWorkerDto.Id);
                userWorker1.IdCardBack = userWorkerDto.IdCardBack;
                userWorker1.IdCardFace = userWorkerDto.IdCardFace;
                userWorker1.name = userWorkerDto.name;
@@ -91,7 +135,7 @@
                userWorker1.Address = userWorkerDto.Address;
                userWorker1.Resume = userWorkerDto.Resume;
                userWorker1.UpDataBy = ITCode;
                userWorker1.UpDataBy = NickName;
                userWorker1.UpDataTime = DateTime.Now;
                res = await userWorkerRes.UpdateAsync(userWorker1);
@@ -100,9 +144,9 @@
            else
            {
                var userWorker = _mapper.Map<UserWorker>(userWorkerDto);
                userWorker.UpDataBy = ITCode;
                userWorker.UpDataBy = NickName;
                userWorker.UpDataTime = DateTime.Now;
                userWorker.CreateBy = ITCode;
                userWorker.CreateBy = NickName;
                userWorker.CreateTime = DateTime.Now;
                userWorker.UserId = userid;
                res = await userWorkerRes.InsertAsync(userWorker);
@@ -129,17 +173,61 @@
            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);
            }
            if(!string.IsNullOrEmpty(userCompanyDto.BusinessLicense) && userCompanyDto.BusinessLicense.Length > 500)
            {
                throw Oops.Oh("营业执照路径长度过长!");
            }
            if (!string.IsNullOrEmpty(userCompanyDto.Suppliername) && userCompanyDto.Suppliername.Length > 100)
            {
                throw Oops.Oh("企业名称长度过长!");
            }
            if (!string.IsNullOrEmpty(userCompanyDto.Regtime) && userCompanyDto.Regtime.Length > 50)
            {
                throw Oops.Oh("注册时间长度过长!");
            }
            if (!string.IsNullOrEmpty(userCompanyDto.Address) && userCompanyDto.Address.Length > 500)
            {
                throw Oops.Oh("联系地址长度过长!");
            }
            if (!string.IsNullOrEmpty(userCompanyDto.Suppliercode) && userCompanyDto.Suppliercode.Length > 30)
            {
                throw Oops.Oh("企业注册号长度过长!");
            }
            if (!string.IsNullOrEmpty(userCompanyDto.Contact) && userCompanyDto.Contact.Length > 50)
            {
                throw Oops.Oh("联系人长度过长!");
            }
            if (!string.IsNullOrEmpty(userCompanyDto.Phone) && userCompanyDto.Phone.Length > 50)
            {
                throw Oops.Oh("联系电话长度过长!");
            }
            if (!string.IsNullOrEmpty(userCompanyDto.Resume) && userCompanyDto.Resume.Length > 2000)
            {
                throw Oops.Oh("公司简介长度过长!");
            }
            var userCompanyRes = new BaseRepository<UserCompany>();
            bool res;
            if (userCompanyDto.Id > 0)
            var userCompany1 = await userCompanyRes.GetFirstAsync(x=>x.UserId == userid && x.IsEn == true && x.IsDeleted == false);
            if (userCompany1 != null)
            {
                var userCompany1 = await userCompanyRes.GetByIdAsync(userCompanyDto.Id);
                if(userCompany1.Suppliercode != userCompanyDto.Suppliercode)
                {
                    var count = await userCompanyRes.CountAsync(x => x.Suppliercode == userCompanyDto.Suppliercode && x.Id != userCompany1.Id && x.IsEn == true && x.IsDeleted == false);
                    if (count > 0)
                    {
                        userCompany1.IsAdmin = false;
                    }
                    else
                    {
                        userCompany1.IsAdmin = true;
                    }
                }
                userCompany1.BusinessLicense = userCompanyDto.BusinessLicense;
                userCompany1.Suppliername = userCompanyDto.Suppliername;
                userCompany1.Regtime = userCompanyDto.Regtime;
@@ -150,7 +238,7 @@
                userCompany1.Resume = userCompanyDto.Resume;
 
                userCompany1.UpDataBy = ITCode;
                userCompany1.UpDataBy = NickName;
                userCompany1.UpDataTime = DateTime.Now;
                res = await userCompanyRes.UpdateAsync(userCompany1);
@@ -158,10 +246,20 @@
            }
            else
            {
                var count = await userCompanyRes.CountAsync(x => x.Suppliercode == userCompanyDto.Suppliercode && x.IsEn == true && x.IsDeleted == false);
                if (count > 0)
                {
                    userCompanyDto.IsAdmin = false;
                }
                else
                {
                    userCompanyDto.IsAdmin = true;
                }
                var userCompany = _mapper.Map<UserCompany>(userCompanyDto);
                userCompany.UpDataBy = ITCode;
                userCompany.UpDataBy = NickName;
                userCompany.UpDataTime = DateTime.Now;
                userCompany.CreateBy = ITCode;
                userCompany.CreateBy = NickName;
                userCompany.CreateTime = DateTime.Now;
                userCompany.UserId = userid;
                res = await userCompanyRes.InsertAsync(userCompany);
@@ -191,18 +289,85 @@
            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);
            var userWorker = await userWorkerRes.GetFirstAsync(p => p.UserId == userid);
            userDto.userWorker = _mapper.Map<UserWorkerDto>(userWorker);
            if (userWorker != null)
            {
                userDto.userWorker = _mapper.Map<UserWorkerDto>(userWorker);
            }
            var userCompany = await userCompanyRes.GetFirstAsync(p => p.UserId == userid);
            userDto.userCompany = _mapper.Map<UserCompanyDto>(userCompany);
            if (userCompany != null)
            {
                userDto.userCompany = _mapper.Map<UserCompanyDto>(userCompany);
            }
            return userDto;
        }
        /// <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;
        }
    }
}