移动系统liao
2025-08-21 0c9a162284878860b78eff1fdad6a4a5337624af
修正用户API相关参数
4个文件已修改
211 ■■■■ 已修改文件
Admin.NET/FZCTB.NET.API.Application/Auth/AuthService.cs 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZCTB.NET.API.Application/Auth/DTO/CustomerLoginOutput.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZCZTB.TSCL.Application/Service/ProcurementComplaint/ProcurementComplaintService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/FZCTB.NET.API.Application/Auth/AuthService.cs
@@ -1,31 +1,23 @@
using Admin.NET.Core.Service;
using Admin.NET.Core;
using Admin.NET.Core;
using Admin.NET.Core.Service;
using cylsg.utility.Extend;
using Furion;
using Furion.DataEncryption;
using Furion.DynamicApiController;
using Furion.EventBus;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Lazy.Captcha.Core;
using Microsoft.AspNetCore.Http;
using FZCZTB.NET.MD.CutomerMd;
using Microsoft.AspNetCore.Authorization;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using FZCZTB.NET.SYSService.MSM;
using FZCTB.NET.API.Application.Auth.DTO;
using Furion.FriendlyException;
using FZCZTB.NET.SYSService.CustomerSYS;
using Furion;
using NewLife;
using cylsg.utility.Extend;
using static QRCoder.PayloadGenerator;
using FZCTB.NET.API.Application.Auth.DTO;
using FZCZTB.NET.MD.CutomerMd;
using FZCZTB.NET.MD.CutomerMd.Extend;
using Furion.DependencyInjection;
using FZCZTB.NET.SYSService.MSM;
using Lazy.Captcha.Core;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using NewLife;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace FZCTB.NET.API.Application.Auth
{
@@ -35,23 +27,20 @@
    [ApiDescriptionSettings("FZCAPISYS", Order = 149)]
    public class AuthService: IDynamicApiController
    {
        private readonly SMSConfigOptions _smsOptions;
        private readonly SqlSugarRepository<FBS_CustormerUsers> _sysUserRep;
        private readonly SqlSugarRepository<FBS_CoutomerExRole> _sysUserExRol;
        private readonly SqlSugarRepository<FBS_ExRole> _sysExRol;
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly SysMenuService _sysMenuService;
        private readonly SysOnlineUserService _sysOnlineUserService;
        private readonly SysConfigService _sysConfigService;
        private readonly SysUserService _sysUserService;
        private readonly ZCSMSService _sysSmsService;
        private readonly SysLdapService _sysLdapService;
        private readonly ICaptcha _captcha;
        private readonly IEventPublisher _eventPublisher;
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly SMSConfigOptions _smsOptions;
        private readonly SysCacheService _sysCacheService;
        private readonly SysConfigService _sysConfigService;
        private readonly SqlSugarRepository<FBS_ExRole> _sysExRol;
        private readonly SysLdapService _sysLdapService;
        private readonly SysMenuService _sysMenuService;
        private readonly SysOnlineUserService _sysOnlineUserService;
        private readonly ZCSMSService _sysSmsService;
        private readonly SqlSugarRepository<FBS_CoutomerExRole> _sysUserExRol;
        private readonly SqlSugarRepository<FBS_CustormerUsers> _sysUserRep;
        private readonly SysUserService _sysUserService;
        public AuthService(
            SqlSugarRepository<FBS_CustormerUsers> sysUserRep,
             SqlSugarRepository<FBS_CoutomerExRole> sysUserExRol,
@@ -86,6 +75,39 @@
            _smsOptions = smsConfigOptions.Value;
            _sysExRol = exrel;
            _sysUserExRol = sysUserExRol;
        }
        /// <summary>
        ///  切换角色 已登录进去角色或者切换角色是调用,需要替换Token,相当于登录
        /// </summary>
        [DisplayName("切换角色")]
        public async Task<CustomerLoginOutput> ChangeLogoInExRule(string RuleCode)
        {
            var id = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0;
            if (id == 0)
            {
                throw Oops.Oh("用户凭证错误");
            }
            var rols = await _sysExRol.GetFirstAsync(x => x.Code == RuleCode && x.Status == StatusEnum.Enable);
            if (rols == null)
                throw Oops.Oh("角色已经下线");
            // 获取登录租户和用户
            // 获取登录租户和用户
            var user = await _sysUserRep.AsQueryable().Where(x => x.Id == id).FirstAsync();
            if (user == null)
            {
                throw Oops.Oh("该用户没有注册");
            }
            if (user.IsEn == false)
            {
                throw Oops.Oh("用异常");
            }
            var exr = await _sysUserExRol.GetFirstAsync(x => x.CusExtendId == user.CusExtendId && x.ExRoleId == rols.Id);
            if (exr == null)
                throw Oops.Oh("没有申请该角色");
            return await CreateToken(user, RuleCode);
        }
        /// <summary>
@@ -133,9 +155,6 @@
                    TheLastLogo = false,
                    CustomerExs = new List<CustomerExVm>(),
                    Code = verifyCode.ToString(),
                };
                _sysCacheService.Set($"{CacheConst.KeyPhoneVerCode}{input.Phone}", verifyCode.ToString(), TimeSpan.FromSeconds(_smsOptions.lingKai.VerifyTimeOut.ToInt()));
                foreach (var item in userList)
@@ -148,53 +167,15 @@
                        IsManger = item.IsManager
                    });
                }
               return aRet;
            }
            return await CreateToken(userList[0], input.ExRuleCode??"");
        }
        /// <summary>
        ///  切换角色 已登录进去角色或者切换角色是调用,需要替换Token,相当于登录
        /// </summary>
        [DisplayName("切换角色")]
        public async Task<CustomerLoginOutput> ChangeLogoInExRule(string RuleCode)
        {
            var id = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0;
            if (id == 0)
            {
                throw Oops.Oh("用户凭证错误");
            }
            var rols = await _sysExRol.GetFirstAsync(x => x.Code == RuleCode && x.Status == StatusEnum.Enable);
            if(rols==null)
                throw Oops.Oh("角色已经下线");
            // 获取登录租户和用户
            // 获取登录租户和用户
            var user = await _sysUserRep.AsQueryable().Where(x => x.Id == id).FirstAsync();
            if (user == null)
            {
                throw Oops.Oh("该用户没有注册");
            }
            if (user.IsEn == false)
            {
                throw Oops.Oh("用异常");
            }
          var exr=  await  _sysUserExRol.GetFirstAsync(x=>x.CusExtendId==user.CusExtendId&&x.ExRoleId== rols.Id);
            if (exr==null)
                throw Oops.Oh("没有申请该角色");
            return await CreateToken(user, RuleCode);
        }
        /// <summary>
        /// 手机号登录 🔖
        /// </summary>
@@ -212,7 +193,6 @@
            //var user = await _sysUserRep.AsQueryable().Where(x=>x.Account==input.Phone).Includes(x => x.CoutomerExRols, y => y.ExRole).FirstAsync();
            //if(user==null)
            //{
            //}
            //return await CreateToken(user, input.ExRuleCode );
@@ -275,19 +255,10 @@
                    AccessToken = accessToken,
                    RefreshToken = refreshToken,
                     TheLastLogo=true,
                    IsManager = user.IsManager
                }
            };
            payload.Output.ExRoles = new List<CustomerExRoleVm>();
            payload.Output.ExRoles = await _sysUserExRol.AsQueryable().Where(x => x.CusExtendId == user.CusExtendId).Includes(x => x.ExRole).Select(x => new CustomerExRoleVm
            {
@@ -295,7 +266,6 @@
                HasFlsh = x.steps == CusExtendStep.Pass,
                Name = x.ExRole.Name
            }).ToListAsync();
           
            //暂时不出用户事件
            // 发布系统用户操作事件
Admin.NET/FZCTB.NET.API.Application/Auth/DTO/CustomerLoginOutput.cs
@@ -44,6 +44,10 @@
    /// 临时验证码
    /// </summary>
    public string? Code { get; set; }
    /// <summary>
    /// 是否是管理员
    /// </summary>
    public bool  IsManager { get; set; }
}
/// <summary>
Admin.NET/FZCTB.NET.API.Application/User/CustomerService.cs
@@ -448,7 +448,7 @@
        }
        if (!await isManger())
            throw Oops.Oh("用户没有权限");
         return (await  _fBS_CustormerUsersRep.GetListAsync(x => x.CusExtendId == id&&x.IsEn==true)).Adapt<List<FBS_CustormerUsersOutput>>();
         return (await  _fBS_CustormerUsersRep.GetListAsync(x => x.CusExtendId == id)).Adapt<List<FBS_CustormerUsersOutput>>();
    }
    public FBS_CustormerUsers? ThisUser { get; set; }
    /// <summary>
@@ -521,14 +521,14 @@
          
        }
        var User = await _fBS_CustormerUsersRep.GetFirstAsync(x =>x.CusExtendId==ThisUser.CusExtendId &&x.Id== CustormerUserId);
        if (User != null)
        if (User == null)
        {
            throw Oops.Oh("用户不存在");
        }
        if(User.IsEn==false)
            throw Oops.Oh("无效用户不可设置为管理员");
        User.IsManager = true;
        User.IsManager = !User.IsManager;
        User.UpdateTime = DateTime.Now;
        User.UpdateUserName= "企业用户:" + ThisUser?.Name;
        User.UpdateUserId = ThisUser.Id;
@@ -581,13 +581,13 @@
        {
            throw Oops.Oh("Id错误");
        }
        if(Param.CusExtendId!=Param.Id)
        if(Param.CusExtendId!= cid)
        {
            throw Oops.Oh("组织机构不同不可修改");
        }
    
        var User = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.CusExtendId == Param.CusExtendId && x.Id == Param.Id);
        if (User != null)
        if (User == null)
        {
            throw Oops.Oh("用户不存在");
        }
@@ -602,6 +602,48 @@
    }
    /// <summary>
    /// 删除员工
    /// </summary>
    /// <param name="CustormerUserId"> UserList 的ID</param>
    /// <returns></returns>
    [HttpDelete]
    public async Task<bool> DelCustormerUsers(long CustormerUserId)
    {
        if (!await isManger())
            throw Oops.Oh("用户没有权限");
        var cid = App.User.FindFirst(ClaimConst.CustomerExId)?.Value.ToLong() ?? 0;
        if (cid == 0)
        {
            throw Oops.Oh("用户凭证错误");
        }
        var uid = App.User.FindFirst(ClaimConst.UserId)?.Value.ToLong() ?? 0;
        if (uid == 0)
        {
        }
        if (CustormerUserId == uid)
            throw Oops.Oh("自己不可删除自己");
        if (ThisUser == null)
        {
            ThisUser = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.Id == uid && x.CusExtendId == cid && x.IsEn == true);
        }
        var User = await _fBS_CustormerUsersRep.GetFirstAsync(x => x.CusExtendId == ThisUser.CusExtendId && x.Id == CustormerUserId);
        if (User == null)
        {
            throw Oops.Oh("用户不存在");
        }
        return await _fBS_CustormerUsersRep.DeleteByIdAsync(CustormerUserId);
    }
    /// <summary>
    /// 权限验证是否是管理员
    /// </summary>
Admin.NET/FZCZTB.TSCL.Application/Service/ProcurementComplaint/ProcurementComplaintService.cs
@@ -64,6 +64,7 @@
            .WhereIF(input.Status != null && input.Status == PComplaintStatus.Valid, u =>( u.Complaints.Any(uu => uu.HandlingStatus == PComplaintStatus.Valid)))
            .WhereIF(input.Status != null && input.Status == PComplaintStatus.Rejected, u => ( !u.Complaints.Any(uu=>uu.HandlingStatus== PComplaintStatus.Other||uu.HandlingStatus== PComplaintStatus.Valid||uu.HandlingStatus==null)))
            .WhereIF(input.Status != null && input.Status == PComplaintStatus.Other, u =>!( u.Complaints.Any(uu=>uu.HandlingStatus== PComplaintStatus.Valid)|| (!u.Complaints.Any(uu => uu.HandlingStatus == PComplaintStatus.Other || uu.HandlingStatus == PComplaintStatus.Valid || uu.HandlingStatus == null))))
            .Select(n => new ProcurementComplaintOutput
            {
                Complaints = n.Complaints
@@ -92,6 +93,8 @@
        return await _procurementComplaintRep.AsQueryable().Where(x=>x.Id==input.Id).Includes(x=>x.Complaints.OrderBy(xx=>xx.sort).ToList()).FirstAsync();
    }
    /// <summary>
    /// 增加政府采购投诉数据处理 ➕
    /// </summary>