From eddda540e947bcc6483b1c89b3e42b81a337f77e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 23 十月 2020 15:28:52 +0800
Subject: [PATCH] 4834 【主干】【长尾】【BT】GM补偿邮件重复;(当非单服邮件时GUID相同则不允许重复插入;当指定单服邮件批量发送补偿指令时,每个服重新生成GUID插入邮件)

---
 Tool/WebCenter/CouponCode/webapp.py |   37 +++++++++++++++++++++++++++++++------
 1 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/Tool/WebCenter/CouponCode/webapp.py b/Tool/WebCenter/CouponCode/webapp.py
index 6902198..2468ab8 100644
--- a/Tool/WebCenter/CouponCode/webapp.py
+++ b/Tool/WebCenter/CouponCode/webapp.py
@@ -59,6 +59,15 @@
                 
 myapp = Bottle()
 
+# 闃叉鐭椂闂村唴鐨勫娆℃棤鏁堣闂� accid锛歵ime
+AccID_Cache_Dict = {}
+
+def CleanAccID():
+    global AccID_Cache_Dict
+    
+    if len(AccID_Cache_Dict) < 100:
+        return 
+    AccID_Cache_Dict = {}
 
 
 #/api/Coupon/index.php?couponBatchId=%s&agentName=%s"
@@ -117,6 +126,7 @@
 # http://center.xxx.com:53003/Coupon/CouponCode.php
 @myapp.route('/Coupon/CouponCode.php')
 def CouponCode():
+    global AccID_Cache_Dict
     dataDict = request.GET
     
     for key, value in dataDict.items():
@@ -129,7 +139,7 @@
     codeStr = dataDict.get("code", "")
     if not codeStr:
         return
-    
+    codeStr = codeStr.strip()
     #鍙槸鐢ㄦ潵鎷兼帴璐﹀彿
     spID = dataDict.get("spid", "")
         
@@ -147,6 +157,20 @@
     # 杞寲涓烘父鎴忚处鍙� 
     accid = "%s@%s@s%s"%(accid.lower(), spID, sid)
     
+    try:
+        CleanAccID()
+        #mylog.debug("AccID_Cache_Dict : %s"%str(AccID_Cache_Dict))
+        if accid not in AccID_Cache_Dict:
+            AccID_Cache_Dict[accid] = int(time.time())
+        elif time.time() - AccID_Cache_Dict[accid] < 2:
+            mylog.debug("==========bad: fast click  %s"%accid)
+            return  
+            
+        AccID_Cache_Dict[accid] = int(time.time())
+    except:
+        pass
+    
+    
     dbController = CouponDB.GetDBEventCon()
     if not dbController:
         # 鏃犳硶鑾峰彇鏁版嵁搴�
@@ -157,7 +181,8 @@
     gmresult = {'accID':accid, 'sid':sid, 'channel':agentName}
 
     #-----------缁熶竴鍥哄畾鐮佸鐞�----------------------
-    if codeStr in CommonCards:
+    CommonCardsList = CommonCards.get(agentName, [])
+    if codeStr in CommonCardsList:
         # 涓嶅悓鍥哄畾鐮佸悇鑷彧鑳介涓�娆�
         result, commondata = dbController.find_one(CouponDB.CouponCodeColName + "_Common", {"code":codeStr, "accid":accid})
         if commondata:
@@ -369,7 +394,7 @@
         for itemList in Items:
             pack_data["ItemID%s"%i] = str(itemList[0])
             pack_data["ItemCnt%s"%i] = str(itemList[1])
-            pack_data["IsBind%s"%i] = '1'
+            pack_data["IsBind%s"%i] = str(itemList[2] if len(itemList) > 2 else 0)
             i += 1
             
         pack_data["pack_type"] = "GMT_AddPersonalCompensation"
@@ -384,9 +409,9 @@
         post = {}
         post['pack'] = pack_data_dict;
         post['sign'] = sign;
-        result = urllib2.urlopen(gmurl, urllib.urlencode(post), 10)
+        result = urllib2.urlopen(gmurl, urllib.urlencode(post), 3)
 
-        content = result.read()
+        #content = result.read()
         result.close()
         
         # 鎴愬姛鎻愮ず
@@ -407,7 +432,7 @@
         post['sign'] = sign;
         urllib2.urlopen(gmurl, urllib.urlencode(post), 3)
         
-        return content
+        return 0
     except Exception, e:
         mylog.debug("gm error %s"%e)
     return

--
Gitblit v1.8.0