Commit 8878ab09 authored by 席世权's avatar 席世权

接口推送

parent b5ecfdc3
using DapperORM.Common.Models;
using PushApi.Act.Models.Send;
using PushInfo.Core.BLL;
using PushInfo.Core.Common;
using PushInfo.Core.Models.QueryResults;
using PushInfo.Core.Models.Tables;
using PushPlatform.Common.Enumerate;
using PushPlatform.Common.Model;
using PushPlatform.Common.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PushApi.Act.BLL
{
/// <summary>
/// 外部推送
/// </summary>
public class OutProcessTaskBLL
{
#region 系统主动调用发送任务,数据来源外部
/// <summary>
///
/// </summary>
/// <param name="valModel"></param>
/// <returns></returns>
public BaseResponse<string> SendPushOfExternal(PushValModel valModel)
{
ProcessTaskBLL taskBll = new ProcessTaskBLL();
MapProjectPushBLL mProPushBll = new MapProjectPushBLL();
BaseResponse<string> result = new BaseResponse<string>();
try
{
Map_Project_Push task = mProPushBll.Query_Sys_Task_By_Id(valModel.ProCfgId);
if (task == null)
throw new Exception("传输的配置表的Id有误,推送失败。");
if (task.Exec_Status == (int)ExecuteStatus.已经停用)
throw new Exception("推送任务已停用,推送失败,请查询配置信息。");
mProPushBll.Modify_Task_Excute(valModel.ProCfgId, ExecuteStatus.已安排触发器, task.Trigger_Key, null);
DataMessage data = new DataMessage();
data.userId = valModel.UserId;
data.clientType = valModel.ClientType;
data.clientID = valModel.ClientId;
data.realName = valModel.RealName;
data.mobile = valModel.Mobile;
data.openId = valModel.OpenId;
data.dicValue = valModel.DicValue;
task.Push_Title = PushValueHelp.TransfOfDataModel(StringUtil.ExtractNotEmtry(valModel.PushTitle, task.Push_Title), data);
task.Push_Body = PushValueHelp.TransfOfDataModel(StringUtil.ExtractNotEmtry(valModel.PushBody, task.Push_Body), data);
task.Wx_MsmTemp = PushValueHelp.TransfOfDataModel(StringUtil.ExtractNotEmtry(valModel.WxMsmTemp, task.Wx_MsmTemp), data);
task.Push_IosLink = PushValueHelp.TransfOfDataModel(StringUtil.ExtractNotEmtry(valModel.PushIosLink, task.Push_IosLink), data);
task.Push_AndLink = PushValueHelp.TransfOfDataModel(StringUtil.ExtractNotEmtry(valModel.PushAndLink, task.Push_AndLink), data);
task.Push_WebLink = PushValueHelp.TransfOfDataModel(StringUtil.ExtractNotEmtry(valModel.PushWebLink, task.Push_WebLink), data);
task.Push_WechatLink = PushValueHelp.TransfOfDataModel(StringUtil.ExtractNotEmtry(valModel.PushWechatLink, task.Push_WechatLink), data);
if (taskBll.ConfirmSend(task, data))
{
result.DetailedMessage = "发送成功";
}
else
throw new Exception("发送失败");
}
catch (Exception ex)
{
result.DetailedStatus = DetailedStatusCode.Fail;
result.DetailedMessage = ex.Message;
LogHelper.Error(ex);
}
return result;
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PushApi.Act.Models.Send
{
public class PushValModel
{
/// <summary>
/// 推送配置表的Id
/// </summary>
public System.String ProCfgId { get; set; }
/// <summary>
/// 用户Id
/// </summary>
public System.String UserId { get; set; }
/// <summary>
/// 手机的系统类型
/// </summary>
public string ClientType { get; set; }
/// <summary>
/// 手机的设备序列号
/// </summary>
public string ClientId { get; set; }
/// <summary>
/// 用户正式姓名
/// </summary>
public string RealName { get; set; }
/// <summary>
/// 用户手机号
/// </summary>
public string Mobile { get; set; }
/// <summary>
/// 用户微信唯一标示
/// </summary>
public string OpenId { get; set; }
/// <summary>
/// 推送title
/// </summary>
public System.String PushTitle { get; set; }
/// <summary>
/// 推送body
/// </summary>
public System.String PushBody { get; set; }
/// <summary>
/// 推送消息模板
/// </summary>
public System.String WxMsmTemp { get; set; }
/// <summary>
/// ios跳转
/// </summary>
public System.String PushIosLink { get; set; }
/// <summary>
/// and跳转
/// </summary>
public System.String PushAndLink { get; set; }
/// <summary>
/// web跳转
/// </summary>
public System.String PushWebLink { get; set; }
/// <summary>
/// 微信跳转
/// </summary>
public System.String PushWechatLink { get; set; }
/// <summary>
/// 推送数据包
/// </summary>
public Dictionary<string, string> DicValue { get; set; }
}
}
......@@ -44,7 +44,9 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BLL\OutProcessTaskBLL.cs" />
<Compile Include="BLL\TrialBLL.cs" />
<Compile Include="Models\Send\PushValModel.cs" />
<Compile Include="Models\Trial\DataMessage.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
......
This diff is collapsed.
using PushApi.Act.BLL;
using PushApi.Act.Models.Send;
using PushApi.Act.Models.Trial;
using PushPlatform.Common.Model;
using PushPlatform.Common.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace PushPf.Api.Controllers
{
/// <summary>
///
/// </summary>
public class SendController : ApiController
{
/// <summary>
/// 系统主动调用发送任务,数据来源外部
/// </summary>
/// <param name="valModel">ProCfg_Id必须传输</param>
/// <returns></returns>
[HttpPost]
public HttpResponseMessage PushOfExternal(PushValModel valModel)
{
HttpStatusCode statusCode = HttpStatusCode.OK;
BaseResponse<string> model = new BaseResponse<string>();
try
{
if (string.IsNullOrEmpty(valModel.ProCfgId) || string.IsNullOrEmpty(valModel.UserId))
{
model.DetailedStatus = DetailedStatusCode.Fail;
model.DetailedMessage = "配置不能为空";
return Request.CreateResponse(statusCode, model);
}
model = new OutProcessTaskBLL().SendPushOfExternal(valModel);
}
catch (Exception ex)
{
LogHelper.Error(ex);
model.DetailedStatus = DetailedStatusCode.Fail;
model.DetailedMessage = "异常,请联系管理员";
}
return Request.CreateResponse(statusCode, model);
}
}
}
\ No newline at end of file
......@@ -35,6 +35,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\PushPf.Api.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
......@@ -81,6 +82,9 @@
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
<HintPath>..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
......@@ -140,6 +144,9 @@
<Private>True</Private>
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
</Reference>
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
<HintPath>..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll</HintPath>
</Reference>
<Reference Include="WebGrease">
<Private>True</Private>
<HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
......@@ -151,12 +158,15 @@
</ItemGroup>
<ItemGroup>
<Folder Include="App_Data\" />
<Folder Include="Views\Send\" />
</ItemGroup>
<ItemGroup>
<Compile Include="App_Start\BundleConfig.cs" />
<Compile Include="App_Start\FilterConfig.cs" />
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="App_Start\SwaggerConfig.cs" />
<Compile Include="App_Start\WebApiConfig.cs" />
<Compile Include="Controllers\SendController.cs" />
<Compile Include="Controllers\TrialController.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
......
......@@ -71,6 +71,14 @@
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
......
......@@ -33,5 +33,7 @@
<package id="Modernizr" version="2.6.2" targetFramework="net45" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
<package id="Respond" version="1.2.0" targetFramework="net45" />
<package id="Swashbuckle.Core" version="5.6.0" targetFramework="net45" />
<package id="WebActivatorEx" version="2.2.0" targetFramework="net45" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
</packages>
\ No newline at end of file
......@@ -158,7 +158,7 @@
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<UseIIS>False</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>32450</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
......
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PushPlatform.Common.Model
{
#region 基础返回结果(返回数据)
/// <summary>
/// 基础返回结果(返回数据)
/// </summary>
public class BaseResponse<T>
{
/// <summary>
/// 网关状态
/// </summary>
public GatewayStatusCode GatewayStatus { get; set; }
/// <summary>
/// 网关状态描述
/// </summary>
public string GatewayMessage { get; set; }
/// <summary>
/// 详细交易状态
/// </summary>
public DetailedStatusCode DetailedStatus { get; set; }
/// <summary>
/// 详细交易状态
/// </summary>
public string DetailedMessage { get; set; }
/// <summary>
/// 返回数据
/// </summary>
public T Data { get; set; }
/// <summary>
/// 默认构造函数
/// </summary>
public BaseResponse()
{
GatewayStatus = GatewayStatusCode.Success;
GatewayMessage = "成功";
DetailedStatus = DetailedStatusCode.Success;
DetailedMessage = "成功";
}
}
#endregion
#region 基础返回结果(不返回数据)
/// <summary>
/// 基础返回结果(不返回数据)
/// </summary>
public class BaseResponse
{
/// <summary>
/// 网关状态
/// </summary>
public GatewayStatusCode GatewayStatus { get; set; }
/// <summary>
/// 网关状态描述
/// </summary>
public string GatewayMessage { get; set; }
/// <summary>
/// 详细状态
/// </summary>
public DetailedStatusCode DetailedStatus { get; set; }
/// <summary>
/// 详细状态描述
/// </summary>
public string DetailedMessage { get; set; }
/// <summary>
/// 默认构造函数
/// </summary>
public BaseResponse()
{
GatewayStatus = GatewayStatusCode.Success;
GatewayMessage = "成功";
DetailedStatus = DetailedStatusCode.Success;
DetailedMessage = "成功";
}
}
#endregion
/// <summary>
/// 网关状态代码
/// </summary>
[Description("网关状态代码")]
public enum GatewayStatusCode : int
{
/// <summary>
/// 成功
/// </summary>
[Description("成功")]
Success = 1,
/// <summary>
/// 失败
/// </summary>
[Description("失败")]
Fail = 2,
}
/// <summary>
/// 接口详细描述代码
/// </summary>
[Description("接口详细描述代码")]
public enum DetailedStatusCode : int
{
#region 公用
/// <summary>
/// 无意义的,防止某些序列化工具在序列化时报错
/// </summary>
[Description("无意义的,防止某些序列化工具在序列化时报错")]
None = 0,
/// <summary>
/// 成功
/// </summary>
[Description("成功")]
Success = 1,
/// <summary>
/// 失败
/// </summary>
[Description("失败")]
Fail = 2,
/// <summary>
/// 未知异常
/// </summary>
[Description("未知异常")]
Error = 3,
/// <summary>
/// 参数异常
/// </summary>
[Description("参数异常")]
ParamsError = 4,
/// <summary>
/// 重复提交数据
/// </summary>
[Description("重复提交数据")]
RepeatSubmit = 5,
/// <summary>
/// 配置错误
/// </summary>3
[Description("配置错误")]
ConfigIsError = 6,
/// <summary>
/// 暂无数据
/// </summary>
[Description("暂无数据")]
DataIsNull = 7,
/// <summary>
/// 数据已存在
/// </summary>
[Description("数据已存在")]
DataAlreadyExists = 8,
#endregion
/// <summary>
/// 重复登录
/// </summary>
[Description("重复登录")]
RepeatLogin = 9,
/// <summary>
/// 验证码已过期或已使用
/// </summary>
[Description("验证码已过期或已使用")]
VerifyCodeExpire = 10,
/// <summary>
/// Token已过期
/// </summary>
[Description("Token已过期")]
TokenExpire = 11,
/// <summary>
/// 部分成功(操作数据时只有部分数据操作成功)
/// </summary>
[Description("部分成功(操作数据时只有部分数据操作成功)")]
PartialSuccess = 12,
/// <summary>
/// 用户不存在
/// </summary>
[Description("用户不存在")]
UserDoesNotExist = 13,
/// <summary>
/// 其他客户端登录
/// </summary>
[Description("其他客户端登录")]
OtherClientLogin = 14,
/// <summary>
/// 该用户已经退出登录
/// </summary>
[Description("该用户已经退出登录")]
LogOutExpire = 15,
/// <summary>
/// 用户已禁用
/// </summary>
[Description("用户已禁用")]
UserDisabled = 16,
/// <summary>
/// 账号已过期
/// </summary>
[Description("账号已过期")]
AccountExpired = 17,
/// <summary>
/// 无权限
/// </summary>
[Description("无权限")]
NoPermission = 18,
/// <summary>
/// 账号已冻结
/// </summary>
[Description("账号已冻结")]
AccountFrozen = 19,
/// <summary>
/// 用户已冻结
/// </summary>
[Description("用户已冻结")]
UserFrozen = 20,
/// <summary>
/// 只抛错误信息
/// </summary>
[Description("只抛错误信息")]
OnlyThrowErrorMsg = 100,
/// <summary>
/// 用户已存在
/// </summary>
[Description("用户已存在")]
UserExist = 101,
/// <summary>
/// 角色不存在
/// </summary>
[Description("角色不存在")]
RoleDoesNotExist = 102,
/// <summary>
/// 科室不存在
/// </summary>
[Description("科室不存在")]
DepartmentDoesNotExist = 103,
/// <summary>
/// 综合评价信息不存在
/// </summary>
[Description("综合评价信息不存在")]
GradeInfoDoesNotExist = 104,
/// <summary>
/// 已提交
/// </summary>
[Description("已提交")]
Submitted = 105,
}
}
......@@ -90,6 +90,7 @@
<Compile Include="Enumerate\SelectType.cs" />
<Compile Include="Enumerate\SendCfgType.cs" />
<Compile Include="Enumerate\SmsType.cs" />
<Compile Include="Model\ApiBaseResponse.cs" />
<Compile Include="Model\APIResult.cs" />
<Compile Include="Model\AppPushConfig.cs" />
<Compile Include="Model\ChildProject.cs" />
......
......@@ -199,5 +199,18 @@ namespace PushPlatform.Common.Util
return null;
}
#endregion
/// <summary>
/// 判断不为空的返回
/// </summary>
/// <param name="firstStr"></param>
/// <param name="secondStr"></param>
/// <returns></returns>
public static string ExtractNotEmtry(string firstStr,string secondStr)
{
if (!string.IsNullOrEmpty(firstStr))
return firstStr;
return secondStr;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment