Browse Source

用户绑定的微信号被覆盖时给原来的微信号发消息

master
yashen 9 years ago
parent
commit
699aa321eb
4 changed files with 68 additions and 38 deletions
  1. +4
    -24
      B3WeChat.Web/Pages/WeChatReceive.cs
  2. +41
    -14
      B3WeChat/BL/ICustomerUserBL.cs
  3. +4
    -0
      B3WeChat/BO/ApproveMessage.cs
  4. +19
    -0
      B3WeChat/Utils/SendMessageUtil.cs

+ 4
- 24
B3WeChat.Web/Pages/WeChatReceive.cs View File

@ -1,6 +1,8 @@
using BWP.B3WeChat.BO;
using BWP.B3WeChat.BL;
using BWP.B3WeChat.BO;
using BWP.B3WeChat.Entities;
using BWP.B3WeChat.Utils;
using BWP.Web.Utils;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
@ -78,33 +80,11 @@ namespace BWP.Web.Pages
}
static void UpdateQRCode(string sceneId, string OppenId)
{
var query = new DmoQuery(typeof(QRCode));
query.Where.Conditions.Add(DQCondition.EQ("ID", sceneId));
query.Range = SelectRange.Top(1);
var scene = query.EExecuteScalar<QRCode>();
var user = new CustomerUser();
user.CustomerCode = scene.Customer;
user.CustomerUsername = scene.UserId;
user.OpenID = OppenId;
using (var context = new TransactionContext())
{
context.Session.AddInsertOrUpdate(user);
context.Commit();
}
//var update = new DQUpdateDom(typeof(QRCode));
//logger.Info("sceneId:" + sceneId + ",OppenId" + OppenId);
//update.Where.Conditions.Add(DQCondition.EQ("ID", sceneId));
//update.Columns.Add(new DQUpdateColumn("OppenId", OppenId));
//using (var session = Dmo.NewSession())
//{
// session.ExecuteNonQuery(update);
// session.Commit();
//}
CustomerUserBL.Instance.Follow(scene.Customer, scene.UserId, OppenId);
}
}


+ 41
- 14
B3WeChat/BL/ICustomerUserBL.cs View File

@ -1,4 +1,6 @@
using BWP.B3WeChat.BO;
using BWP.B3Frameworks.Utils;
using BWP.B3WeChat.BO;
using BWP.B3WeChat.Utils;
using Forks.EnterpriseServices.BusinessInterfaces;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.Utils;
@ -20,24 +22,49 @@ namespace BWP.B3WeChat.BL
public class CustomerUserBL : BusinessClass, ICustomerUserBL
{
static Lazy<ICustomerUserBL> mInstance = new Lazy<ICustomerUserBL>(() =>
{
return BIFactory.Create<ICustomerUserBL>();
});
public static ICustomerUserBL Instance
{
get
{
return mInstance.Value;
}
}
public void Follow(string customerCode, string customerUsername, string openID)
{
var del = new DQDeleteDom(typeof(CustomerUser));
del.Where.Conditions.Add(DQCondition.EQ("CustomerCode", customerCode));
del.Where.Conditions.Add(DQCondition.EQ("CustomerUsername", customerUsername));
var user = InnerBLUtil.GetSingleDmo<CustomerUser>(Session, new Tuple<string, object>("CustomerCode", "customerCode"),
new Tuple<string, object>("CustomerUsername", customerUsername));
var customerUser = new CustomerUser()
if (user != null)
{
CustomerCode = customerCode,
CustomerUsername = customerUsername,
OpenID = openID
};
Session.Insert(customerUser);
var userBL = BIFactory.Create<IUserBL>(this);
if (userBL.Exist(openID))
if (user.OpenID != openID)
{
var oldOpenID = user.OpenID;
user.OpenID = openID;
Session.Update(user);
var update = new DQUpdateDom(typeof(ApproveMessage));
update.Where.Conditions.Add(DQCondition.EQ("CustomerCode", user.CustomerCode));
update.Where.Conditions.Add(DQCondition.EQ("CustomerUsername", user.CustomerUsername));
update.Columns.Add(new DQUpdateColumn("OpenID", openID));
Session.ExecuteNonQuery(update);
SendMessageUtil.SendOverwriteNotice(user.OpenID, customerUsername);
}
}
else
{
userBL.Create(openID, StringUtil.CreateRandomString(30), "wechat", customerCode + "/" + customerUsername);
user = new CustomerUser();
user.CustomerCode = customerCode;
user.CustomerUsername = customerUsername;
user.OpenID = openID;
Session.Insert(user);
}
}
}


+ 4
- 0
B3WeChat/BO/ApproveMessage.cs View File

@ -1,5 +1,6 @@
using BWP.B3WeChat.BO.NamedValueTemplate;
using Forks.EnterpriseServices;
using Forks.EnterpriseServices.DataDictionary;
using Forks.EnterpriseServices.DataForm;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.Utils;
@ -16,6 +17,8 @@ namespace BWP.B3WeChat.BO
[BOClass,DFClass]
[KeyField("ID",KeyGenType.assigned)]
[DBIndex("IDX_B3WeChat_ApproveMessage_CustomerCode_Username","CustomerCode",false,0)]
[DBIndex("IDX_B3WeChat_ApproveMessage_CustomerCode_Username", "Username", false, 1)]
public class ApproveMessage
{
/// <summary>
@ -56,6 +59,7 @@ namespace BWP.B3WeChat.BO
[LogicName("审批意见")]
public string ApproveComment { get; set; }
[DbColumn(Index=IndexType.Normal)]
public string OpenID { get; set; }


+ 19
- 0
B3WeChat/Utils/SendMessageUtil.cs View File

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TSingSoft.WebPluginFramework;
namespace BWP.B3WeChat.Utils
{
@ -81,5 +82,23 @@ namespace BWP.B3WeChat.Utils
InOutMessageUtil.SendTemplateMessage(openID, "QEgY8xa4BuAAcyTex1qXuN9KeKM93O9XHCz2Ti-oCpc", dict);
}
//模板:IDQp53p4jHyk9vxXiLs0VRUN_5HHwmjeWPT-7XLwG2FkU
//标题:绑定通知
//详细内容
//{{first.DATA}}
//绑定账号:{{keyword1.DATA}}
//绑定时间:{{keyword2.DATA}}
//{{remark.DATA}}
public static void SendOverwriteNotice(string openID,string username)
{
var dict = new Dictionary<string, ValueColor>();
var first = String.Format("你好,ERP系统中有新的微信账号替换了你原来绑定的用户");
dict.Add("first", new ValueColor(first));
dict.Add("keyword1", new ValueColor(username));
dict.Add("keyword2", new ValueColor(FormatTime(BLContext.Now)));
dict.Add("remark", new ValueColor("若不是你本人操作,请与管理员联系"));
}
}
}

Loading…
Cancel
Save