diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java index bdad99910..aa1a5a380 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/SaveTeamPosHandler.java @@ -3,10 +3,10 @@ package com.ljsd.jieling.handler; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; +import org.springframework.stereotype.Component; import rpc.protocols.CommonProto; import rpc.protocols.HeroInfoProto; import rpc.protocols.MessageTypeProto; -import org.springframework.stereotype.Component; import java.util.List; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_recharge.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_recharge.java new file mode 100644 index 000000000..d153f5108 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_recharge.java @@ -0,0 +1,79 @@ +package com.ljsd.jieling.kefu; + +import com.ljsd.GameApplication; +import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.logic.dao.PlayerManager; +import com.ljsd.jieling.logic.dao.RechargeInfo; +import com.ljsd.jieling.logic.dao.root.Recharge; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.store.newRechargeInfo.NewRechargeInfo; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * @author lvxinran + * @date 2021/6/11 + * @discribe 生成充值信息 + */ +public class Cmd_recharge extends GmAbstract { + @Override + public boolean exec(String[] args) throws Exception { + int serverId = GameApplication.serverId; + MongoTemplate monogTemplate = MongoUtil.getInstence().getMonogTemplate(serverId); + MongoTemplate coreMongoTemplate = MongoUtil.getCoreMongoTemplate(); + + Query query = new Query(Criteria.where("_id").ne("100000")); + query.fields().include("playerManager"); + long count = monogTemplate.count(query, User.class, "user"); + + int pageSize = 10; + + //分页 + for(int i = 0 ; i allByCondition = monogTemplate.find(query.with(pageable), User.class,"user"); + + for(User user:allByCondition){ + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + System.out.println(user.getId()); + NewRechargeInfo newRechargeInfo = playerInfoManager.getNewRechargeInfo(); + RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo(); + double rr = (rechargeInfo==null?0:rechargeInfo.getSaveAmt())+(newRechargeInfo==null?0:newRechargeInfo.getRr()); + if(rr==0){ + continue; + } + //判断是否有其他服已经加入过充值信息 + Query rechargeQuery = new Query(Criteria.where("_id").is(playerInfoManager.getOpenId())); + Recharge recharge = coreMongoTemplate.findOne(rechargeQuery, Recharge.class, "recharge"); + if(recharge==null){ + recharge = new Recharge(); + recharge.setId(playerInfoManager.getOpenId()); + recharge.setRr(rr); + Set serverIds = new HashSet<>(); + serverIds.add(serverId); + recharge.setServerId(serverIds); + }else{ + Set serverIds = recharge.getServerId(); + if(serverIds!=null&&serverIds.contains(serverId)){ + continue; + } + recharge.setRr(recharge.getRr()+rr); + recharge.getServerId().add(serverId); + } + coreMongoTemplate.save(recharge,"recharge"); + } + + } + + + System.out.println(); + return true; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java index 1680715da..69cd196ca 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/UserLevelEventHandler.java @@ -1,25 +1,30 @@ package com.ljsd.jieling.logic.activity; +import com.ljsd.GameApplication; import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.VipPrivilegeType; -import com.ljsd.jieling.exception.ErrorCode; -import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.logic.activity.event.ActivityStateChangeEvent; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.UserLevelEvent; import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.Recharge; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.hardStage.HardStageLogic; +import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.util.ItemUtil; -import com.ljsd.jieling.util.ToolsUtil; import config.*; import manager.STableManager; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import util.TimeUtils; import java.util.ArrayList; @@ -71,6 +76,21 @@ public class UserLevelEventHandler implements IEventHandler,IPrivilegeChange{ } } + if(level==30){ + MongoTemplate coreMongoTemplate = MongoUtil.getCoreMongoTemplate(); + Query rechargeQuery = new Query(Criteria.where("_id").is(user.getPlayerInfoManager().getOpenId())); + Recharge recharge = coreMongoTemplate.findOne(rechargeQuery, Recharge.class, "recharge"); + if(recharge!=null&&recharge.getRewardServerId()==0){ + double rr = recharge.getRr(); + String title = SErrorCodeEerverConfig.getI18NMessage("recharge_rebate_title"); + String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("recharge_rebate_content", new Object[]{(int)rr,(int)rr*10},new int[]{0,0},"#"); + + MailLogic.getInstance().sendMail(uid,title,content, Global.GEM+"#"+(int)rr*10,(int) (TimeUtils.now() / 1000),Global.MAIL_EFFECTIVE_TIME); + recharge.setRewardServerId(GameApplication.serverId); + coreMongoTemplate.save(recharge,"recharge"); + } + } + ActivityLogic.getInstance().updateActivityMissionProgress(user, ActivityType.GrowthFund,level); if(sGlobalSystemConfigs == null){ return; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/Recharge.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/Recharge.java new file mode 100644 index 000000000..099b0d63d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/Recharge.java @@ -0,0 +1,57 @@ +package com.ljsd.jieling.logic.dao.root; + +import java.util.Set; + +/** + * @author lvxinran + * @date 2021/6/11 + * @discribe + */ +public class Recharge { + private String id; + private double rr; + private Set serverId; + private int rewardServerId; + + + public Recharge() { + } + + public Recharge(String id, double rr, Set serverId) { + this.id = id; + this.rr = rr; + this.serverId = serverId; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public double getRr() { + return rr; + } + + public void setRr(double rr) { + this.rr = rr; + } + + public Set getServerId() { + return serverId; + } + + public void setServerId(Set serverId) { + this.serverId = serverId; + } + + public int getRewardServerId() { + return rewardServerId; + } + + public void setRewardServerId(int rewardServerId) { + this.rewardServerId = rewardServerId; + } +}