系统邮件
parent
1d949a0f61
commit
359b669a1e
|
|
@ -6,6 +6,7 @@ import com.ljsd.jieling.config.json.ServerProperties;
|
|||
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.STableManager;
|
||||
import com.ljsd.jieling.logic.dao.MailingSystemManager;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.netty.server.NettyGameServer;
|
||||
import com.ljsd.jieling.network.NettyProperties;
|
||||
|
|
@ -72,7 +73,7 @@ public class GameApplication {
|
|||
STableManager.initialize("com.ljsd.jieling.config");
|
||||
|
||||
UserManager.init(configurableApplicationContext);
|
||||
|
||||
MailingSystemManager.init(configurableApplicationContext);
|
||||
ThreadManager threadManager = new ThreadManager();
|
||||
threadManager.init(configurableApplicationContext);
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ public interface Global {
|
|||
//mail type
|
||||
int MAIL_TYPE_SYS = 1; //系统邮件
|
||||
int MAIL_TYPE_IDIP = 2; //idip 邮件
|
||||
int MAIL_TYPE_GM = 3; // GM 邮件
|
||||
|
||||
//sysMail state
|
||||
int SYS_MAIL_STATE_NEW = 1; //未发布
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.ljsd.jieling.globals;
|
||||
|
||||
public interface GlobalGm {
|
||||
int ADD_GEM = 0; // 添加钻石
|
||||
int ADD_ITEM = 1;//添加道具
|
||||
int ADD_CARD = 2; //添加卡牌
|
||||
int SEND_MAIIL = 3;// 发送邮件
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package com.ljsd.jieling.handler.GameGM;
|
||||
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.globals.GlobalGm;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.dao.Mail;
|
||||
import com.ljsd.jieling.logic.dao.User;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
|
|
@ -10,6 +12,7 @@ import com.ljsd.jieling.protocols.CommonProto;
|
|||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import com.ljsd.jieling.util.TimeUtils;
|
||||
import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -36,25 +39,27 @@ public class GMRequestHandler extends BaseHandler{
|
|||
}
|
||||
String[] commandArray = command.split("#");
|
||||
int uid = iSession.getUid();
|
||||
int gmCommandType = Integer.parseInt(commandArray[0]);// type 0:钻石(type#数量) 1:道具 2: 卡牌
|
||||
int gmCommandType = Integer.parseInt(commandArray[0]);// 1:道具(type#数量) 2: 卡牌
|
||||
int prarm1 = 0, prarm2 = 0;
|
||||
if (gmCommandType == 0){
|
||||
prarm1 = Integer.parseInt(commandArray[1]);
|
||||
}else if (gmCommandType == 1 || gmCommandType ==2){
|
||||
}else if (gmCommandType == 1 || gmCommandType ==2 || gmCommandType ==3){
|
||||
prarm1 = Integer.parseInt(commandArray[1]);
|
||||
prarm2 = Integer.parseInt(commandArray[2]);
|
||||
}
|
||||
User cUser = UserManager.getUser(uid);
|
||||
switch (gmCommandType){
|
||||
case GlobalGm.ADD_GEM:
|
||||
cUser.getPlayerInfoManager().setGem(prarm1+cUser.getPlayerInfoManager().getGem());
|
||||
break;
|
||||
case GlobalGm.ADD_ITEM:
|
||||
giveItem(cUser,prarm1,prarm2);
|
||||
break;
|
||||
case GlobalGm.ADD_CARD:
|
||||
giveHero(cUser,prarm1,prarm2);
|
||||
break;
|
||||
case GlobalGm.SEND_MAIIL:
|
||||
int nowTime =(int) (TimeUtils.now()/1000);
|
||||
Mail mail = new Mail(uid,"GM","GM",prarm1+"#"+prarm2,nowTime,30*24*60*60,"GM", Global.MAIL_TYPE_GM);
|
||||
cUser.getMailManager().addMail(mail);
|
||||
break;
|
||||
}
|
||||
try {
|
||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, null, true);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public class AutoIncrement extends MongoBase {
|
|||
}
|
||||
public AutoIncrement(String name){
|
||||
this.name = name;
|
||||
this.cnt = 0;
|
||||
this.cnt = 1;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
package com.ljsd.jieling.logic.dao;
|
||||
|
||||
import com.ljsd.common.mogodb.MongoBase;
|
||||
import com.ljsd.jieling.util.KeyGenUtils;
|
||||
import com.ljsd.jieling.util.UUIDEnum;
|
||||
|
||||
public class Mail extends MongoBase {
|
||||
|
||||
private String id ;
|
||||
|
||||
private int roleUid; //所属玩家的UID
|
||||
|
||||
private int state;//0:未读 1:已读取 2: 未领取 3 已领取
|
||||
|
|
@ -24,6 +27,7 @@ public class Mail extends MongoBase {
|
|||
private int mailType; //邮件类型 1:系统邮件 2:idip 业务邮件
|
||||
|
||||
public Mail(int uid,String head,String content,String mailItem,int sendTime,int effectiveTime,String sendName,int mailType){
|
||||
this.id = KeyGenUtils.produceIdByModule(UUIDEnum.MAIL, String.valueOf(uid));
|
||||
this.roleUid = uid;
|
||||
this.head = head;
|
||||
this.content = content;
|
||||
|
|
|
|||
|
|
@ -13,30 +13,35 @@ public class MailingSystem extends MongoRoot {
|
|||
public String getCollection() {
|
||||
return _COLLECTION_NAME;
|
||||
}
|
||||
|
||||
public void init(LjsdMongoTemplate ljsdMongoTemplate){
|
||||
_myMongoDBPool = ljsdMongoTemplate;
|
||||
public static String getCollectionName() {
|
||||
return _COLLECTION_NAME;
|
||||
}
|
||||
|
||||
|
||||
public MailingSystem(){
|
||||
setMyMongoDBPool(_myMongoDBPool);
|
||||
setId("1");
|
||||
systemMailManager = new SystemMailManager();
|
||||
sysMailManager = new SysMailManager();
|
||||
cAutoIncrementManager = new AutoIncrementManager();
|
||||
|
||||
//綁定关系
|
||||
systemMailManager.init(this, "systemMailManager", false);
|
||||
systemMailManager.init(this, "sysMailManager", false);
|
||||
systemMailManager.init(this, "autoIncrementManager", false);
|
||||
sysMailManager.init(this, "sysMailManager", false);
|
||||
cAutoIncrementManager.init(this, "autoIncrementManager", false);
|
||||
}
|
||||
public static SystemMailManager getSystemMailManager() {
|
||||
public static void init(LjsdMongoTemplate ljsdMongoTemplate) {
|
||||
_myMongoDBPool = ljsdMongoTemplate;
|
||||
}
|
||||
public SystemMailManager getSystemMailManager() {
|
||||
return systemMailManager;
|
||||
}
|
||||
|
||||
public static SysMailManager getSysMailManager() {
|
||||
public SysMailManager getSysMailManager() {
|
||||
return sysMailManager;
|
||||
}
|
||||
|
||||
public static AutoIncrementManager getcAutoIncrementManager() {
|
||||
public AutoIncrementManager getcAutoIncrementManager() {
|
||||
return cAutoIncrementManager;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,110 +2,44 @@ package com.ljsd.jieling.logic.dao;
|
|||
|
||||
|
||||
import com.ljsd.common.mogodb.LjsdMongoTemplate;
|
||||
import com.ljsd.jieling.util.MailUtil;
|
||||
import com.ljsd.jieling.util.TimeUtils;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class MailingSystemManager {
|
||||
|
||||
private static Map<Integer, User> userMap = new ConcurrentHashMap<>();
|
||||
private static Map<Integer, MailingSystem> mailingSystemMap = new ConcurrentHashMap<>();
|
||||
|
||||
public static LjsdMongoTemplate ljsdMongoTemplate;
|
||||
|
||||
public static void init(ConfigurableApplicationContext configurableApplicationContext) {
|
||||
public static void init(ConfigurableApplicationContext configurableApplicationContext) throws Exception {
|
||||
ljsdMongoTemplate =configurableApplicationContext.getBean(LjsdMongoTemplate.class);
|
||||
User.init(ljsdMongoTemplate);
|
||||
}
|
||||
|
||||
public static void addUser(User user) {
|
||||
userMap.put(user._getIntId(), user);
|
||||
}
|
||||
|
||||
public static boolean isUserExist(int uid) {
|
||||
return userMap.containsKey(uid);
|
||||
}
|
||||
|
||||
public static User getUserForLogin(int uid) throws Exception {
|
||||
User user = userMap.get(uid);
|
||||
if (user == null) {
|
||||
user = ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
|
||||
MailingSystem.init(ljsdMongoTemplate);
|
||||
//TODO 测试用
|
||||
//初始化系统邮件信息
|
||||
MailingSystem mailingSystem = ljsdMongoTemplate.findById(MailingSystem.getCollectionName(), Integer.toString(1), MailingSystem.class);
|
||||
if (mailingSystem == null){
|
||||
mailingSystem = new MailingSystem();
|
||||
addMailingSystem(mailingSystem);
|
||||
int nowTime = (int)(TimeUtils.now()/1000);
|
||||
MailUtil.getInstance().sendSystemMail("开服邮件",new ArrayList<>(),"DSKGSD",nowTime,"1#5000|2#100",30*24*60*60,"IDIP");
|
||||
}
|
||||
if (user == null) {
|
||||
user = registerUser(uid);
|
||||
}else{
|
||||
refreshUserLoginInfo(user);
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
||||
private static void refreshUserLoginInfo(User user) {
|
||||
//TODO
|
||||
public static void addMailingSystem(MailingSystem mailingSystem) throws Exception {
|
||||
mailingSystemMap.put(Integer.valueOf(mailingSystem.getId()), mailingSystem);
|
||||
ljsdMongoTemplate.save(mailingSystem);
|
||||
}
|
||||
|
||||
public static User userLogin(int uid) throws Exception {
|
||||
User user = ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
|
||||
if (user == null) {
|
||||
user = registerUser(uid);
|
||||
}else {
|
||||
if (!MailingSystemManager.isUserExist(uid)){
|
||||
MailingSystemManager.addUser(user);
|
||||
}
|
||||
}
|
||||
return user;
|
||||
public static boolean isUserExist(int id) {
|
||||
return mailingSystemMap.containsKey(id);
|
||||
}
|
||||
|
||||
|
||||
private static User registerUser(int uid) throws Exception {
|
||||
User user = new User(uid,new PlayerManager(),new ItemManager(),new HeroManager(),new MapManager());
|
||||
initPlayer(user);
|
||||
MailingSystemManager.addUser(user);
|
||||
ljsdMongoTemplate.save(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
private static void initPlayer(User user) throws Exception {
|
||||
PlayerManager playerManager = user.getPlayerInfoManager();
|
||||
playerManager.setNickName("戒灵666");
|
||||
playerManager.setLevel(1);
|
||||
playerManager.setExp(0);
|
||||
playerManager.setVipLevel(0);
|
||||
playerManager.setFamilyId("12345");
|
||||
playerManager.setHead("image_head_1");
|
||||
playerManager.setGold(100000l);
|
||||
playerManager.setGem(9999);
|
||||
playerManager.setChargeGem(666);
|
||||
|
||||
ItemManager itemManager = user.getItemManager();
|
||||
//TODO
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
//TODO
|
||||
MapManager mapManager = user.getMapManager();
|
||||
//TODO
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static User getUser(int uid) throws Exception {
|
||||
User user = userMap.get(uid);
|
||||
if (user != null) {
|
||||
return user;
|
||||
}
|
||||
user =ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
|
||||
if (user == null) {
|
||||
throw new Exception("UserManager::getUser null exception");
|
||||
}
|
||||
MailingSystemManager.addUser(user);
|
||||
return user;
|
||||
}
|
||||
|
||||
public static void removeUser(int uid) {
|
||||
userMap.remove(uid);
|
||||
}
|
||||
|
||||
|
||||
public static String getNewToken(int userId) {
|
||||
|
||||
return "33521";
|
||||
public static MailingSystem getMailingSystem() {
|
||||
return mailingSystemMap.get(1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ public class PlayerManager extends MongoBase {
|
|||
|
||||
private int mapId;
|
||||
|
||||
private long createTime; //创建时间
|
||||
|
||||
private String clientVersion;
|
||||
|
||||
|
||||
public String getOpenId() {
|
||||
return openId;
|
||||
|
|
@ -125,4 +129,22 @@ public class PlayerManager extends MongoBase {
|
|||
updateString("mapId", mapId);
|
||||
this.mapId = mapId;
|
||||
}
|
||||
|
||||
public void setCreateTime(long createTime) throws Exception {
|
||||
updateString("createTime", createTime);
|
||||
this.createTime = createTime;
|
||||
}
|
||||
|
||||
public long getCreateTime() {
|
||||
return createTime;
|
||||
}
|
||||
|
||||
public String getClientVersion() {
|
||||
return clientVersion;
|
||||
}
|
||||
|
||||
public void setClientVersion(String clientVersion) throws Exception {
|
||||
updateString("clientVersion", clientVersion);
|
||||
this.clientVersion = clientVersion;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ public class SysMail extends MongoBase {
|
|||
public List<Integer> getSysMailIds() {
|
||||
return sysMailIds;
|
||||
}
|
||||
|
||||
public SysMail(int uid){
|
||||
this.roleUid = uid;
|
||||
this.sysMailIds = new CopyOnWriteArrayList<>();
|
||||
|
|
|
|||
|
|
@ -22,4 +22,12 @@ public class SysMailManager extends MongoBase {
|
|||
sysMailMap.remove(key);
|
||||
removeString(getMongoKey() + ".sysMailMap." + key);
|
||||
}
|
||||
|
||||
public SysMail getSysMail(int userId) {
|
||||
SysMail sysMail = sysMailMap.get(userId);
|
||||
if (sysMail == null){
|
||||
sysMail = new SysMail(userId);
|
||||
}
|
||||
return sysMail;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,30 +9,38 @@ public class SystemMail extends MongoBase {
|
|||
private int id ;
|
||||
private String title; //邮件标题
|
||||
|
||||
private String subTitle; //邮件副标题
|
||||
|
||||
private List<Integer> userList; //邮件发送列表 若为空,则全服发送
|
||||
|
||||
private String content;
|
||||
|
||||
private long sendTime;
|
||||
private int sendTime;
|
||||
|
||||
private String reward; //奖励
|
||||
|
||||
private int effectiveTime;
|
||||
private int effectiveTime; // 秒
|
||||
|
||||
private String name; // 发送者
|
||||
|
||||
/**
|
||||
* 用户注册截止时间 0 : 所有用户时间
|
||||
*/
|
||||
private int registerEndTime;
|
||||
private long registerEndTime;
|
||||
|
||||
/**
|
||||
* 版本号以,分割,用于对指定版本前端发送邮件,为0则是全部版本
|
||||
*/
|
||||
private String version;
|
||||
|
||||
public SystemMail(int id,String title,List<Integer> userList,String content,int sendTime, String reward,int effectiveTime,String name){
|
||||
this.id = id;
|
||||
this.title = title;
|
||||
this.userList = userList;
|
||||
this.content = content;
|
||||
this.sendTime = sendTime;
|
||||
this.reward = reward;
|
||||
this.effectiveTime = effectiveTime;
|
||||
this.name = name;
|
||||
}
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
|
@ -41,10 +49,6 @@ public class SystemMail extends MongoBase {
|
|||
return title;
|
||||
}
|
||||
|
||||
public String getSubTitle() {
|
||||
return subTitle;
|
||||
}
|
||||
|
||||
public List<Integer> getUserList() {
|
||||
return userList;
|
||||
}
|
||||
|
|
@ -53,7 +57,7 @@ public class SystemMail extends MongoBase {
|
|||
return content;
|
||||
}
|
||||
|
||||
public long getSendTime() {
|
||||
public int getSendTime() {
|
||||
return sendTime;
|
||||
}
|
||||
|
||||
|
|
@ -69,7 +73,7 @@ public class SystemMail extends MongoBase {
|
|||
return name;
|
||||
}
|
||||
|
||||
public int getRegisterEndTime() {
|
||||
public long getRegisterEndTime() {
|
||||
return registerEndTime;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.dao;
|
|||
|
||||
|
||||
import com.ljsd.common.mogodb.LjsdMongoTemplate;
|
||||
import com.ljsd.jieling.util.TimeUtils;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
|
||||
import java.util.Map;
|
||||
|
|
@ -75,6 +76,7 @@ public class UserManager {
|
|||
playerManager.setGold(100000l);
|
||||
playerManager.setGem(9999);
|
||||
playerManager.setChargeGem(666);
|
||||
playerManager.setCreateTime(TimeUtils.now());
|
||||
|
||||
ItemManager itemManager = user.getItemManager();
|
||||
//TODO
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||
public class ItemUtil {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class);
|
||||
//掉落
|
||||
public static CommonProto.Drop.Builder drop(User user, int dropGroupId) throws Exception {
|
||||
public static CommonProto.Drop.Builder drop(User user, int dropGroupId,float dropRatio) throws Exception {
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null){
|
||||
|
|
@ -24,14 +24,14 @@ public class ItemUtil {
|
|||
Map<Integer, Integer> itemMap = new HashMap<>();
|
||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
|
||||
selectDrop(sRewardGroup,itemMap,cardMap);
|
||||
selectDrop(sRewardGroup,itemMap,cardMap,dropRatio);
|
||||
|
||||
addItem(user,itemMap,dropBuilder);
|
||||
addCard(user,cardMap,dropBuilder);
|
||||
return dropBuilder;
|
||||
}
|
||||
|
||||
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap) {
|
||||
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,float dropRatio) {
|
||||
int[] rewardItem = sRewardGroup.getRewardItem();
|
||||
StringBuilder rewardStr = new StringBuilder();
|
||||
StringBuilder weight = new StringBuilder();
|
||||
|
|
@ -53,20 +53,20 @@ public class ItemUtil {
|
|||
}
|
||||
switch (sRewardGroup.getIsUpset()) {
|
||||
case GlobalItemType.ALL_DROP:
|
||||
getMap(rewardStr.toString().split("#"),itemMap,cardMap);
|
||||
getMap(rewardStr.toString().split("#"),itemMap,cardMap,dropRatio);
|
||||
break;
|
||||
case GlobalItemType.WEIGHT_DROP:
|
||||
getRandomMap(sRewardGroup.getRewardMaxNum(),rewardStr.toString().split("#"),weight.toString().split("#"),itemMap,cardMap);
|
||||
getRandomMap(sRewardGroup.getRewardMaxNum(),rewardStr.toString().split("#"),weight.toString().split("#"),itemMap,cardMap,dropRatio);
|
||||
break;
|
||||
case GlobalItemType.SUCCESSIVELY_RANDOM:
|
||||
getSuccessivelyRandmoMap(sRewardGroup,rewardStr.toString().split("#"),weight.toString().split("#"),itemMap,cardMap);
|
||||
getSuccessivelyRandmoMap(sRewardGroup,rewardStr.toString().split("#"),weight.toString().split("#"),itemMap,cardMap,dropRatio);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private static void getSuccessivelyRandmoMap(SRewardGroup sRewardGroup,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap) {
|
||||
private static void getSuccessivelyRandmoMap(SRewardGroup sRewardGroup,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,float dropRatio) {
|
||||
for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){
|
||||
int itemId = 0;
|
||||
for (int j = 0 ; j < sRewardGroup.getLoop();i++){
|
||||
|
|
@ -81,32 +81,32 @@ public class ItemUtil {
|
|||
itemId = Integer.parseInt(rewardArr[index]);
|
||||
}
|
||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
||||
getMap(itemId,itemMap, cardMap, sRewardItem);
|
||||
getMap(itemId,itemMap, cardMap, sRewardItem,dropRatio);
|
||||
}
|
||||
}
|
||||
|
||||
private static void getRandomMap(int randomItemNum ,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap) {
|
||||
private static void getRandomMap(int randomItemNum ,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,float dropRatio) {
|
||||
for (int i = 0 ; i < randomItemNum;i++){
|
||||
int index = MathUtils.randomForStrArray(weightArr);
|
||||
int itemId = Integer.parseInt(rewardArr[index]);
|
||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
||||
getMap(itemId,itemMap, cardMap, sRewardItem);
|
||||
getMap(itemId,itemMap, cardMap, sRewardItem,dropRatio);
|
||||
}
|
||||
}
|
||||
|
||||
private static void getMap(String[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap) {
|
||||
private static void getMap(String[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,float dropRatio) {
|
||||
for (String itemId :itemInfo){
|
||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(Integer.parseInt(itemId));
|
||||
getMap(Integer.parseInt(itemId),itemMap, cardMap, sRewardItem);
|
||||
getMap(Integer.parseInt(itemId),itemMap, cardMap, sRewardItem,dropRatio);
|
||||
}
|
||||
}
|
||||
|
||||
private static void getMap(int itemId ,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, SRewardItem sRewardItem) {
|
||||
private static void getMap(int itemId ,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, SRewardItem sRewardItem,float dropRatio) {
|
||||
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
switch (sItem.getItemType()) {
|
||||
case GlobalItemType.ITEM:
|
||||
putcountMap(itemId,itemNum,itemMap);
|
||||
putcountMap(itemId,(int)(itemNum *dropRatio),itemMap);
|
||||
break;
|
||||
case GlobalItemType.CARD:
|
||||
putcountMap(itemId,itemNum,cardMap);
|
||||
|
|
@ -218,7 +218,7 @@ public class ItemUtil {
|
|||
return false;
|
||||
}
|
||||
useItem(user, itemMap);
|
||||
useMoney(user, moneyMap);
|
||||
// useMoney(user, moneyMap);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -241,18 +241,17 @@ public class ItemUtil {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (moneyMap != null) {
|
||||
for (Map.Entry<Integer, Integer> entry : moneyMap.entrySet()) {
|
||||
int count = 0;
|
||||
if (entry.getKey() == GlobalItemType.GEM) {
|
||||
count = user.getPlayerInfoManager().getGem();
|
||||
}
|
||||
if (count < entry.getValue()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (moneyMap != null) {
|
||||
// for (Map.Entry<Integer, Integer> entry : moneyMap.entrySet()) {
|
||||
// int count = 0;
|
||||
// if (entry.getKey() == GlobalItemType.GEM) {
|
||||
// count = user.getPlayerInfoManager().getGem();
|
||||
// }
|
||||
// if (count < entry.getValue()) {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
return true;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
package com.ljsd.jieling.util;
|
||||
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.logic.dao.Mail;
|
||||
import com.ljsd.jieling.logic.dao.MailManager;
|
||||
import com.ljsd.jieling.logic.dao.User;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -36,7 +33,10 @@ public class MailUtil {
|
|||
User user = UserManager.getUser(userId);
|
||||
MailManager mailManager = user.getMailManager();
|
||||
Map<String, Mail> mailMap = mailManager.getMailMap();
|
||||
getSystemMail(mailMap);
|
||||
// 获取系统邮件
|
||||
List<SystemMail> systemMail = getSystemMail();
|
||||
|
||||
systemMailToUserMail(systemMail,mailMap,userId);
|
||||
if (mailMap.size() ==0){
|
||||
return mailList;
|
||||
}
|
||||
|
|
@ -63,16 +63,102 @@ public class MailUtil {
|
|||
}
|
||||
|
||||
/**
|
||||
* 获取所有系统邮件
|
||||
* 将系统邮件生成用户邮件
|
||||
* @param systemMailList
|
||||
* @param mailMap
|
||||
*/
|
||||
private void getSystemMail(Map<String, Mail> mailMap) {
|
||||
private void systemMailToUserMail(List<SystemMail> systemMailList, Map<String, Mail> mailMap,int userId) throws Exception {
|
||||
MailingSystem mailingSystem = MailingSystemManager.getMailingSystem();
|
||||
SysMailManager sysMailManager = mailingSystem.getSysMailManager();
|
||||
SysMail sysMail = sysMailManager.getSysMail(userId);
|
||||
User user = UserManager.getUser(userId);
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
String clientVersion = user.getPlayerInfoManager().getClientVersion();
|
||||
List<Integer> sysMailIds = sysMail.getSysMailIds();
|
||||
for (SystemMail systemMail:systemMailList){
|
||||
int systemId = systemMail.getId();
|
||||
if (systemMail.getUserList().size() !=0 || !systemMail.getUserList().contains(userId)){
|
||||
continue;
|
||||
}
|
||||
if (sysMailIds.contains(systemId)){
|
||||
continue;
|
||||
}
|
||||
if (createTime >= systemMail.getRegisterEndTime() && systemMail.getRegisterEndTime() != 0) {
|
||||
continue;
|
||||
}
|
||||
String[] split = systemMail.getVersion().split(",");
|
||||
Set<String> version = new HashSet<>(Arrays.asList(split));
|
||||
if (!version.contains(clientVersion) || !"0".equals(systemMail.getVersion())) {
|
||||
continue;
|
||||
}
|
||||
sysMailIds.add(systemId);
|
||||
sysMail.setSysMailIds(sysMailIds);
|
||||
sysMailManager.addSystemMail(sysMail);
|
||||
initUserMail(userId,systemMail,user.getMailManager(),mailMap);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void initUserMail(int userId, SystemMail systemMail,MailManager mailManager,Map<String, Mail> mailMap) throws Exception {
|
||||
int sendTime = (int) (TimeUtils.now()/1000);
|
||||
Mail mail = new Mail(userId,systemMail.getTitle(),systemMail.getContent(),systemMail.getReward(),sendTime,systemMail.getEffectiveTime(),systemMail.getName(),Global.MAIL_TYPE_SYS);
|
||||
mailManager.addMail(mail);
|
||||
mailMap.put(mail.getId(),mail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有系统邮件
|
||||
*
|
||||
*/
|
||||
private List<SystemMail> getSystemMail() {
|
||||
MailingSystem mailingSystem = MailingSystemManager.getMailingSystem();
|
||||
SystemMailManager systemMailManager = mailingSystem.getSystemMailManager();
|
||||
Map<Integer, SystemMail> systemMailMap = systemMailManager.getSystemMailMap();
|
||||
List<SystemMail> systemMailsList = new CopyOnWriteArrayList<>();
|
||||
int nowTime = (int)(TimeUtils.now()/1000);
|
||||
for (Map.Entry<Integer,SystemMail> entry:systemMailMap.entrySet()){
|
||||
SystemMail systemMail = entry.getValue();
|
||||
int time = nowTime + systemMail.getEffectiveTime();
|
||||
if (systemMail.getEffectiveTime() !=0 || nowTime > time){
|
||||
continue;
|
||||
}
|
||||
systemMailsList.add(systemMail);
|
||||
}
|
||||
return systemMailsList;
|
||||
}
|
||||
|
||||
private void getAllMailProtoList(List<Mail> cMailList, List<CommonProto.Mail> mailList) {
|
||||
for (Mail mail :cMailList){
|
||||
mailList.add(CBean2Proto.getMail(mail));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送系统邮件
|
||||
* @param title
|
||||
* @param userList
|
||||
* @param content
|
||||
* @param sendTime
|
||||
* @param reward
|
||||
* @param effectiveTime
|
||||
* @param sendName
|
||||
* @throws Exception
|
||||
*/
|
||||
public void sendSystemMail(String title,List<Integer> userList,String content,int sendTime, String reward,int effectiveTime,String sendName) throws Exception {
|
||||
MailingSystem mailingSystem = MailingSystemManager.getMailingSystem();
|
||||
String name = mailingSystem.getSystemMailManager().getName();
|
||||
AutoIncrementManager autoIncrementManager = mailingSystem.getcAutoIncrementManager();
|
||||
autoIncrementManager.addAutoIncrement(new AutoIncrement(name));
|
||||
SystemMailManager systemMailManager = mailingSystem.getSystemMailManager();
|
||||
int id = getSystemMailId(autoIncrementManager,name);
|
||||
systemMailManager.addSystemMail(new SystemMail(id,title,userList,content,sendTime,reward,effectiveTime,sendName));
|
||||
MailingSystemManager.ljsdMongoTemplate.lastUpdate();
|
||||
}
|
||||
|
||||
private static int getSystemMailId(AutoIncrementManager autoIncrementManager,String name) throws Exception {
|
||||
AutoIncrement autoIncrement = autoIncrementManager.getAutoIncrement(name);
|
||||
int cnt = autoIncrement.getCnt();
|
||||
autoIncrement.setCnt(cnt+1);
|
||||
return cnt;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@ package com.ljsd.jieling.util;
|
|||
|
||||
public enum UUIDEnum {
|
||||
HERO(0),
|
||||
EQUIP(1);
|
||||
EQUIP(1),
|
||||
MAIL(2);
|
||||
|
||||
private int value;
|
||||
UUIDEnum( int value ){
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class NettyClient {
|
|||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(NettyClient.class);
|
||||
|
||||
private static int uid = 10000022;
|
||||
private static int uid = 10000026;
|
||||
private static int msgIndex = 1;
|
||||
private static int token=543242;
|
||||
|
||||
|
|
@ -44,9 +44,9 @@ public class NettyClient {
|
|||
handler.sendRequest_jieling(makeFinalMessage(gameMessage, MessageTypeProto.MessageType.LOGIN_REQUEST_VALUE));
|
||||
// handler.sendRequest_jieling(makeFinalMessage(getHero(), MessageTypeProto.MessageType.GET_HEROINFO_REQUEST_VALUE));
|
||||
// handler.sendRequest_jieling(makeFinalMessage(getRandomHero(), MessageTypeProto.MessageType.HERO_RAND_REQQUEST_VALUE));
|
||||
for (int i = 1000; i< 1500;i++){
|
||||
handler.sendRequest_jieling(makeFinalMessage(gmRequest(i), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
||||
}
|
||||
// for (int i = 1000; i< 1500;i++){
|
||||
handler.sendRequest_jieling(makeFinalMessage(gmRequest(0), MessageTypeProto.MessageType.GM_REQUEST_VALUE));
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ public class NettyClient {
|
|||
}
|
||||
|
||||
public static CommonProto.GMCommand gmRequest(int itemId){
|
||||
return CommonProto.GMCommand.newBuilder().setCommand("1#"+itemId+"#10000").build();
|
||||
return CommonProto.GMCommand.newBuilder().setCommand("3#"+1+"#10000").build();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue