domian-build
This commit is contained in:
@@ -4,5 +4,973 @@
|
||||
<name>WMS.Web.Domain</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:WMS.Web.Domain.IService.Public.ILoginService">
|
||||
<summary>
|
||||
登录服务接口
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.GetUserInfoAsync(System.String)">
|
||||
<summary>
|
||||
得到单点用户信息
|
||||
</summary>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.LoginOutAsync(WMS.Web.Core.Dto.Login.LoginOutDto)">
|
||||
<summary>
|
||||
登录退出
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.RefreshToken(System.String,System.String)">
|
||||
<summary>
|
||||
刷新token
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.LoginOutSingleAsync(System.Int32,System.String,System.Int32)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
</summary>
|
||||
<param name="ucid"></param>
|
||||
<param name="token"></param>
|
||||
<param name="expires_in"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.LoginOutSingleAsync(System.String)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
</summary>
|
||||
<param name="SeesionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.GetLoginInfo(System.String)">
|
||||
<summary>
|
||||
获取登录后的信息
|
||||
</summary>
|
||||
<param name="authorization"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.Online(System.String)">
|
||||
<summary>
|
||||
单点-在线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ILoginService.Offline(System.String)">
|
||||
<summary>
|
||||
单点-下线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.IService.Public.ISingleDataService">
|
||||
<summary>
|
||||
单点数据返回服务接口
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleData(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据:根据方法名和公司ID
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleDataNumber(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据:根据方法名和公司ID
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleDataCode(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据:根据方法名和公司ID
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleData(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.String)">
|
||||
<summary>
|
||||
获取单点数据:根据方法名和公司ID
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetIdsBySingleName(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.String)">
|
||||
<summary>
|
||||
根据名字模糊匹配
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<param name="name"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleData``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据集合:泛型-同步
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleDataAsync``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据集合:泛型-异步
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleDataNoCacheAsync``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据集合:泛型-异步-无缓存
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleData``3(``1,``2,WMS.Web.Domain.Values.Single.SingleControllerType)">
|
||||
<summary>
|
||||
单点数据:可对接全部接口
|
||||
</summary>
|
||||
<typeparam name="T">返回对象</typeparam>
|
||||
<typeparam name="X">请求对象</typeparam>
|
||||
<typeparam name="Y">方法名称</typeparam>
|
||||
<param name="dto">请求对象</param>
|
||||
<param name="action">方法名称</param>
|
||||
<param name="type">控制器名称</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSingleDataNoCache``3(``1,``2,WMS.Web.Domain.Values.Single.SingleControllerType)">
|
||||
<summary>
|
||||
单点数据:可对接全部接口-无缓存
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<typeparam name="X"></typeparam>
|
||||
<typeparam name="Y"></typeparam>
|
||||
<param name="dto"></param>
|
||||
<param name="action"></param>
|
||||
<param name="type"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetSysConfigData``2(``1,WMS.Web.Domain.Values.Single.SysConfigAction)">
|
||||
<summary>
|
||||
获取单点数据:请求对象和接口方法名
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<typeparam name="X"></typeparam>
|
||||
<param name="dto"></param>
|
||||
<param name="action"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.ISingleDataService.GetCustomerStock(System.Int32,System.String)">
|
||||
<summary>
|
||||
获取客户仓库
|
||||
</summary>
|
||||
<param name="companyId"></param>
|
||||
<param name="customerStockCode"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Mappers.AppMapper">
|
||||
<summary>
|
||||
mapper映射
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Mappers.MapperList">
|
||||
<summary>
|
||||
集合映射
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Mappers.MapperList.ToMapList``2(AutoMapper.IMapper,System.Collections.Generic.List{``1},System.Collections.Generic.List{``0})">
|
||||
<summary>
|
||||
映射实体里 集合属性
|
||||
</summary>
|
||||
<typeparam name="ST"></typeparam>
|
||||
<typeparam name="DT"></typeparam>
|
||||
<param name="mapper"></param>
|
||||
<param name="sourcList"></param>
|
||||
<param name="destinationList"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.AppOptions.DBConnectionString">
|
||||
<summary>
|
||||
数据库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.AppOptions.RedisConnectionString">
|
||||
<summary>
|
||||
redis
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.AppOptions.SingleBaseUrl">
|
||||
<summary>
|
||||
单点数据请求地址-后端使用接口地址
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.AppOptions.RedisDirectory">
|
||||
<summary>
|
||||
redis数据目录
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.AppOptions.DBType">
|
||||
<summary>
|
||||
数据库类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.AppOptions.AllowCache">
|
||||
<summary>
|
||||
是否允许缓存
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.SoaOptions.Url">
|
||||
<summary>
|
||||
单点系统地址
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.SoaOptions.ModuleID">
|
||||
<summary>
|
||||
应用id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.SoaOptions.AppId">
|
||||
<summary>
|
||||
AppId
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.SoaOptions.AppSecret">
|
||||
<summary>
|
||||
AppSecret
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.SoaOptions.PublicKey">
|
||||
<summary>
|
||||
公钥
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Domain.Options.SoaOptions.PrivateKey">
|
||||
<summary>
|
||||
私钥
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.GetAsync``1(System.String,System.Int32)">
|
||||
<summary>
|
||||
Get方法
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="url"></param>
|
||||
<param name="dicHeaders"></param>
|
||||
<param name="timeoutSecond"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.GetAsync``1(System.String,System.Collections.Generic.Dictionary{System.String,System.String},System.Int32)">
|
||||
<summary>
|
||||
Get方法
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="url"></param>
|
||||
<param name="dicHeaders"></param>
|
||||
<param name="timeoutSecond"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.PostAsync``1(System.String,System.String,System.Collections.Generic.Dictionary{System.String,System.String},System.Int32)">
|
||||
<summary>
|
||||
Post方法
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="url"></param>
|
||||
<param name="requestBody"></param>
|
||||
<param name="dicHeaders"></param>
|
||||
<param name="timeoutSecond"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.PostAsync``1(System.String,System.String,System.Int32)">
|
||||
<summary>
|
||||
Post方法
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="url"></param>
|
||||
<param name="requestBody"></param>
|
||||
<param name="timeoutSecond"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.ExecuteAsync``1(System.String,System.Net.Http.HttpMethod,System.String,System.Collections.Generic.Dictionary{System.String,System.String},System.Int32)">
|
||||
<summary>
|
||||
公共http请求
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="url"></param>
|
||||
<param name="method"></param>
|
||||
<param name="requestBody"></param>
|
||||
<param name="dicHeaders"></param>
|
||||
<param name="timeoutSecond"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.GenerateHttpRequestMessage(System.String,System.String,System.Net.Http.HttpMethod,System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
<summary>
|
||||
设置HttpRequestMessage
|
||||
</summary>
|
||||
<param name="url"></param>
|
||||
<param name="requestBody"></param>
|
||||
<param name="method"></param>
|
||||
<param name="dicHeaders"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.GenerateStringContent(System.String,System.Collections.Generic.Dictionary{System.String,System.String})">
|
||||
<summary>
|
||||
设置请求内容
|
||||
</summary>
|
||||
<param name="requestBody"></param>
|
||||
<param name="dicHeaders"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.BuildHttpClient(System.Collections.Generic.Dictionary{System.String,System.String},System.Nullable{System.Int32})">
|
||||
<summary>
|
||||
设置请求头和超时时间:返回client
|
||||
</summary>
|
||||
<param name="dicDefaultHeaders"></param>
|
||||
<param name="timeoutSecond"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.CreateToken(WMS.Web.Core.Dto.Login.UserInfoDto,WMS.Web.Core.Dto.Login.Temp.LoginTempDto,System.String)">
|
||||
<summary>
|
||||
创建token
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
<param name="tempDto"></param>
|
||||
<param name="NewToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.GetUserInfoAsync(System.String)">
|
||||
<summary>
|
||||
得到单点用户信息
|
||||
</summary>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.LoginOutAsync(WMS.Web.Core.Dto.Login.LoginOutDto)">
|
||||
<summary>
|
||||
登录退出
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.RefreshToken(System.String,System.String)">
|
||||
<summary>
|
||||
刷新token
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.LoginOutSingleAsync(System.Int32,System.String,System.Int32)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
</summary>
|
||||
<param name="ucid"></param>
|
||||
<param name="token"></param>
|
||||
<param name="expires_in"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.LoginOutSingleAsync(System.String)">
|
||||
<summary>
|
||||
单点退出通知token失效
|
||||
</summary>
|
||||
<param name="SeesionId">这个是单点传过来的SeesionId</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.CacheOutToken(WMS.Web.Core.Dto.Login.LoginOutDto)">
|
||||
<summary>
|
||||
缓存退出的token
|
||||
</summary>
|
||||
<param name="dto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.GetLoginInfo(System.String)">
|
||||
<summary>
|
||||
获取登录后的信息
|
||||
</summary>
|
||||
<param name="authorization"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.RemoveLoginInfo(System.String)">
|
||||
<summary>
|
||||
移除登录后的用户信息
|
||||
</summary>
|
||||
<param name="token"></param>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.Online(System.String)">
|
||||
<summary>
|
||||
单点-在线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.LoginService.Offline(System.String)">
|
||||
<summary>
|
||||
单点-下线接口
|
||||
</summary>
|
||||
<param name="sessionId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.SetStringKey(System.String,System.String,System.Nullable{System.TimeSpan})">
|
||||
<summary>
|
||||
保存单个key value
|
||||
</summary>
|
||||
<param name="key"></param>
|
||||
<param name="value"></param>
|
||||
<param name="expiry"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.GetStringKey(System.String)">
|
||||
<summary>
|
||||
获取单个key的值
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.RemoveStringKey(System.String)">
|
||||
<summary>
|
||||
移除redis
|
||||
</summary>
|
||||
<param name="key"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.GetStringKey``1(System.String)">
|
||||
<summary>
|
||||
获取一个key的对象
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.SetStringKey``1(System.String,``0,System.Nullable{System.TimeSpan})">
|
||||
<summary>
|
||||
保存一个对象
|
||||
</summary>
|
||||
<param name="obj"></param>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Services.Public.SingleDataService">
|
||||
<summary>
|
||||
单点数据返回服务
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleData(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据:根据接口方法名和公司ID
|
||||
后端列表查询统一使用
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleDataNumber(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据:根据接口方法名和公司ID
|
||||
后端列表查询统一使用
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleDataCode(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据:根据接口方法名和公司ID
|
||||
后端列表查询统一使用
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetIdsBySingleName(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.String)">
|
||||
<summary>
|
||||
根据名字模糊匹配
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<param name="name"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleData(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.String)">
|
||||
<summary>
|
||||
获取单点数据:根据接口方法名和公司ID
|
||||
后端列表查询统一使用
|
||||
</summary>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleData``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据集合:泛型-同步
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleDataAsync``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据集合:泛型-异步
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleDataNoCacheAsync``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32)">
|
||||
<summary>
|
||||
获取单点数据集合:泛型-异步-无缓存
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleData``3(``1,``2,WMS.Web.Domain.Values.Single.SingleControllerType)">
|
||||
<summary>
|
||||
单点数据:可对接全部接口
|
||||
</summary>
|
||||
<typeparam name="T">返回对象</typeparam>
|
||||
<typeparam name="X">请求对象</typeparam>
|
||||
<typeparam name="Y">方法名称</typeparam>
|
||||
<param name="dto">请求对象</param>
|
||||
<param name="action">方法名称</param>
|
||||
<param name="type">控制器名称</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSingleDataNoCache``3(``1,``2,WMS.Web.Domain.Values.Single.SingleControllerType)">
|
||||
<summary>
|
||||
单点数据:可对接全部接口
|
||||
</summary>
|
||||
<typeparam name="T">返回对象</typeparam>
|
||||
<typeparam name="X">请求对象</typeparam>
|
||||
<typeparam name="Y">方法名称</typeparam>
|
||||
<param name="dto">请求对象</param>
|
||||
<param name="action">方法名称</param>
|
||||
<param name="type">控制器名称</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetSysConfigData``2(``1,WMS.Web.Domain.Values.Single.SysConfigAction)">
|
||||
<summary>
|
||||
获取单点数据:配置项接口
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<typeparam name="X"></typeparam>
|
||||
<param name="dto"></param>
|
||||
<param name="action"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.SingleDataPost``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.String)">
|
||||
<summary>
|
||||
请求单点服务接口:同步
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.SingleDataPostAsync``1(WMS.Web.Domain.Values.Single.SingleAction,System.Int32,System.String)">
|
||||
<summary>
|
||||
请求单点服务接口:异步
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="action"></param>
|
||||
<param name="companyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.SingleDataService.GetCustomerStock(System.Int32,System.String)">
|
||||
<summary>
|
||||
获取客户仓库
|
||||
</summary>
|
||||
<param name="companyId"></param>
|
||||
<param name="customerStockCode"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.ResultCodes">
|
||||
<summary>
|
||||
错误提示信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.Single.SingleAction">
|
||||
<summary>
|
||||
对接单点的接口方法-枚举
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Orgs">
|
||||
<summary>
|
||||
组织集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Users">
|
||||
<summary>
|
||||
用户集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Staffs">
|
||||
<summary>
|
||||
人员集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Suppliers">
|
||||
<summary>
|
||||
供应商集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Customers">
|
||||
<summary>
|
||||
客户集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.CollectionTerms">
|
||||
<summary>
|
||||
收款条件集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.PaymentTerms">
|
||||
<summary>
|
||||
付款条件集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.SettlementMethods">
|
||||
<summary>
|
||||
结算方式集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.SettlementCurrencys">
|
||||
<summary>
|
||||
结算币别集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.TaxRates">
|
||||
<summary>
|
||||
税率集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.ExchangeRates">
|
||||
<summary>
|
||||
汇率集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Stocks">
|
||||
<summary>
|
||||
仓库集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Units">
|
||||
<summary>
|
||||
单位集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.CustomerStocks">
|
||||
<summary>
|
||||
客户仓库集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Depts">
|
||||
<summary>
|
||||
部门集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.StocksWith211">
|
||||
<summary>
|
||||
仓库211集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.SuppliersContacts">
|
||||
<summary>
|
||||
供应商默认联系人集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleAction.Menus">
|
||||
<summary>
|
||||
菜单集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.Single.SingleControllerType">
|
||||
<summary>
|
||||
单点-控制器枚举
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleControllerType.Single">
|
||||
<summary>
|
||||
单点OPS列表数据-控制器
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleControllerType.SysConfig">
|
||||
<summary>
|
||||
单点配置项数据-控制器
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleControllerType.Login">
|
||||
<summary>
|
||||
单点登录项数据-控制器
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleControllerType.Public">
|
||||
<summary>
|
||||
单点公共接口数据-控制器
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.Single.SingleLoginAction">
|
||||
<summary>
|
||||
单点数据接口-登录要使用的数据接口-方法枚举
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleLoginAction.Menus">
|
||||
<summary>
|
||||
菜单
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleLoginAction.Staff">
|
||||
<summary>
|
||||
人员
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleLoginAction.Company">
|
||||
<summary>
|
||||
公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleLoginAction.Supplier">
|
||||
<summary>
|
||||
供应商
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleLoginAction.Customer">
|
||||
<summary>
|
||||
客户
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleLoginAction.All">
|
||||
<summary>
|
||||
全部信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SingleLoginAction.CompanyInfo">
|
||||
<summary>
|
||||
公司信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.Single.SysConfigAction">
|
||||
<summary>
|
||||
单点数据:配置项和公共接口的方法枚举值
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetSupplierByNameAndCompany">
|
||||
<summary>
|
||||
供应商-根据名称和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetOrgByCompany">
|
||||
<summary>
|
||||
组织-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetDeptByOrgAndCompany">
|
||||
<summary>
|
||||
部门-根据组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetStaffByCompany">
|
||||
<summary>
|
||||
人员-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetStaffByDeptAndCompany">
|
||||
<summary>
|
||||
人员-根据部门和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetStaffByOrgAndCompany">
|
||||
<summary>
|
||||
人员-根据组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerByCompany">
|
||||
<summary>
|
||||
客户-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerByCustomerAndOrgAndCompany">
|
||||
<summary>
|
||||
客户-根据客户和组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerInfoByCustomerAndOrgAndCompany">
|
||||
<summary>
|
||||
客户信息-根据客户和组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCollectionTermsByCompany">
|
||||
<summary>
|
||||
收款条件-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetPaymentTermByCompany">
|
||||
<summary>
|
||||
付款条件-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetSettlementMethodByCompany">
|
||||
<summary>
|
||||
结算方式-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetSettlementCurrencyByCompany">
|
||||
<summary>
|
||||
结算币别-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetUnitByCompany">
|
||||
<summary>
|
||||
单位-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetUnitPropertyByCompany">
|
||||
<summary>
|
||||
单位(部分属性)-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetTaxRateByCompany">
|
||||
<summary>
|
||||
税率-根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseByNameAndCompany">
|
||||
<summary>
|
||||
仓库-根据名称和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseByOrgAndCompany">
|
||||
<summary>
|
||||
仓库-根据组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseByOrgAndCompanyForNotTransfer">
|
||||
<summary>
|
||||
仓库(不是调拨中转仓)-根据组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseByOrgAndCompanyFor211">
|
||||
<summary>
|
||||
仓库(211)-根据组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWareouseByCustomerAndCompany">
|
||||
<summary>
|
||||
仓库-根据客户和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetChildWarehouseByPid">
|
||||
<summary>
|
||||
仓位-根据仓库和名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetChildWarehouse">
|
||||
<summary>
|
||||
仓位-根据-
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetRateInfoByFromToAndCompany">
|
||||
<summary>
|
||||
汇率信息-根据原币、目标币和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerStockByCustomerAndOrgAndCompany">
|
||||
<summary>
|
||||
客户仓库-根据客户和组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetPtAndScAndSmAndBuyerAndDeptBySupplierAndOrg">
|
||||
<summary>
|
||||
付款条件,结算币别,结算方式,采购员,采购部门-根据供应商和组织
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseByIds">
|
||||
<summary>
|
||||
获取仓库:根据仓库id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerByOrgAndCompany">
|
||||
<summary>
|
||||
获取库存:根据组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerStockByCustomerListAndOrgAndCompany">
|
||||
<summary>
|
||||
获取客户仓库:根据客户IDS和组织和公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetRateListByFromToAndCompany">
|
||||
<summary>
|
||||
汇率(所有)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetPtAndScAndSmAndBuyerAndDeptByOrgs">
|
||||
<summary>
|
||||
供应商选择后获取:付款条件,结算币别,结算方式,采购员,采购部门,根据组织IDS
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerStockListByCodes">
|
||||
<summary>
|
||||
获取客户仓库:根据code集合
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetSupperByIds">
|
||||
<summary>
|
||||
供应商:根据ids
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseReplenDatebyCompany">
|
||||
<summary>
|
||||
根据公司搜索所有仓库(计算补货频次)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseByCodes">
|
||||
<summary>
|
||||
获取仓库:根据codes
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetCustomerStockByCodes">
|
||||
<summary>
|
||||
获取客户仓库:根据codes
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseTransferByCompany">
|
||||
<summary>
|
||||
获取调拨中转仓库:根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetSupperAbout1ByIds">
|
||||
<summary>
|
||||
获取供应商数据根据ids
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetWarehouseByDefaultReplenishCustomer">
|
||||
<summary>
|
||||
获取仓库:根据默认补货客户
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetUsersByCompany">
|
||||
<summary>
|
||||
获取用户(ID和Name):根据公司
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetDeptAllByOrgAndCompany">
|
||||
<summary>
|
||||
全部部门-根据组织和公司:不处理子级
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Single.SysConfigAction.GetStaffAllByOrgAndCompany">
|
||||
<summary>
|
||||
获取全部员工:根据公司和组织
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
17
src/WMS.Web.Domain/IService/Public/IHttpClientService.cs
Normal file
17
src/WMS.Web.Domain/IService/Public/IHttpClientService.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WMS.Web.Domain.IService.Public
|
||||
{
|
||||
public interface IHttpClientService
|
||||
{
|
||||
Task<T> GetAsync<T>(string url, int timeoutSecond = 180);
|
||||
Task<T> GetAsync<T>(string url, Dictionary<string, string> dicHeaders, int timeoutSecond = 180);
|
||||
Task<T> PostAsync<T>(string url, string requestBody, int timeoutSecond = 180);
|
||||
Task<T> PostAsync<T>(string url, string requestBody, Dictionary<string, string> dicHeaders, int timeoutSecond = 180);
|
||||
Task<T> ExecuteAsync<T>(string url, HttpMethod method, string requestBody, Dictionary<string, string> dicHeaders, int timeoutSecond = 180);
|
||||
}
|
||||
}
|
||||
73
src/WMS.Web.Domain/IService/Public/ILoginService.cs
Normal file
73
src/WMS.Web.Domain/IService/Public/ILoginService.cs
Normal file
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto.Login;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
|
||||
namespace WMS.Web.Domain.IService.Public
|
||||
{
|
||||
/// <summary>
|
||||
/// 登录服务接口
|
||||
/// </summary>
|
||||
public interface ILoginService
|
||||
{
|
||||
/// <summary>
|
||||
/// 得到单点用户信息
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result<LoginInDto>> GetUserInfoAsync(string code);
|
||||
|
||||
/// <summary>
|
||||
/// 登录退出
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> LoginOutAsync(LoginOutDto dto);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<Result<LoginInDto>> RefreshToken(string OldToken, string RefreshToken);
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
/// <param name="ucid"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <param name="expires_in"></param>
|
||||
/// <returns></returns>
|
||||
Task LoginOutSingleAsync(int ucid, string token, int expires_in);
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
/// <param name="SeesionId"></param>
|
||||
/// <returns></returns>
|
||||
Task LoginOutSingleAsync(string SeesionId);
|
||||
|
||||
/// <summary>
|
||||
/// 获取登录后的信息
|
||||
/// </summary>
|
||||
/// <param name="authorization"></param>
|
||||
/// <returns></returns>
|
||||
LoginInDto GetLoginInfo(string authorization);
|
||||
|
||||
/// <summary>
|
||||
/// 单点-在线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> Online(string sessionId);
|
||||
|
||||
/// <summary>
|
||||
/// 单点-下线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> Offline(string sessionId);
|
||||
}
|
||||
}
|
||||
127
src/WMS.Web.Domain/IService/Public/ISingleDataService.cs
Normal file
127
src/WMS.Web.Domain/IService/Public/ISingleDataService.cs
Normal file
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Domain.Values.Single;
|
||||
|
||||
namespace WMS.Web.Domain.IService.Public
|
||||
{
|
||||
/// <summary>
|
||||
/// 单点数据返回服务接口
|
||||
/// </summary>
|
||||
public interface ISingleDataService
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据方法名和公司ID
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
string GetSingleData(SingleAction action, int companyId, int id);
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据方法名和公司ID
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
decimal GetSingleDataNumber(SingleAction action, int companyId, int id);
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据方法名和公司ID
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="id"></param>
|
||||
/// <returns></returns>
|
||||
string GetSingleDataCode(SingleAction action, int companyId, int id);
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据方法名和公司ID
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
string GetSingleData(SingleAction action, int companyId, string code);
|
||||
/// <summary>
|
||||
/// 根据名字模糊匹配
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
List<int> GetIdsBySingleName(SingleAction action, int companyId, string name);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据集合:泛型-同步
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
List<T> GetSingleData<T>(SingleAction action, int companyId) where T : class;
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据集合:泛型-异步
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<T>> GetSingleDataAsync<T>(SingleAction action, int companyId) where T : class;
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据集合:泛型-异步-无缓存
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<T>> GetSingleDataNoCacheAsync<T>(SingleAction action, int companyId) where T : class;
|
||||
|
||||
/// <summary>
|
||||
/// 单点数据:可对接全部接口
|
||||
/// </summary>
|
||||
/// <typeparam name="T">返回对象</typeparam>
|
||||
/// <typeparam name="X">请求对象</typeparam>
|
||||
/// <typeparam name="Y">方法名称</typeparam>
|
||||
/// <param name="dto">请求对象</param>
|
||||
/// <param name="action">方法名称</param>
|
||||
/// <param name="type">控制器名称</param>
|
||||
/// <returns></returns>
|
||||
Task<T> GetSingleData<T, X, Y>(X dto, Y action, SingleControllerType type = SingleControllerType.Single) where T : class;
|
||||
|
||||
/// <summary>
|
||||
/// 单点数据:可对接全部接口-无缓存
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <typeparam name="X"></typeparam>
|
||||
/// <typeparam name="Y"></typeparam>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
Task<T> GetSingleDataNoCache<T, X, Y>(X dto, Y action, SingleControllerType type = SingleControllerType.Single) where T : class;
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:请求对象和接口方法名
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <typeparam name="X"></typeparam>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="action"></param>
|
||||
/// <returns></returns>
|
||||
Task<T> GetSysConfigData<T, X>(X dto, SysConfigAction action);
|
||||
|
||||
/// <summary>
|
||||
/// 获取客户仓库
|
||||
/// </summary>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="customerStockCode"></param>
|
||||
/// <returns></returns>
|
||||
string GetCustomerStock(int companyId, string customerStockCode);
|
||||
}
|
||||
}
|
||||
17
src/WMS.Web.Domain/Mappers/AppMapper.cs
Normal file
17
src/WMS.Web.Domain/Mappers/AppMapper.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using AutoMapper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Domain.Mappers
|
||||
{
|
||||
/// <summary>
|
||||
/// mapper映射
|
||||
/// </summary>
|
||||
public class AppMapper : Profile
|
||||
{
|
||||
public AppMapper()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
56
src/WMS.Web.Domain/Mappers/MapperList.cs
Normal file
56
src/WMS.Web.Domain/Mappers/MapperList.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using AutoMapper;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using WMS.Web.Core;
|
||||
|
||||
namespace WMS.Web.Domain.Mappers
|
||||
{
|
||||
/// <summary>
|
||||
/// 集合映射
|
||||
/// </summary>
|
||||
public static class MapperList
|
||||
{
|
||||
/// <summary>
|
||||
/// 映射实体里 集合属性
|
||||
/// </summary>
|
||||
/// <typeparam name="ST"></typeparam>
|
||||
/// <typeparam name="DT"></typeparam>
|
||||
/// <param name="mapper"></param>
|
||||
/// <param name="sourcList"></param>
|
||||
/// <param name="destinationList"></param>
|
||||
/// <returns></returns>
|
||||
public static List<DT> ToMapList<DT, ST>(this IMapper mapper, List<ST> sourcList, List<DT> destinationList)
|
||||
where ST : EntityBase
|
||||
where DT : EntityBase
|
||||
{
|
||||
for (int i = 0; i < destinationList.Count; i++)
|
||||
{
|
||||
int id = destinationList[i].Id;
|
||||
var detail = sourcList.FirstOrDefault(f => f.Id == id);
|
||||
if (detail == null)
|
||||
{
|
||||
destinationList.Remove(destinationList[i]);
|
||||
i--;//在列表移除掉一条数据后 必须把index回拨一位 因为数据在移除一条后会调整下标
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var st in sourcList)
|
||||
{
|
||||
if (st.Id == 0)
|
||||
destinationList.Add(mapper.Map<DT>(st));
|
||||
else
|
||||
{
|
||||
var detail = destinationList.FirstOrDefault(f => f.Id == st.Id);
|
||||
|
||||
if (detail != null)
|
||||
mapper.Map(st, detail);
|
||||
//如果在目标数据里没找到这条id的数据 则不作处理
|
||||
}
|
||||
}
|
||||
|
||||
return destinationList;
|
||||
}
|
||||
}
|
||||
}
|
||||
39
src/WMS.Web.Domain/Options/AppOptions.cs
Normal file
39
src/WMS.Web.Domain/Options/AppOptions.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Domain.Options
|
||||
{
|
||||
public class AppOptions
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据库
|
||||
/// </summary>
|
||||
public string DBConnectionString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// redis
|
||||
/// </summary>
|
||||
public string RedisConnectionString { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 单点数据请求地址-后端使用接口地址
|
||||
/// </summary>
|
||||
public string SingleBaseUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// redis数据目录
|
||||
/// </summary>
|
||||
public string RedisDirectory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据库类型
|
||||
/// </summary>
|
||||
public string DBType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否允许缓存
|
||||
/// </summary>
|
||||
public bool AllowCache { get; set; }
|
||||
}
|
||||
}
|
||||
39
src/WMS.Web.Domain/Options/SoaOptions.cs
Normal file
39
src/WMS.Web.Domain/Options/SoaOptions.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Domain.Options
|
||||
{
|
||||
public class SoaOptions
|
||||
{
|
||||
/// <summary>
|
||||
/// 单点系统地址
|
||||
/// </summary>
|
||||
public string Url { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 应用id
|
||||
/// </summary>
|
||||
public int ModuleID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AppId
|
||||
/// </summary>
|
||||
public string AppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AppSecret
|
||||
/// </summary>
|
||||
public string AppSecret { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 公钥
|
||||
/// </summary>
|
||||
public string PublicKey { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 私钥
|
||||
/// </summary>
|
||||
public string PrivateKey { get; set; }
|
||||
}
|
||||
}
|
||||
230
src/WMS.Web.Domain/Services/Public/HttpClientService.cs
Normal file
230
src/WMS.Web.Domain/Services/Public/HttpClientService.cs
Normal file
@@ -0,0 +1,230 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Exceptions;
|
||||
using WMS.Web.Domain.IService.Public;
|
||||
|
||||
namespace WMS.Web.Domain.Services.Public
|
||||
{
|
||||
public class HttpClientService : IHttpClientService
|
||||
{
|
||||
private readonly IHttpClientFactory _clientFactory;
|
||||
private readonly ILogger<HttpClientService> _logger;
|
||||
private Dictionary<string, string> headers;
|
||||
private Dictionary<string, string> contentHeaders;
|
||||
public HttpClientService(IHttpClientFactory clientFactory, ILogger<HttpClientService> logger)
|
||||
{
|
||||
_clientFactory = clientFactory;
|
||||
_logger = logger;
|
||||
headers = new Dictionary<string, string>();
|
||||
headers.Add("Accept", "application/json");
|
||||
headers.Add("User-Agent", "HttpClientFactory-Sample");
|
||||
|
||||
contentHeaders = new Dictionary<string, string>();
|
||||
contentHeaders.Add("Content-Type", "application/json; charset=utf-8");
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get方法
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="dicHeaders"></param>
|
||||
/// <param name="timeoutSecond"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> GetAsync<T>(string url, int timeoutSecond = 180)
|
||||
{
|
||||
try
|
||||
{
|
||||
var client = BuildHttpClient(headers, timeoutSecond);
|
||||
var response = await client.GetAsync(url);
|
||||
//var responseContent = await response.Content.ReadAsStreamAsync();//1.相比ReadAsString这个方法返回要快点,效率高
|
||||
var responseContent = await response.Content.ReadAsStringAsync(); //2.当前使用这里是为了迎合错误信息观看
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var t = JsonSerializer.Deserialize<T>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
||||
//var t = await JsonSerializer.DeserializeAsync<T>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });//3.配合1的ReadAsStream使用
|
||||
return t;
|
||||
}
|
||||
|
||||
throw new WebHttpException(response.StatusCode.ToString(), "请求出错");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"HttpGet:{url} Error:{ex.Message}");
|
||||
throw new Exception($"HttpGet:{url} Error", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get方法
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="dicHeaders"></param>
|
||||
/// <param name="timeoutSecond"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> GetAsync<T>(string url, Dictionary<string, string> dicHeaders, int timeoutSecond = 180)
|
||||
{
|
||||
try
|
||||
{
|
||||
var client = BuildHttpClient(dicHeaders, timeoutSecond);
|
||||
var response = await client.GetAsync(url);
|
||||
//var responseContent = await response.Content.ReadAsStreamAsync();//1.相比ReadAsString这个方法返回要快点,效率高
|
||||
var responseContent = await response.Content.ReadAsStringAsync(); //2.当前使用这里是为了迎合错误信息观看
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var t = JsonSerializer.Deserialize<T>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
||||
//var t = await JsonSerializer.DeserializeAsync<T>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });//3.配合1的ReadAsStream使用
|
||||
return t;
|
||||
}
|
||||
|
||||
throw new WebHttpException(response.StatusCode.ToString(), "请求出错");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"HttpGet:{url} Error:{ex.Message}");
|
||||
throw new Exception($"HttpGet:{url} Error", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Post方法
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="requestBody"></param>
|
||||
/// <param name="dicHeaders"></param>
|
||||
/// <param name="timeoutSecond"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> PostAsync<T>(string url, string requestBody, Dictionary<string, string> dicHeaders, int timeoutSecond = 180)
|
||||
{
|
||||
var client = BuildHttpClient(null, timeoutSecond);
|
||||
var requestContent = GenerateStringContent(requestBody, dicHeaders);
|
||||
var response = await client.PostAsync(url, requestContent);
|
||||
var responseContent = await response.Content.ReadAsStringAsync();
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var t = JsonSerializer.Deserialize<T>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
||||
return t;
|
||||
}
|
||||
|
||||
_logger.LogError($"HttpGet:{url} Error:{responseContent}");
|
||||
throw new WebHttpException(response.StatusCode.ToString(), responseContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Post方法
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="requestBody"></param>
|
||||
/// <param name="timeoutSecond"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> PostAsync<T>(string url, string requestBody, int timeoutSecond = 180)
|
||||
{
|
||||
var client = BuildHttpClient(null, timeoutSecond);
|
||||
var requestContent = GenerateStringContent(requestBody, contentHeaders);
|
||||
var response = await client.PostAsync(url, requestContent);
|
||||
var responseContent = await response.Content.ReadAsStringAsync();
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var t = JsonSerializer.Deserialize<T>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
||||
if (t == null)
|
||||
_logger.LogInformation($"获取单点数据为空---{responseContent}");
|
||||
return t;
|
||||
}
|
||||
|
||||
_logger.LogError($"HttpGet:{url} Error:{responseContent}");
|
||||
throw new WebHttpException(response.StatusCode.ToString(), responseContent);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 公共http请求
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="method"></param>
|
||||
/// <param name="requestBody"></param>
|
||||
/// <param name="dicHeaders"></param>
|
||||
/// <param name="timeoutSecond"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> ExecuteAsync<T>(string url, HttpMethod method, string requestBody, Dictionary<string, string> dicHeaders, int timeoutSecond = 180)
|
||||
{
|
||||
var client = BuildHttpClient(null, timeoutSecond);
|
||||
var request = GenerateHttpRequestMessage(url, requestBody, method, dicHeaders);
|
||||
var response = await client.SendAsync(request);
|
||||
var responseContent = await response.Content.ReadAsStringAsync();
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
var t = JsonSerializer.Deserialize<T>(responseContent, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
throw new WebHttpException(response.StatusCode.ToString(), responseContent);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 设置HttpRequestMessage
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="requestBody"></param>
|
||||
/// <param name="method"></param>
|
||||
/// <param name="dicHeaders"></param>
|
||||
/// <returns></returns>
|
||||
private HttpRequestMessage GenerateHttpRequestMessage(string url, string requestBody, HttpMethod method, Dictionary<string, string> dicHeaders)
|
||||
{
|
||||
var request = new HttpRequestMessage(method, url);
|
||||
if (!string.IsNullOrEmpty(requestBody)) request.Content = new StringContent(requestBody);
|
||||
if (dicHeaders != null)
|
||||
foreach (var headerItme in dicHeaders)
|
||||
request.Headers.Add(headerItme.Key, headerItme.Value);
|
||||
return request;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置请求内容
|
||||
/// </summary>
|
||||
/// <param name="requestBody"></param>
|
||||
/// <param name="dicHeaders"></param>
|
||||
/// <returns></returns>
|
||||
private StringContent GenerateStringContent(string requestBody, Dictionary<string, string> dicHeaders)
|
||||
{
|
||||
var content = new StringContent(requestBody);
|
||||
if (dicHeaders != null)
|
||||
content.Headers.Remove("content-type");
|
||||
foreach (var headerItme in dicHeaders)
|
||||
content.Headers.Add(headerItme.Key, headerItme.Value);
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 设置请求头和超时时间:返回client
|
||||
/// </summary>
|
||||
/// <param name="dicDefaultHeaders"></param>
|
||||
/// <param name="timeoutSecond"></param>
|
||||
/// <returns></returns>
|
||||
private HttpClient BuildHttpClient(Dictionary<string, string> dicDefaultHeaders, int? timeoutSecond)
|
||||
{
|
||||
var httpClient = _clientFactory.CreateClient("ops_client");
|
||||
httpClient.DefaultRequestHeaders.Clear(); //为了使客户端不受最后一个请求的影响,它需要清除DefaultRequestHeaders
|
||||
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||
if (dicDefaultHeaders != null)
|
||||
foreach (var headItem in dicDefaultHeaders)
|
||||
if (!httpClient.DefaultRequestHeaders.Contains(headItem.Key))
|
||||
httpClient.DefaultRequestHeaders.Add(headItem.Key, headItem.Value);
|
||||
|
||||
if (timeoutSecond != null) httpClient.Timeout = TimeSpan.FromSeconds(timeoutSecond.Value);
|
||||
return httpClient;
|
||||
}
|
||||
}
|
||||
}
|
||||
387
src/WMS.Web.Domain/Services/Public/LoginService.cs
Normal file
387
src/WMS.Web.Domain/Services/Public/LoginService.cs
Normal file
@@ -0,0 +1,387 @@
|
||||
using AutoMapper;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Json;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto.Login;
|
||||
using WMS.Web.Core.Dto.Login.Temp;
|
||||
using WMS.Web.Core.Help;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Core.Internal.Security;
|
||||
using WMS.Web.Domain.IService.Public;
|
||||
using WMS.Web.Domain.Options;
|
||||
using WMS.Web.Domain.Values.Single;
|
||||
|
||||
namespace WMS.Web.Domain.Services.Public
|
||||
{
|
||||
public class LoginService : ILoginService
|
||||
{
|
||||
private IMapper _mapper;
|
||||
private SoaOptions _soaOptions;
|
||||
private ILogger<LoginService> _logger;
|
||||
private HttpClientHelp _httpClientHelp;
|
||||
private readonly ISingleDataService _singleDataService;
|
||||
private readonly RedisClientService _redisClientService;
|
||||
public LoginService(
|
||||
IMapper mapper,
|
||||
IOptions<SoaOptions> soaOptions,
|
||||
ILogger<LoginService> logger,
|
||||
HttpClientHelp httpClientHelp,
|
||||
ISingleDataService singleDataService,
|
||||
RedisClientService redisClientService)
|
||||
{
|
||||
this._redisClientService = redisClientService;
|
||||
this._singleDataService = singleDataService;
|
||||
this._soaOptions = soaOptions?.Value;
|
||||
this._mapper = mapper;
|
||||
this._logger = logger;
|
||||
this._httpClientHelp = httpClientHelp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建token
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
/// <param name="tempDto"></param>
|
||||
/// <param name="NewToken"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<AccessTokenDto> CreateToken(UserInfoDto data, LoginTempDto tempDto, string NewToken)
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
|
||||
DateTime expires_time = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)).AddSeconds(tempDto.expires_in);
|
||||
AccessTokenDto accessToken = new AccessTokenDto()
|
||||
{
|
||||
Token = NewToken,
|
||||
PhpToken = tempDto.access_token,
|
||||
RefreshToken = tempDto.refresh_token,
|
||||
Expired = expires_time
|
||||
};
|
||||
return accessToken;
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到单点用户信息
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result<LoginInDto>> GetUserInfoAsync(string code)
|
||||
{
|
||||
JsonObject reqData = new JsonObject();
|
||||
reqData.Add("app_id", _soaOptions.AppId);
|
||||
reqData.Add("app_secret", _soaOptions.AppSecret);
|
||||
reqData.Add("code", code);
|
||||
//这个是登录的时候给前端验证的token,以及传给php单点那边的一个session值,用于单点退出时,通知ops退出
|
||||
string NewToken = Guid.NewGuid().ToString("N");
|
||||
try
|
||||
{
|
||||
string result = _httpClientHelp.PostHttp(_soaOptions.Url + "/uc/authorize/access_token", reqData, true, NewToken);
|
||||
var jObject = JsonObject.Parse(result);
|
||||
|
||||
LoginInDto r = new LoginInDto();
|
||||
r.UserInfo = new UserInfoDto();
|
||||
r.TokenInfo = new AccessTokenDto();
|
||||
var login_result = jObject["errno"] == 0 ? "成功" : "失败";
|
||||
_logger.LogInformation($"登录信息:单点->{login_result}");
|
||||
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
string datajson = jObject["data"].ToString();
|
||||
var _loginDto = JsonConvert.DeserializeObject<LoginTempDto>(datajson);
|
||||
|
||||
#region 解码
|
||||
string enptStr = _loginDto.encryptedData;
|
||||
List<string> enptlist = enptStr.Trim().Split(',').ToList();
|
||||
string str = RSA.DecryptSection(_soaOptions.PrivateKey, enptlist);
|
||||
var entity = JsonConvert.DeserializeObject<LoginJsonTokenTempDto>(str);
|
||||
#endregion
|
||||
|
||||
//映射登录信息
|
||||
r.UserInfo = _mapper.Map<UserInfoDto>(entity);
|
||||
_logger.LogInformation($"登录信息:用户ID->{entity.uc_id}");
|
||||
|
||||
//HTTP请求获取登录信息:人员,客户,供应商,公司
|
||||
var loginRequest = new LoginSingleRequest()
|
||||
{
|
||||
UserId = entity.uc_id,
|
||||
SupplierId = entity.supplier_id ?? 0,
|
||||
CustomerId = entity.customer_id ?? 0
|
||||
};
|
||||
var loginResponse_result = await _singleDataService.GetSingleDataNoCache<Result<LoginSingleResponse>, LoginSingleRequest, SingleLoginAction>
|
||||
(loginRequest, SingleLoginAction.All, type: SingleControllerType.Login);
|
||||
|
||||
//绑定返回对象的登录信息
|
||||
var staffName = "Null";
|
||||
var token = await CreateToken(r.UserInfo, _loginDto, NewToken);
|
||||
r.TokenInfo = token;
|
||||
if (loginResponse_result.Success && loginResponse_result.Data != null)
|
||||
{
|
||||
var loginResponse = loginResponse_result.Data;
|
||||
if (loginResponse.Supplier != null)
|
||||
r.UserInfo.SupplierName = loginResponse.Supplier.Name;
|
||||
if (loginResponse.Customer != null)
|
||||
r.UserInfo.CustomerName = loginResponse.Customer.Name;
|
||||
if (loginResponse.Staff != null)
|
||||
{
|
||||
r.UserInfo.StaffId = loginResponse.Staff.Id;
|
||||
staffName = loginResponse.Staff.Name;
|
||||
}
|
||||
if (loginResponse.Company != null)
|
||||
r.UserInfo.CompanyName = loginResponse.Company.Name;
|
||||
}
|
||||
r.UserInfo.UcId = entity.uc_id;
|
||||
r.UserInfo.SeesionId = _loginDto?.uc_sessid;
|
||||
r.UserInfo.CompanyId = entity.company_id.Value;
|
||||
r.UserInfo.Identity = entity.identity;
|
||||
r.UserInfo.OrgId = entity.org_id;
|
||||
r.UserInfo.CustomerId = entity.customer_id;
|
||||
r.UserInfo.SupplierId = entity.supplier_id;
|
||||
r.SignedIn = true;
|
||||
_logger.LogInformation($"登录信息:用户人员信息->{staffName}({r.UserInfo.StaffId}),公司名称->{r.UserInfo.CompanyName}");
|
||||
|
||||
//登录后缓存登录的用户信息和token信息
|
||||
var loginInfo = new LoginInDto();
|
||||
loginInfo.UserInfo = r.UserInfo;
|
||||
loginInfo.TokenInfo = token;
|
||||
|
||||
var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
|
||||
_redisClientService.SetStringKey<LoginInDto>($"ops_login_{token.Token}", loginInfo, ops_login_time);
|
||||
|
||||
//登录成功移出对应的用户token黑名单:应为新的token产生,移除登录的信息
|
||||
string blacktoken = _redisClientService.GetStringKey($"ops_black_token_{r.UserInfo.UcId}");
|
||||
if (!string.IsNullOrEmpty(blacktoken))
|
||||
{
|
||||
this.RemoveLoginInfo(blacktoken);
|
||||
_redisClientService.RemoveStringKey($"ops_black_token_{r.UserInfo.UcId}");
|
||||
}
|
||||
if (r == null || r.UserInfo == null || r.TokenInfo == null)
|
||||
return Result<LoginInDto>.ReFailure("授权失败,请重新登录", 401);
|
||||
return Result<LoginInDto>.ReSuccess(r);
|
||||
}
|
||||
else
|
||||
{
|
||||
var errno_text = "登陆失败:" + jObject["errmsg"];
|
||||
r.SignedIn = false;
|
||||
string datajson_sessid = jObject["data"]["uc_sessid"];
|
||||
//调用单点的退出接口
|
||||
result = _httpClientHelp.GetHttp(_soaOptions.Url + "/uc/authorize/signin_out", true, cookieValue: datajson_sessid);
|
||||
jObject = JsonObject.Parse(result);
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
_logger.LogInformation("用户信息登录:" + errno_text);
|
||||
return Result<LoginInDto>.ReFailure("拒绝用户证书试图访问此web站点,请与站点管理员联系以建立用户证书权限", 403);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Result<LoginInDto>.ReFailure(jObject["errmsg"], jObject["errno"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return Result<LoginInDto>.ReFailure("授权失败,请重新登录", 401);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录退出
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> LoginOutAsync(LoginOutDto dto)
|
||||
{
|
||||
_logger.LogInformation("dto_SessionId:" + dto.SessionId);
|
||||
//2.请求PHP单点登出接口
|
||||
JsonObject reqData = new JsonObject();
|
||||
reqData.Add("app_id", _soaOptions.AppId);
|
||||
reqData.Add("app_secret", _soaOptions.AppSecret);
|
||||
reqData.Add("access_token", dto.AccessToken);
|
||||
string result = _httpClientHelp.PostHttp(_soaOptions.Url + "/uc/authorize/signin_out", reqData, true, dto.SessionId);
|
||||
_logger.LogInformation("退出登录返回:" + result);
|
||||
var jObject = JsonObject.Parse(result);
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
//设置本地token的缓存:为黑名单的token做存储
|
||||
await CacheOutToken(dto);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
else
|
||||
{
|
||||
return Result.ReFailure(jObject["errmsg"], jObject["errno"]);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 刷新token
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<Result<LoginInDto>> RefreshToken(string Token, string RefreshToken)
|
||||
{
|
||||
_logger.LogInformation("RefreshToken:" + RefreshToken);
|
||||
//1.根据旧token 找到登录对象
|
||||
var loginInfo = _redisClientService.GetStringKey<LoginInDto>($"ops_login_{Token}");
|
||||
//2.请求PHP单点登出接口
|
||||
JsonObject reqData = new JsonObject();
|
||||
reqData.Add("app_id", _soaOptions.AppId);
|
||||
reqData.Add("app_secret", _soaOptions.AppSecret);
|
||||
reqData.Add("refresh_token", RefreshToken);
|
||||
string result = _httpClientHelp.PostHttp(_soaOptions.Url + "/uc/authorize/refresh_token", reqData, true, Token);
|
||||
var jObject = JsonObject.Parse(result);
|
||||
|
||||
LoginInDto r = new LoginInDto();
|
||||
r.UserInfo = new UserInfoDto();
|
||||
r.TokenInfo = new AccessTokenDto();
|
||||
|
||||
if (jObject["errno"] == 0)
|
||||
{
|
||||
string datajson = jObject["data"].ToString();
|
||||
var _loginDto = JsonConvert.DeserializeObject<LoginTempDto>(datajson);
|
||||
r.UserInfo = loginInfo.UserInfo;
|
||||
r.SignedIn = true;
|
||||
var token = await CreateToken(loginInfo.UserInfo, _loginDto, Token);
|
||||
r.TokenInfo = token;
|
||||
loginInfo.TokenInfo = token;
|
||||
|
||||
var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
|
||||
_redisClientService.SetStringKey<LoginInDto>($"ops_login_{token.Token}", loginInfo, ops_login_time);
|
||||
return Result<LoginInDto>.ReSuccess(r);
|
||||
}
|
||||
else
|
||||
{
|
||||
//失败了1:就把登录的token清除 2: ucid添加到黑名单
|
||||
var time = new TimeSpan(r.TokenInfo.Expired.Day, r.TokenInfo.Expired.Hour, r.TokenInfo.Expired.Minute, r.TokenInfo.Expired.Second, r.TokenInfo.Expired.Millisecond);
|
||||
_redisClientService.SetStringKey($"ops_black_token_{r.UserInfo.UcId}", r.TokenInfo.Token, time);
|
||||
this.RemoveLoginInfo(r.TokenInfo.Token);
|
||||
r.SignedIn = false;
|
||||
return Result<LoginInDto>.ReFailure(jObject["errmsg"], jObject["errno"]);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
/// <param name="ucid"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <param name="expires_in"></param>
|
||||
/// <returns></returns>
|
||||
public async Task LoginOutSingleAsync(int ucid, string token, int expires_in)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
var cache_token = _redisClientService.GetStringKey($"ops_black_token_{ucid}");
|
||||
if (string.IsNullOrEmpty(cache_token))
|
||||
{
|
||||
DateTime expires_time = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)).AddSeconds(expires_in);
|
||||
var time = new TimeSpan(expires_time.Day, expires_time.Hour, expires_time.Minute, expires_time.Second, expires_time.Millisecond);
|
||||
_redisClientService.SetStringKey($"ops_black_token_{ucid}", token, time);
|
||||
this.RemoveLoginInfo(token);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点退出通知token失效
|
||||
/// </summary>
|
||||
/// <param name="SeesionId">这个是单点传过来的SeesionId</param>
|
||||
/// <returns></returns>
|
||||
public async Task LoginOutSingleAsync(string SeesionId)
|
||||
{
|
||||
var logininfo = _redisClientService.GetStringKey<LoginInDto>($"ops_login_{SeesionId}");
|
||||
await Task.Run(() =>
|
||||
{
|
||||
if (logininfo != null)
|
||||
{
|
||||
var cache_token = _redisClientService.GetStringKey($"ops_black_token_{logininfo.UserInfo.UcId}");
|
||||
if (string.IsNullOrEmpty(cache_token))
|
||||
{
|
||||
DateTime expires_time = logininfo.TokenInfo.Expired;
|
||||
var time = new TimeSpan(expires_time.Day, expires_time.Hour, expires_time.Minute, expires_time.Second, expires_time.Millisecond);
|
||||
_redisClientService.SetStringKey($"ops_black_token_{logininfo.UserInfo.UcId}", logininfo.TokenInfo.Token, time);
|
||||
this.RemoveLoginInfo(logininfo.TokenInfo.Token);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 缓存退出的token
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
private async Task CacheOutToken(LoginOutDto dto)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
if (!string.IsNullOrEmpty(dto.AccessToken))
|
||||
{
|
||||
var time = new TimeSpan(dto.ExpiresIn.Day, dto.ExpiresIn.Hour, dto.ExpiresIn.Minute, dto.ExpiresIn.Second, dto.ExpiresIn.Millisecond);
|
||||
_redisClientService.SetStringKey($"ops_black_token_{dto.UcId}", dto.AccessToken, time);
|
||||
this.RemoveLoginInfo(dto.Token);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取登录后的信息
|
||||
/// </summary>
|
||||
/// <param name="authorization"></param>
|
||||
/// <returns></returns>
|
||||
public LoginInDto GetLoginInfo(string authorization)
|
||||
{
|
||||
string token = string.Empty;
|
||||
if (authorization.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
token = authorization.Substring("Bearer ".Length).Trim();
|
||||
}
|
||||
var logininfo = _redisClientService.GetStringKey<LoginInDto>($"ops_login_{token}");
|
||||
return logininfo;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除登录后的用户信息
|
||||
/// </summary>
|
||||
/// <param name="token"></param>
|
||||
private void RemoveLoginInfo(string token)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(token))
|
||||
{
|
||||
var info = _redisClientService.GetStringKey<LoginInDto>($"ops_login_{token}");
|
||||
if (info != null)
|
||||
{
|
||||
_redisClientService.RemoveStringKey($"ops_login_{token}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点-在线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> Online(string sessionId)
|
||||
{
|
||||
var request = new { PHPSESSID = sessionId };
|
||||
string result = _httpClientHelp.PostHttpNoData(_soaOptions.Url + "/uc/user/online.html?app_id=" + _soaOptions.AppId, sessionId);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点-下线接口
|
||||
/// </summary>
|
||||
/// <param name="sessionId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> Offline(string sessionId)
|
||||
{
|
||||
var request = new { PHPSESSID = sessionId };
|
||||
string result = _httpClientHelp.PostHttpNoData(_soaOptions.Url + "/uc/user/offline.html?app_id=" + _soaOptions.AppId, sessionId);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
}
|
||||
}
|
||||
93
src/WMS.Web.Domain/Services/Public/RedisClientService.cs
Normal file
93
src/WMS.Web.Domain/Services/Public/RedisClientService.cs
Normal file
@@ -0,0 +1,93 @@
|
||||
using Microsoft.Extensions.Options;
|
||||
using Newtonsoft.Json;
|
||||
using StackExchange.Redis;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using WMS.Web.Domain.Options;
|
||||
|
||||
namespace WMS.Web.Domain.Services.Public
|
||||
{
|
||||
public class RedisClientService
|
||||
{
|
||||
private static readonly object Locker = new object();
|
||||
|
||||
private ConnectionMultiplexer redisMultiplexer;
|
||||
IDatabase db = null;
|
||||
private readonly AppOptions _options;
|
||||
public RedisClientService(IOptions<AppOptions> options)
|
||||
{
|
||||
_options = options?.Value;
|
||||
redisMultiplexer = ConnectionMultiplexer.Connect(_options.RedisConnectionString);
|
||||
db = redisMultiplexer.GetDatabase();
|
||||
}
|
||||
|
||||
#region String
|
||||
/// <summary>
|
||||
/// 保存单个key value
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="expiry"></param>
|
||||
/// <returns></returns>
|
||||
public bool SetStringKey(string key, string value, TimeSpan? expiry = default(TimeSpan?))
|
||||
{
|
||||
var lastKey = _options.RedisDirectory + ":" + key;
|
||||
return db.StringSet(lastKey, value, expiry);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单个key的值
|
||||
/// </summary>
|
||||
public RedisValue GetStringKey(string key)
|
||||
{
|
||||
var lastKey = _options.RedisDirectory + ":" + key;
|
||||
return db.StringGet(lastKey);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除redis
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public bool RemoveStringKey(string key)
|
||||
{
|
||||
var lastKey = _options.RedisDirectory + ":" + key;
|
||||
return db.KeyDelete(lastKey);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取一个key的对象
|
||||
/// </summary>
|
||||
public T GetStringKey<T>(string key)
|
||||
{
|
||||
if (db == null)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
var lastKey = _options.RedisDirectory + ":" + key;
|
||||
var value = db.StringGet(lastKey);
|
||||
if (value.IsNullOrEmpty)
|
||||
{
|
||||
return default;
|
||||
}
|
||||
return JsonConvert.DeserializeObject<T>(value);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存一个对象
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
public bool SetStringKey<T>(string key, T obj, TimeSpan? expiry = default(TimeSpan?))
|
||||
{
|
||||
if (db == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
var lastKey = _options.RedisDirectory + ":" + key;
|
||||
string json = JsonConvert.SerializeObject(obj);
|
||||
return db.StringSet(lastKey, json, expiry);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
473
src/WMS.Web.Domain/Services/Public/SingleDataService.cs
Normal file
473
src/WMS.Web.Domain/Services/Public/SingleDataService.cs
Normal file
@@ -0,0 +1,473 @@
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto.SingleData;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.IService.Public;
|
||||
using WMS.Web.Domain.Options;
|
||||
using WMS.Web.Domain.Values.Single;
|
||||
|
||||
namespace WMS.Web.Domain.Services.Public
|
||||
{
|
||||
/// <summary>
|
||||
/// 单点数据返回服务
|
||||
/// </summary>
|
||||
public class SingleDataService : ISingleDataService
|
||||
{
|
||||
private readonly AppOptions _options;
|
||||
private readonly IHttpClientService _httpClientService;
|
||||
private readonly ILogger<SingleDataService> _logger;
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
private int hours = 10;//过期时间 默认10小时
|
||||
|
||||
public SingleDataService(IOptions<AppOptions> options, IHttpClientService httpClientService, ILogger<SingleDataService> logger, IMemoryCache memoryCache)
|
||||
{
|
||||
this._memoryCache = memoryCache;
|
||||
this._options = options?.Value;
|
||||
this._httpClientService = httpClientService;
|
||||
this._logger = logger;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据接口方法名和公司ID
|
||||
/// 后端列表查询统一使用
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
public string GetSingleData(SingleAction action, int companyId, int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (id == 0)
|
||||
return "";
|
||||
|
||||
var cache_key = action + "_" + companyId + "_IdGetName";
|
||||
var dic = _memoryCache.Get<Dictionary<int, string>>(cache_key);
|
||||
if (dic == null || dic.Count <= 0 || !dic.ContainsKey(id))
|
||||
{
|
||||
if (dic != null)
|
||||
{
|
||||
|
||||
string no_data_key = cache_key + "_NoData";
|
||||
var cache_id = _memoryCache.Get<bool>(no_data_key);
|
||||
if (cache_id == true) return "";
|
||||
//未找到数据请求
|
||||
if (!dic.ContainsKey(id))
|
||||
{
|
||||
_memoryCache.Set(no_data_key, true, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(30)));
|
||||
}
|
||||
}
|
||||
var list = SingleDataPost<SingleDataResponse>(action, companyId, cache_key);
|
||||
if (list.Count() <= 0) return "";
|
||||
dic = list.ToDictionary(s => s.Id, s => s.Name);
|
||||
_memoryCache.Set(cache_key, dic, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(hours)));
|
||||
}
|
||||
if (!dic.ContainsKey(id)) return "";
|
||||
return dic[id];
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:Action->{action.ToString()},CompanyeId->{companyId},Id->{id},(错误原因)=>{ex.Message}");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据接口方法名和公司ID
|
||||
/// 后端列表查询统一使用
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
public decimal GetSingleDataNumber(SingleAction action, int companyId, int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (id == 0)
|
||||
return 0;
|
||||
|
||||
var cache_key = action + "_" + companyId + "_IdGetNumber";
|
||||
var dic = _memoryCache.Get<Dictionary<int, decimal>>(cache_key);
|
||||
if (dic == null || dic.Count <= 0 || !dic.ContainsKey(id))
|
||||
{
|
||||
if (dic != null)
|
||||
{
|
||||
string no_data_key = cache_key + "_NoData";
|
||||
var cache_id = _memoryCache.Get<bool>(no_data_key);
|
||||
if (cache_id == true) return 0;
|
||||
//未找到数据请求
|
||||
if (!dic.ContainsKey(id))
|
||||
{
|
||||
_memoryCache.Set(no_data_key, true, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(30)));
|
||||
}
|
||||
}
|
||||
|
||||
var list = SingleDataPost<SingleDataResponse>(action, companyId, cache_key);
|
||||
if (list.Count() <= 0) return 0;
|
||||
|
||||
dic = list.ToDictionary(s => s.Id, s => s.Number);
|
||||
_memoryCache.Set(cache_key, dic, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(hours)));
|
||||
}
|
||||
|
||||
if (!dic.ContainsKey(id)) return 0;
|
||||
return dic[id];
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据接口方法名和公司ID
|
||||
/// 后端列表查询统一使用
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
public string GetSingleDataCode(SingleAction action, int companyId, int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (id == 0)
|
||||
return "";
|
||||
|
||||
var cache_key = action + "_" + companyId + "_IdGetCode";
|
||||
var dic = _memoryCache.Get<Dictionary<int, string>>(cache_key);
|
||||
if (dic == null || dic.Count <= 0 || !dic.ContainsKey(id))
|
||||
{
|
||||
if (dic != null)
|
||||
{
|
||||
string no_data_key = cache_key + "_NoData";
|
||||
var cache_id = _memoryCache.Get<bool>(no_data_key);
|
||||
if (cache_id == true) return "";
|
||||
//未找到数据请求
|
||||
if (!dic.ContainsKey(id))
|
||||
{
|
||||
_memoryCache.Set(no_data_key, true, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(30)));
|
||||
}
|
||||
}
|
||||
|
||||
var list = SingleDataPost<SingleDataResponse>(action, companyId, cache_key);
|
||||
if (list.Count() <= 0) return "";
|
||||
|
||||
dic = list.ToDictionary(s => s.Id, s => s.Code);
|
||||
_memoryCache.Set(cache_key, dic, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(hours)));
|
||||
}
|
||||
|
||||
if (!dic.ContainsKey(id)) return "";
|
||||
return dic[id];
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 根据名字模糊匹配
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
public List<int> GetIdsBySingleName(SingleAction action, int companyId, string name)
|
||||
{
|
||||
try
|
||||
{
|
||||
var cache_key = action + "_" + companyId + "_NameGetIds";
|
||||
var dic = _memoryCache.Get<Dictionary<int, string>>(cache_key);
|
||||
if (dic == null || dic.Count <= 0)
|
||||
{
|
||||
var list = SingleDataPost<SingleDataResponse>(action, companyId, cache_key);
|
||||
if (list.Count() <= 0) return new List<int>();
|
||||
|
||||
dic = list.ToDictionary(s => s.Id, s => s.Name);
|
||||
_memoryCache.Set(cache_key, dic, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(hours)));
|
||||
}
|
||||
var res = from d in dic where d.Value.Contains(name) select d;
|
||||
return res.Select(s => s.Key).ToList();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return new List<int>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:根据接口方法名和公司ID
|
||||
/// 后端列表查询统一使用
|
||||
/// </summary>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
public string GetSingleData(SingleAction action, int companyId, string code)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(code))
|
||||
return "";
|
||||
|
||||
var cache_key = action + "_" + companyId + "_CodeGetName";
|
||||
var dic = _memoryCache.Get<Dictionary<string, string>>(cache_key);
|
||||
//仓库和客户仓库 不能为空了就重新请求 应为 这里是从仓库和客户仓库取值 有一个必然取不到
|
||||
if (dic == null || dic.Count <= 0)
|
||||
{
|
||||
if (dic != null)
|
||||
{
|
||||
string no_data_key = cache_key + "_NoData";
|
||||
var cache_id = _memoryCache.Get<bool>(no_data_key);
|
||||
if (cache_id == true) return "";
|
||||
//未找到数据请求
|
||||
if (!dic.ContainsKey(code))
|
||||
{
|
||||
_memoryCache.Set(no_data_key, true, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(30)));
|
||||
}
|
||||
}
|
||||
|
||||
var list = SingleDataPost<SingleDataResponse>(action, companyId, cache_key);
|
||||
if (list.Count() <= 0) return "";
|
||||
|
||||
dic = list.ToDictionary(s => s.Code, s => s.Name);
|
||||
_memoryCache.Set(cache_key, dic, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(hours)));
|
||||
}
|
||||
|
||||
if (!dic.ContainsKey(code)) return "";
|
||||
return dic[code];
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据集合:泛型-同步
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
public List<T> GetSingleData<T>(SingleAction action, int companyId) where T : class
|
||||
{
|
||||
try
|
||||
{
|
||||
var cache_key = action + "_list_" + companyId;
|
||||
var list = _memoryCache.Get<List<T>>(cache_key);
|
||||
if (list == null || list.Count <= 0)
|
||||
list = SingleDataPost<T>(action, companyId, cache_key);
|
||||
|
||||
return list;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据集合:泛型-异步
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<T>> GetSingleDataAsync<T>(SingleAction action, int companyId) where T : class
|
||||
{
|
||||
try
|
||||
{
|
||||
var cache_key = action + "_list_" + companyId;
|
||||
var list = _memoryCache.Get<List<T>>(cache_key);
|
||||
if (list == null || list.Count <= 0)
|
||||
list = await SingleDataPostAsync<T>(action, companyId, cache_key);
|
||||
|
||||
return list;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据集合:泛型-异步-无缓存
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<T>> GetSingleDataNoCacheAsync<T>(SingleAction action, int companyId) where T : class
|
||||
{
|
||||
try
|
||||
{
|
||||
var list = await SingleDataPostAsync<T>(action, companyId, "");
|
||||
return list;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点数据:可对接全部接口
|
||||
/// </summary>
|
||||
/// <typeparam name="T">返回对象</typeparam>
|
||||
/// <typeparam name="X">请求对象</typeparam>
|
||||
/// <typeparam name="Y">方法名称</typeparam>
|
||||
/// <param name="dto">请求对象</param>
|
||||
/// <param name="action">方法名称</param>
|
||||
/// <param name="type">控制器名称</param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> GetSingleData<T, X, Y>(X dto, Y action, SingleControllerType type = SingleControllerType.Single) where T : class
|
||||
{
|
||||
try
|
||||
{
|
||||
var para = JsonExtensions.SerializeToJson(dto);
|
||||
var cache_key = action + "_list_" + type + "_" + para;
|
||||
var list = _memoryCache.Get<T>(cache_key);
|
||||
if (list == null)
|
||||
{
|
||||
var url = _options.SingleBaseUrl + "/" + type.ToString() + "/" + action.ToString();
|
||||
var result = await _httpClientService.PostAsync<T>(url, para);
|
||||
_memoryCache.Set(cache_key, result, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(hours)));
|
||||
}
|
||||
return _memoryCache.Get<T>(cache_key);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return default(T);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单点数据:可对接全部接口
|
||||
/// </summary>
|
||||
/// <typeparam name="T">返回对象</typeparam>
|
||||
/// <typeparam name="X">请求对象</typeparam>
|
||||
/// <typeparam name="Y">方法名称</typeparam>
|
||||
/// <param name="dto">请求对象</param>
|
||||
/// <param name="action">方法名称</param>
|
||||
/// <param name="type">控制器名称</param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> GetSingleDataNoCache<T, X, Y>(X dto, Y action, SingleControllerType type = SingleControllerType.Single) where T : class
|
||||
{
|
||||
try
|
||||
{
|
||||
var para = JsonExtensions.SerializeToJson(dto);
|
||||
var url = _options.SingleBaseUrl + "/" + type.ToString() + "/" + action.ToString();
|
||||
var result = await _httpClientService.PostAsync<T>(url, para);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return default(T);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单点数据:配置项接口
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <typeparam name="X"></typeparam>
|
||||
/// <param name="dto"></param>
|
||||
/// <param name="action"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<T> GetSysConfigData<T, X>(X dto, SysConfigAction action)
|
||||
{
|
||||
try
|
||||
{
|
||||
var para = JsonExtensions.SerializeToJson(dto);
|
||||
var url = _options.SingleBaseUrl + "/" + SingleControllerType.SysConfig.ToString() + "/" + action.ToString();
|
||||
var result = await _httpClientService.PostAsync<T>(url, para);
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError($"请求单点数据错误:{action.ToString()}=>{ex.Message}");
|
||||
return default(T);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#region 私有方法
|
||||
|
||||
/// <summary>
|
||||
/// 请求单点服务接口:同步
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
private List<T> SingleDataPost<T>(SingleAction action, int companyId, string cache_key)
|
||||
{
|
||||
var dto = new SingleDataRequest(companyId);
|
||||
//var para = JsonExtensions.SerializeToJson(dto);
|
||||
var para = JsonSerializer.Serialize(dto);
|
||||
var url = _options.SingleBaseUrl + "/" + SingleControllerType.Single.ToString() + "/" + action.ToString();
|
||||
var result = _httpClientService.PostAsync<ResultList<T>>(url, para).GetAwaiter().GetResult();
|
||||
if (!result.Success)
|
||||
return new List<T>();
|
||||
return result.Data.ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 请求单点服务接口:异步
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="action"></param>
|
||||
/// <param name="companyId"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<List<T>> SingleDataPostAsync<T>(SingleAction action, int companyId, string cache_key)
|
||||
{
|
||||
var dto = new SingleDataRequest(companyId);
|
||||
var para = JsonSerializer.Serialize(dto);
|
||||
var url = _options.SingleBaseUrl + "/" + SingleControllerType.Single.ToString() + "/" + action.ToString();
|
||||
var result = await _httpClientService.PostAsync<ResultList<T>>(url, para);
|
||||
if (result.Success)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(cache_key))
|
||||
{
|
||||
_memoryCache.Set(cache_key, result.Data.ToList(), new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(hours)));
|
||||
return _memoryCache.Get<List<T>>(cache_key);
|
||||
}
|
||||
return result.Data.ToList();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
/// <summary>
|
||||
/// 获取客户仓库
|
||||
/// </summary>
|
||||
/// <param name="companyId"></param>
|
||||
/// <param name="customerStockCode"></param>
|
||||
/// <returns></returns>
|
||||
public string GetCustomerStock(int companyId, string customerStockCode)
|
||||
{
|
||||
return string.IsNullOrEmpty(this.GetSingleData(SingleAction.CustomerStocks, companyId, customerStockCode)) ?
|
||||
this.GetSingleData(SingleAction.Stocks, companyId, customerStockCode) :
|
||||
this.GetSingleData(SingleAction.CustomerStocks, companyId, customerStockCode);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
13
src/WMS.Web.Domain/Values/ResultCodes.cs
Normal file
13
src/WMS.Web.Domain/Values/ResultCodes.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Domain.Values
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误提示信息
|
||||
/// </summary>
|
||||
public partial class ResultCodes
|
||||
{
|
||||
}
|
||||
}
|
||||
105
src/WMS.Web.Domain/Values/Single/SingleAction.cs
Normal file
105
src/WMS.Web.Domain/Values/Single/SingleAction.cs
Normal file
@@ -0,0 +1,105 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using WMS.Web.Core;
|
||||
|
||||
namespace WMS.Web.Domain.Values.Single
|
||||
{
|
||||
/// <summary>
|
||||
/// 对接单点的接口方法-枚举
|
||||
/// </summary>
|
||||
public enum SingleAction
|
||||
{
|
||||
/// <summary>
|
||||
/// 组织集合
|
||||
/// </summary>
|
||||
[EnumRemark("组织")]
|
||||
Orgs = 1,
|
||||
/// <summary>
|
||||
/// 用户集合
|
||||
/// </summary>
|
||||
[EnumRemark("用户")]
|
||||
Users = 2,
|
||||
/// <summary>
|
||||
/// 人员集合
|
||||
/// </summary>
|
||||
[EnumRemark("人员")]
|
||||
Staffs = 3,
|
||||
/// <summary>
|
||||
/// 供应商集合
|
||||
/// </summary>
|
||||
[EnumRemark("供应商")]
|
||||
Suppliers = 4,
|
||||
/// <summary>
|
||||
/// 客户集合
|
||||
/// </summary>
|
||||
[EnumRemark("客户")]
|
||||
Customers = 5,
|
||||
/// <summary>
|
||||
/// 收款条件集合
|
||||
/// </summary>
|
||||
[EnumRemark("收款条件")]
|
||||
CollectionTerms = 6,
|
||||
/// <summary>
|
||||
/// 付款条件集合
|
||||
/// </summary>
|
||||
[EnumRemark("付款条件")]
|
||||
PaymentTerms = 7,
|
||||
/// <summary>
|
||||
/// 结算方式集合
|
||||
/// </summary>
|
||||
[EnumRemark("结算方式")]
|
||||
SettlementMethods = 8,
|
||||
/// <summary>
|
||||
/// 结算币别集合
|
||||
/// </summary>
|
||||
[EnumRemark("结算币别")]
|
||||
SettlementCurrencys = 9,
|
||||
/// <summary>
|
||||
/// 税率集合
|
||||
/// </summary>
|
||||
[EnumRemark("税率")]
|
||||
TaxRates = 10,
|
||||
/// <summary>
|
||||
/// 汇率集合
|
||||
/// </summary>
|
||||
[EnumRemark("汇率")]
|
||||
ExchangeRates = 11,
|
||||
/// <summary>
|
||||
/// 仓库集合
|
||||
/// </summary>
|
||||
[EnumRemark("仓库")]
|
||||
Stocks = 12,
|
||||
/// <summary>
|
||||
/// 单位集合
|
||||
/// </summary>
|
||||
[EnumRemark("单位")]
|
||||
Units = 13,
|
||||
/// <summary>
|
||||
/// 客户仓库集合
|
||||
/// </summary>
|
||||
[EnumRemark("客户仓库")]
|
||||
CustomerStocks = 14,
|
||||
/// <summary>
|
||||
/// 部门集合
|
||||
/// </summary>
|
||||
[EnumRemark("部门")]
|
||||
Depts = 15,
|
||||
/// <summary>
|
||||
/// 仓库211集合
|
||||
/// </summary>
|
||||
[EnumRemark("仓库211")]
|
||||
StocksWith211 = 16,
|
||||
/// <summary>
|
||||
/// 供应商默认联系人集合
|
||||
/// </summary>
|
||||
[EnumRemark("供应商默认联系人")]
|
||||
SuppliersContacts = 17,
|
||||
/// <summary>
|
||||
/// 菜单集合
|
||||
/// </summary>
|
||||
[EnumRemark("菜单")]
|
||||
Menus = 18,
|
||||
|
||||
}
|
||||
}
|
||||
29
src/WMS.Web.Domain/Values/Single/SingleControllerType.cs
Normal file
29
src/WMS.Web.Domain/Values/Single/SingleControllerType.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Domain.Values.Single
|
||||
{
|
||||
/// <summary>
|
||||
/// 单点-控制器枚举
|
||||
/// </summary>
|
||||
public enum SingleControllerType
|
||||
{
|
||||
/// <summary>
|
||||
/// 单点OPS列表数据-控制器
|
||||
/// </summary>
|
||||
Single = 1,
|
||||
/// <summary>
|
||||
/// 单点配置项数据-控制器
|
||||
/// </summary>
|
||||
SysConfig = 2,
|
||||
/// <summary>
|
||||
/// 单点登录项数据-控制器
|
||||
/// </summary>
|
||||
Login = 3,
|
||||
/// <summary>
|
||||
/// 单点公共接口数据-控制器
|
||||
/// </summary>
|
||||
Public = 4
|
||||
}
|
||||
}
|
||||
42
src/WMS.Web.Domain/Values/Single/SingleLoginAction.cs
Normal file
42
src/WMS.Web.Domain/Values/Single/SingleLoginAction.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Domain.Values.Single
|
||||
{
|
||||
/// <summary>
|
||||
/// 单点数据接口-登录要使用的数据接口-方法枚举
|
||||
/// </summary>
|
||||
public enum SingleLoginAction
|
||||
{
|
||||
/// <summary>
|
||||
/// 菜单
|
||||
/// </summary>
|
||||
Menus = 1,
|
||||
/// <summary>
|
||||
/// 人员
|
||||
/// </summary>
|
||||
Staff = 2,
|
||||
/// <summary>
|
||||
/// 公司
|
||||
/// </summary>
|
||||
Company = 3,
|
||||
/// <summary>
|
||||
/// 供应商
|
||||
/// </summary>
|
||||
Supplier = 4,
|
||||
/// <summary>
|
||||
/// 客户
|
||||
/// </summary>
|
||||
Customer = 5,
|
||||
/// <summary>
|
||||
/// 全部信息
|
||||
/// </summary>
|
||||
All = 6,
|
||||
/// <summary>
|
||||
/// 公司信息
|
||||
/// </summary>
|
||||
CompanyInfo = 7,
|
||||
|
||||
}
|
||||
}
|
||||
186
src/WMS.Web.Domain/Values/Single/SysConfigAction.cs
Normal file
186
src/WMS.Web.Domain/Values/Single/SysConfigAction.cs
Normal file
@@ -0,0 +1,186 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Domain.Values.Single
|
||||
{
|
||||
/// <summary>
|
||||
/// 单点数据:配置项和公共接口的方法枚举值
|
||||
/// </summary>
|
||||
public enum SysConfigAction
|
||||
{
|
||||
/// <summary>
|
||||
/// 供应商-根据名称和公司
|
||||
/// </summary>
|
||||
GetSupplierByNameAndCompany = 1,
|
||||
/// <summary>
|
||||
/// 组织-根据公司
|
||||
/// </summary>
|
||||
GetOrgByCompany = 2,
|
||||
/// <summary>
|
||||
/// 部门-根据组织和公司
|
||||
/// </summary>
|
||||
GetDeptByOrgAndCompany = 3,
|
||||
/// <summary>
|
||||
/// 人员-根据公司
|
||||
/// </summary>
|
||||
GetStaffByCompany = 4,
|
||||
/// <summary>
|
||||
/// 人员-根据部门和公司
|
||||
/// </summary>
|
||||
GetStaffByDeptAndCompany = 5,
|
||||
/// <summary>
|
||||
/// 人员-根据组织和公司
|
||||
/// </summary>
|
||||
GetStaffByOrgAndCompany = 6,
|
||||
/// <summary>
|
||||
/// 客户-根据公司
|
||||
/// </summary>
|
||||
GetCustomerByCompany = 7,
|
||||
/// <summary>
|
||||
/// 客户-根据客户和组织和公司
|
||||
/// </summary>
|
||||
GetCustomerByCustomerAndOrgAndCompany = 8,
|
||||
/// <summary>
|
||||
/// 客户信息-根据客户和组织和公司
|
||||
/// </summary>
|
||||
GetCustomerInfoByCustomerAndOrgAndCompany = 9,
|
||||
/// <summary>
|
||||
/// 收款条件-根据公司
|
||||
/// </summary>
|
||||
GetCollectionTermsByCompany = 10,
|
||||
/// <summary>
|
||||
/// 付款条件-根据公司
|
||||
/// </summary>
|
||||
GetPaymentTermByCompany = 11,
|
||||
/// <summary>
|
||||
/// 结算方式-根据公司
|
||||
/// </summary>
|
||||
GetSettlementMethodByCompany = 12,
|
||||
/// <summary>
|
||||
/// 结算币别-根据公司
|
||||
/// </summary>
|
||||
GetSettlementCurrencyByCompany = 13,
|
||||
/// <summary>
|
||||
/// 单位-根据公司
|
||||
/// </summary>
|
||||
GetUnitByCompany = 14,
|
||||
/// <summary>
|
||||
/// 单位(部分属性)-根据公司
|
||||
/// </summary>
|
||||
GetUnitPropertyByCompany = 15,
|
||||
/// <summary>
|
||||
/// 税率-根据公司
|
||||
/// </summary>
|
||||
GetTaxRateByCompany = 16,
|
||||
/// <summary>
|
||||
/// 仓库-根据名称和公司
|
||||
/// </summary>
|
||||
GetWarehouseByNameAndCompany = 17,
|
||||
/// <summary>
|
||||
/// 仓库-根据组织和公司
|
||||
/// </summary>
|
||||
GetWarehouseByOrgAndCompany = 18,
|
||||
/// <summary>
|
||||
/// 仓库(不是调拨中转仓)-根据组织和公司
|
||||
/// </summary>
|
||||
GetWarehouseByOrgAndCompanyForNotTransfer = 19,
|
||||
/// <summary>
|
||||
/// 仓库(211)-根据组织和公司
|
||||
/// </summary>
|
||||
GetWarehouseByOrgAndCompanyFor211 = 20,
|
||||
/// <summary>
|
||||
/// 仓库-根据客户和公司
|
||||
/// </summary>
|
||||
GetWareouseByCustomerAndCompany = 21,
|
||||
|
||||
/// <summary>
|
||||
/// 仓位-根据仓库和名称
|
||||
/// </summary>
|
||||
GetChildWarehouseByPid = 22,
|
||||
/// <summary>
|
||||
/// 仓位-根据-
|
||||
/// </summary>
|
||||
GetChildWarehouse = 23,
|
||||
/// <summary>
|
||||
/// 汇率信息-根据原币、目标币和公司
|
||||
/// </summary>
|
||||
GetRateInfoByFromToAndCompany = 24,
|
||||
/// <summary>
|
||||
/// 客户仓库-根据客户和组织和公司
|
||||
/// </summary>
|
||||
GetCustomerStockByCustomerAndOrgAndCompany = 25,
|
||||
/// <summary>
|
||||
/// 付款条件,结算币别,结算方式,采购员,采购部门-根据供应商和组织
|
||||
/// </summary>
|
||||
GetPtAndScAndSmAndBuyerAndDeptBySupplierAndOrg = 26,
|
||||
/// <summary>
|
||||
/// 获取仓库:根据仓库id
|
||||
/// </summary>
|
||||
GetWarehouseByIds = 27,
|
||||
/// <summary>
|
||||
/// 获取库存:根据组织和公司
|
||||
/// </summary>
|
||||
GetCustomerByOrgAndCompany = 28,
|
||||
|
||||
/// <summary>
|
||||
/// 获取客户仓库:根据客户IDS和组织和公司
|
||||
/// </summary>
|
||||
GetCustomerStockByCustomerListAndOrgAndCompany = 29,
|
||||
/// <summary>
|
||||
/// 汇率(所有)
|
||||
/// </summary>
|
||||
GetRateListByFromToAndCompany = 30,
|
||||
|
||||
/// <summary>
|
||||
/// 供应商选择后获取:付款条件,结算币别,结算方式,采购员,采购部门,根据组织IDS
|
||||
/// </summary>
|
||||
GetPtAndScAndSmAndBuyerAndDeptByOrgs = 31,
|
||||
/// <summary>
|
||||
/// 获取客户仓库:根据code集合
|
||||
/// </summary>
|
||||
GetCustomerStockListByCodes = 32,
|
||||
/// <summary>
|
||||
/// 供应商:根据ids
|
||||
/// </summary>
|
||||
GetSupperByIds = 33,
|
||||
/// <summary>
|
||||
/// 根据公司搜索所有仓库(计算补货频次)
|
||||
/// </summary>
|
||||
GetWarehouseReplenDatebyCompany = 34,
|
||||
/// <summary>
|
||||
/// 获取仓库:根据codes
|
||||
/// </summary>
|
||||
GetWarehouseByCodes = 35,
|
||||
/// <summary>
|
||||
/// 获取客户仓库:根据codes
|
||||
/// </summary>
|
||||
GetCustomerStockByCodes = 36,
|
||||
|
||||
/// <summary>
|
||||
/// 获取调拨中转仓库:根据公司
|
||||
/// </summary>
|
||||
GetWarehouseTransferByCompany = 37,
|
||||
/// <summary>
|
||||
/// 获取供应商数据根据ids
|
||||
/// </summary>
|
||||
GetSupperAbout1ByIds = 38,
|
||||
/// <summary>
|
||||
/// 获取仓库:根据默认补货客户
|
||||
/// </summary>
|
||||
GetWarehouseByDefaultReplenishCustomer = 39,
|
||||
/// <summary>
|
||||
/// 获取用户(ID和Name):根据公司
|
||||
/// </summary>
|
||||
GetUsersByCompany = 40,
|
||||
/// <summary>
|
||||
/// 全部部门-根据组织和公司:不处理子级
|
||||
/// </summary>
|
||||
GetDeptAllByOrgAndCompany = 41,
|
||||
|
||||
/// <summary>
|
||||
/// 获取全部员工:根据公司和组织
|
||||
/// </summary>
|
||||
GetStaffAllByOrgAndCompany = 42,
|
||||
}
|
||||
}
|
||||
@@ -13,11 +13,6 @@
|
||||
<ItemGroup>
|
||||
<Folder Include="Entitys\" />
|
||||
<Folder Include="Infrastructure\" />
|
||||
<Folder Include="IService\" />
|
||||
<Folder Include="Mappers\" />
|
||||
<Folder Include="Options\" />
|
||||
<Folder Include="Services\" />
|
||||
<Folder Include="Values\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user