5416 【工具】兑换码优化(兑换码邮件内容文件json支持不同的appID独立文件配置;)
3个文件已修改
20 ■■■■■ 已修改文件
Tool/WebCenter/Coupon/CodeMail.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/WebCenter/Coupon/config.ini 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/WebCenter/CouponCode/webapp.py 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tool/WebCenter/Coupon/CodeMail.json
@@ -21,6 +21,7 @@
        "MailTitle": "<gcode>gói quà h001",
        "MailText": "Cảm ơn bạn đã hỗ trợ các trò chơi, xin vui lòng nhận được gói quà h001",
        "Items": [[1015,10],[15177,20],[1128,20]],
        "Prefix":"CuuThien"
        "Prefix":"CuuThien",
        "MaxUseCount":-1
    }
}
Tool/WebCenter/Coupon/config.ini
@@ -49,6 +49,9 @@
;卡类型 开头字母做标识如 g1~999代表此卡只能使用一次; z开头代表固定码查看CommonCards;h1~999代表h开头的卡号可重复使用
; 物品格式 [[物品ID1,数量1], [物品ID2,数量2]] 默认绑定不提供配置 限制5个物品
;类型卡使用次数新规则:废弃原h开头可重复使用逻辑,改为配置 MaxUseCount 指定最大可使用次数,
;没有配置或配0或配1默认1次,大于1代表具体次数,-1代表不限次数
;MaxUseCount=10
[g001]
MailSender=系统邮件
Tool/WebCenter/CouponCode/webapp.py
@@ -314,17 +314,22 @@
        mylog.debug("time pass")
        return SendGm(ErrCode_Invalid, gmresult, pushurl)[1]
    
    maxUseCount = 0 # -1-无限;0或1-默认1次; >1-限制次数; 没有配置的默认0即默认1次
    prefix = "" # 固定前缀
    MailJson = GetMailJson(agentName)
    if couponType in MailJson:
        mailInfo = MailJson[couponType]
        prefix = mailInfo.get("Prefix", "")
        maxUseCount = CommFunc.ToIntDef(mailInfo.get("MaxUseCount", 0))
    elif ConfigIO.HasSection(couponType):
        if ConfigIO.HasOption(couponType, "Prefix"):
            prefix = ConfigIO.GetValue(couponType, "Prefix")
            maxUseCount = ConfigIO.GetInt(couponType, "MaxUseCount")
            
    # h 开头的卡类型可重复使用
    if not codeStr.startswith(prefix + 'h'):
    #if not codeStr.startswith(prefix + 'h'):
    #修改为按配置最大次数判断即可
    if maxUseCount in [0, 1]:
        #再查一次是否用过此批次的其他卡, 
        result, data3 = dbController.find_one(CouponDB.CouponCodeColName + "_" + agentName, \
                                              {"coupontype":data["coupontype"], "accid":accid})
@@ -334,6 +339,13 @@
            gmresult['code'] = codeStr
            mylog.debug("use again")
            return SendGm(ErrCode_TypeUsed, gmresult, pushurl)[1]
    elif maxUseCount > 1:
        result, resultList = dbController.find(CouponDB.CouponCodeColName + "_" + agentName, {"coupontype":data["coupontype"], "accid":accid}, {"code":1})
        if not result or len(resultList) >= maxUseCount:
            gmresult['coupontype'] = data["coupontype"]
            gmresult['code'] = codeStr
            mylog.debug("use maxUseCount limit. %s" % maxUseCount)
            return SendGm(ErrCode_TypeUsed, gmresult, pushurl)[1]
        
    data['status'] = 1
    data['accid'] = accid