From 3b18a48485f7207438d9d0eb3038d979e069431d Mon Sep 17 00:00:00 2001
From: yzh <snbbt@21cn.com>
Date: 星期四, 26 五月 2022 17:58:18 +0800
Subject: [PATCH] 优化产品及产品分类,订单,对称加密,IP转地区名称

---
 web/web/GwClient.ashx |  266 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 262 insertions(+), 4 deletions(-)

diff --git a/web/web/GwClient.ashx b/web/web/GwClient.ashx
index 3d60023..70a909e 100644
--- a/web/web/GwClient.ashx
+++ b/web/web/GwClient.ashx
@@ -1,5 +1,6 @@
 锘�<%@ WebHandler Language="C#" Class="GwClientHandler" %>
 using System;
+using System.Linq;
 using System.Web;
 using Dao;
 using Model;
@@ -9,15 +10,29 @@
 using System.Text;
 using System.Text.RegularExpressions;
 using System.IO;
+using Newtonsoft.Json;
 
 
 
 
 public class GwClientHandler : PageHandler<Model.SysUser>
 {
+
+    private UserDao _SysUserDao = new UserDao();
+    private List<SysUser> _SysUserList;
+
+    private int _userId = -1;
+    private int _userType = -1;
+    private string _account = "";
+    private string initPwd = ConfigurationManager.AppSettings["initPwd"];
+
     public override JsonPageResult ProcessRequestInternal(PageContext<Model.SysUser> context)
     {
         string action = context.GetString("action");
+            
+        _userId = context.SessionObject.UserID;
+        _userType = context.SessionObject.UserType;
+        _account = context.SessionObject.Account;
 
         switch (action)
         {
@@ -49,6 +64,12 @@
 
             case "updateBlack":
                 return UpdateBlack(context);
+            //鎵归噺鍒嗛厤瀹㈡埛鐨勪釜鎬т骇鍝�
+            case "batchUpdateClientProduct":
+                return BatchUpdateClientProduct(context);
+            //閲嶇疆瀵嗙爜
+            case "resetPwd":
+                return ResetPwd(context);
 
             default:
                 throw new Exception("Invalid Action=" + action);
@@ -66,8 +87,12 @@
     private JsonPageResult LoadGwClientPageList(PageContext<Model.SysUser> context)
     {
         string ClientID = context.GetString("ClientID");
+        string Company = context.GetString("Company");
         string ClientName = context.GetString("ClientName");
         string Telephone = context.GetString("Telephone");
+        string Salesman = context.GetString("Salesman");
+        string SupportStaff = context.GetString("SupportStaff");
+        string ProductId = context.GetString("ProductId");
         int pageIndex = context.GetInt("pageIndex", 1);
 
         string Agent = context.GetString("Agent");
@@ -75,10 +100,12 @@
         int pageSize = context.GetInt("pageSize", 20);
         string serverIp = ConfigurationManager.AppSettings["serverIp"];
         string clientPort = ConfigurationManager.AppSettings["clientPort"];
+
         string str = "";
         using (GwClientDao dao = new GwClientDao())
         {
-            var list = dao.LoadInfoList(out recordCount, pageIndex, pageSize, ClientID, ClientName, Telephone, Agent);
+            string permissionsSQL = dao.GetClientPermissions(_userId, _userType, null);
+            var list = dao.LoadInfoList(out recordCount, pageIndex, pageSize, ClientID, ClientName, Telephone, Agent, Company, Salesman, SupportStaff, ProductId, permissionsSQL);
 
             if (list != null && list.Count > 0)
             {
@@ -89,7 +116,11 @@
                     {
                         Certification_StatusResult = "宸茶璇�";
                     }
-                    str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Top_up_Amount_Total + "鍏�</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>";
+                    //edit:yangzh by 20220511
+                    //str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Top_up_Amount_Total + "鍏�</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>";
+                    //str += @"<tr ><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "鍏�</td><td>" + item.Top_up_Amount_Total/1000 + "鍏�</td><td>" + item.Agent + "</td><td>" + Certification_StatusResult + "</td>";
+                    //str += @"<tr ><td  rowspan='1' ><input type='checkbox' name='checkbox' value='" + item.ClientID + "'/></td><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "鍏�</td><td>" + item.Top_up_Amount_Total/1000 + "鍏�</td><td>" + SysUserName(string.IsNullOrEmpty(item.Salesman)? 0: int.Parse(item.Salesman) ) + "</td><td>" + Certification_StatusResult + "</td>";
+                    str += @"<tr ><td  rowspan='1' ><input type='checkbox' name='checkbox' value='" + item.ClientID + "'/></td><td>" + item.ClientID + "</td><td>" + item.Company + "</td><td>" + item.ClientName + "</td><td>" + item.Telephone + "</td><td>" + item.Balance/1000 + "</td><td>" + item.Top_up_Amount_Total/1000 + "</td><td>" + SysUserName(string.IsNullOrEmpty(item.Salesman)? 0: int.Parse(item.Salesman) ) + "</td></td>";
 
                     str += @"<td>";
                     string loginStr = "http://" + serverIp + ":" + clientPort + "/Attachedlogin.aspx?action=Attachedlogin&account=" + item.Account + "&password=" + item.Password;
@@ -108,6 +139,10 @@
                     str += @"榛戝悕鍗�";
                     str += @"</a>&nbsp;";
 
+                    str += string.Format(@"<a class=""action-modal-resetPwd btn btn-xs btn-primary"" href=""javascript:;"" data-id=""{0}"">", item.ClientID);
+                    str += @"閲嶇疆瀵嗙爜";
+                    str += @"</a>&nbsp;";
+
                     str += string.Format(@"<a class=""action-delete btn btn-xs btn-default"" href=""javascript:;"" data-id=""{0}"">", item.ClientID);
                     str += @"鍒犻櫎";
                     str += @"</a>";
@@ -117,7 +152,7 @@
             }
             else
             {
-                str += @"<tr><td colspan=""8"">鏆傛棤淇℃伅</td></tr>";
+                str += @"<tr><td colspan=""9"">鏆傛棤淇℃伅</td></tr>";
             }
 
         }
@@ -192,6 +227,20 @@
         return new JsonPageResult(true, _Dao.GetBlackList(clientID));
     }
 
+        //閲嶇疆瀵嗙爜
+    private JsonPageResult ResetPwd(PageContext<Model.SysUser> context)
+    {
+        string clientID = context.GetString("clientID");
+        string password = string.IsNullOrEmpty(initPwd ) ? "123456" : initPwd;
+
+        //瀵嗙爜MD5鍔犲瘑锛�
+        password = DataHelper.MD5Hex(password);
+
+        _Dao.UpdatePassword(clientID, password);
+
+        return new JsonPageResult(true, "閲嶇疆瀵嗙爜鎴愬姛锛�");
+    }
+
     /// <summary>
     /// 閫氳繃璐﹀彿鍚嶈幏鍙栦唬鐞嗗晢淇℃伅
     /// </summary>
@@ -236,6 +285,13 @@
         string telephone = context.GetString("telephone");
         string remark = context.GetString("remark");
         string agent = context.GetString("agent");
+        string salesman = context.GetString("salesman");
+        string customerManager = context.GetString("customerManager");
+        string supportStaff = context.GetString("supportStaff");
+        string financialStaff = context.GetString("financialStaff");
+        string chargeType = context.GetString("chargeType");
+        string smsStatusReport = context.GetString("smsStatusReport");
+        string mmsStatusReport = context.GetString("mmsStatusReport");
         string data = context.GetString("permissionData");
         if(data.Contains("1"))
         {
@@ -262,18 +318,74 @@
             throw new ArgumentException("鑱旂郴浜�/鑱旂郴鐢佃瘽锛屼笉鑳戒负绌猴紒");
         }
 
+        if (string.IsNullOrEmpty(customerManager))
+        {
+            throw new ArgumentException("褰掑睘瀹㈡埛缁忕悊涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(salesman))
+        {
+            throw new ArgumentException("褰掑睘涓氬姟鍛樹笉鑳戒负绌猴紝璇烽�夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(supportStaff))
+        {
+            throw new ArgumentException("褰掑睘瀹㈡湇浜哄憳涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(financialStaff))
+        {
+            throw new ArgumentException("褰掑睘璐㈠姟浜哄憳涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(chargeType))
+        {
+            throw new ArgumentException("璁¤垂鏂瑰紡涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(smsStatusReport))
+        {
+            throw new ArgumentException("鐭俊鏄惁鏀寔鏄剧ず鐘舵�佹姤鍛婁笉鑳戒负绌猴紝璇烽�夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(mmsStatusReport))
+        {
+            throw new ArgumentException("褰╀俊鏄惁鏀寔鏄剧ず鐘舵�佹姤鍛婁笉鑳戒负绌猴紝璇烽�夋嫨锛�");
+        }
+
+        string savePassword = "";
+        if (!string.IsNullOrEmpty(clientID))
+        {
+            GwClient gwClient = this._Dao.Get(clientID);
+            savePassword = (gwClient.Password == password ? gwClient.Password : DataHelper.MD5Hex(password) );
+        }
+        else
+        {
+            savePassword = DataHelper.MD5Hex(password);
+        }
+
 
         var client = new Model.GwClient();
 
         client.Id = id;
         client.ClientID = clientID;
         client.Company = company;
-        client.Password = password;
+        //client.Password = password;
+        client.Password = savePassword;
+
         client.ClientName = clientName;
         client.Address = address;
         client.Remark = remark;
         client.Telephone = telephone;
         client.Agent = agent;
+
+        client.CustomerManager = customerManager;
+        client.Salesman = salesman;
+        client.SupportStaff = supportStaff;
+        client.FinancialStaff = financialStaff;
+        client.ChargeType = string.IsNullOrEmpty(chargeType) ? 0 : int.Parse(chargeType);
+        client.SmsStatusReport = string.IsNullOrEmpty(smsStatusReport) ? 0 : int.Parse(smsStatusReport);
+        client.MmsStatusReport = string.IsNullOrEmpty(mmsStatusReport) ? 0 : int.Parse(mmsStatusReport);
         client.PermissionData = permissionData;
 
         _Dao.Update(client);
@@ -292,6 +404,13 @@
         string remark = context.GetString("remark");
         string agent = context.GetString("agent");
         string company = context.GetString("company");
+        string salesman = context.GetString("salesman");
+        string customerManager = context.GetString("customerManager");
+        string supportStaff = context.GetString("supportStaff");
+        string financialStaff = context.GetString("financialStaff");
+        string chargeType = context.GetString("chargeType");
+        string smsStatusReport = context.GetString("smsStatusReport");
+        string mmsStatusReport = context.GetString("mmsStatusReport");
         string data = context.GetString("permissionData");
         if(data.Contains("1"))
         {
@@ -313,6 +432,11 @@
             throw new ArgumentException("瀹㈡埛瀵嗙爜涓嶈兘涓虹┖锛屼笖蹇呴』涓�4-10浣嶈嫳鏂囨垨鏁板瓧瀛楃缁勫悎锛�");
         }
 
+        if (string.IsNullOrEmpty(clientName) || string.IsNullOrEmpty(telephone))
+        {
+            throw new ArgumentException("鑱旂郴浜�/鑱旂郴鐢佃瘽锛屼笉鑳戒负绌猴紒");
+        }
+
         //if (string.IsNullOrEmpty(clientName))
         //{
         //    throw new ArgumentException("瀹㈡埛鍚嶇О涓嶈兘涓虹┖锛�");
@@ -321,6 +445,41 @@
         if (_Dao.IsIDExists(clientID))
         {
             throw new ArgumentException("瀹㈡埛璐﹀彿宸茬粡瀛樺湪锛�");
+        }
+
+        if (string.IsNullOrEmpty(customerManager))
+        {
+            throw new ArgumentException("褰掑睘瀹㈡埛缁忕悊涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(salesman))
+        {
+            throw new ArgumentException("褰掑睘涓氬姟鍛樹笉鑳戒负绌猴紝璇烽�夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(supportStaff))
+        {
+            throw new ArgumentException("褰掑睘瀹㈡湇浜哄憳涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(financialStaff))
+        {
+            throw new ArgumentException("褰掑睘璐㈠姟浜哄憳涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(chargeType))
+        {
+            throw new ArgumentException("璁¤垂鏂瑰紡涓嶈兘涓虹┖锛岃閫夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(smsStatusReport))
+        {
+            throw new ArgumentException("鐭俊鏄惁鏀寔鏄剧ず鐘舵�佹姤鍛婁笉鑳戒负绌猴紝璇烽�夋嫨锛�");
+        }
+
+        if (string.IsNullOrEmpty(mmsStatusReport))
+        {
+            throw new ArgumentException("褰╀俊鏄惁鏀寔鏄剧ず鐘舵�佹姤鍛婁笉鑳戒负绌猴紝璇烽�夋嫨锛�");
         }
 
         HttpFileCollection _file = HttpContext.Current.Request.Files;
@@ -360,8 +519,14 @@
                     return new JsonPageResult(false, "涓婁紶鍥剧墖澶勭悊寮傚父锛�" + ex.Message);
                 }
             }
+            else
+            {
+                throw new ArgumentException("鏂囦欢鏍煎紡閿欒锛岃纭鏄惁涓簀pg|jpeg|gif|png銆�");
+            }
         }
 
+        //瀵嗙爜鍔犲瘑
+        password = DataHelper.MD5Hex(password);
 
         var client = new Model.GwClient();
         client.ClientID = clientID;
@@ -376,10 +541,20 @@
         client.ParentId = context.OperatorID;
         client.Certification_Status = 1;
         client.Company = company;
+        client.CustomerManager = customerManager;
+        client.Salesman = salesman;
+        client.SupportStaff = supportStaff;
+        client.FinancialStaff = financialStaff;
+        client.ChargeType = string.IsNullOrEmpty(chargeType) ? 0 : int.Parse(chargeType);
+        client.SmsStatusReport = string.IsNullOrEmpty(smsStatusReport) ? 0 : int.Parse(smsStatusReport);
+        client.MmsStatusReport = string.IsNullOrEmpty(mmsStatusReport) ? 0 : int.Parse(mmsStatusReport);
+
         _Dao.Add(client);//鎻掑叆鏁版嵁搴撱�傚垱寤鸿处鎴�
 
         //淇濆瓨浜у搧璁板綍
         //鑾峰彇鍚敤鐨勯粯璁ょ殑浜у搧
+        /**
+        //edit:鍦ㄥ鎴锋縺娲绘椂娣诲姞璁板綍
         List<string> defaultProductList = GwProductDao.Instance.GetDefaultProduct();
         if (defaultProductList.Count > 0)
         {
@@ -392,9 +567,92 @@
                 GwClientProductDao.Instance.Add(gcp);
             }
         }
+        **/
 
         return new JsonPageResult(true, "鍒涘缓璐︽埛鎴愬姛锛�");
     }
+
+    //鍒嗛厤瀹㈡埛鐨勪釜鎬т骇鍝�
+    private JsonPageResult BatchUpdateClientProduct(PageContext<SysUser> context)
+    {
+        string productId = context.GetString("productId");
+        string idArray = context.GetString("idArray");
+        if (string.IsNullOrEmpty(productId))
+        {
+
+            throw new ArgumentException("涓�т骇鍝佷笉鑳戒负绌猴紝璇烽�夋嫨锛�");
+        }
+
+        Model.GwProduct gwProduct = new GwProductDao().Get(productId);
+        if (gwProduct == null)
+        {
+            throw new ArgumentException("鎸囧畾鐨勪釜鎬т骇鍝佷笉瀛樺湪锛岃閲嶆柊閫夋嫨锛�");
+        }
+        string clientIds = gwProduct.ClientIds;
+
+        List<string> tmpList = new List<string>();
+        if(!string.IsNullOrEmpty(clientIds))
+        {   //瀛楃涓茶浆鏁扮粍锛屽啀鏁扮粍鍚堝苟
+            tmpList.AddRange( clientIds.Split(',') );
+        }
+        //鏁扮粍鍚堝苟
+        tmpList.AddRange( JsonConvert.DeserializeObject<string[]>(context.GetString("idArray")) );
+
+        //鏁扮粍鍘婚噸
+        string[] tmpArray = DelRepeatData(tmpList.ToArray() );
+        clientIds = string.Join(",", tmpArray) ;
+
+        if (!string.IsNullOrEmpty(clientIds))
+        {
+            new GwProductDao().UpdateClientIds(clientIds, productId);
+        }
+
+
+        return new JsonPageResult(true, (object)"鎵归噺鍒嗛厤瀹㈡埛涓�т骇鍝佹垚鍔燂紒");
+    }
+
+    /// <summary>  
+    /// 绉婚櫎鏁扮粍涓噸澶嶆暟鎹�  
+    /// </summary>  
+    /// <param name="array">闇�瑕侀櫎閲嶇殑鏁扮粍</param>  
+    /// <returns>涓嶉噸澶嶆暟缁�</returns>  
+    public static string[] DelRepeatData(string[] array)
+    {
+        return array.GroupBy(p => p).Select(p => p.Key).ToArray();
+    }
+
+
+
+    //鑾峰彇绠$悊绔处鎴峰垪琛�
+    private List<SysUser> SysUserList
+    {
+        get
+        {
+            if (this._SysUserList == null)
+            {
+
+                using (UserDao sysUserDao = new UserDao())
+                {
+                    int recordCount = 0;
+                    int int1 = 999999999;
+                    int int2 = 1;
+                    this._SysUserList = sysUserDao.LoadInfoList(out recordCount, int1, int2);
+                }
+            }
+            return this._SysUserList;
+        }
+    }
+
+    //绠$悊绔敤鎴稩D杞悕绉�
+    private string SysUserName(int userId)
+    {
+        if (this.SysUserList == null)
+            return string.Empty;
+        SysUser sysUser = this._SysUserList.Find((Predicate<SysUser>)(bean => bean.UserID == userId));
+        if (sysUser != null)
+            return string.Format("{0}", (object)sysUser.UserName);
+        return string.Empty;
+    }
 }
 
 

--
Gitblit v1.9.1