Jim 10 сар өмнө
parent
commit
e30827db7b

+ 1 - 0
serverlogic/src/main/java/com/ljsd/jieling/core/VipPrivilegeType.java

@@ -27,6 +27,7 @@ public interface VipPrivilegeType {
     int TIME_RANDOM_FREE = 32;//东海寻仙每日赠送招募次数
     int FAST_BUY_COUNT = 33;//极速探索购买次数
     int COMMON_RANDOM_FREE = 38;//每日普通抽免费次数
+    int COLLECT_NUM = 40; // 每日收集副本购买次数
 
     //功能项解锁
     int UNLOCK_TWO_FIGHT = 501;//解锁2倍速战斗

+ 1 - 0
serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java

@@ -426,6 +426,7 @@ public class GlobalDataManaager implements IManager {
                 ActivityLogic.getInstance().flushWeek(session);
             }
             PlayerLogic.getInstance().sendClubRewardMail(user);
+            PlayerLogic.getInstance().sendVoucherRewardMail(user);
         }
         //防守训练挑战重置 读取表:SpecialConfig-TrialReturn[0] = 0点刷新
         DefTrainingLogic.getInstance().checkRest(user);

+ 1 - 1
serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java

@@ -2354,7 +2354,7 @@ public class ActivityLogic implements IEventHandler {
         User user = UserManager.getUser(iSession.getUid());
 
         int relationActivityId = activityId;
-        if(!SWishActivityRelationConfig.getWishActivityRelationMapByActivityId().values().contains(activityId)) {
+        if(SWishActivityRelationConfig.getWishActivityRelationMapByActivityId().values().contains(activityId)) {
             relationActivityId = SWishActivityRelationConfig.getWishActivityRelationMapByActivityId().get(activityId);
         }
 

+ 3 - 0
serverlogic/src/main/java/com/ljsd/jieling/logic/activity/DefaultEmptyActivity.java

@@ -38,6 +38,9 @@ public class DefaultEmptyActivity extends AbstractActivity{
             long startTime = ToolsUtil.getTimeLong(sGlobalActivity.getStartTimeLong(),sGlobalActivity.getEndTimeLong(),sGlobalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
             user.getActivityManager().setSenvenStartTime(startTime);
         }
+        if (sGlobalActivity.getType() == ActivityType.ITEMS_STORE) {
+            user.getPlayerInfoManager().getRechargeInfo().updateBuyGoodsTimes(id,0);
+        }
     }
 
     @Override

+ 20 - 0
serverlogic/src/main/java/com/ljsd/jieling/logic/dao/RechargeInfo.java

@@ -61,6 +61,8 @@ public class RechargeInfo extends MongoBase{
     private Map<Integer,Integer> dailyLimitMap = new HashMap<>();//每日推送次数
     private long clubGiftBuyTime = 0;//俱乐部特权礼包购买激活时间
     private int clubGiftTaskRewardTimes = 0;//俱乐部特权礼包发奖次数
+    private long voucherGiftBuyTime = 0;//现金券特权礼包购买激活时间
+    private int voucherGiftTaskRewardTimes = 0;//现金券特权礼包发奖次数
 
     @Transient
     private Map<Integer,Long> cacheSendedTypes = new HashMap<>();
@@ -576,4 +578,22 @@ public class RechargeInfo extends MongoBase{
         this.clubGiftTaskRewardTimes = clubGiftTaskRewardTimes;
         updateString("clubGiftTaskRewardTimes" , clubGiftTaskRewardTimes);
     }
+
+    public long getVoucherGiftBuyTime() {
+        return voucherGiftBuyTime;
+    }
+
+    public void setVoucherGiftBuyTime(long voucherGiftBuyTime) {
+        this.voucherGiftBuyTime = voucherGiftBuyTime;
+        updateString("voucherGiftBuyTime" , voucherGiftBuyTime);
+    }
+
+    public int getVoucherGiftTaskRewardTimes() {
+        return voucherGiftTaskRewardTimes;
+    }
+
+    public void setVoucherGiftTaskRewardTimes(int voucherGiftTaskRewardTimes) {
+        this.voucherGiftTaskRewardTimes = voucherGiftTaskRewardTimes;
+        updateString("voucherGiftTaskRewardTimes" , voucherGiftTaskRewardTimes);
+    }
 }

+ 35 - 0
serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java

@@ -1744,4 +1744,39 @@ public class PlayerLogic {
             LOGGER.error("uid:"+user.getId()+",exception==>",e);
         }
     }
+
+    /**
+     * 在线0点或上线发现金券特权礼包邮件奖励
+     * @param user
+     */
+    public void sendVoucherRewardMail(User user) {
+        try{
+            int maxTimes = 7;
+            RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo();
+            long voucherGiftBuyTime = rechargeInfo.getVoucherGiftBuyTime();
+            int voucherGiftTaskRewardTimes = rechargeInfo.getVoucherGiftTaskRewardTimes();
+            if(voucherGiftBuyTime <= 0 || voucherGiftTaskRewardTimes >= maxTimes) {
+                return;
+            }
+            long voucherGiftTaskRewardEndTime =  voucherGiftBuyTime + TimeUnit.DAYS.toMillis(1) * maxTimes;
+            long _now = System.currentTimeMillis();
+            long _time = Long.min(voucherGiftTaskRewardEndTime,_now);
+            int _day = TimeUtils.differentDays(voucherGiftBuyTime,_time);
+            int num = voucherGiftTaskRewardTimes == 0 ? 1 : (_day - voucherGiftTaskRewardTimes + 1);//购买就发一次邮件,其他通过时间判断
+            String voucherGiftRewardStr = SSpecialConfig.getStringValue("Voucher_Gift_Reward");
+            String title = SErrorCodeEerverConfig.getI18NMessage("Voucher_Gift_title");
+            String content = SErrorCodeEerverConfig.getI18NMessage("Voucher_Gift_txt");
+            int rewardCount = 0;
+            for(int n = 0; n < num; n++) {
+                if(rechargeInfo.getVoucherGiftTaskRewardTimes() >= maxTimes) continue;
+                rechargeInfo.setVoucherGiftTaskRewardTimes(rechargeInfo.getVoucherGiftTaskRewardTimes()+1);
+                MailLogic.getInstance().sendMail(user.getId(), title, content, voucherGiftRewardStr, TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
+                rewardCount++;
+            }
+            LOGGER.info("send voucher reward mail, uid:{},voucherGiftBuyTime:{},voucherGiftTaskRewardTimes:{},rewardCount:{}",
+                    user.getId(),voucherGiftBuyTime,rechargeInfo.getClubGiftTaskRewardTimes(),rewardCount);
+        }catch (Exception e) {
+            LOGGER.error("uid:"+user.getId()+",exception==>",e);
+        }
+    }
 }

+ 11 - 3
serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java

@@ -1030,7 +1030,8 @@ public class BuyGoodsLogic {
             sendGoodsByType(user, sRechargeCommodityConfig, dropByBag);
 
             //直购礼包
-            if (type == GiftGoodsType.DIRECTBAG || type == GiftGoodsType.FOREVER_MEMBER || type == GiftGoodsType.CLUB_PRIVILEGE) {
+            if (type == GiftGoodsType.DIRECTBAG || type == GiftGoodsType.FOREVER_MEMBER
+                    || type == GiftGoodsType.CLUB_PRIVILEGE || type == GiftGoodsType.VOUCHER_PRIVILEGE) {
                 int bIReason = BIReason.DIRECT_BUY;
                 int [][] reward = sRechargeCommodityConfig.getBaseReward();
                 if(type == GiftGoodsType.FOREVER_MEMBER){
@@ -1164,7 +1165,8 @@ public class BuyGoodsLogic {
         int nowTime = (int) (TimeUtils.now() / 1000);
         List<String> title;
         List<String> content;
-        if(type == GiftGoodsType.DIRECTBAG || type == GiftGoodsType.CLUB_PRIVILEGE || type == GiftGoodsType.FOREVER_MEMBER || type == GiftGoodsType.GEM){
+        if(type == GiftGoodsType.DIRECTBAG || type == GiftGoodsType.CLUB_PRIVILEGE || type == GiftGoodsType.FOREVER_MEMBER
+                || type == GiftGoodsType.GEM || type == GiftGoodsType.VOUCHER_PRIVILEGE){
             title = SErrorCodeEerverConfig.getI18NMessageNew("recharge_pack_" + goodsId + "_title", new Object[]{});
             content = SErrorCodeEerverConfig.getI18NMessageNew("recharge_pack_" + goodsId + "_txt", new Object[]{});
         }else {
@@ -1476,6 +1478,11 @@ public class BuyGoodsLogic {
                 rechargeInfo.setClubGiftTaskRewardTimes(0);
                 PlayerLogic.getInstance().sendClubRewardMail(user);
             }
+            if (type == GiftGoodsType.VOUCHER_PRIVILEGE) {
+                rechargeInfo.setVoucherGiftBuyTime(System.currentTimeMillis());
+                rechargeInfo.setVoucherGiftTaskRewardTimes(0);
+                PlayerLogic.getInstance().sendVoucherRewardMail(user);
+            }
             // 更新入库
             MongoUtil.getLjsdMongoTemplate().lastUpdate();
         }catch (Exception e){
@@ -2865,7 +2872,8 @@ public class BuyGoodsLogic {
             sendGoodsByType(user, sRechargeCommodityConfig, dropByBag);
 
             //直购礼包
-            if (type == GiftGoodsType.DIRECTBAG || type == GiftGoodsType.FOREVER_MEMBER || type == GiftGoodsType.CLUB_PRIVILEGE) {
+            if (type == GiftGoodsType.DIRECTBAG || type == GiftGoodsType.FOREVER_MEMBER ||
+                    type == GiftGoodsType.CLUB_PRIVILEGE || type == GiftGoodsType.VOUCHER_PRIVILEGE) {
                 int bIReason = BIReason.DIRECT_BUY;
                 int [][] reward = sRechargeCommodityConfig.getBaseReward();
                 if(type == GiftGoodsType.FOREVER_MEMBER){

+ 1 - 0
serverlogic/src/main/java/com/ljsd/jieling/logic/store/GiftGoodsType.java

@@ -18,6 +18,7 @@ public interface GiftGoodsType {
 
     int NEW_WEEK_CARD = 21;//周卡
     int CLUB_PRIVILEGE = 22;//俱乐部特权礼包
+    int VOUCHER_PRIVILEGE = 23;//现金券特权礼包
 
 
 }