TRS-ZS-336在管理端将交易员的账号禁用后,交易端应限制其不能登录

This commit is contained in:
zhenghaotian
2025-04-24 17:48:59 +08:00
parent 8e0a46d899
commit 5e34056542
5 changed files with 113 additions and 41 deletions
+11 -1
View File
@@ -1,4 +1,5 @@
using System;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -19,4 +20,13 @@ namespace YLErp.Model
public string Status { get; set; }
public bool ForceLoginOut { get; set; }
}
public class SysUserChangeKafkaRequest
{
public int Id { get; set; }
public int? Status { get; set; }
public bool? ForceLoginOut { get; set; }
}
}
+14 -1
View File
@@ -1,4 +1,5 @@
using System.ComponentModel;
using Newtonsoft.Json;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using YLErp.Helpers;
@@ -217,4 +218,16 @@ namespace BaseOUDAL
public string VarietyName { get; set; }
}
//定义交换数据类型
public class SysUserChangeInfo
{
[JsonProperty("SysUserId")]
public int Id { get; set; }
[JsonProperty("Status")]
public int? Status { get; set; }
[JsonProperty("ForceLoginOut")]
public bool? ForceLoginOut { get; set; }
}
}
@@ -0,0 +1,37 @@
using BaseOUDAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YLErp.Abstract;
using YLErp.Helpers;
using YLErp.Model;
namespace YLErp.Modules.SystemModule
{
public class SysUserKafkaService
{
private IKafkaProduce kafkaProduceHelper;
private string topic = string.Empty;
public SysUserKafkaService(IKafkaProduce kafkaProduce)
{
kafkaProduceHelper = kafkaProduce;
topic = Environment.GetEnvironmentVariable("KafkaConfig_YiLian_SysUserInfoChangeTopic");
}
public SysUserKafkaService()
{
kafkaProduceHelper = new KafkaProduceHelper();
topic = Environment.GetEnvironmentVariable("KafkaConfig_YiLian_SysUserInfoChangeTopic");
}
public void Send(SysUserChangeInfo sysUser)
{
SysUserChangeKafkaRequest sysUserChangeKafkaRequest = new SysUserChangeKafkaRequest();
sysUserChangeKafkaRequest.Id = sysUser.Id;
if (!string.IsNullOrEmpty(topic))
{
kafkaProduceHelper.Produce(topic, JsonHelper.Serialize(sysUserChangeKafkaRequest));
}
}
}
}
+11
View File
@@ -1,6 +1,7 @@
using Dapper;
using Newtonsoft.Json;
using System.Data;
using YLErp.Abstract;
using YLErp.BLL;
using YLErp.DBModels.Consts;
using YLErp.Modules.DictionaryModule;
@@ -12,6 +13,11 @@ namespace YLErp.Web.Controllers
{
readonly ErpBaseContext basedb = new ErpBaseContext();
readonly YLContext yLContext = new YLContext();
private IKafkaProduce _kafkaProduce;
public SystemController( IKafkaProduce kafkaProduce)
{
_kafkaProduce = kafkaProduce;
}
protected override void Dispose(bool disposing)
{
@@ -861,6 +867,11 @@ namespace YLErp.Web.Controllers
//清理缓存
Providers.MemoryCacheProvider.Default.Remove("loginUser" + accountIds);
new SysUserService(CurUser).UpdateState(accountIds, 1);
SysUserChangeInfo sysUserChangeInfo= new SysUserChangeInfo();
sysUserChangeInfo.Id = accountIds;
sysUserChangeInfo.Status = 1;
sysUserChangeInfo.ForceLoginOut = true;
new SysUserKafkaService(_kafkaProduce).Send(sysUserChangeInfo);
return JsonSuccess("禁用账户成功", r);
}
+40 -39
View File
@@ -27,45 +27,46 @@
"LicenseContext": "NonCommercial" //The license context used
}
},
"KafkaConfig": {
"BootstrapServers": "139.196.109.225:9092", // Kafka 集群的地址
"Acks": -1, // 消息确认方式,可以是 All(-1)、Leader(1)、None(0) 中的一种
"EnableAutoCommit": false, //是否自动提交
"EnableIdempotence": false, // 开启幂等性,确保消息只被发送一次
"MaxInFlight": 5, // 控制生产者在同一时间最多可以发送的未确认消息数
"CompressionType": 0, // 消息压缩方式,可以是 None(0)、Gzip(1)、Snappy(2)、Lz4(3)、Zstd(4) 中的一种,
"MessageTimeoutMs": 3000, // 控制生产者等待消息确认的时间,单位是毫秒
"ClientRateTopic": "ylClientRateTopic", //客户互换费率生产topic
"HedgingAccountTopic": "ylHedgingAccountTopic", //对冲账户生产topic
"AccountCapitalTopicGroupId": "YiLian_OnRspAccountCapitalConsumer", //账户资金消费组
"ReqAccountCapitalTopic": "ReqAccountCapital", //账户资金请求topic
"OnRspAccountCapitalTopic": "OnRspAccountCapital", //账户资金请求返回topic
"AutoOffsetReset": 1, //Latest(0),Earliest(1),Error(2)
"EnableCalcBongd": false, //是否启用kafka计算
"ReqClientRiskCheckTopic": "YiLian_ReqClientRiskCheck", //客户风控检查
"ReqClientRiskCheckConsumerTopic": "YiLian_OnRspClientRiskCheck", //客户风控检查消费者
"ReqClientRiskCheckTopicGroupId": "YiLian_ReqClientRiskCheckConsumer1", //客户风控检查消费者
"ReqClientMonitorTopic": "YiLian_ReqClientMonitor", //客户资金监控
"OnRspClientMonitorConsumerTopic": "YiLian_OnRspClientMonitor", //客户资金监控消费者
"ReqClientMonitorTopicGroupId": "YiLian_ReqClientMonitorConsumer1", //客户资金监控消费组
"ReqClientMonitorSingleTopic": "YiLian_ReqClientMonitorSingle", //单个客户资金监控
"OnRspClientMonitorSingleConsumerTopic": "YiLian_OnRspClientMonitorSingle", //单个客户资金监控
"ReqClientMonitorSingleTopicGroupId": "YiLian_ReqClientMonitorSingleConsumer1", //单个客户资金监控
"TrsExchangeTradeConsumerTopic": "YiLian_HedgingOrder", //TRS对冲交易消费 topic
"TrsExchangeTradeConsumerTopicGroupId": "YiLian_HedgingOrderGroup1", //TRS对冲交易消费 Group
"YiLian_ReqHedgingOrderCancelTopic": "YiLian_ReqHedgingOrderCancel", //TRS对冲交易撤单请求消费 topic
"YiLian_ReqHedgingOrderCancelTopicGroupId": "YiLian_ReqHedgingOrderCancelGroup1", //TRS对冲交易撤单请求消费 Group
"YiLian_RespHedgingOrderCancelTopic": "YiLian_RespHedgingOrderCancel", //TRS对冲交易撤单请求回应 topic
"YiLian_ClientInfoChangeTopic": "YiLian_ClientInfoChangeTopic", //客户信息变更通知客户端 topic
"YiLian_CashCalcConsumerTopic": "YiLian_CashCalc", //客户资金计算 topic
"YiLian_CashCalcConsumerGroup": "YiLian_CashCalcGroup1", //客户资金计算消费组 topic
"YiLian_CashNoticeConsumerTopic": "YiLian_CashNotice", //客户资金通知 topic
"YiLian_CashNoticeConsumerGroup": "YiLian_CashNoticeGroup", //客户资金通知消费组 topic
"YiLian_HolidayResetTopic": "YiLian_HolidayReset", //交易日历缓存重新加载 topic
"YiLian_HolidayResetGroupId": "YiLian_HedgingOrderGroup1", //交易日历缓存重新加载消费 Group
"YiLian_SwapFlowTopic": "YiLian_SwapFlow", //交易端同步流水
"YiLian_SwapFlowGroup": "YiLian_SwapFlowGroup1" //交易端同步流水消费组
},
"KafkaConfig": {
"BootstrapServers": "139.196.109.225:9092", // Kafka 集群的地址
"Acks": -1, // 消息确认方式,可以是 All(-1)、Leader(1)、None(0) 中的一种
"EnableAutoCommit": false, //是否自动提交
"EnableIdempotence": false, // 开启幂等性,确保消息只被发送一次
"MaxInFlight": 5, // 控制生产者在同一时间最多可以发送的未确认消息数
"CompressionType": 0, // 消息压缩方式,可以是 None(0)、Gzip(1)、Snappy(2)、Lz4(3)、Zstd(4) 中的一种,
"MessageTimeoutMs": 3000, // 控制生产者等待消息确认的时间,单位是毫秒
"ClientRateTopic": "ylClientRateTopic", //客户互换费率生产topic
"HedgingAccountTopic": "ylHedgingAccountTopic", //对冲账户生产topic
"AccountCapitalTopicGroupId": "YiLian_OnRspAccountCapitalConsumer", //账户资金消费组
"ReqAccountCapitalTopic": "ReqAccountCapital", //账户资金请求topic
"OnRspAccountCapitalTopic": "OnRspAccountCapital", //账户资金请求返回topic
"AutoOffsetReset": 1, //Latest(0),Earliest(1),Error(2)
"EnableCalcBongd": false, //是否启用kafka计算
"ReqClientRiskCheckTopic": "YiLian_ReqClientRiskCheck", //客户风控检查
"ReqClientRiskCheckConsumerTopic": "YiLian_OnRspClientRiskCheck", //客户风控检查消费者
"ReqClientRiskCheckTopicGroupId": "YiLian_ReqClientRiskCheckConsumer1", //客户风控检查消费者
"ReqClientMonitorTopic": "YiLian_ReqClientMonitor", //客户资金监控
"OnRspClientMonitorConsumerTopic": "YiLian_OnRspClientMonitor", //客户资金监控消费者
"ReqClientMonitorTopicGroupId": "YiLian_ReqClientMonitorConsumer1", //客户资金监控消费组
"ReqClientMonitorSingleTopic": "YiLian_ReqClientMonitorSingle", //单个客户资金监控
"OnRspClientMonitorSingleConsumerTopic": "YiLian_OnRspClientMonitorSingle", //单个客户资金监控
"ReqClientMonitorSingleTopicGroupId": "YiLian_ReqClientMonitorSingleConsumer1", //单个客户资金监控
"TrsExchangeTradeConsumerTopic": "YiLian_HedgingOrder", //TRS对冲交易消费 topic
"TrsExchangeTradeConsumerTopicGroupId": "YiLian_HedgingOrderGroup1", //TRS对冲交易消费 Group
"YiLian_ReqHedgingOrderCancelTopic": "YiLian_ReqHedgingOrderCancel", //TRS对冲交易撤单请求消费 topic
"YiLian_ReqHedgingOrderCancelTopicGroupId": "YiLian_ReqHedgingOrderCancelGroup1", //TRS对冲交易撤单请求消费 Group
"YiLian_RespHedgingOrderCancelTopic": "YiLian_RespHedgingOrderCancel", //TRS对冲交易撤单请求回应 topic
"YiLian_ClientInfoChangeTopic": "YiLian_ClientInfoChangeTopic", //客户信息变更通知客户端 topic
"YiLian_CashCalcConsumerTopic": "YiLian_CashCalc", //客户资金计算 topic
"YiLian_CashCalcConsumerGroup": "YiLian_CashCalcGroup1", //客户资金计算消费组 topic
"YiLian_CashNoticeConsumerTopic": "YiLian_CashNotice", //客户资金通知 topic
"YiLian_CashNoticeConsumerGroup": "YiLian_CashNoticeGroup", //客户资金通知消费组 topic
"YiLian_HolidayResetTopic": "YiLian_HolidayReset", //交易日历缓存重新加载 topic
"YiLian_HolidayResetGroupId": "YiLian_HedgingOrderGroup1", //交易日历缓存重新加载消费 Group
"YiLian_SwapFlowTopic": "YiLian_SwapFlow", //交易端同步流水
"YiLian_SwapFlowGroup": "YiLian_SwapFlowGroup1", //交易端同步流水消费组
"YiLian_SysUserInfoChangeTopic": "YiLian_SysUserInfoChangeTopic"//管理端系统用户变更
},
"BondOmsInterface": {
"BaseUrl": "http://trs.yiliantech.com:8080/trs_hub_api"
},