系统邮件

back_recharge
gaojie 2019-01-24 14:35:59 +08:00
parent 1d949a0f61
commit 359b669a1e
17 changed files with 227 additions and 154 deletions

View File

@ -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);

View File

@ -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; //未发布

View File

@ -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;// 发送邮件
}

View File

@ -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);

View File

@ -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() {

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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<>();

View File

@ -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;
}
}

View File

@ -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;
}

View File

@ -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

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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 ){

View File

@ -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();
}