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