diff --git a/B3WeChat/B3WeChat.csproj b/B3WeChat/B3WeChat.csproj
index f9113c7..07ec337 100644
--- a/B3WeChat/B3WeChat.csproj
+++ b/B3WeChat/B3WeChat.csproj
@@ -117,6 +117,7 @@
+
diff --git a/B3WeChat/BL/IApproveMessageBL.cs b/B3WeChat/BL/IApproveMessageBL.cs
index 78bfc64..093a3f8 100644
--- a/B3WeChat/BL/IApproveMessageBL.cs
+++ b/B3WeChat/BL/IApproveMessageBL.cs
@@ -1,19 +1,32 @@
using BWP.B3WeChat.BO;
+using BWP.B3WeChat.BO.NamedValueTemplate;
using Forks.EnterpriseServices.BusinessInterfaces;
+using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using TSingSoft.WebPluginFramework;
namespace BWP.B3WeChat.BL
{
[BusinessInterface(typeof(ApproveMessageBL))]
public interface IApproveMessageBL
{
+ [Log(Disabled=true)]
void Insert(ApproveMessage message);
void Delete(string messageID);
+
+
+ ApproveMessage Load(string messageID);
+
+ [Log(Disabled=true)]
+ void Approve(ApproveMessage message);
+
+ [Log(Disabled=true)]
+ void Reject(ApproveMessage message);
}
public class ApproveMessageBL : BusinessClass, IApproveMessageBL
@@ -30,6 +43,7 @@ namespace BWP.B3WeChat.BL
public void Insert(ApproveMessage message)
{
+ message.CreateTime = DateTime.Now;
Session.Insert(message);
}
@@ -40,5 +54,28 @@ namespace BWP.B3WeChat.BL
del.Where.Conditions.Add(DQCondition.EQ("ID", messageID));
Session.ExecuteNonQuery(del);
}
+
+
+ public ApproveMessage Load(string messageID)
+ {
+ var hash = new PropertyHash(1);
+ hash.Add("ID", messageID);
+ var dmoIdentity = new DmoIdentity(typeof(ApproveMessage), hash);
+ return (ApproveMessage)Session.Load(dmoIdentity);
+ }
+
+
+ public void Approve(ApproveMessage message)
+ {
+ message.ApproveResult = 审批状态.已审批;
+ Session.Update(message);
+
+ }
+
+ public void Reject(ApproveMessage message)
+ {
+ message.ApproveResult = 审批状态.已退回;
+ Session.Update(message);
+ }
}
}
diff --git a/B3WeChat/BO/ApproveMessage.cs b/B3WeChat/BO/ApproveMessage.cs
index a0087ad..ec9b9bc 100644
--- a/B3WeChat/BO/ApproveMessage.cs
+++ b/B3WeChat/BO/ApproveMessage.cs
@@ -23,6 +23,9 @@ namespace BWP.B3WeChat.BO
[DbColumn(AllowNull=false)]
public string ID { get; set; }
+ [DbColumn(DefaultValue="2016-9-21")]
+ public DateTime CreateTime { get; set; }
+
[LogicName("客户号")]
[DbColumn(AllowNull=false)]
public string CustomerCode { get; set; }
diff --git a/B3WeChat/BO/CustomerUser.cs b/B3WeChat/BO/CustomerUser.cs
index 46c8a29..30188d6 100644
--- a/B3WeChat/BO/CustomerUser.cs
+++ b/B3WeChat/BO/CustomerUser.cs
@@ -4,9 +4,11 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using TSingSoft.WebPluginFramework;
namespace BWP.B3WeChat.BO
{
+ [BOClass]
[LogicName("微信用户")]
[KeyField("CustomerCode", KeyGenType.assigned)]
[KeyField("CustomerUsername", KeyGenType.assigned)]
diff --git a/B3WeChat/Rpcs/ApproveMessageRpc.cs b/B3WeChat/Rpcs/ApproveMessageRpc.cs
index a185fe5..8edc82c 100644
--- a/B3WeChat/Rpcs/ApproveMessageRpc.cs
+++ b/B3WeChat/Rpcs/ApproveMessageRpc.cs
@@ -1,4 +1,5 @@
-using BWP.B3WeChat.BL;
+using Bwp.MainSystem;
+using BWP.B3WeChat.BL;
using BWP.B3WeChat.BO;
using BWP.B3WeChat.BO.NamedValueTemplate;
using Forks.EnterpriseServices.BusinessInterfaces;
@@ -24,12 +25,31 @@ namespace BWP.B3WeChat.Rpcs
[Rpc]
public static void Insert(ApproveMessage message)
{
- var user = CustomerUserContext.Current.User;
+ var deviceNumber = ClientRpc.GetDeviceNumber();
+ message.CustomerCode = deviceNumber;
- message.CustomerCode = user.CustomerCode;
- message.OpenID = user.OpenID;
+
+ 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();
+
+ if (string.IsNullOrEmpty(openID))
+ {
+ throw new Exception("审批用户没有关注公众号");
+ }
+
+ message.OpenID = openID;
ApproveMessageBL.Instance.Insert(message);
+
+
+ var mainSystemConfig = new MainSystemConfig();
+ var internetAccessAddress = mainSystemConfig.InternetAccessAddress.Value;
+
+
}
diff --git a/B3WeChat/Rpcs/ClientRpc.cs b/B3WeChat/Rpcs/ClientRpc.cs
index 8ec8963..eee813b 100644
--- a/B3WeChat/Rpcs/ClientRpc.cs
+++ b/B3WeChat/Rpcs/ClientRpc.cs
@@ -22,7 +22,7 @@ namespace BWP.B3WeChat.Rpcs
static Logger logger = new Logger("ClientRpc");
- static string GetDeviceNumber()
+ internal static string GetDeviceNumber()
{
var user = BLContext.User;
var query = new DQueryDom(new JoinAlias(typeof(DeviceAuthentication)));
diff --git a/B3WeChat/Rpcs/WeChatUserRpc.cs b/B3WeChat/Rpcs/WeChatUserRpc.cs
new file mode 100644
index 0000000..e76c695
--- /dev/null
+++ b/B3WeChat/Rpcs/WeChatUserRpc.cs
@@ -0,0 +1,50 @@
+using BWP.B3WeChat.BL;
+using BWP.B3WeChat.BO;
+using BWP.B3WeChat.BO.NamedValueTemplate;
+using Forks.EnterpriseServices.DomainObjects2.DQuery;
+using Forks.EnterpriseServices.JsonRpc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using TSingSoft.WebPluginFramework;
+
+namespace BWP.B3WeChat.Rpcs
+{
+ [Rpc]
+ public static class WeChatUserRpc
+ {
+ [Rpc(RpcFlags.SkipAuth)]
+ public static ApproveMessage LoadMessage(string messageID)
+ {
+ return ApproveMessageBL.Instance.Load(messageID);
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
+ public static ApproveMessage[] MyMessages()
+ {
+ var query = new DmoQuery(typeof(ApproveMessage));
+
+ query.Where.Conditions.Add(DQCondition.EQ("OpenID", "DEBUG"));
+
+ return query.EExecuteList().Cast().ToArray();
+ }
+
+ [Rpc(RpcFlags.SkipAuth)]
+ public static void Approve(ApproveMessage message)
+ {
+ ApproveMessageBL.Instance.Approve(message);
+
+ }
+
+
+ [Rpc(RpcFlags.SkipAuth)]
+ public static void Reject(ApproveMessage message)
+ {
+ ApproveMessageBL.Instance.Reject(message);
+
+ }
+
+
+ }
+}
diff --git a/B3WeChat/Rpcs/geornoln.d5t b/B3WeChat/Rpcs/geornoln.d5t
deleted file mode 100644
index 77b3754..0000000
--- a/B3WeChat/Rpcs/geornoln.d5t
+++ /dev/null
@@ -1,101 +0,0 @@
-using Bwp.MainSystem.BO;
-using BWP.B3WeChat.BO;
-using BWP.B3WeChat.Utils;
-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 TSingSoft.WebPluginFramework;
-
-namespace BWP.B3WeChat.Rpcs
-{
- [Rpc]
- public static class ClientRpc
- {
- static string GetDeviceNumber()
- {
- var user = BLContext.User;
- var query = new DQueryDom(new JoinAlias(typeof(DeviceAuthentication)));
- query.Where.Conditions.Add(DQCondition.EQ("Ticket", user.UserTag.ToString("N")));
- query.Columns.Add(DQSelectColumn.Field("DeviceNumber"));
- query.Range = SelectRange.Top(1);
- var deviceNumber = query.EExecuteScalar();
- return deviceNumber;
- }
-
-
- [Rpc]
- public static void Send(String message, string username)
- {
-
- }
-
- [Rpc]
- public static String GetQRCodeUrl(string username)
- {
- string url = string.Empty;
- string customer = GetDeviceNumber();
- if (string.IsNullOrEmpty(customer))
- return url;
- string ticket = InOutMessageUtil.GenerateEQCode(30, GetSceneId(customer, username));
- string name=DateTime.Now.Ticks.ToString() + ".jpg";
- string path = GetQRCodeDir() + name;
- InOutMessageUtil.GetQRPic(ticket, path);
- return url;
- }
-
- static string ExistQRCode(string customer, string username)
- {
- var query = new DQueryDom(new JoinAlias(typeof(QRCodeScene)));
- query.Columns.Add(DQSelectColumn.Field("Path"));
- query.Where.Conditions.Add(DQCondition.EQ("Customer", customer));
- query.Where.Conditions.Add(DQCondition.EQ("UserId", username));
- query.Where.Conditions.Add(DQCondition.GreaterThan(DQExpression.Field("OutTime"), DQExpression.Value(DateTime.Now)));
- query.Range = SelectRange.Top(1);
- var path = query.EExecuteScalar();
- return path;
- }
-
- static int GetSceneId(string customer, string username)
- {
- var query = new DQueryDom(new JoinAlias(typeof(QRCodeScene)));
- 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();
- if (!sceneId.HasValue)
- {
- using (var session = Dmo.NewSession())
- {
- QRCodeScene newSence = new QRCodeScene()
- {
- Customer = customer,
- UserId = username,
- };
- session.Insert(newSence);
- session.Commit();
- sceneId = newSence.ID;
- }
- }
- return sceneId.Value;
- }
-
- static string GetQRCodeDir()
- {
- string dir = System.Environment.CurrentDirectory + "/QRCodePic/";
- if (!Directory.Exists(dir))
- {
- Directory.CreateDirectory(dir);
- }
- return dir;
- }
-
- }
-}