|
|
|
@ -36,30 +36,29 @@ namespace BWP.B3WeChat.Rpcs |
|
|
|
[Rpc] |
|
|
|
public static void Send(string username, string content) |
|
|
|
{ |
|
|
|
logger.Info("Send Begin"); |
|
|
|
string oppenid = GetOpenId(username).ToString(); |
|
|
|
logger.Info("Send+username:" + username + ",content" + content + ",oppenid"); |
|
|
|
string oppenid = GetOpenId(username); |
|
|
|
string[] param = content.Split('|'); |
|
|
|
switch (param[0]) |
|
|
|
{ |
|
|
|
case "SendAgentInfo": SendMessageUtil.SendAgentInfo(oppenid, param[1], param[2], param[3], param[4]); break; |
|
|
|
default: SendMessageUtil.SendInformInfo(oppenid,"青花瓷软件温馨提醒",DateTime.Now.ToString("yyyy-MM-dd HH:mm"),content,string.Empty,string.Empty,string.Empty,string.Empty); break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static int GetOpenId(string username) |
|
|
|
static string GetOpenId(string username) |
|
|
|
{ |
|
|
|
string customer = GetDeviceNumber(); |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(QRCodeScene))); |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(QRCode))); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("OppenId")); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("Customer", customer)); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("UserId", username)); |
|
|
|
query.Range = SelectRange.Top(1); |
|
|
|
var OppenId = query.EExecuteScalar<int?>(); |
|
|
|
if (!OppenId.HasValue) |
|
|
|
var OppenId = query.EExecuteScalar<string>(); |
|
|
|
if (string.IsNullOrEmpty(OppenId)) |
|
|
|
{ |
|
|
|
throw new Exception("未找到该微信用户或者" + username + "未关联微信"); |
|
|
|
} |
|
|
|
return OppenId.Value; |
|
|
|
return OppenId; |
|
|
|
} |
|
|
|
|
|
|
|
[Rpc] |
|
|
|
@ -67,28 +66,25 @@ namespace BWP.B3WeChat.Rpcs |
|
|
|
{ |
|
|
|
string url = string.Empty; |
|
|
|
string customer = GetDeviceNumber(); |
|
|
|
logger.Info("customer:" + customer + ",username:" + username); |
|
|
|
int sceneId = GetSceneId(customer, username); |
|
|
|
string ticket = InOutMessageUtil.GenerateEQCode(30, sceneId); |
|
|
|
url = string.Format("https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={0}", ticket); |
|
|
|
logger.Info("ticket:" + ticket + ",url:" + url); |
|
|
|
return url; |
|
|
|
} |
|
|
|
|
|
|
|
static int GetSceneId(string customer, string username) |
|
|
|
{ |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(QRCodeScene))); |
|
|
|
var query = new DQueryDom(new JoinAlias(typeof(QRCode))); |
|
|
|
query.Columns.Add(DQSelectColumn.Field("ID")); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("Customer", customer)); |
|
|
|
query.Where.Conditions.Add(DQCondition.EQ("UserId", username)); |
|
|
|
query.Range = SelectRange.Top(1); |
|
|
|
var sceneId = query.EExecuteScalar<int?>(); |
|
|
|
logger.Info("sceneId:" + sceneId); |
|
|
|
if (!sceneId.HasValue) |
|
|
|
{ |
|
|
|
using (var session = Dmo.NewSession()) |
|
|
|
{ |
|
|
|
QRCodeScene newSence = new QRCodeScene() |
|
|
|
QRCode newSence = new QRCode() |
|
|
|
{ |
|
|
|
Customer = customer, |
|
|
|
UserId = username, |
|
|
|
@ -96,7 +92,6 @@ namespace BWP.B3WeChat.Rpcs |
|
|
|
session.Insert(newSence); |
|
|
|
session.Commit(); |
|
|
|
sceneId = newSence.ID; |
|
|
|
logger.Info("newSenceID:" + sceneId); |
|
|
|
} |
|
|
|
} |
|
|
|
return sceneId.Value; |
|
|
|
|