using Bwp.MainSystem;
|
|
using BWP.B3WeChat.BL;
|
|
using BWP.B3WeChat.BO;
|
|
using BWP.B3WeChat.BO.NamedValueTemplate;
|
|
using BWP.B3WeChat.Utils;
|
|
using Forks.EnterpriseServices.BusinessInterfaces;
|
|
using Forks.EnterpriseServices.DomainObjects2;
|
|
using Forks.EnterpriseServices.DomainObjects2.DQuery;
|
|
using Forks.EnterpriseServices.JsonRpc;
|
|
using Forks.EnterpriseServices.SqlDoms;
|
|
using Forks.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web;
|
|
using TSingSoft.WebPluginFramework;
|
|
|
|
namespace BWP.B3WeChat.Rpcs
|
|
{
|
|
[Rpc]
|
|
public static class ApproveMessageRpc
|
|
{
|
|
static IApproveMessageBL bl = BIFactory.Create<IApproveMessageBL>();
|
|
|
|
|
|
const string authUrlTemplate = "https://open.weixin.qq.com/connect/oauth2/authorize?appid={APPID}&redirect_uri={REDIRECT_URI}&response_type=code&scope=snsapi_base#wechat_redirect";
|
|
|
|
[Rpc]
|
|
public static void Insert(ApproveMessage message)
|
|
{
|
|
var deviceNumber = ClientRpc.GetDeviceNumber();
|
|
message.CustomerCode = deviceNumber;
|
|
|
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(CustomerUser)));
|
|
query.Where.Conditions.Add(DQCondition.EQ("CustomerCode", deviceNumber));
|
|
query.Where.Conditions.Add(DQCondition.EQ("CustomerUsername", message.Username));
|
|
query.Columns.Add(DQSelectColumn.Field("OpenID"));
|
|
query.Range = SelectRange.Top(1);
|
|
var openID = query.EExecuteScalar<string>();
|
|
|
|
if (string.IsNullOrEmpty(openID))
|
|
{
|
|
throw new Exception("审批用户没有关注公众号");
|
|
}
|
|
|
|
message.OpenID = openID;
|
|
|
|
ApproveMessageBL.Instance.Insert(message);
|
|
|
|
|
|
var mainSystemConfig = new MainSystemConfig();
|
|
var internetAccessAddress = mainSystemConfig.InternetAccessAddress.Value;
|
|
|
|
var originUrl = internetAccessAddress + "app/index.html?messageid=" + message.ID;
|
|
|
|
var wechatmessage = string.Format("ERP系统给你的用户{0}发送了一个消息待您审批", message.Username);
|
|
|
|
var timeStr = DateTime.Now.ToLongTimeString();
|
|
|
|
SendMessageUtil.SendInformInfo(message.OpenID, wechatmessage, timeStr, message.Title, message.Username, BLContext.ClientIP, timeStr, "", originUrl);
|
|
|
|
}
|
|
|
|
|
|
[Rpc]
|
|
public static Dictionary<string, short> QueryApproveResult(string[] messageIDList)
|
|
{
|
|
if (messageIDList.Length == 0)
|
|
{
|
|
return new Dictionary<string, short>(0);
|
|
}
|
|
var query = new DQueryDom(new JoinAlias(typeof(ApproveMessage)));
|
|
query.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"),
|
|
messageIDList.Select((item) => DQExpression.Value(item)).ToArray()));
|
|
query.Columns.Add(DQSelectColumn.Field("ID"));
|
|
query.Columns.Add(DQSelectColumn.Field("ApproveResult"));
|
|
|
|
var dic = query.EExecuteList<string, NamedValue<审批状态>>()
|
|
.ToDictionary((item) => item.Item1, (item) => item.Item2.Value);
|
|
|
|
foreach (var messasgeID in messageIDList)
|
|
{
|
|
if (!dic.ContainsKey(messasgeID))
|
|
{
|
|
dic.Add(messasgeID, 审批状态.已删除.Value);
|
|
}
|
|
}
|
|
return dic;
|
|
}
|
|
|
|
|
|
|
|
[Rpc]
|
|
public static void Delete(string messageID)
|
|
{
|
|
bl.Delete(messageID);
|
|
}
|
|
|
|
}
|
|
}
|