wet 2 years ago
parent 232b5b9d6e
commit 64cbecee1f

@ -1523,601 +1523,6 @@
签名上传
</summary>
</member>
<member name="T:Common.DjyService.ApiBase">
<summary>
api接口基类
</summary>
</member>
<member name="M:Common.DjyService.ApiBase._LogsAdd(System.String,System.String,System.Object,System.String,System.Object)">
<summary>
创建日志
</summary>
<param name="Message">内容</param>
<param name="GroupName"></param>
<param name="DataJson"></param>
<param name="ObjGid"></param>
<param name="ResultJson"></param>
</member>
<member name="M:Common.DjyService.ApiBase.GetDJyUserAuthority(System.String)">
<summary>
获取大简云设置权限
</summary>
<param name="KeyName">keyname标识</param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ApiBase.GetUserInfo(System.Nullable{System.Guid})">
<summary>
获取登录详情信息
</summary>
<param name="UserGid"></param>
</member>
<member name="M:Common.DjyService.ApiBase.GetUserAuthorityToFormDto(System.String,System.Int32)">
<summary>
统一获取大简云权限查询权限的userid companyid 没有权限则指定userid和companyid 为不存的guid值
</summary>
<typeparam name="T"></typeparam>
<param name="BindData"></param>
<param name="KeyName">模块keyname标识</param>
<param name="type">0 查询查看权限 1 操作更新权限 默认 0</param>
<returns></returns>
</member>
<member name="P:Common.DjyService.ApiBase.GetLoginId">
<summary>
获取登录Id
</summary>
</member>
<member name="P:Common.DjyService.ApiBase.GetLoginType">
<summary>
获取登录类型
</summary>
</member>
<member name="M:Common.DjyService.ApiBase.GetClaimsValue(System.String,System.Boolean)">
<summary>
根据key获取claims值 没有则返回null
</summary>
<param name="Key"></param>
<param name="IsDecrtypt">是否是加密</param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ApiBase._DecryptDES(System.String)">
<summary>
DES解密
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="T:Common.DjyService.ApiBase`1">
<summary>
api接口基类
</summary>
<typeparam name="IS">接口类型比如 Iservice</typeparam>
</member>
<member name="F:Common.DjyService.ApiBase`1._server">
<summary>
</summary>
</member>
<member name="M:Common.DjyService.ApiBase`1._InvokeServer(System.String,System.Object[])">
<summary>
执行指定的方法
</summary>
<param name="methodName">方法名称</param>
<param name="parameters">参数对象队列</param>
<returns></returns>
</member>
<member name="T:Common.DjyService.ApiBase`3">
<summary>
api接口基类
</summary>
<typeparam name="IS">接口类型比如 Iservice</typeparam>
<typeparam name="D">Dto Model</typeparam>
<typeparam name="T">Tables数据表model</typeparam>
</member>
<member name="M:Common.DjyService.ApiBase`3._GetId(System.Int64)">
<summary>
根据Id获取实体
</summary>
<param name="Id"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ApiBase`3._Add(`2)">
<summary>
基础的创建接口 提交创建对象
</summary>
<param name="Dto"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ApiBase`3._Up(`2)">
<summary>
最基础的更新接口 传递要更新的数据对象 必须有Id
</summary>
<param name="Dto"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ApiBase`3._Del(System.Int64[])">
<summary>
最基础的删除接口 [1,2,3]
</summary>
<param name="Idlist"></param>
<returns></returns>
</member>
<member name="T:Common.DjyService.AutoMapperConfig">
<summary>
automapper自动映射配置
</summary>
</member>
<member name="M:Common.DjyService.AutoMapperExt.MapTo``1(System.Object)">
<summary>
类型映射
</summary>
</member>
<member name="M:Common.DjyService.AutoMapperExt.MapToList``1(System.Collections.IEnumerable)">
<summary>
集合列表类型映射
</summary>
</member>
<member name="M:Common.DjyService.AutoMapperExt.MapToList``2(System.Collections.Generic.IEnumerable{``0})">
<summary>
集合列表类型映射
</summary>
</member>
<member name="M:Common.DjyService.AutoMapperExt.MapTo``2(``0,``1)">
<summary>
类型映射
</summary>
</member>
<member name="T:Common.DjyService.DbList">
<summary>
数据库结构体
</summary>
</member>
<member name="F:Common.DjyService.DbList.djydb">
<summary>
独立的大简云publice库
</summary>
</member>
<member name="F:Common.DjyService.DbList.djyolddb">
<summary>
大简云平台老库
</summary>
</member>
<member name="F:Common.DjyService.DbList.AMSCenter">
<summary>
AMS
</summary>
</member>
<member name="F:Common.DjyService.DbList.Logsdb">
<summary>
日志库
</summary>
</member>
<member name="F:Common.DjyService.DbList.Common">
<summary>
Common库
</summary>
</member>
<member name="T:Common.DjyService.DbContext">
<summary>
数据库操作类
</summary>
</member>
<member name="F:Common.DjyService.DbContext.DbBus">
<summary>
数据库连接池
</summary>
</member>
<member name="F:Common.DjyService.DbContext.DbRedis">
<summary>
RedisDB
</summary>
</member>
<member name="M:Common.DjyService.DbContext.DbBusInit">
<summary>
数据库连接池初始化
</summary>
<returns></returns>
</member>
<member name="T:Common.DjyService.DjyTools">
<summary>
常用功能工具
</summary>
</member>
<member name="M:Common.DjyService.DjyTools.RedisSet``1(System.String,``0,System.Int32)">
<summary>
redis 缓存写入
</summary>
<typeparam name="T"></typeparam>
<param name="setData"></param>
<param name="Key"></param>
<param name="TimeOut">过期秒数</param>
<returns></returns>
</member>
<member name="M:Common.DjyService.DjyTools.RedisGet``1(System.String)">
<summary>
读取redis中的对象数据 不存在返回null
</summary>
<typeparam name="T"></typeparam>
<param name="Key"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.DjyTools.EmailSendOnLogs(System.String,System.String,System.String,System.String,System.String)">
<summary>
</summary>
<param name="emailArray">逗号间隔的Email地址</param>
<param name="Subject">Email主题</param>
<param name="bodyhtml">Email内容</param>
<param name="SendName">发件人</param>
<returns></returns>
</member>
<member name="M:Common.DjyService.DjyTools.EmailSendOnLogs(System.Collections.Generic.List{System.String},System.String,System.String,System.String,System.String,System.Collections.Generic.List{Common.Tools.Email.MailFile},Common.Tools.Email.SendServerConfigurationEntity)">
<summary>
Email发送
</summary>
<param name="email">收件人</param>
<param name="Subject">Email主题</param>
<param name="bodyhtml">Email内容</param>
<param name="SendName">发件人</param>
<param name="SendName">附件</param>
</member>
<member name="M:Common.DjyService.DjyTools.EmailSendOnLogs(System.Collections.Generic.List{System.String},System.String,System.String,System.String,System.String)">
<summary>
Email发送
</summary>
<param name="email">收件人</param>
<param name="Subject">Email主题</param>
<param name="bodyhtml">Email内容</param>
<param name="SendName">发件人</param>
</member>
<!-- Badly formed XML comment ignored for member "M:Common.DjyService.DjyTools.PostOnLogs``1(``0,System.String,System.String,Common.Tools.PsotType,System.Collections.Generic.List{Common.Tools.PostFileListEntity},System.String,System.Boolean)" -->
<member name="M:Common.DjyService.DjyTools.GetOnLogs``1(``0,System.String,System.String,System.String)">
<summary>
Get 请求
</summary>
<typeparam name="T"></typeparam>
<param name="RequestUrl"></param>
<param name="Getdata"></param>
<param name="Token"></param>
<returns></returns>
</member>
<member name="T:Common.DjyService.DjyUserService">
<summary>
</summary>
</member>
<member name="M:Common.DjyService.DjyUserService.GetUserAuthorityList(Common.DJYModel.DJyUserAuthorityDto)">
<summary>
获取大简云用户权限列表 查询条件[KeyName]
</summary>
<returns></returns>
</member>
<member name="M:Common.DjyService.FinanceService.Expend(Common.DJYModel.CustFee,System.Int32)">
<summary>
</summary>
<param name="Dto"></param>
<param name="exptype">1验证是否可以扣款 2扣除操作 </param>
<returns></returns>
</member>
<member name="T:Common.DjyService.ServBase">
<summary>
服务基类
</summary>
</member>
<member name="M:Common.DjyService.ServBase.GetUserInfo(System.String)">
<summary>
获取登录者账户详情信息
</summary>
<param name="UserId"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase._LogsAdd(System.String,System.String,System.Object)">
<summary>
创建日志
</summary>
<param name="Message">消息</param>
<param name="ObjName">触发数据对象或分组</param>
<param name="DataJson">触发数据</param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase._LogsAdd(System.String,System.String,System.Object,System.String,System.Object,System.Boolean)">
<summary>
创建日志
</summary>
<param name="Message">消息</param>
<param name="ObjName">触发数据对象或分组</param>
<param name="DataJson">触发数据</param>
<param name="ObjGid">触发数据guid</param>
<param name="ResultJson">返回的数据</param>
<param name="JsonNotWebOption">true 属性原型 false 小驼峰模式</param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase._LogsAdd(Common.DJYModel.tb_sys_Logs)">
<summary>
创建日志
</summary>
<param name="Logs"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase._LogsAdd(System.Collections.Generic.List{Common.DJYModel.tb_sys_Logs})">
<summary>
创建日志
</summary>
<param name="DtoList"></param>
<returns></returns>
</member>
<member name="T:Common.DjyService.ServBase`2">
<summary>
服务基类
</summary>
<typeparam name="T">表名</typeparam>
<typeparam name="D">Dto 名称</typeparam>
</member>
<member name="M:Common.DjyService.ServBase`2.#ctor(System.String)">
<summary>
设置 数据库连接池KeyName
</summary>
<param name="DbconnName">数据库连接池KeyName</param>
</member>
<member name="P:Common.DjyService.ServBase`2.DbKeyName">
<summary>
数据库链接池KeyName
</summary>
</member>
<member name="M:Common.DjyService.ServBase`2.Del(System.Nullable{System.Guid}[])">
<summary>
gid批量删除
</summary>
<param name="gidlist"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase`2.Del(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
条件删除
</summary>
<param name="Where"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase`2.GetList(`0,Common.DJYModel.ApiFromDto)">
<summary>
根据Dto条件查询
</summary>
<param name="Dto"></param>
<param name="Page"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase`2.GetList(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},Common.DJYModel.ApiFromDto)">
<summary>
条件查询
</summary>
<param name="Where"></param>
<param name="Page"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase`2.GetId(System.Nullable{System.Guid})">
<summary>
根据Gid获取
</summary>
<param name="Id"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase`2.GetId(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
条件获取
</summary>
<param name="Where"></param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase`2._UpDataDto(`0@,`0,System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String})">
<summary>
对数据对象更新
</summary>
<typeparam name="T"></typeparam>
<param name="Dto">要更新的目标对象</param>
<param name="UpDto">更新的值</param>
<param name="UpColumn">指定更新字段</param>
<param name="Notcolumn">指定的跳过过滤字段</param>
<returns></returns>
</member>
<member name="M:Common.DjyService.ServBase`2.Up(`0,System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String})">
<summary>
更新 更新规则 自动对比更新数据对 只对修改的进行修改 自动忽略 空值 初始化值
</summary>
<param name="Dto"></param>
<param name="Where">原始数据条件</param>
<param name="Notcolumn">不做修改的列名</param>
<param name="UpColumn">指定要修改的列</param>
<returns></returns>
</member>
<member name="T:Common.Djy.IDjyUserService">
<summary>
大简云用户及其权限相关
</summary>
</member>
<member name="M:Common.Djy.IDjyUserService.GetUserInfo(System.String)">
<summary>
获取用户信息
</summary>
<param name="Gid"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IDjyUserService.GetUserBaseinfo(System.String)">
<summary>
获取用户base信息
</summary>
<param name="usergid"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IDjyUserService.GetUserAuthorityList(Common.DJYModel.DJyUserAuthorityDto)">
<summary>
获取大简云用户权限列表 获取大简云用户权限列表 查询条件[KeyName]
</summary>
<param name="UserId"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IDjyUserService.GetUserAuthority(System.Nullable{System.Guid},System.String)">
<summary>
根据用户ID 和页面权限key获取权限
</summary>
<param name="UserId"></param>
<param name="PageKeyName">页面或后权限Key标识</param>
<returns></returns>
</member>
<member name="T:Common.Djy.IFinanceService">
<summary>
财务相关
</summary>
</member>
<member name="M:Common.Djy.IFinanceService.Expend(Common.DJYModel.CustFee,System.Int32)">
<summary>
消费扣费 并更新钱包 一定要指定 SENDUSERID 作为UserId标准
</summary>
<param name="Dto"></param>
<param name="ExpType">1判断钱包并执行扣款生成记录 2 验证钱包金额是否充足</param>
<returns></returns>
</member>
<member name="T:Common.Djy.IsBase">
<summary>
接口基类
</summary>
</member>
<member name="T:Common.Djy.IsBase`2">
<summary>
接口基类
</summary>
<typeparam name="T">表模型</typeparam>
<typeparam name="D">表Dto模型</typeparam>
</member>
<member name="M:Common.Djy.IsBase`2.GetList(`1,Common.DJYModel.ApiFromDto)">
<summary>
LIst查询
</summary>
<param name="Dto"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IsBase`2.GetList(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},Common.DJYModel.ApiFromDto)">
<summary>
List数据条件查询
</summary>
<param name="Where"></param>
<param name="Page"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IsBase`2.GetId(System.Int64)">
<summary>
根据主键获取详情
</summary>
<param name="Id"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IsBase`2.GetId(System.Nullable{System.Guid})">
<summary>
根据Gid主键获取详情
</summary>
<param name="Id"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IsBase`2.GetId(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
条件查询获取第一条数据实体
</summary>
<param name="Where"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IsBase`2.Up(`0,System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}},System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String})">
<summary>
</summary>
<param name="Dto"></param>
<param name="UpColumns">要更新的字段列表</param>
<param name="Notcolumns">排他不更新的列表</param>
<returns></returns>
</member>
<member name="M:Common.Djy.IsBase`2.Del(System.Nullable{System.Guid}[])">
<summary>
批量删除
</summary>
<param name="gidlist"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IsBase`2.Del(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
条件删除
</summary>
<param name="Where"></param>
<returns></returns>
</member>
<member name="T:Common.Djy.IToolsService">
<summary>
公共工具类使用接口
</summary>
</member>
<member name="M:Common.Djy.IToolsService.GetDjyDict(System.String,Common.DJYModel.ApiFromDto)">
<summary>
获取大简云的数据字典
</summary>
<param name="Key">Key字典类型 用于区分获取数据</param>
<param name="Dto">查询条件 使用 code 数据的编号或编码 和name 名称查询条件</param>
<returns></returns>
</member>
<member name="M:Common.Djy.IToolsService.AutoJob">
<summary>
统一任务启动
</summary>
</member>
<member name="M:Common.Djy.IToolsService.GetDictionaryList(Common.DJYModel.tb_sys_Dictionary,Common.Entity.PageEntity)">
<summary>
获取数据字典
</summary>
<param name="Dto"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IToolsService.UpDictionary(Common.DJYModel.tb_sys_Dictionary)">
<summary>
修改字典参数
</summary>
<param name="Dto"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IToolsService.bindConfigDict(System.Boolean,System.Int32)">
<summary>
初始化版定数据字典到 sysOptionConfig.ConfigDcit配置
</summary>
<param name="Isjob">间隔自动刷新</param>
<param name="jobtime">间隔时间 分钟 默认一分钟</param>
<returns></returns>
</member>
<member name="M:Common.Djy.IToolsService.GetConfigList(System.String)">
<summary>
获取数据字典分组列表
</summary>
<returns></returns>
</member>
<member name="M:Common.Djy.IToolsService.GetConfigKey(System.String,System.String)">
<summary>
获取配置参数
</summary>
<param name="key"></param>
<param name="GroupName">默认sys</param>
</member>
<member name="M:Common.Djy.IToolsService.GetConfigKeyToDictList(System.String,System.String)">
<summary>
获取配置参数转djy标准dict类型对象列表
</summary>
<param name="Key"></param>
<param name="GroupName"></param>
<returns></returns>
</member>
<member name="M:Common.Djy.IToolsService.LogsAdd(System.String,System.String,System.Object,System.String,System.Object)">
<summary>
创建日志
</summary>
<param name="Message">内容</param>
<param name="GroupName"></param>
<param name="DataJson"></param>
<param name="ObjGid"></param>
<param name="ResultJson"></param>
</member>
<member name="T:Common.Entity.CacheProvider">
<summary>
缓存配置实体类

@ -5,12 +5,13 @@ using System.Text;
using System.Threading.Tasks;
using djy.Model;
using Common;
using Common.Djy;
using djy.Model.AmsDto;
using Common.Utilities;
using djy.Model.Ams;
using djy.IService.Djy;
using Common.DJYModel;
namespace djy.Paas.IService
namespace djy.IService.Ams
{
/// <summary>
/// AMS
@ -18,11 +19,11 @@ namespace djy.Paas.IService
public interface IAmsService:IsBase
{
string SaveInfo(AMSDto dto,string userid);
string SaveInfo(AMSDto dto, User user);
TableData Load(AMSQuery req, string userid);
TableData Load(AMSQuery req, User user);
void Delete(string ids,string userid);
void Delete(string ids, User user);
List<CommonCNEN> GetCountry();
@ -42,7 +43,7 @@ namespace djy.Paas.IService
List<CommonCodeValue> GetVessel(string strlink);
Task<Response> SendDE(string Gid, string userid, string docType);
Task<Response> SendDE(string Gid, User user, string docType);
Response SaveReceipt(string retdto);
@ -55,9 +56,9 @@ namespace djy.Paas.IService
List<CodeCityDto> GetCodeCity(string provinceCode);
string SaveTemplate(AMS_AddrTemplate dto, string userid);
string SaveTemplate(AMS_AddrTemplate dto, User user);
List<AMS_AddrTemplate> GetTemplate(string userid, string type,string TemPlateName);
List<AMS_AddrTemplate> GetTemplate(User user, string type,string TemPlateName);
byte[] PDF(string GID);
}

@ -6,7 +6,7 @@ using System.Threading.Tasks;
using Common;
using Common.DJYModel;
namespace Common.Djy
namespace djy.IService.Djy
{
/// <summary>
///大简云用户及其权限相关

@ -1,4 +1,5 @@
using Common.DJYModel;
using Common;
using Common.DJYModel;
using Common.Entity;
using System;
using System.Collections.Generic;
@ -6,7 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Common.Djy
namespace djy.IService.Djy
{
/// <summary>
/// 财务相关

@ -1,11 +1,12 @@
using Common.DJYModel;
using Common;
using Common.DJYModel;
using Common.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Common.Djy
namespace djy.IService.Djy
{
/// <summary>
/// 公共工具类使用接口

@ -6,7 +6,7 @@ using System.Linq.Expressions;
using Common.Entity;
using Common.DJYModel;
namespace Common.Djy
namespace djy.IService.Djy
{
/// <summary>
/// 接口基类

@ -5,11 +5,12 @@ using System.Text;
using System.Threading.Tasks;
using djy.Model;
using Common;
using Common.Djy;
using djy.Model.AmsDto;
using Common.Utilities;
using djy.Model.IsfDto;
using djy.Model.Isf;
using djy.IService.Djy;
using Common.DJYModel;
namespace djy.IService.Isf
{
@ -21,21 +22,21 @@ namespace djy.IService.Isf
/// <param name="req"></param>
/// <param name="userid"></param>
/// <returns></returns>
TableData Load(ISFQuery req, string userid);
TableData Load(ISFQuery req, User user);
/// <summary>
/// 删除
/// </summary>
/// <param name="ids"></param>
/// <param name="userid"></param>
void Delete(string ids, string userid);
void Delete(string ids, User user);
/// <summary>
/// 新增/编辑
/// </summary>
/// <param name="dto"></param>
/// <param name="userid"></param>
string SaveInfo(ISFDto dto, string userid);
string SaveInfo(ISFDto dto, User user);
@ -43,7 +44,7 @@ namespace djy.IService.Isf
/// 获取模板
/// </summary>
/// <returns></returns>
List<ISF_CompanyTemplate> GetTemplate(string userid, string CompanyType, string InFoType,string TemPlateName);
List<ISF_CompanyTemplate> GetTemplate(User user, string CompanyType, string InFoType,string TemPlateName);
/// <summary>
@ -51,7 +52,7 @@ namespace djy.IService.Isf
/// </summary>
/// <param name="dto"></param>
/// <param name="userid"></param>
string SaveTemplate(ISF_CompanyTemplate dto, string userid);
string SaveTemplate(ISF_CompanyTemplate dto, User user);
/// <summary>
@ -61,6 +62,6 @@ namespace djy.IService.Isf
/// <param name="userid"></param>
/// <param name="docType"></param>
/// <returns></returns>
Task<Response> SendDE(string Gid, string userid, string msgType);
Task<Response> SendDE(string Gid, User user, string msgType);
}
}

@ -1,5 +1,4 @@
using djy.Paas.IService;
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@ -9,7 +8,6 @@ using System.Data;
using System.Data.SqlClient;
using Common;
using djy.Model.Ams;
using Common.DjyService;
using djy.Model.AmsDto;
using Common.Extensions;
using Common.DJYModel;
@ -26,6 +24,8 @@ using iTextSharp.text;
using System.IO;
using iTextSharp.text.pdf;
using System.Reflection;
using djy.IService.Ams;
using djy.Service.DjyService;
namespace djy.Service.Ams
{
@ -36,38 +36,46 @@ namespace djy.Service.Ams
{
#region 查询列表
public TableData Load(AMSQuery req, string userid)
public TableData Load(AMSQuery req, User user)
{
var result = new TableData();
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
string[] ReportStates = null;
if (req.ReportState!=null) {
if (req.ReportState != null)
{
ReportStates = req.ReportState.Split(',');
ReportStates = req.ReportState.Split(',');
}
List<string> hou = null;
if (!req.HBLNo.IsNullOrEmpty())
{
hou = DbBus.Get(DbList.AMSCenter).Select<AMS_House>().Where(x => (x.IsDel == false || x.IsDel == null))
.WhereIf(req.HBLNo != null, x => x.HBLNo.Contains(req.HBLNo)).ToList().Select(x => x.PID).ToList<string>();
}
var dto = DbBus.Get(DbList.AMSCenter).Select<AMS_Master>()
.Where(x => (x.IsDel == false || x.IsDel == null) && x.CompID == user.CompId)
.WhereIf(req.MBLNO != null,x => x.MBLNO.Contains(req.MBLNO.Trim()))
.WhereIf(req.ReportState == "0", x =>x.ReportState=="未申报"|| x.ReportState == "接收失败")
.WhereIf(req.ReportState == "1", x => !(x.ReportState == "未申报" || x.ReportState == "接收失败"))
.WhereIf(req.ReportState!=null&& req.ReportState != "0" && req.ReportState != "1", x => ReportStates.Contains(x.ReportState) )
.WhereIf(req.PORTDISCHARGECode!=null,x=>x.PORTDISCHARGECode==req.PORTDISCHARGECode)
.WhereIf(req.LoadingPortCode != null, x => x.LoadingPortCode == req.LoadingPortCode)
.WhereIf(req.UserName!=null,x=> x.UserName.Contains(req.UserName) )
.WhereIf(req.CARRIERID != null, x =>req.CARRIERID==x.CARRIERID)
.WhereIf(req.BDate!=null,x=>x.CreateTime>=req.BDate)
.WhereIf(req.EDate!=null,x=>x.CreateTime<=req.EDate).OrderByDescending(x=>x.CreateTime);
.Where(x => x.IsDel != true && x.CompID == user.CompId)
.WhereIf(req.MBLNO != null, x => x.MBLNO.Contains(req.MBLNO.Trim()))
.WhereIf(req.ReportState == "0", x => x.ReportState == "未申报" || x.ReportState == "接收失败")
.WhereIf(req.ReportState == "1", x => !(x.ReportState == "未申报" || x.ReportState == "接收失败"))
.WhereIf(req.ReportState != null && req.ReportState != "0" && req.ReportState != "1", x => ReportStates.Contains(x.ReportState))
.WhereIf(req.PORTDISCHARGECode != null, x => x.PORTDISCHARGECode == req.PORTDISCHARGECode)
.WhereIf(req.LoadingPortCode != null, x => x.LoadingPortCode == req.LoadingPortCode)
.WhereIf(req.UserName != null, x => x.UserName.Contains(req.UserName.Trim()))
.WhereIf(req.CARRIERID != null, x => req.CARRIERID == x.CARRIERID)
.WhereIf(hou != null, x => hou.Contains(x.GID))
.WhereIf(req.BDate != null, x => x.CreateTime >= req.BDate)
.WhereIf(req.EDate != null, x => x.CreateTime <= req.EDate).OrderByDescending(x => x.CreateTime);
result.count = dto.ToList().Count();
var list = dto.Page(req.Page, req.Limit).ToList<AMSDto>();
if (list != null)
{
foreach (var item in list)
{
var historyDto= DbBus.Get(DbList.AMSCenter).Select<AMS_MasterHistory>().Where(x => x.AM_ID == item.GID).OrderByDescending(x =>x.SendTime).ToList();
var historyDto = DbBus.Get(DbList.AMSCenter).Select<AMS_MasterHistory>().Where(x => x.AM_ID == item.GID).OrderByDescending(x => x.SendTime).ToList();
item.HistoryDto = historyDto;
var hodto = DbBus.Get(DbList.AMSCenter).Select<AMS_House>().Where(x => (x.IsDel == false || x.IsDel == null) && x.PID == item.GID)
.WhereIf(req.HBLNo != null, x => x.HBLNo.Contains(req.HBLNo))
.WhereIf(req.HBLNo != null, x => x.HBLNo.Contains(req.HBLNo.Trim()))
.ToList<AMS_HouseDto>();
item.HouseDto = hodto;
if (hodto != null)
@ -86,9 +94,8 @@ namespace djy.Service.Ams
#endregion
#region 删除
public void Delete(string ids, string userid)
public void Delete(string ids, User user)
{
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
string[] id = ids.Split(',');
DbBus.Get(DbList.AMSCenter).Transaction(() =>
{
@ -118,17 +125,25 @@ namespace djy.Service.Ams
#endregion
#region 新增/编辑
public string SaveInfo(AMSDto dto, string userid)
public string SaveInfo(AMSDto dto, User user)
{
string guid="";
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
string guid = "";
List<string> hblist = null;
hblist = dto.HouseDto.Select(x => x.HBLNo).ToList();
var mlist= DbBus.Get(DbList.AMSCenter).Select<AMS_Master>().Where(x => x.IsDel != true && x.MBLNO == dto.MBLNO&&x.GID!=dto.GID).ToOne();
var hlist = DbBus.Get(DbList.AMSCenter).Select<AMS_House>().Where(x => x.IsDel != true && hblist.Contains(x.HBLNo)).ToOne();
if (mlist!=null|| hlist!=null)
{
return "-1";
}
if (dto.GID.IsNull())
{
DbBus.Get(DbList.AMSCenter).Transaction(() =>
{
AMS_Master master = dto.MapTo<AMS_Master>();
master.CreateTime = DateTime.Now;
master.LastUpdate = DateTime.Now;
master.GID = Guid.NewGuid().ToString("N");
master.UserID = user.GID;
master.UserName = user.SHOWNAME;
@ -137,11 +152,14 @@ namespace djy.Service.Ams
master.IsDel = false;
master.ReportState = "未申报";
master.PORTDISCHARGE = DbBus.Get(DbList.Common).Select<CodePort>().Where(x => x.Code == master.PORTDISCHARGECode).ToList().Select(x => x.EnName).FirstOrDefault();
master.CARRIER=DbBus.Get(DbList.Common).Select<CodeCarrier>().Where(x => x.Code == master.CARRIERID).ToList().Select(x => x.EnName).FirstOrDefault();
master.CARRIER = DbBus.Get(DbList.Common).Select<CodeCarrier>().Where(x => x.Code == master.CARRIERID).ToList().Select(x => x.EnName).FirstOrDefault();
master.LoadingPort = DbBus.Get(DbList.Common).Select<CodePortLoad>().Where(x => x.EdiCode == master.LoadingPortCode).ToList().Select(x => x.EnName).FirstOrDefault();
master.LastNoUsPort = DbBus.Get(DbList.Common).Select<CodePort>().Where(x => x.Code == master.LastNoUsPortCode).ToList().Select(x => x.EnName).FirstOrDefault();
master.CreateTime = DateTime.Now;
master.LastUpdate = DateTime.Now;
DbBus.Get(DbList.AMSCenter).Insert(master).ExecuteAffrows();
AMS_MasterHistory history = new AMS_MasterHistory();
history.GID = Guid.NewGuid().ToString("N");
history.AM_ID = master.GID;
@ -150,26 +168,32 @@ namespace djy.Service.Ams
history.Type = "新增";
history.Operator = user.SHOWNAME;
history.Remark = user.SHOWNAME + "于" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "创建了单据";
DbBus.Get(DbList.AMSCenter).Insert(history).ExecuteAffrows();
if (dto.HouseDto != null && dto.HouseDto.Count() > 0)
{
foreach (var item in dto.HouseDto)
{
AMS_House house = item.MapTo<AMS_House>();
house.GID = Guid.NewGuid().ToString("N");
house.PID = master.GID;
house.IsDel = false;
house.State = "0";
DbBus.Get(DbList.AMSCenter).Insert(house).ExecuteAffrows();
if (item.CntrnoDto != null && item.CntrnoDto.Count() > 0)
{
foreach (var it in item.CntrnoDto)
{
AMS_Cntrno cntrno = it.MapTo<AMS_Cntrno>();
cntrno.GID = Guid.NewGuid().ToString("N");
cntrno.PID = master.GID;
cntrno.HID = house.GID;
cntrno.IsDel = false;
DbBus.Get(DbList.AMSCenter).Insert(cntrno).ExecuteAffrows();
}
}
@ -190,10 +214,10 @@ namespace djy.Service.Ams
master.VESSEL = dto.VESSEL;
master.VOYNO = dto.VOYNO;
master.ShippingType = dto.ShippingType;
master.SHIPPERADDR= dto.SHIPPERADDR;
master.SHIPPERADDR = dto.SHIPPERADDR;
master.ETA = dto.ETA;
master.ETD = dto.ETD;
master.LastUpdate= DateTime.Now;
master.LastUpdate = DateTime.Now;
master.ShippingNo = dto.ShippingNo;
master.ConsignmentType = dto.ConsignmentType;
master.LoadingPortCode = dto.LoadingPortCode;
@ -212,7 +236,7 @@ namespace djy.Service.Ams
AMS_MasterHistory history = new AMS_MasterHistory();
history.GID = Guid.NewGuid().ToString("N");
history.AM_ID = master.GID;
history.SendTime = DateTime.Now;
history.SendTime = DateTime.Now;
history.State = "已修改";
history.Type = "修改";
history.Operator = user.SHOWNAME;
@ -257,14 +281,13 @@ namespace djy.Service.Ams
/// <param name="Gid"></param>
/// <param name="userid"></param>
/// <param name="docType"></param>
public async Task<Response> SendDE(string Gid, string userid, string docType)
public async Task<Response> SendDE(string Gid, User user , string docType)
{
Response req = new Response();
try
{
string[] id = Gid.Split(',');
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
foreach (string oid in id)
{
if (oid != "")
@ -287,8 +310,8 @@ namespace djy.Service.Ams
{
var getfinrs = fin.Expend(new CustFee
{
SENDUSERID = userid,
LURURENID = userid,
SENDUSERID = user.GID,
LURURENID = user.GID,
CtnrCount = 1,
CtnrInfo = string.Empty,
BSTYPE = 15,
@ -312,7 +335,7 @@ namespace djy.Service.Ams
MasterBillInfoDto dto = new MasterBillInfoDto();
masterBillInfo masterBillInfo = new masterBillInfo();
masterBillInfo.masterBillNo = cARRIERIDList.Where(x => x.Code == master.CARRIERID).Select(x => x.MapCode).FirstOrDefault()+ master.MBLNO;
masterBillInfo.masterBillNo = cARRIERIDList.Where(x => x.Code == master.CARRIERID).Select(x => x.MapCode).FirstOrDefault() + master.MBLNO;
masterBillInfo.shippingNo = null;
masterBillInfo.shipCompany = cARRIERIDList.Where(x => x.Code == master.CARRIERID).Select(x => x.MapCode).FirstOrDefault();
masterBillInfo.vessel = master.VESSEL;
@ -326,10 +349,10 @@ namespace djy.Service.Ams
masterBillInfo.lastForeignHarbour = master.LastNoUsPort;
masterBillInfo.lastForeignHarbourCode = portList.Where(x => x.Code == master.LastNoUsPortCode).Select(x => x.EdiCode).FirstOrDefault();
masterBillInfo.loadDate = Convert.ToDateTime(master.ETA).ToString("yyyy-MM-dd hh:mm:ss");
masterBillInfo.estimatedArrivalTime = Convert.ToDateTime(master.ETD).ToString("yyyy-MM-dd hh:mm:ss");
masterBillInfo.estimatedArrivalTime = Convert.ToDateTime(master.ETD).ToString("yyyy-MM-dd hh:mm:ss");
masterBillInfo.filingType = master.ShippingType;
dto.masterBillInfo = masterBillInfo;
var hodto = DbBus.Get(DbList.AMSCenter).Select<AMS_House>().Where(x => (x.IsDel == false || x.IsDel == null) && x.PID == oid &&x.State=="0").ToList<AMS_HouseDto>();
var hodto = DbBus.Get(DbList.AMSCenter).Select<AMS_House>().Where(x => (x.IsDel == false || x.IsDel == null) && x.PID == oid && x.State == "0").ToList<AMS_HouseDto>();
List<HouseBillInfoListItem> houseBillInfoListItems = new List<HouseBillInfoListItem>();
foreach (var item in hodto)
{
@ -380,7 +403,7 @@ namespace djy.Service.Ams
insertList.ignite = "";
list.Add(insertList);
CtnInfo.insertList = list;
}
houseinfo.ctnInfo = CtnInfo;
houseBillInfoListItems.Add(houseinfo);
@ -411,7 +434,7 @@ namespace djy.Service.Ams
AMSDDto aMSDDto = new AMSDDto();
aMSDDto.fromdea = "n";
aMSDDto.ids = DbBus.Get(DbList.AMSCenter).Select<AMS_House>().Where(x => (x.IsDel == false || x.IsDel == null) && x.PID == oid).ToList().Select(x => x.GID).ToList();
docContent = JsonConvert.SerializeObject(aMSDDto).ToBase64();
}
var AMSAccount = DbBus.Get(DbList.djydb).Select<ParamSet>().Where(x => x.PARAMNAME == "AMSAccount").ToOne();
@ -421,7 +444,7 @@ namespace djy.Service.Ams
var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
/////MD5加密
string stringSign = string.Format("{0}{1}{2}",AMSAccount.PARAMVALUE, key.PARAMVALUE, timestamp);
string stringSign = string.Format("{0}{1}{2}", AMSAccount.PARAMVALUE, key.PARAMVALUE, timestamp);
string sign = stringSign.ToMd5();
///post参数
Dictionary<string, string> dic = new Dictionary<string, string>();
@ -450,11 +473,11 @@ namespace djy.Service.Ams
JObject rlt = JObject.Parse(gethtml);
var code = rlt.GetValue("code").ToString();
var msg = rlt.GetValue("msg").ToString();
var data= rlt.GetValue("data").ToString();
var data = rlt.GetValue("data").ToString();
JObject drlt = JObject.Parse(data);
var result = drlt.GetValue("result").ToString();
var errorInfo = drlt.GetValue("errorInfo").ToString();
if (code == "F"|| result=="false")
if (code == "F" || result == "false")
{
AMS_MasterHistory history = new AMS_MasterHistory();
@ -483,13 +506,13 @@ namespace djy.Service.Ams
}
history.Operator = user.SHOWNAME;
history.Remark = user.SHOWNAME + "于" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "发送单据失败,失败原因:"+ msg;
history.Remark = user.SHOWNAME + "于" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "发送单据失败,失败原因:" + msg;
DbBus.Get(DbList.AMSCenter).Insert(history).ExecuteAffrows();
req.Code = 201;
req.Message = "操作失败,"+ msg+ errorInfo;
req.Message = "操作失败," + msg + errorInfo;
return req;
}
if (code == "T"&& result=="true")
if (code == "T" && result == "true")
{
AMS_MasterHistory history = new AMS_MasterHistory();
history.GID = Guid.NewGuid().ToString("N");
@ -524,8 +547,8 @@ namespace djy.Service.Ams
{
var getfinrs = fin.Expend(new CustFee
{
SENDUSERID = userid,
LURURENID = userid,
SENDUSERID = user.GID,
LURURENID = user.GID,
CtnrCount = 1,
CtnrInfo = string.Empty,
BSTYPE = 15,
@ -540,15 +563,15 @@ namespace djy.Service.Ams
{
var getfinrs = fin.Expend(new CustFee
{
SENDUSERID = userid,
LURURENID = userid,
SENDUSERID = user.GID,
LURURENID = user.GID,
CtnrCount = 1,
CtnrInfo = string.Empty,
BSTYPE = 15,
SENDTYPE = 0,
BSNO = oid.ToString(),
MBLNO = master.MBLNO.ToString(),
}
}
, 1);
DbBus.Get(DbList.AMSCenter).Update<AMS_Master>().Set(w => new AMS_Master { ReportState = "已提交", NewNotice = "重发发送成功" }).Where(w => w.GID == oid).ExecuteAffrows();
@ -620,7 +643,7 @@ namespace djy.Service.Ams
DbBus.Get(DbList.AMSCenter).Update<AMS_Master>().Set(w => new AMS_Master { MateState = retdto.status, NewNotice = "匹配失败", ReportState = "删单失败" }).Where(w => w.GID == master.GID).ExecuteAffrows();
}
}
else if (retdto.status == "W1")
{
@ -637,9 +660,10 @@ namespace djy.Service.Ams
history.Operator = "系统管理员";
history.Remark = "您的单据于" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "匹配成功";
DbBus.Get(DbList.AMSCenter).Insert(history).ExecuteAffrows();
if (master.NewNotice== "删除发送成功") {
if (master.NewNotice == "删除发送成功")
{
DbBus.Get(DbList.AMSCenter).Update<AMS_Master>().Set(w => new AMS_Master { MateState = retdto.status, NewNotice = "匹配成功",ReportState="删单成功" }).Where(w => w.GID == master.GID).ExecuteAffrows();
DbBus.Get(DbList.AMSCenter).Update<AMS_Master>().Set(w => new AMS_Master { MateState = retdto.status, NewNotice = "匹配成功", ReportState = "删单成功" }).Where(w => w.GID == master.GID).ExecuteAffrows();
}
if (master.NewNotice == "修改发送成功")
{
@ -712,11 +736,11 @@ namespace djy.Service.Ams
{
try
{
var List = DbBus.Get(DbList.Common).Select<CodeCarrier,MappingCarrier>().InnerJoin((cc,map)=>cc.Code==map.Code&&map.Module=="AMS").ToList((cc, map )=> new CommonMappiCode
var List = DbBus.Get(DbList.Common).Select<CodeCarrier, MappingCarrier>().InnerJoin((cc, map) => cc.Code == map.Code && map.Module == "AMS").ToList((cc, map) => new CommonMappiCode
{
Code = cc.Code,
Value = cc.EnName,
MapCode=map.MapCode
MapCode = map.MapCode
}).Distinct().ToList();
return List;
}
@ -730,7 +754,7 @@ namespace djy.Service.Ams
{
try
{
var List = DbBus.Get(DbList.Common).Select<CodeCtn,MappingCtn>().InnerJoin((cc, map) => cc.Code == map.Code && map.Module == "AMS").ToList((cc, map) => new CommonCodeValue
var List = DbBus.Get(DbList.Common).Select<CodeCtn, MappingCtn>().InnerJoin((cc, map) => cc.Code == map.Code && map.Module == "AMS").ToList((cc, map) => new CommonCodeValue
{
Code = cc.Code,
Value = cc.Name,
@ -747,7 +771,7 @@ namespace djy.Service.Ams
{
try
{
var List = DbBus.Get(DbList.Common).Select<CodePackage,MappingPackage>().InnerJoin((cc, map) => cc.Code == map.Code && map.Module == "AMS").ToList((cc, map) => new CommonCodeValue
var List = DbBus.Get(DbList.Common).Select<CodePackage, MappingPackage>().InnerJoin((cc, map) => cc.Code == map.Code && map.Module == "AMS").ToList((cc, map) => new CommonCodeValue
{
Code = cc.Code,
Value = cc.Name,
@ -764,11 +788,11 @@ namespace djy.Service.Ams
{
try
{
var List = DbBus.Get(DbList.Common).Select<CodeDangerGrade>().WhereIf(strlink != "",x=>x.Code.Contains(strlink.Trim()) || x.Grade.Contains(strlink.Trim())).ToList().Select(x => new CodeDangerGradeDto
var List = DbBus.Get(DbList.Common).Select<CodeDangerGrade>().WhereIf(strlink != "", x => x.Code.Contains(strlink.Trim()) || x.Grade.Contains(strlink.Trim())).ToList().Select(x => new CodeDangerGradeDto
{
Code = x.Code,
Grade = x.Grade,
}).Distinct().ToList();
}).Distinct().ToList();
return List;
}
catch (Exception e)
@ -786,7 +810,7 @@ namespace djy.Service.Ams
{
Code = x.Code,
Value = x.EnName,
}).Distinct().ToList();
}).Distinct().ToList();
return List;
}
catch (Exception e)
@ -821,7 +845,7 @@ namespace djy.Service.Ams
{
Code = x.Name,
Value = x.Name,
}).Distinct().ToList();
}).Distinct().ToList();
return List;
}
catch (Exception e)
@ -853,7 +877,7 @@ namespace djy.Service.Ams
{
try
{
var List = DbBus.Get(DbList.Common).Select<CodeCity>().WhereIf(provinceCode != "", x => x.ProvinceCode==provinceCode).ToList().Select(x => new CodeCityDto
var List = DbBus.Get(DbList.Common).Select<CodeCity>().WhereIf(provinceCode != "", x => x.ProvinceCode == provinceCode).ToList().Select(x => new CodeCityDto
{
Code = x.EnName,
PostCode = x.PostCode,
@ -871,19 +895,19 @@ namespace djy.Service.Ams
#region pdf导出
/// <summary>
/// pdf导出
/// </summary>
/// <param name="GID"></param>
/// <returns></returns>
/// <summary>
/// pdf导出
/// </summary>
/// <param name="GID"></param>
/// <returns></returns>
public byte[] PDF(string GID)
{
Document document = new Document(PageSize.A4);
//指定字体文件IDENTITY_H支持中文
var path = Path.Combine( AppDomain.CurrentDomain.BaseDirectory, "msyh.ttc,0");
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "msyh.ttc,0");
_LogsAdd("PDF", "Get", $"PDF字体路径{path }");
BaseFont customfont = BaseFont.CreateFont(path, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
var Fonttable = new Font(customfont, 12);
var Fonttable = new Font(customfont, 12);
Font font = new Font(customfont, 14);
Font datefont = new Font(customfont, 9);
MemoryStream baos = new MemoryStream();
@ -893,10 +917,11 @@ namespace djy.Service.Ams
var houselist = DbBus.Get(DbList.AMSCenter).Select<AMS_House>().Where(x => x.PID == GID).ToList();
var masterlist = DbBus.Get(DbList.AMSCenter).Select<AMS_Master>().Where(x => x.GID == GID).ToOne();
var cARRIERIDList = DbBus.Get(DbList.Common).Select<MappingCarrier>().Where(map => map.Module == "AMS").ToList();
if (houselist!=null&& masterlist!=null) {
if (houselist != null && masterlist != null)
{
for (int i = 0; i < houselist.Count(); i++)
{
string heardText = "NIAV" + houselist[i].HBLNo + " ISF INFORMATION";
Paragraph heardTexts = new Paragraph(heardText, font);
heardTexts.IndentationLeft = 150;
@ -906,14 +931,14 @@ namespace djy.Service.Ams
PdfPTable table = new PdfPTable(2); //生成只有2列的行数据
table.DefaultCell.Border = Rectangle.NO_BORDER; //无边框
table.DefaultCell.MinimumHeight = 50f; //高度
float[] widths = new float[] { 100f,200f }; //宽度
float[] widths = new float[] { 100f, 200f }; //宽度
table.SetWidths(widths);
var Row_1 = new PdfPCell(new Paragraph("AMS B/L NO.", Fonttable));
var Row_1 = new PdfPCell(new Paragraph("AMS B/L NO.", Fonttable));
Row_1.HorizontalAlignment = Element.ALIGN_RIGHT;//靠右
table.AddCell(Row_1);
var Row_2 = new PdfPCell(new Paragraph("NIAV"+houselist[i].HBLNo, Fonttable));
var Row_2 = new PdfPCell(new Paragraph("NIAV" + houselist[i].HBLNo, Fonttable));
Row_2.HorizontalAlignment = Element.ALIGN_LEFT;//靠左
table.AddCell(Row_2);
@ -944,7 +969,7 @@ namespace djy.Service.Ams
Row_8.HorizontalAlignment = Element.ALIGN_LEFT;//靠左
table.AddCell(Row_8);
var Row_9= new PdfPCell(new Paragraph("MBL SCAC CODE.", Fonttable));
var Row_9 = new PdfPCell(new Paragraph("MBL SCAC CODE.", Fonttable));
Row_9.HorizontalAlignment = Element.ALIGN_RIGHT;//靠右
table.AddCell(Row_9);
@ -956,7 +981,7 @@ namespace djy.Service.Ams
document.Add(table);
string dateText = "DATE PRINTED:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm");
string dateText = "DATE PRINTED:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm");
Paragraph dateTexts = new Paragraph(dateText, datefont);
dateTexts.IndentationLeft = 380f;
document.Add(dateTexts);
@ -973,7 +998,8 @@ namespace djy.Service.Ams
image.SetAbsolutePosition(400f, 20f);//出现在屏幕左下角 图片左下角做为锚点
document.Add(image);
if ((i+1)%4==0) {
if ((i + 1) % 4 == 0)
{
document.NewPage();
}
}
@ -993,13 +1019,17 @@ namespace djy.Service.Ams
#region 保存模板
public string SaveTemplate(AMS_AddrTemplate dto, string userid)
public string SaveTemplate(AMS_AddrTemplate dto, User user)
{
string guid = "";
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
var list = DbBus.Get(DbList.AMSCenter).Select<AMS_AddrTemplate>().Where(w => w.UserID == user.GID && w.TemPlateName == dto.TemPlateName&&w.Type==dto.Type&&w.GID!=dto.GID).ToOneAsync();
if (!list.IsNullOrEmpty())
{
return "-1";
}
if (dto.GID.IsNull())
{
AMS_AddrTemplate template = dto.MapTo<AMS_AddrTemplate>();
template.CreateTime = DateTime.Now;
template.LastUpdate = DateTime.Now;
@ -1012,6 +1042,11 @@ namespace djy.Service.Ams
DbBus.Get(DbList.AMSCenter).Insert(template).ExecuteAffrows();
guid = template.GID;
}
else
{
AMS_AddrTemplate template = dto.MapTo<AMS_AddrTemplate>();
DbBus.Get(DbList.AMSCenter).Update<AMS_AddrTemplate>().SetSource(template).ExecuteAffrows();
}
return guid;
}
#endregion
@ -1020,18 +1055,17 @@ namespace djy.Service.Ams
#region 获取模板
public List<AMS_AddrTemplate> GetTemplate(string userid, string type, string TemPlateName)
public List<AMS_AddrTemplate> GetTemplate(User user, string type, string TemPlateName)
{
try
{
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
var List = DbBus.Get(DbList.AMSCenter).Select<AMS_AddrTemplate>().
var List = DbBus.Get(DbList.AMSCenter).Select<AMS_AddrTemplate>().
Where(x => x.IsDel == false || x.IsDel == null).
Where(x => x.CompID == user.CompId).
Where(x => x.UserID == user.GID).
WhereIf(type != null, x => x.Type == type).
WhereIf(TemPlateName != null, x => TemPlateName.Contains(x.TemPlateName)).
ToList();
return List;
return List;
}
catch (Exception e)
{

@ -5,7 +5,7 @@ using System.Threading.Tasks;
using AutoMapper;
using Common.DJYModel;
namespace Common.DjyService
namespace djy.Service.DjyService
{/// <summary>
/// automapper自动映射配置
/// </summary>

@ -17,7 +17,7 @@ using System;
using System.Collections;
using System.Collections.Generic;
namespace Common.DjyService
namespace djy.Service.DjyService
{
public static class AutoMapperExt
{

@ -11,7 +11,7 @@ using System.Threading.Tasks;
using Common;
using System.Data;
namespace Common.DjyService
namespace djy.Service.DjyService
{
/// <summary>
/// 数据库结构体
@ -25,7 +25,7 @@ namespace Common.DjyService
/// <summary>
///大简云平台老库
/// </summary>
public const string djyolddb = "djyolddb";
public const string djyolddb = "djydb";
/// <summary>
/// AMS
/// </summary>

@ -10,7 +10,7 @@ using Common.Tools.Email;
using Common.Tools;
using Common.DJYModel;
namespace Common.DjyService
namespace djy.Service.DjyService
{
/// <summary>
/// 常用功能工具

@ -3,13 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Common;
using Common.Djy;
using Common.DJYModel;
using Common.Extensions;
using djy.IService.Djy;
namespace Common.DjyService
namespace djy.Service.DjyService
{
/// <summary>
///

@ -1,7 +1,8 @@
using Common.Djy;
using Common;
using Common.DJYModel;
using Common.Entity;
using Common.Extensions;
using djy.IService.Djy;
using System;
using System.Collections.Generic;
using System.Linq;
@ -9,7 +10,7 @@ using System.Text;
using System.Threading.Tasks;
namespace Common.DjyService
namespace djy.Service.DjyService
{
public class FinanceService : ServBase, IFinanceService
{

@ -17,7 +17,7 @@ using Common.Extensions;
using Common.DJYModel;
using Common.Entity;
namespace Common.DjyService
namespace djy.Service.DjyService
{
/// <summary>
/// 服务基类

@ -1,5 +1,4 @@
using Common.DJYModel;
using Common.DjyService;
using Common.Extensions;
using Common.Tools;
using Common.Utilities;
@ -7,6 +6,7 @@ using djy.IService.Isf;
using djy.Model.Ams;
using djy.Model.Isf;
using djy.Model.IsfDto;
using djy.Service.DjyService;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
@ -15,16 +15,15 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace djy.Service.ISF
namespace djy.Service.Isf
{
public class ISFService : ServBase, IIsfService
public class IsfService : ServBase, IIsfService
{
#region 查询接口
public TableData Load(ISFQuery req, string userid)
public TableData Load(ISFQuery req, User user)
{
var result = new TableData();
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
string[] ReportStates = null;
if (req.ReportState != null)
{
@ -32,7 +31,7 @@ namespace djy.Service.ISF
ReportStates = req.ReportState.Split(',');
}
var dto = DbBus.Get(DbList.AMSCenter).Select<ISF_Master>().
Where(x => (x.IsDel == false || x.IsDel == null) && x.CompID == user.CompId).
Where(x => x.IsDel != true && x.CompID == user.CompId).
WhereIf(req.MBLNO != null,x=> x.MBLNO.Contains(req.MBLNO)).
WhereIf(req.InFoType != null, x => x.InFoType==req.InFoType).
WhereIf(req.ReportState != null && req.ReportState != "0" && req.ReportState != "1", x => ReportStates.Contains(x.ReportState)).
@ -57,10 +56,16 @@ namespace djy.Service.ISF
#region 新增编辑
public string SaveInfo(ISFDto dto, string userid)
public string SaveInfo(ISFDto dto, User user)
{
string guid = "";
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
var mlist = DbBus.Get(DbList.AMSCenter).Select<ISF_Master>().Where(x => x.IsDel != true && x.MBLNO == dto.MBLNO && x.GID != dto.GID).ToOne();
if (mlist != null )
{
return "-1";
}
if (dto.GID.IsNull())
{
DbBus.Get(DbList.AMSCenter).Transaction(() =>
@ -75,8 +80,6 @@ namespace djy.Service.ISF
master.CompName = user.COMNAME;
master.IsDel = false;
master.ReportState = "未申报";
//master.DischargeHarbourName=DbBus.Get(DbList.Common).Select<CodePort>().Where(x => x.Code == master.DischargeHarbourCode).ToList().Select(x => x.EnName).FirstOrDefault();
//master.DeliveryHarbourName = DbBus.Get(DbList.Common).Select<CodePort>().Where(x => x.Code == master.DeliveryHarbourCode).ToList().Select(x => x.EnName).FirstOrDefault();
DbBus.Get(DbList.AMSCenter).Insert(master).ExecuteAffrows();
ISF_MasterHistory history = new ISF_MasterHistory();
history.GID = Guid.NewGuid().ToString("N");
@ -106,9 +109,23 @@ namespace djy.Service.ISF
}
else
{
DbBus.Get(DbList.AMSCenter).Transaction(() =>
{
ISF_Master master = dto.MapTo<ISF_Master>();
ISF_Master master = DbBus.Get(DbList.AMSCenter).Select<ISF_Master>().Where(x => x.GID == dto.GID).ToOne();
master.MBLNO = dto.MBLNO;
master.InFoType = dto.InFoType;
master.DischargeHarbourCode = dto.DischargeHarbourCode;
master.DischargeHarbourName = dto.DischargeHarbourName;
master.DeliveryHarbourCode = dto.DeliveryHarbourCode;
master.DeliveryHarbourName = dto.DeliveryHarbourName;
master.ShipmentTypeCode = dto.ShipmentTypeCode;
master.ShipmentTypeName = dto.ShipmentTypeName;
master.HstCode = dto.HstCode;
master.BlTypeCode = dto.BlTypeCode;
master.BlTypeName= dto.BlTypeName;
master.LastUpdate = DateTime.Now;
DbBus.Get(DbList.AMSCenter).Update<ISF_Master>().SetSource(master).ExecuteAffrows();
DbBus.Get(DbList.AMSCenter).Delete<ISF_Company>().Where(w => w.PID == master.GID).ExecuteAffrows();
ISF_MasterHistory history = new ISF_MasterHistory();
@ -142,9 +159,8 @@ namespace djy.Service.ISF
#endregion
#region 删除
public void Delete(string ids, string userid)
public void Delete(string ids, User user)
{
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
string[] id = ids.Split(',');
DbBus.Get(DbList.AMSCenter).Transaction(() =>
{
@ -176,14 +192,13 @@ namespace djy.Service.ISF
#region 获取模板
public List<ISF_CompanyTemplate> GetTemplate(string userid, string CompanyType, string InFoType,string TemPlateName)
public List<ISF_CompanyTemplate> GetTemplate(User user, string CompanyType, string InFoType,string TemPlateName)
{
try
{
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
var List = DbBus.Get(DbList.AMSCenter).Select<ISF_CompanyTemplate>().
Where(x=> x.IsDel == false || x.IsDel == null).
Where(x => x.CompID== user.CompId).
Where(x => x.UserID== user.GID).
WhereIf(CompanyType != null, x => x.CompanyType == CompanyType).
WhereIf(InFoType != null, x => x.InFoType == InFoType).
WhereIf(TemPlateName != null, x => TemPlateName.Contains(x.TemPlateName)).
@ -200,10 +215,14 @@ namespace djy.Service.ISF
#region 保存模板
public string SaveTemplate(ISF_CompanyTemplate dto, string userid)
public string SaveTemplate(ISF_CompanyTemplate dto, User user)
{
string guid = "";
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
var list = DbBus.Get(DbList.AMSCenter).Select<ISF_CompanyTemplate>().Where(w => w.UserID == user.GID && w.TemPlateName == dto.TemPlateName && w.CompanyType == dto.CompanyType&& w.InFoType == dto.InFoType&&w.GID!=dto.GID).ToOneAsync();
if (!list.IsNullOrEmpty())
{
return "-1";
}
if (dto.GID.IsNull())
{
@ -219,6 +238,13 @@ namespace djy.Service.ISF
DbBus.Get(DbList.AMSCenter).Insert(template).ExecuteAffrows();
guid = template.GID;
}
else {
ISF_CompanyTemplate template = dto.MapTo<ISF_CompanyTemplate>();
DbBus.Get(DbList.AMSCenter).Update<ISF_CompanyTemplate>().SetSource(template).ExecuteAffrows();
}
return guid;
}
@ -226,14 +252,13 @@ namespace djy.Service.ISF
#region 第三方接口
public async Task<Response> SendDE(string Gid, string userid, string msgType)
public async Task<Response> SendDE(string Gid, User user , string msgType)
{
Response req = new Response();
try
{
string[] id = Gid.Split(',');
var user = DbBus.Get(DbList.djydb).Select<User>().Where(w => w.GID == userid).ToOne();
foreach (string oid in id)
{
if (oid != "")

@ -1,5 +1,4 @@
using Common;
using Common.DjyService;
using Common.Utilities;
using djy.Model.Ams;
using djy.Model.AmsDto;
@ -14,29 +13,29 @@ using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Text;
using System.IO;
using djy.Service.DjyService;
using djy.IService.Ams;
namespace djy_AmsApi.Controllers
namespace djy_AmsApi.Controllers.AMS
{
[AllowAnonymous]
public class AmsController : ApiBase
{
AmsService ser =new AmsService();
IAmsService ser = IOC.AddServer<IAmsService>();
#region 查询接口
[HttpGet("Load")]
public object Load([FromQuery] AMSQuery request)
{
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
var result = new Response();
result.Code = 401;
result.Message = "登录过期,请重新登录!";
return result;
}
return ser.Load(request, GetLoginId.ToString());
return ser.Load(request, user);
}
#endregion
@ -46,18 +45,26 @@ namespace djy_AmsApi.Controllers
public Response AddOrUpdate(AMSDto Dto)
{
var result = new Response();
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
return result;
}
if (Dto == null)
{
result.Code = 500;
result.Message = "无效数据!";
}
result.data = ser.SaveInfo(Dto, user);
if (result.data == "-1")
{
result.Code = 201;
result.Message = "提单号已存在!";
result.data = ser.SaveInfo(Dto, GetLoginId.ToString());
}
return result;
}
#endregion
@ -73,13 +80,14 @@ namespace djy_AmsApi.Controllers
var result = new Response();
try
{
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
return result;
}
ser.Delete(ids, GetLoginId.ToString());
ser.Delete(ids, user);
}
catch (Exception ex)
@ -97,14 +105,15 @@ namespace djy_AmsApi.Controllers
public async Task<Response> Send(string ids, string docType)
{
Response req = new Response();
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
req.Code = 401;
req.Message = "登录过期,请重新登录!";
return req;
}
var result = ser.SendDE(ids, GetLoginId.ToString(), docType);
var result = ser.SendDE(ids, user, docType);
req.Code = result.Result.Code;
req.Message = result.Result.Message;
return req;
@ -349,13 +358,14 @@ namespace djy_AmsApi.Controllers
var result = new Response<List<AMS_AddrTemplate>>();
try
{
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
return result;
}
result.Result = ser.GetTemplate(GetLoginId.ToString(), type, TemPlateName);
result.Result = ser.GetTemplate(user, type, TemPlateName);
}
catch (Exception ex)
{
@ -371,7 +381,7 @@ namespace djy_AmsApi.Controllers
public Response SaveTemplate(AMS_AddrTemplate Dto)
{
var result = new Response();
if (GetLoginId == null)
if (GetUserInfo() == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
@ -381,8 +391,14 @@ namespace djy_AmsApi.Controllers
result.Code = 500;
result.Message = "无效数据!";
}
result.data = ser.SaveTemplate(Dto, GetLoginId.ToString());
result.data = ser.SaveTemplate(Dto, GetUserInfo());
if (result.data=="-1")
{
result.Code = 201;
result.Message = "模板名称重复!";
}
return result;
}
#endregion

@ -3,16 +3,16 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Common;
using System.Reflection;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Common.DJYModel;
using Common.Djy;
using Common.Extensions;
using Common.Tools;
using djy.IService.Djy;
using Common;
namespace Common.DjyService
namespace djy_AmsApi.Controllers
{
/// <summary>

File diff suppressed because one or more lines are too long

@ -18,8 +18,8 @@ using System.Net.Mime;
using AutoMapper;
using djy_AmsApi;
using djy.Service;
using Common.DjyService;
using Common.Extensions;
using djy.Service.DjyService;
namespace djy_AmsApi
{
@ -111,8 +111,7 @@ namespace djy_AmsApi
});
//³õʼ»¯IOC
Common.IOC.container = services;
IOC.container = services;
}

@ -3,7 +3,7 @@
<PropertyGroup>
<Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
<NameOfLastUsedPublishProfile>F:\DJY.AMS\ams\djy.WebApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>F:\DJY.AMS\web\djy.WebApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<ActiveDebugProfile>IIS Express</ActiveDebugProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

@ -0,0 +1,12 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "6.0.6",
"commands": [
"dotnet-ef"
]
}
}
}

@ -0,0 +1,308 @@
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Reflection;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Common.DJYModel;
using Common.Extensions;
using Common.Tools;
using djy.IService.Djy;
using djy_IsfApi;
using Common;
using IOC = djy_IsfApi.IOC;
namespace djy_Isfpi.Controllers
{
/// <summary>
/// api接口基类
/// </summary>
[Route("api/[controller]")]
[ApiController]
[Authorize]
public class ApiBase : Controller
{
#region http数据获取
/// <summary>
/// 创建日志
/// </summary>
/// <param name="Message">内容</param>
/// <param name="GroupName"></param>
/// <param name="DataJson"></param>
/// <param name="ObjGid"></param>
/// <param name="ResultJson"></param>
protected void _LogsAdd(string Message, string GroupName = null, object DataJson = null, string ObjGid = null, object ResultJson = null)
{
var toolsserver = IOC.AddServer<IToolsService>();
toolsserver.LogsAdd(Message, GroupName, DataJson, ObjGid, ResultJson);
}
/// <summary>
/// 获取大简云设置权限
/// </summary>
/// <param name="KeyName">keyname标识</param>
/// <returns></returns>
protected DJyUserAuthorityDto GetDJyUserAuthority(string KeyName) {
var _djyserver = IOC.AddServer<IDjyUserService>();
var rs= _djyserver.GetUserAuthority(GetLoginId,KeyName);
if (rs.Status)
{
return rs.Data;
}
else {
return null;
}
}
/// <summary>
/// 获取登录详情信息
/// </summary>
/// <param name="UserGid"></param>
protected User GetUserInfo(Guid? UserGid = null)
{
var _suser = IOC.AddServer<IDjyUserService>();
if (UserGid == null)
{ UserGid = GetLoginId; }
var rs = _suser.GetUserInfo(UserGid.ToString());
if (rs.Status)
{
return rs.Data;
}
else
{ return null; }
}
/// <summary>
/// 统一获取大简云权限查询权限的userid companyid 没有权限则指定userid和companyid 为不存的guid值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="BindData"></param>
/// <param name="KeyName">模块keyname标识</param>
/// <param name="type">0 查询查看权限 1 操作更新权限 默认 0</param>
/// <returns></returns>
protected UserAuthorityDto GetUserAuthorityToFormDto(string KeyName,int type=0 ) {
//本人的绑定UserId 全部 userid 和 compayid不做绑定 注册公司的 绑定 companyid 没有权限则指定userid和companyid 为不存的guid值
var RetrunData = new UserAuthorityDto();
var _djyserver = IOC.AddServer<IDjyUserService>();
User User;
User = null;
var uuid = GetLoginId.ToString();
var userrs = _djyserver.GetUserInfo(GetLoginId.ToString());
var notguid = Guid.Parse("00000000-0000-0000-0000-000000000001");
RetrunData.CompayId = null;
if (userrs.Status)
{
User = userrs.Data;
RetrunData.CompayId = Guid.Parse(User.CompId);
}
if (User == null)
{
RetrunData.UserId = notguid;
RetrunData.CompayId = notguid;
}
var aut = GetDJyUserAuthority(KeyName);
if (aut != null)
{//根据权限处理 _userid 和 _companyid 值
RetrunData.IsPower = true;
var _useraut= aut.Visiblerange;
if (type == 1) {
_useraut = aut.Operaterange;
}
switch (_useraut) {
case 0://全部
RetrunData.UserId = null;
RetrunData.CompayId = null;
break;
case 1://本公司
RetrunData.UserId = null;
RetrunData.CompayId = Guid.Parse(User.CompId);
break;
case 3://本人
RetrunData.UserId = GetLoginId;
RetrunData.CompayId = null;
break;
case 4://无权限或或默认权限
//_uerid = notguid;
//_companyid = notguid;
RetrunData.UserId = notguid;
RetrunData.CompayId = notguid;
RetrunData.IsPower = false;
break;
case 7://注册公司
RetrunData.UserId = null;
RetrunData.CompayId = Guid.Parse( User.CompId);
break;
default:
RetrunData.UserId = notguid;
RetrunData.CompayId = notguid;
break;
}
}
else
{
RetrunData.UserId = notguid;
RetrunData.CompayId = notguid;
RetrunData.IsPower = false;
}
//if (sysOptionConfig.Webconfig.IsDev)
//{
// RetrunData.UserId = null;
// RetrunData.CompayId =null;
// RetrunData.IsPower = true;
//}
return RetrunData;
}
/// <summary>
/// 获取登录Id
/// </summary>
protected Guid? GetLoginId { get { return Guid.Parse(GetClaimsValue("loginid")); } }
/// <summary>
/// 获取登录类型
/// </summary>
protected EnumUser.UserType GetLoginType
{
get
{
var type = GetClaimsValue("logintype");
if (type.Isint())
{
return (EnumUser.UserType)int.Parse(type);
}
else { return EnumUser.UserType.All; }
}
}
/// <summary>
/// 根据key获取claims值 没有则返回null
/// </summary>
/// <param name="Key"></param>
/// <param name="IsDecrtypt">是否是加密</param>
/// <returns></returns>
protected string GetClaimsValue(string Key, bool IsDecrtypt = true)
{
try
{
var claims = HttpContext.User.Claims;
var id = claims.SingleOrDefault(s => s.Type == Key);
if (id == null)
{
return "0";
}
return IsDecrtypt ? _DecryptDES(id.Value) : id.Value;
}
catch {
return null;
}
}
/// <summary>
/// DES解密
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
protected static string _DecryptDES(string value)
{
return SafeTools.DecryptDES(value, sysOptionConfig.Webconfig.DesKey);
}
#endregion
}
/// <summary>
///api接口基类
/// </summary>
/// <typeparam name="IS">接口类型比如 Iservice</typeparam>
public class ApiBase<IS> : ApiBase
{
/// <summary>
///
/// </summary>
protected IS _server = IOC.AddServer<IS>();
/// <summary>
/// 执行指定的方法
/// </summary>
/// <param name="methodName">方法名称</param>
/// <param name="parameters">参数对象队列</param>
/// <returns></returns>
protected object _InvokeServer(string methodName, object[] parameters)
{
return _server.GetType().GetMethod(methodName).Invoke(_server, parameters);
}
}
/// <summary>
/// api接口基类
/// </summary>
/// <typeparam name="IS">接口类型比如 Iservice</typeparam>
/// <typeparam name="D">Dto Model</typeparam>
/// <typeparam name="T">Tables数据表model</typeparam>
public class ApiBase<IS, D, T> : ApiBase<IS>
{
/// <summary>
/// 根据Id获取实体
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
protected virtual object _GetId(long Id)
{
return _InvokeServer("GetId", new object[] { Id });
}
/// <summary>
///基础的创建接口 提交创建对象
/// </summary>
/// <param name="Dto"></param>
/// <returns></returns>
protected virtual object _Add(T Dto)
{
return _InvokeServer("Add", new object[] { Dto });
}
/// <summary>
/// 最基础的更新接口 传递要更新的数据对象 必须有Id
/// </summary>
/// <param name="Dto"></param>
/// <returns></returns>
protected virtual object _Up(T Dto)
{
return _InvokeServer("Up", new object[] { Dto, null, null });
}
/// <summary>
/// 最基础的删除接口 [1,2,3]
/// </summary>
/// <param name="Idlist"></param>
/// <returns></returns>
protected virtual object _Del(long[] Idlist)
{
return _InvokeServer("Del", new object[] { Idlist });
}
}
}

@ -1,34 +1,37 @@
using Common.DjyService;
using Common.Utilities;
using Common.Utilities;
using djy.IService.Isf;
using djy.Model.Isf;
using djy.Model.IsfDto;
using djy.Service.ISF;
using djy.Service.DjyService;
using djy.Service.Isf;
using djy_IsfApi;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace djy_AmsApi.Controllers.ISF
namespace djy_Isfpi.Controllers.ISF
{
[AllowAnonymous]
public class IsfController : ApiBase
{
ISFService ser = new ISFService();
IIsfService ser = IOC.AddServer<IIsfService>();
#region 查询接口
[HttpGet("Load")]
public object Load([FromQuery] ISFQuery request)
{
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
var result = new Response();
result.Code = 401;
result.Message = "登录过期,请重新登录!";
return result;
}
return ser.Load(request, GetLoginId.ToString());
return ser.Load(request, user);
}
#endregion
@ -37,7 +40,8 @@ namespace djy_AmsApi.Controllers.ISF
public Response AddOrUpdate(ISFDto Dto)
{
var result = new Response();
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
@ -47,9 +51,14 @@ namespace djy_AmsApi.Controllers.ISF
result.Code = 500;
result.Message = "无效数据!";
}
result.data = ser.SaveInfo(Dto, GetLoginId.ToString());
result.data = ser.SaveInfo(Dto, user);
if (result.data == "-1")
{
result.Code = 201;
result.Message = "提单号已存在!";
}
return result;
}
#endregion
@ -66,14 +75,15 @@ namespace djy_AmsApi.Controllers.ISF
var result = new Response();
try
{
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
return result;
}
ser.Delete(ids, GetLoginId.ToString());
ser.Delete(ids, user);
}
catch (Exception ex)
@ -88,18 +98,19 @@ namespace djy_AmsApi.Controllers.ISF
#region 获取模板
[HttpGet("GetTemplate")]
public Response<List<ISF_CompanyTemplate>> GetTemplate(string InFoType, string CompanyType,string TemPlateName=null)
public Response<List<ISF_CompanyTemplate>> GetTemplate(string InFoType, string CompanyType, string TemPlateName = null)
{
var result = new Response<List<ISF_CompanyTemplate>>();
try
{
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
return result;
}
result.Result = ser.GetTemplate(GetLoginId.ToString(), CompanyType, InFoType, TemPlateName);
result.Result = ser.GetTemplate(user, CompanyType, InFoType, TemPlateName);
}
catch (Exception ex)
{
@ -120,7 +131,8 @@ namespace djy_AmsApi.Controllers.ISF
public Response SaveTemplate(ISF_CompanyTemplate Dto)
{
var result = new Response();
if (GetLoginId == null)
var user = GetUserInfo();
if (user == null)
{
result.Code = 401;
result.Message = "登录过期,请重新登录!";
@ -130,9 +142,14 @@ namespace djy_AmsApi.Controllers.ISF
result.Code = 500;
result.Message = "无效数据!";
}
result.data = ser.SaveTemplate(Dto, GetLoginId.ToString());
result.data = ser.SaveTemplate(Dto, user);
if (result.data == "-1")
{
result.Code = 201;
result.Message = "模板名称重复!";
}
return result;
}
#endregion
@ -144,14 +161,14 @@ namespace djy_AmsApi.Controllers.ISF
public async Task<Response> Send(string ids, string msgType)
{
Response req = new Response();
//if (GetLoginId == null)
//{
// var result = new Response();
// result.Code = 401;
// result.Message = "登录过期,请重新登录!";
// return result;
//}
var result = ser.SendDE(ids, "d85fd590-d9f6-4410-93a1-f6fac77b606e", msgType);
var user = GetUserInfo();
if (user == null)
{
req.Code = 401;
req.Message = "登录过期,请重新登录!";
}
var result = ser.SendDE(ids, user, msgType);
req.Code = result.Result.Code;
req.Message = result.Result.Message;
return req;

@ -0,0 +1,65 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Common;
namespace djy_IsfApi
{
public class Exceptionfilter : ActionFilterAttribute,IExceptionFilter
{
public void OnException(ExceptionContext context)
{
var rs = new ReturnResult<object>();
var response = context.HttpContext.Response;
response.StatusCode = 200;
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在Action执行之前由 MVC 框架调用。
public new void OnActionExecuting(ActionExecutingContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
filterContext.Result = new BadRequestObjectResult(rs);
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在Action执行之后由 MVC 框架调用。
public new void OnActionExecuted(ActionExecutedContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
filterContext.Result = new BadRequestObjectResult(rs);
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在执行Result之前由 MVC 框架调用。
public new void OnResultExecuting(ResultExecutingContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
filterContext.Result = new BadRequestObjectResult(rs);
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
//在执行Result后由 MVC 框架调用。
public new void OnResultExecuted(ResultExecutedContext filterContext)
{
var rs = new ReturnResult<object>();
var response = filterContext.HttpContext.Response;
response.StatusCode = 200;
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
}
}

@ -0,0 +1,18 @@
using Hangfire.Annotations;
using Hangfire.Dashboard;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace djy_IsfApi
{
public class HangFireAuthorizeFilter : IDashboardAuthorizationFilter
{
public bool Authorize([NotNull] DashboardContext context)
{
//var httpcontext = context.GetHttpContext();
//return httpcontext.User.Identity.IsAuthenticated;
return true;
}
}
}

@ -0,0 +1,35 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
using Common;
namespace djy_IsfApi
{
public class HttpResponseExceptionFilter : IActionFilter, IOrderedFilter
{
public int Order { get; } = int.MaxValue - 10;
public void OnActionExecuted(ActionExecutedContext context)
{
var rs = new ReturnResult<object>();
var response = context.HttpContext.Response;
response.StatusCode = 200;
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
public void OnActionExecuting(ActionExecutingContext context)
{
var rs = new ReturnResult<object>();
var response = context.HttpContext.Response;
response.StatusCode = 200;
response.WriteAsync(JsonSerializer.Serialize(rs, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
}
}

@ -0,0 +1,31 @@
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace djy_IsfApi
{
/// <summary>
/// Ioc封装
/// </summary>
public class IOC
{
/// <summary>
/// IServiceCollection 对象
/// </summary>
public static IServiceCollection container { get; set; }
/// <summary>
/// ICo模式实例化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T AddServer<T>()
{
ServiceProvider provider = container.BuildServiceProvider();
return provider.GetService<T>();
}
}
}

@ -0,0 +1,139 @@
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text.Json;
using System.Threading.Tasks;
using Common;
using Common.Tools;
namespace djy_IsfApi
{
/*
使 startup Configure
app.UseMiddleware<MytMiddleware>();
*/
/// <summary>
/// 访问管道
/// </summary>
public class MytMiddleware
{
/// <summary>
///
/// </summary>
private readonly RequestDelegate next;
public MytMiddleware(RequestDelegate next)
{
this.next = next;
}
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public async Task Invoke(HttpContext context)
{
try
{
await next(context);
}
catch (Exception ex)
{
await HandleExceptionAsync(context, ex);
}
finally
{
var statuscode = context.Response.StatusCode;
var h = context.Response.HasStarted;
ReturnResult<string> rr = new ReturnResult<string>();
if (statuscode == 401|| statuscode == 400)
{
//页面的状态码 根据需求调整是否修改
switch (statuscode)
{
case 400:
rr.Message = "请求错误!";
rr.Code = 400;
break;
case 401:
rr.Message = "授权验证失败或已过期,请重新登录";
rr.Code = 401;
break;
}
rr.Status = false;
var response = context.Response;
try
{ response.StatusCode = 200; }
catch (Exception ex) {
var msg = ex.Message;
}
response.ContentType = "application/json";
await response.WriteAsync(JsonSerializer.Serialize(rr, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
}
}
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <param name="exception"></param>
/// <returns></returns>
private static async Task HandleExceptionAsync(HttpContext context, Exception exception)
{
if (exception == null) return;
await WriteExceptionAsync(context, exception).ConfigureAwait(false);
}
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <param name="exception"></param>
/// <returns></returns>
private static async Task WriteExceptionAsync(HttpContext context, Exception exception)
{
//记录日志
//返回友好的提示
var response = context.Response;
//状态码
if (exception is UnauthorizedAccessException)
response.StatusCode = (int)HttpStatusCode.Unauthorized;
else if (exception is Exception)
response.StatusCode = (int)HttpStatusCode.BadRequest;
response.ContentType = context.Request.Headers["Accept"];
response.StatusCode = 200;
string msg = string.Format("内部错误:{0}", exception.GetBaseException().Message);
try
{
var json = JsonSerializer.Serialize(exception.GetBaseException());
Tools.ServerWarnMessageErr(msg + " " + json);
}
catch { }
ReturnResult<string> rr = new ReturnResult<string>();
rr.Code = 400;
rr.Status = false;
rr.Message = msg;
rr.Data = rr.Message;
response.ContentType = "application/json";
await response.WriteAsync(JsonSerializer.Serialize(rr, new JsonSerializerOptions(JsonSerializerDefaults.Web))).ConfigureAwait(false);
}
}
}

@ -0,0 +1,40 @@
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using NLog.Web;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace djy_IsfApi
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
}).ConfigureAppConfiguration((ctx, builder) => {
if (ctx.HostingEnvironment.EnvironmentName == Microsoft.AspNetCore.Hosting.EnvironmentName.Production)
{
builder.AddJsonFile("appsettings.json");
}
else
{
builder.AddJsonFile("appsettings.Development.json");
}
}).ConfigureLogging(logging => { //NlogÈÕÖ¾
logging.ClearProviders();
logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
logging.AddConsole();
}).UseNLog();
}
}

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<DeleteExistingFiles>false</DeleteExistingFiles>
<ExcludeApp_Data>false</ExcludeApp_Data>
<LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<PublishProvider>FileSystem</PublishProvider>
<PublishUrl>bin\Release\net5.0\publish\</PublishUrl>
<WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish />
<TargetFramework>net5.0</TargetFramework>
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
<ProjectGuid>b9b3283e-fa06-4b06-88f1-5680ac4e5f26</ProjectGuid>
<SelfContained>false</SelfContained>
</PropertyGroup>
</Project>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<_PublishTargetUrl>F:\DJY.AMS\web\djy_IsfApi\bin\Release\net5.0\publish\</_PublishTargetUrl>
<History>True|2022-06-29T08:34:08.2367476Z;</History>
</PropertyGroup>
</Project>

@ -0,0 +1,37 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:5002",
"sslPort": 0
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger/index.html",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"djy_AmsApi": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "swagger/index.html",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:5000",
"dotnetRunMessages": "true"
},
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
"publishAllPorts": true
}
}
}

@ -0,0 +1,171 @@
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.IdentityModel.Logging;
using Microsoft.OpenApi.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Common;
using System.Reflection;
using System.IO;
using Hangfire;
using System.Net.Mime;
using AutoMapper;
using djy.Service;
using Common.Extensions;
using djy_IsfApi;
using djy.Service.DjyService;
namespace djy_IsfApi
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
/// <summary>
///
/// </summary>
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers().ConfigureApiBehaviorOptions(options => {
options.InvalidModelStateResponseFactory = context =>
{
var result = new BadRequestObjectResult(context.HttpContext);
return result;
};
});
services.AddHttpClient();
//读取配置信息
Configuration.Bind("WebConfig", sysOptionConfig.Webconfig);
sysOptionConfig._Configuration = Configuration;
services.AddAuthentication("Bearer").AddJwtBearer("Bearer", option => {
option.Authority = sysOptionConfig.Webconfig.IdentServerUrl;//授权服务的URl地址
option.RequireHttpsMetadata = false;//是否使用了https
option.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{ ValidateAudience = false };
IdentityModelEventSource.ShowPII = true;
});
//初始化数据库连接池
DbContext.DbBusInit();
////批量循环依赖注册
var ISList = Assembly.Load("djy.IService").GetTypes().Where(w => w.Name.EndsWith("Service") && w.Name.StartsWith("I"));
var Slist = Assembly.Load("djy.Service").GetTypes().Where(w => w.Name.EndsWith("Service"));
foreach (var Is in ISList)
{
var sname = Slist.FirstOrDefault(w => w.Name == Is.Name.Substring(1));
if (sname != null)
{
services.AddTransient(Is, sname);
}
}
//automapper
services.AddAutoMapper(typeof(AutoMapperConfig));
//任务配置
services.AddHangfire(config => {
config.UseRedisStorage(sysOptionConfig.Webconfig.Redis, new Hangfire.Redis.RedisStorageOptions { Prefix = "hf_" + sysOptionConfig.Webconfig.WebName, InvisibilityTimeout = TimeSpan.FromHours(1) });
});
services.AddHangfireServer();
//CAP 消息队列总线
if (sysOptionConfig.Webconfig.Rbmq_Host.IsNotNull())
{
services.AddCap(x =>
{
x.UseSqlServer(sysOptionConfig.Webconfig.Rbmq_Sqlhost);
x.UseRabbitMQ(options =>
{
var _host = sysOptionConfig.Webconfig.Rbmq_Host.Split(':');
options.HostName = _host[0];
if (_host.Length == 2)
{
options.Port = int.Parse(_host[1]);
}
options.UserName = sysOptionConfig.Webconfig.Rbmq_UserName;
options.Password = sysOptionConfig.Webconfig.Rbmq_Password;
});
x.UseDashboard();
});
}
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "djy_IsfApi", Version = "v1" });
var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
var xmlPath = Path.Combine(basePath, "AppServer.xml");
});
//初始化IOC
IOC.container = services;
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//swagger
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI(c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "djy_IsfApi v1");
// c.RoutePrefix = "apidoc";
});
}
app.UseMiddleware<MytMiddleware>();//管道
app.UseRouting();
DefaultFilesOptions defaultFiles = new DefaultFilesOptions();
defaultFiles.DefaultFileNames.Clear();
defaultFiles.DefaultFileNames.Add("index.html");
app.UseDefaultFiles(defaultFiles);
app.UseStaticFiles();
app.UseCors(builder => {
builder.AllowAnyHeader();
builder.AllowAnyMethod();
//builder.WithOrigins("http://www.baidu.com");//跨域配置
builder.AllowAnyOrigin();
});
app.UseAuthentication();//认证
app.UseAuthorization();//授权
app.UseHangfireDashboard("/job", new DashboardOptions() { Authorization = new[] { new HangFireAuthorizeFilter() } });
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}

@ -0,0 +1,71 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"WebConfig": {
"IdentServerUrl": "http://123.234.225.158:35101",
"WebId": 234,
"IsDev": true,
"Area": "山东省|青岛市|市南区",
"DesKey": "2Fv6I7oV6AlCFEbN",
"jwt_Audience": "admin",
"jwt_Issuer": "shuosoft",
"jwt_Secretkey": "IBFoxBpwAW2rSDIsYiHJL5aZ3Rpr5Uaph4t6Eqm2Fv6I7oV6AlCFEbNWRXyJT653iOFIbWOcOF3sMRSSUelRSbIL6RzOCOfIk3hhxyn9Aj4HxEE08zqlRloA0CWX7MQ0",
"jwt_Expiration": 1440,
"StrFilte": "肏,妈妈,操你妈,草泥马,屌,傻逼,骚逼,王八蛋,你妈的,+,=,-,_,/,*,&,@,.,,,*",
"ShopPower": 1,
"ConnName": "sqldb",
"cache_time": 10,
"WebHostUrl": "https://zh-userapi.jingyiji.net",
"Redis": "192.168.0.80:6379",
"RedisDb": 2,
"Rbmq_Host": "127.0.0.1:13666",
"Rbmq_UserName": "djy_paas",
"Rbmq_Password": "123qwe",
"Rbmq_Sqlhost": "Data Source =192.168.1.205,1433; Initial Catalog=TestDjyLogs; Persist Security Info=True; User ID =test; Password=test123;pooling=true",
"DapperDbString": "Data Source =123.234.225.158,28000; Initial Catalog=DevAMS; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true;",
"DataConnList": [
{
"SysKey": "AMS",
"TitleName": "AMS",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =123.234.225.158,28000; Initial Catalog=DevAMS; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true;"
},
{
"SysKey": "Common",
"TitleName": "Common",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =123.234.225.158,28000; Initial Catalog=DevCommonDB; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true;"
},
{
"SysKey": "djydb",
"TitleName": "pingtai",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =123.234.225.158,28000; Initial Catalog=DevDsPingTai; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true"
},
{
"SysKey": "logsdb",
"TitleName": "日志库",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =123.234.225.158,28000; Initial Catalog=TestDjyLogs; Persist Security Info=True; User ID =test; Password=test123;pooling=true"
}
]
}
}

@ -0,0 +1,73 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"WebConfig": {
"IdentServerUrl": "http://djy-identity.myshipping.net",
"WebId": 234,
"Area": "山东省|青岛市|市南区",
"DesKey": "2Fv6I7oV6AlCFEbN",
"jwt_Audience": "admin",
"jwt_Issuer": "shuosoft",
"jwt_Secretkey": "IBFoxBpwAW2rSDIsYiHJL5aZ3Rpr5Uaph4t6Eqm2Fv6I7oV6AlCFEbNWRXyJT653iOFIbWOcOF3sMRSSUelRSbIL6RzOCOfIk3hhxyn9Aj4HxEE08zqlRloA0CWX7MQ0",
"jwt_Expiration": 1440,
"StrFilte": "肏,妈妈,操你妈,草泥马,屌,傻逼,骚逼,王八蛋,你妈的,+,=,-,_,/,*,&,@,.,,,*",
"ShopPower": 1,
"ConnName": "sqldb",
"cache_time": 10,
"WebHostUrl": "https://zh-userapi.jingyiji.net",
"Redis": "172.1.0.2:6379",
"RedisDb": 0,
"Rbmq_Host": "172.1.0.3:5672",
"Rbmq_UserName": "admin",
"Rbmq_Password": "admin",
"Rbmq_Sqlhost": "Data Source =172.31.85.154; Initial Catalog=djy_logs; Persist Security Info=True; User ID =sa; Password=QDdjy#2020*;pooling=true",
"DapperDbString": "Data Source =123.234.225.158,28000; Initial Catalog=DevAMS; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true;",
"requesterDea": "nbforwarder",
"DataConnList": [
{
"SysKey": "AMS",
"TitleName": "AMS",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =123.234.225.158,28000; Initial Catalog=DevAMS; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true;"
},
{
"SysKey": "Common",
"TitleName": "Common",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =123.234.225.158,28000; Initial Catalog=DevCommonDB; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true;"
},
{
"SysKey": "djydb",
"TitleName": "pingtai",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =123.234.225.158,28000; Initial Catalog=DevDsPingTai; Persist Security Info=True; User ID =dev; Password=dev123;pooling=true"
},
{
"SysKey": "logsdb",
"TitleName": "日志库",
"Index": 100,
"DataType": 1,
"Status": 0,
"ConnString": "Data Source =172.31.85.154,1433; Initial Catalog=djy_logs; Persist Security Info=True; User ID =sa; Password=QDdjy#2020*;pooling=true"
}
]
}
}

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="3.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="5.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.14.0" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.12.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Djy.Common\Common.csproj" />
<ProjectReference Include="..\djy.IService\djy.IService.csproj" />
<ProjectReference Include="..\djy.Model\djy.Model.csproj" />
<ProjectReference Include="..\djy.Service\djy.Service.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<NameOfLastUsedPublishProfile>F:\DJY.AMS\web\djy_IsfApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
</PropertyGroup>
</Project>

@ -0,0 +1,71 @@
/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */
a.navbar-brand {
white-space: normal;
text-align: center;
word-break: break-all;
}
/* Provide sufficient contrast against white background */
a {
color: #0366d6;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
/* Sticky footer styles
-------------------------------------------------- */
html {
font-size: 14px;
}
@media (min-width: 768px) {
html {
font-size: 16px;
}
}
.border-top {
border-top: 1px solid #e5e5e5;
}
.border-bottom {
border-bottom: 1px solid #e5e5e5;
}
.box-shadow {
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}
button.accept-policy {
font-size: 1rem;
line-height: inherit;
}
/* Sticky footer styles
-------------------------------------------------- */
html {
position: relative;
min-height: 100%;
}
body {
/* Margin bottom by footer height */
margin-bottom: 60px;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
white-space: nowrap;
line-height: 60px; /* Vertically center the text there */
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

@ -0,0 +1,4 @@
// Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
// for details on configuring this project to bundle and minify static web assets.
// Write your JavaScript code.

@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2011-2018 Twitter, Inc.
Copyright (c) 2011-2018 The Bootstrap Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,331 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
select {
word-wrap: normal;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
cursor: pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v4.3.1 (https://getbootstrap.com/)
* Copyright 2011-2019 The Bootstrap Authors
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,12 @@
Copyright (c) .NET Foundation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
these files except in compliance with the License. You may obtain a copy of the
License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.

@ -0,0 +1,432 @@
// Unobtrusive validation support library for jQuery and jQuery Validate
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
// @version v3.2.11
/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */
/*global document: false, jQuery: false */
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define("jquery.validate.unobtrusive", ['jquery-validation'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports
module.exports = factory(require('jquery-validation'));
} else {
// Browser global
jQuery.validator.unobtrusive = factory(jQuery);
}
}(function ($) {
var $jQval = $.validator,
adapters,
data_validation = "unobtrusiveValidation";
function setValidationValues(options, ruleName, value) {
options.rules[ruleName] = value;
if (options.message) {
options.messages[ruleName] = options.message;
}
}
function splitAndTrim(value) {
return value.replace(/^\s+|\s+$/g, "").split(/\s*,\s*/g);
}
function escapeAttributeValue(value) {
// As mentioned on http://api.jquery.com/category/selectors/
return value.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g, "\\$1");
}
function getModelPrefix(fieldName) {
return fieldName.substr(0, fieldName.lastIndexOf(".") + 1);
}
function appendModelPrefix(value, prefix) {
if (value.indexOf("*.") === 0) {
value = value.replace("*.", prefix);
}
return value;
}
function onError(error, inputElement) { // 'this' is the form element
var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
replaceAttrValue = container.attr("data-valmsg-replace"),
replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null;
container.removeClass("field-validation-valid").addClass("field-validation-error");
error.data("unobtrusiveContainer", container);
if (replace) {
container.empty();
error.removeClass("input-validation-error").appendTo(container);
}
else {
error.hide();
}
}
function onErrors(event, validator) { // 'this' is the form element
var container = $(this).find("[data-valmsg-summary=true]"),
list = container.find("ul");
if (list && list.length && validator.errorList.length) {
list.empty();
container.addClass("validation-summary-errors").removeClass("validation-summary-valid");
$.each(validator.errorList, function () {
$("<li />").html(this.message).appendTo(list);
});
}
}
function onSuccess(error) { // 'this' is the form element
var container = error.data("unobtrusiveContainer");
if (container) {
var replaceAttrValue = container.attr("data-valmsg-replace"),
replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null;
container.addClass("field-validation-valid").removeClass("field-validation-error");
error.removeData("unobtrusiveContainer");
if (replace) {
container.empty();
}
}
}
function onReset(event) { // 'this' is the form element
var $form = $(this),
key = '__jquery_unobtrusive_validation_form_reset';
if ($form.data(key)) {
return;
}
// Set a flag that indicates we're currently resetting the form.
$form.data(key, true);
try {
$form.data("validator").resetForm();
} finally {
$form.removeData(key);
}
$form.find(".validation-summary-errors")
.addClass("validation-summary-valid")
.removeClass("validation-summary-errors");
$form.find(".field-validation-error")
.addClass("field-validation-valid")
.removeClass("field-validation-error")
.removeData("unobtrusiveContainer")
.find(">*") // If we were using valmsg-replace, get the underlying error
.removeData("unobtrusiveContainer");
}
function validationInfo(form) {
var $form = $(form),
result = $form.data(data_validation),
onResetProxy = $.proxy(onReset, form),
defaultOptions = $jQval.unobtrusive.options || {},
execInContext = function (name, args) {
var func = defaultOptions[name];
func && $.isFunction(func) && func.apply(form, args);
};
if (!result) {
result = {
options: { // options structure passed to jQuery Validate's validate() method
errorClass: defaultOptions.errorClass || "input-validation-error",
errorElement: defaultOptions.errorElement || "span",
errorPlacement: function () {
onError.apply(form, arguments);
execInContext("errorPlacement", arguments);
},
invalidHandler: function () {
onErrors.apply(form, arguments);
execInContext("invalidHandler", arguments);
},
messages: {},
rules: {},
success: function () {
onSuccess.apply(form, arguments);
execInContext("success", arguments);
}
},
attachValidation: function () {
$form
.off("reset." + data_validation, onResetProxy)
.on("reset." + data_validation, onResetProxy)
.validate(this.options);
},
validate: function () { // a validation function that is called by unobtrusive Ajax
$form.validate();
return $form.valid();
}
};
$form.data(data_validation, result);
}
return result;
}
$jQval.unobtrusive = {
adapters: [],
parseElement: function (element, skipAttach) {
/// <summary>
/// Parses a single HTML element for unobtrusive validation attributes.
/// </summary>
/// <param name="element" domElement="true">The HTML element to be parsed.</param>
/// <param name="skipAttach" type="Boolean">[Optional] true to skip attaching the
/// validation to the form. If parsing just this single element, you should specify true.
/// If parsing several elements, you should specify false, and manually attach the validation
/// to the form when you are finished. The default is false.</param>
var $element = $(element),
form = $element.parents("form")[0],
valInfo, rules, messages;
if (!form) { // Cannot do client-side validation without a form
return;
}
valInfo = validationInfo(form);
valInfo.options.rules[element.name] = rules = {};
valInfo.options.messages[element.name] = messages = {};
$.each(this.adapters, function () {
var prefix = "data-val-" + this.name,
message = $element.attr(prefix),
paramValues = {};
if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy)
prefix += "-";
$.each(this.params, function () {
paramValues[this] = $element.attr(prefix + this);
});
this.adapt({
element: element,
form: form,
message: message,
params: paramValues,
rules: rules,
messages: messages
});
}
});
$.extend(rules, { "__dummy__": true });
if (!skipAttach) {
valInfo.attachValidation();
}
},
parse: function (selector) {
/// <summary>
/// Parses all the HTML elements in the specified selector. It looks for input elements decorated
/// with the [data-val=true] attribute value and enables validation according to the data-val-*
/// attribute values.
/// </summary>
/// <param name="selector" type="String">Any valid jQuery selector.</param>
// $forms includes all forms in selector's DOM hierarchy (parent, children and self) that have at least one
// element with data-val=true
var $selector = $(selector),
$forms = $selector.parents()
.addBack()
.filter("form")
.add($selector.find("form"))
.has("[data-val=true]");
$selector.find("[data-val=true]").each(function () {
$jQval.unobtrusive.parseElement(this, true);
});
$forms.each(function () {
var info = validationInfo(this);
if (info) {
info.attachValidation();
}
});
}
};
adapters = $jQval.unobtrusive.adapters;
adapters.add = function (adapterName, params, fn) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
/// <param name="params" type="Array" optional="true">[Optional] An array of parameter names (strings) that will
/// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and
/// mmmm is the parameter name).</param>
/// <param name="fn" type="Function">The function to call, which adapts the values from the HTML
/// attributes into jQuery Validate rules and/or messages.</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
if (!fn) { // Called with no params, just a function
fn = params;
params = [];
}
this.push({ name: adapterName, params: params, adapt: fn });
return this;
};
adapters.addBool = function (adapterName, ruleName) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
/// the jQuery Validate validation rule has no parameter values.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
/// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
/// of adapterName will be used instead.</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
return this.add(adapterName, function (options) {
setValidationValues(options, ruleName || adapterName, true);
});
};
adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
/// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and
/// one for min-and-max). The HTML parameters are expected to be named -min and -max.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).</param>
/// <param name="minRuleName" type="String">The name of the jQuery Validate rule to be used when you only
/// have a minimum value.</param>
/// <param name="maxRuleName" type="String">The name of the jQuery Validate rule to be used when you only
/// have a maximum value.</param>
/// <param name="minMaxRuleName" type="String">The name of the jQuery Validate rule to be used when you
/// have both a minimum and maximum value.</param>
/// <param name="minAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
/// contains the minimum value. The default is "min".</param>
/// <param name="maxAttribute" type="String" optional="true">[Optional] The name of the HTML attribute that
/// contains the maximum value. The default is "max".</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) {
var min = options.params.min,
max = options.params.max;
if (min && max) {
setValidationValues(options, minMaxRuleName, [min, max]);
}
else if (min) {
setValidationValues(options, minRuleName, min);
}
else if (max) {
setValidationValues(options, maxRuleName, max);
}
});
};
adapters.addSingleVal = function (adapterName, attribute, ruleName) {
/// <summary>Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where
/// the jQuery Validate validation rule has a single value.</summary>
/// <param name="adapterName" type="String">The name of the adapter to be added. This matches the name used
/// in the data-val-nnnn HTML attribute(where nnnn is the adapter name).</param>
/// <param name="attribute" type="String">[Optional] The name of the HTML attribute that contains the value.
/// The default is "val".</param>
/// <param name="ruleName" type="String" optional="true">[Optional] The name of the jQuery Validate rule. If not provided, the value
/// of adapterName will be used instead.</param>
/// <returns type="jQuery.validator.unobtrusive.adapters" />
return this.add(adapterName, [attribute || "val"], function (options) {
setValidationValues(options, ruleName || adapterName, options.params[attribute]);
});
};
$jQval.addMethod("__dummy__", function (value, element, params) {
return true;
});
$jQval.addMethod("regex", function (value, element, params) {
var match;
if (this.optional(element)) {
return true;
}
match = new RegExp(params).exec(value);
return (match && (match.index === 0) && (match[0].length === value.length));
});
$jQval.addMethod("nonalphamin", function (value, element, nonalphamin) {
var match;
if (nonalphamin) {
match = value.match(/\W/g);
match = match && match.length >= nonalphamin;
}
return match;
});
if ($jQval.methods.extension) {
adapters.addSingleVal("accept", "mimtype");
adapters.addSingleVal("extension", "extension");
} else {
// for backward compatibility, when the 'extension' validation method does not exist, such as with versions
// of JQuery Validation plugin prior to 1.10, we should use the 'accept' method for
// validating the extension, and ignore mime-type validations as they are not supported.
adapters.addSingleVal("extension", "extension", "accept");
}
adapters.addSingleVal("regex", "pattern");
adapters.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url");
adapters.addMinMax("length", "minlength", "maxlength", "rangelength").addMinMax("range", "min", "max", "range");
adapters.addMinMax("minlength", "minlength").addMinMax("maxlength", "minlength", "maxlength");
adapters.add("equalto", ["other"], function (options) {
var prefix = getModelPrefix(options.element.name),
other = options.params.other,
fullOtherName = appendModelPrefix(other, prefix),
element = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(fullOtherName) + "']")[0];
setValidationValues(options, "equalTo", element);
});
adapters.add("required", function (options) {
// jQuery Validate equates "required" with "mandatory" for checkbox elements
if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") {
setValidationValues(options, "required", true);
}
});
adapters.add("remote", ["url", "type", "additionalfields"], function (options) {
var value = {
url: options.params.url,
type: options.params.type || "GET",
data: {}
},
prefix = getModelPrefix(options.element.name);
$.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) {
var paramName = appendModelPrefix(fieldName, prefix);
value.data[paramName] = function () {
var field = $(options.form).find(":input").filter("[name='" + escapeAttributeValue(paramName) + "']");
// For checkboxes and radio buttons, only pick up values from checked fields.
if (field.is(":checkbox")) {
return field.filter(":checked").val() || field.filter(":hidden").val() || '';
}
else if (field.is(":radio")) {
return field.filter(":checked").val() || '';
}
return field.val();
};
});
setValidationValues(options, "remote", value);
});
adapters.add("password", ["min", "nonalphamin", "regex"], function (options) {
if (options.params.min) {
setValidationValues(options, "minlength", options.params.min);
}
if (options.params.nonalphamin) {
setValidationValues(options, "nonalphamin", options.params.nonalphamin);
}
if (options.params.regex) {
setValidationValues(options, "regex", options.params.regex);
}
});
adapters.add("fileextensions", ["extensions"], function (options) {
setValidationValues(options, "extension", options.params.extensions);
});
$(function () {
$jQval.unobtrusive.parse(document);
});
return $jQval.unobtrusive;
}));

File diff suppressed because one or more lines are too long

@ -0,0 +1,22 @@
The MIT License (MIT)
=====================
Copyright Jörn Zaefferer
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,36 @@
Copyright JS Foundation and other contributors, https://js.foundation/
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
available at https://github.com/jquery/jquery
The following license applies to all parts of this software except as
documented below:
====
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
====
All files located in the node_modules and external directories are
externally maintained libraries used by this software which have their
own licenses; we recommend you read them, as their terms may differ from
the terms above.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -23,6 +23,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "djy_AmsApi", "djy.WebApi\dj
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "djy.Service", "djy.Service\djy.Service.csproj", "{263A1D6E-4453-419E-8FFB-06F3AC18AAC9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "djy_IsfApi", "djy_IsfApi\djy_IsfApi.csproj", "{B9B3283E-FA06-4B06-88F1-5680AC4E5F26}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -49,6 +51,10 @@ Global
{263A1D6E-4453-419E-8FFB-06F3AC18AAC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{263A1D6E-4453-419E-8FFB-06F3AC18AAC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{263A1D6E-4453-419E-8FFB-06F3AC18AAC9}.Release|Any CPU.Build.0 = Release|Any CPU
{B9B3283E-FA06-4B06-88F1-5680AC4E5F26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9B3283E-FA06-4B06-88F1-5680AC4E5F26}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9B3283E-FA06-4B06-88F1-5680AC4E5F26}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9B3283E-FA06-4B06-88F1-5680AC4E5F26}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -59,6 +65,7 @@ Global
{8365037C-B9AC-4BC0-9C25-AA2C37CC902C} = {90967658-4A52-44C1-8A42-366B1CCD982E}
{84789CC9-B13D-4693-BF4F-6DA3E32736A2} = {E3B4DD84-D374-432C-AEA9-782D33748578}
{263A1D6E-4453-419E-8FFB-06F3AC18AAC9} = {1E6EFB04-DE56-4879-81CB-0DDEAB09EBCB}
{B9B3283E-FA06-4B06-88F1-5680AC4E5F26} = {E3B4DD84-D374-432C-AEA9-782D33748578}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {822B0661-DA88-4792-AAF3-C508FB88AF3B}

Loading…
Cancel
Save