liaoxujun@qq.com
2023-08-23 19459be5ff2c2ca74b3f953bb1255061a36c24ad
修正授权函数类,增加数据库连接配置
10个文件已修改
297 ■■■■■ 已修改文件
DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/UserAndLogin/ViewMode/UserInfo.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Model/Oder/Oder.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Model/Permissions/TenantPermissions.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Model/UserInfoModel/TenantInfo.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Web.Entry/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceApi.InitQMessage/DocumentServiceApi.InitQMessage.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceApi.InitQMessage/INITQMessageDefine.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceApi.InitQMessage/MessageReceive.cs 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceApi.InitQMessage/TenantOderInfo.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
@@ -893,6 +893,7 @@
        <member name="M:DocumentServiceAPI.Application.UserAndLogin.LogInController.LogoIn(DocumentServiceAPI.Application.UserAndLogin.ViewMode.LoginPsWordIN)">
            <summary>
            登录 1 输入员工账户或者租户账户,2 选择租户账户,3 选择公司
            当密码为空时,带入用户中心token即可实现登录
            </summary>
            <returns>登录信息</returns>
        </member>
@@ -922,6 +923,15 @@
            <summary>
            新建一个TOken 
            </summary>
            <returns></returns>
        </member>
        <member name="M:DocumentServiceAPI.Application.UserAndLogin.Services.TokenService.CheckJwt(System.String,Microsoft.IdentityModel.Tokens.SecurityToken@)">
            <summary>
            校验token 的有效性
            </summary>
            <param name="Token"> Token校验</param>
            <param name="validationParameters"></param>
            <param name="securityToken"></param>
            <returns></returns>
        </member>
        <member name="M:DocumentServiceAPI.Application.UserAndLogin.Services.TokenService.CheckToken">
@@ -1262,8 +1272,8 @@
        </member>
        <member name="P:DocumentServiceAPI.Application.UserAndLogin.ViewMode.EmployeeInfoVM.UserName">
            <summary>
            用户名
            </summary>
            用户名 手机号验证 必填
            </summary>
        </member>
        <member name="P:DocumentServiceAPI.Application.UserAndLogin.ViewMode.EmployeeInfoVM.UserPassWord">
            <summary>
DocumentServiceAPI.Application/UserAndLogin/ViewMode/UserInfo.cs
@@ -130,8 +130,10 @@
        /// </summary>           
        public string LastUpdateName { get; set; }
        /// <summary>
        /// 用户名
        /// </summary>
        /// 用户名 手机号验证 必填
        /// </summary>
        [Required]
        [RegularExpression("/^(?:(?:\\+|00)86)?1\\d{10}$/")]
        public string UserName { get; set; }
        /// <summary>
        /// 用户密码
DocumentServiceAPI.Model/Oder/Oder.cs
@@ -1,6 +1,8 @@
using DocumentServiceAPI.Enum;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -12,6 +14,54 @@
    /// </summary>
    public class Oder:BaseModel
    {
        /// <summary>
        /// OderID
        /// </summary>
        [SugarColumn( IsPrimaryKey =true,IsIdentity =true)]
        public int Id { get; set; }
        /// <summary>
        /// 月份
        /// </summary>
        [Display(Name = "月份")]
        public int? MonthCount { get; set; }
        /// <summary>
        /// 单位个数
        /// </summary>
        [Display(Name = "单位个数")]
        public int? UnitCount { get; set; }
        /// <summary>
        /// 员工
        /// </summary>
        [Display(Name = "员工个数")]
        public int? EmployeeCount { get; set; }
        /// <summary>
        /// 单价
        /// </summary>
        [Display(Name = "金额")]
        public decimal Amount { get; set; }
       /// <summary>
       /// 支付方式
       /// </summary>
        public string? PayType { get; set; }
        /// <summary>
        /// 支付时间
        /// </summary>
        public DateTime? PayTime { get; set; }
        /// <summary>
        /// 描述
        /// </summary>
        public string? Description { get; set; }
        /// <summary>
        /// 手机号码
        /// </summary>
        public string ITCode { get; set; }
        /// <summary>
        /// 政采用户中心ID
        /// </summary>
        public Guid? ZcUserID { get; set; }
    }
DocumentServiceAPI.Model/Permissions/TenantPermissions.cs
@@ -18,7 +18,7 @@
        /// id
        /// </summary>
        [Display(Name = "id ")]
        [SugarColumn(ColumnDescription = "id ")]
        [SugarColumn(ColumnDescription = "id " ,IsPrimaryKey =true,IsIdentity =true)]
        public int Id { get; set; }
        /// <summary>
DocumentServiceAPI.Model/UserInfoModel/TenantInfo.cs
@@ -68,7 +68,12 @@
        /// 密码
        /// </summary>
        [SugarColumn(Length =30)]
        public string? PsW { get; set; }
        public string? PsW { get; set; }
        /// <summary>
        /// 政采用户中心ID
        /// </summary>
        public Guid? ZcUserID { get; set; }
    }
DocumentServiceAPI.Web.Entry/appsettings.json
@@ -21,7 +21,7 @@
    }
  ],
  "isCodeFirst": false, //是否执行codefirst 注意这个在迁徙完成后应该设置为false 防止更改数据库
  "isCodeFirst": true, //是否执行codefirst 注意这个在迁徙完成后应该设置为false 防止更改数据库
  //请保持redis为正常可用
  "RedisConfig": {
    // 如果采用容器化部署Service 要写成redis的服务名,否则写地址
DocumentServiceApi.InitQMessage/DocumentServiceApi.InitQMessage.csproj
@@ -12,6 +12,7 @@
  <ItemGroup>
    <ProjectReference Include="..\DocumentServiceAPI.Core\DocumentServiceAPI.Core.csproj" />
    <ProjectReference Include="..\DocumentServiceAPI.Model\DocumentServiceAPI.Model.csproj" />
  </ItemGroup>
</Project>
DocumentServiceApi.InitQMessage/INITQMessageDefine.cs
@@ -14,6 +14,11 @@
        /// <summary>
        /// 购入Oder消息
        /// </summary>
        public const string InitTentOder  = "DocumentServiceAPI_OderINIT";
        public const string InitTenantOder = "DocumentServiceAPI_OderINIT";
        /// <summary>
        /// 撤单
        /// </summary>
        public const string DecTenantOder = "DocumentServiceAPI_DecOderINIT";
    }
}
DocumentServiceApi.InitQMessage/MessageReceive.cs
@@ -1,5 +1,13 @@
using InitQ.Abstractions;
using DocumentServiceAPI.Model.Oder;
using DocumentServiceAPI.Model.Permissions;
using DocumentServiceAPI.Model.UserInfoModel;
using Furion;
using Furion.JsonSerialization;
using Furion.Logging.Extensions;
using InitQ.Abstractions;
using InitQ.Attributes;
using Microsoft.Extensions.Options;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,15 +21,157 @@
    /// </summary>
    public class MessageReceive: IRedisSubscribe
    {
        /// <summary>
        /// 初始化订单处理
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Subscribe(INITQMessageDefine.InitTentOder)]
        /// <returns></returns>
        [Subscribe(INITQMessageDefine.InitTenantOder)]
        private async Task InitTenantOder(string msg)
        {
            TenantOderInfo? obj = JSON.Deserialize<TenantOderInfo>(msg);
            if(obj==null)
            {
                $"InitTenantOder 初始化 msg 对象错误 ,msg为{msg}".LogInformation<MessageReceive>();
                return;
            }
            var    _db=  App.GetService<ISqlSugarClient>();
            Oder oder = new Oder()
            {
                Amount = obj.Amount,
                CreatBy = "消息队列 InitTenantOder",
                CreatTime = DateTime.Now,
                Description = obj.Description,
                EmployeeCount = obj.EmployeeCount,
                MonthCount = obj.MonthCount,
                UnitCount = obj.UnitCount,
                PayType = obj.PayType,
                PayTime = obj.PayTime,
                ZcUserID = obj.ZcUserID,
                ITCode = obj.ITCode,
            };
            TenantInfo? Tinfo = await _db.Queryable<TenantInfo>().Where(x=>x.ZcUserID==obj.ZcUserID).SingleAsync();
            if(Tinfo==null)
            {
                Tinfo = new TenantInfo
                {
                    ZcUserID = obj.ZcUserID,
                    ItCode = obj.ITCode,
                    CreatBy = "消息队列 InitTenantOder",
                    CreatTime = DateTime.Now,
                    Description = obj.Description,
                    Name = obj.ITCode,
                    PsW = obj.ITCode.Substring(obj.ITCode.Length - 4),
                };
                TenantPermissions permissions = new TenantPermissions()
                {
                    CreatBy = "消息队列 InitTenantOder",
                    CreatTime = DateTime.Now,
                    Description = obj.Description,
                    EmployeeMaxCount = obj.EmployeeCount ?? 0,
                    UnitMaxCount = obj.UnitCount ?? 0,
                    OverTime = DateTime.Now.AddMonths(obj.MonthCount ?? 0),
                };
                try
                {
                    await _db.AsTenant().BeginTranAsync();
                  var id=  await _db.Insertable(Tinfo).ExecuteReturnIdentityAsync();
                    permissions.TenantId = id;
                    await _db.Insertable(permissions).ExecuteCommandAsync ();
                    await _db.Insertable(oder).ExecuteCommandAsync();
                    await _db.AsTenant().CommitTranAsync();
                }
                catch (Exception e)
                {
                    await _db.AsTenant().RollbackTranAsync();
                    $"新建租户处理失败 msg:{msg},e:{e.ToString()} BY:消息队列 InitTenantOder".LogInformation<MessageReceive>();
                    return;
                }
            }
            else
            {
                Tinfo.ItCode = obj.ITCode;
                Tinfo.UpdataBy = "消息队列 InitTenantOder";
                Tinfo.UpdataTime = DateTime.Now;
                Tinfo.IsDel = false;
                Tinfo.IsEn = true;
              var tp= await _db.Queryable<TenantPermissions>().Where(x=>x.TenantId==Tinfo.Id).FirstAsync();
                try
                {
                    await _db.AsTenant().BeginTranAsync();
                    if (Tinfo.ItCode != obj.ITCode)
                    {
                       await _db.Updateable(Tinfo).ExecuteCommandAsync();
                    };
                    if (tp == null)
                    {
                        tp = new TenantPermissions()
                        {
                            CreatBy = "消息队列 InitTenantOder",
                             CreatTime = DateTime.Now,
                              IsDel = false,
                               IsEn = true,
                                EmployeeMaxCount=obj.EmployeeCount??0,
                                 UnitMaxCount=obj.UnitCount??0,
                                  OverTime=DateTime.Now.AddMinutes(obj.MonthCount??0),
                                   TenantId= Tinfo.Id,
                        };
                        await _db.Insertable(tp).ExecuteCommandAsync();
                    }
                    else
                    {
                        tp.IsDel = false;
                        tp.IsEn = true;
                        tp.UnitMaxCount = obj.UnitCount ?? tp.UnitMaxCount;
                        tp.EmployeeMaxCount = obj.EmployeeCount ?? tp.EmployeeMaxCount;
                        tp.OverTime = tp.OverTime.AddMonths(obj.MonthCount??0);
                        tp.UpdataBy = "消息队列 InitTenantOder";
                        tp.UpdataTime = DateTime.Now;
                        await _db.Updateable(tp).ExecuteCommandAsync();
                    }
                    await _db.Insertable(oder).ExecuteCommandAsync();
                    await _db.AsTenant().CommitTranAsync();
                }
                catch (Exception e)
                {
                    await _db.AsTenant().RollbackTranAsync();
                    $"修改租户权限失败 msg:{msg},e:{e.ToString()}  By:消息队列 InitTenantOder".LogInformation<MessageReceive>();
                    return;
                }
            }
DocumentServiceApi.InitQMessage/TenantOderInfo.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -7,10 +8,53 @@
namespace DocumentServiceApi.InitQMessage
{
    /// <summary>
    /// 订单详情
    /// 订单消息模型详情
    /// </summary>
    public class TenantOderInfo
    internal class TenantOderInfo
    {
        public int MyProperty { get; set; }
        /// <summary>
        /// 手机号码
        /// </summary>
        public string ITCode { get; set; }
        /// <summary>
        /// 政采用户中心ID
        /// </summary>
        public Guid? ZcUserID { get; set; }
        /// <summary>
        /// 月份
        /// </summary>
        [Display(Name = "月份")]
        public int? MonthCount { get; set; }
        /// <summary>
        /// 单位个数
        /// </summary>
        [Display(Name = "单位个数")]
        public int? UnitCount { get; set; }
        /// <summary>
        /// 员工
        /// </summary>
        [Display(Name = "员工个数")]
        public int? EmployeeCount { get; set; }
        /// <summary>
        /// 单价
        /// </summary>
        [Display(Name = "金额")]
        public decimal Amount { get; set; }
        /// <summary>
        /// 支付方式
        /// </summary>
        public string? PayType { get; set; }
        /// <summary>
        /// 支付时间
        /// </summary>
        public DateTime? PayTime { get; set; }
        /// <summary>
        /// 描述
        /// </summary>
        public string? Description { get; set; }
    }
}