From a5967b2ff1ec360a1c544bced1827476f46c3546 Mon Sep 17 00:00:00 2001 From: gaojie Date: Thu, 24 Jan 2019 17:20:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BB=E5=8F=96=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/globals/GlobalItemType.java | 1 + .../ljsd/jieling/handler/ReadMailHandler.java | 37 +++++++ .../ljsd/jieling/handler/TakeMailHandler.java | 49 +++++++++ .../ljsd/jieling/logic/dao/AutoIncrement.java | 3 + .../java/com/ljsd/jieling/logic/dao/Mail.java | 4 + .../ljsd/jieling/logic/dao/MailingSystem.java | 9 +- .../logic/dao/MailingSystemManager.java | 4 +- .../com/ljsd/jieling/logic/dao/SysMail.java | 9 +- .../ljsd/jieling/logic/dao/SystemMail.java | 9 +- .../ljsd/jieling/logic/dao/UserManager.java | 2 +- .../java/com/ljsd/jieling/util/ItemUtil.java | 101 ++++++++++++++---- .../java/com/ljsd/jieling/util/MailUtil.java | 47 ++++++-- 12 files changed, 229 insertions(+), 46 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/ReadMailHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java index 3fea6ea27..a8655d6f5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalItemType.java @@ -10,5 +10,6 @@ public interface GlobalItemType { int GEM = 3; // 钻石Id(充值获得) int ITEM = 10; //道具 int CARD = 11; // 卡牌 + int EQUIP = 12; //装备 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/ReadMailHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/ReadMailHandler.java new file mode 100644 index 000000000..25ef1d0d8 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/ReadMailHandler.java @@ -0,0 +1,37 @@ +package com.ljsd.jieling.handler; + +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.protocols.PlayerInfoProto; +import com.ljsd.jieling.util.MailUtil; +import com.ljsd.jieling.util.MessageUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +@Component +public class ReadMailHandler extends BaseHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(ReadMailHandler.class); + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.GET_ALL_MAIL_INFO_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + int userId = netData.getUserId(); + int token = netData.getToken(); + int msgId = netData.getMsgId(); + int msgIndex = netData.getIndex(); + byte[] message = netData.parseClientProtoNetData(); + LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={}", + userId, token,msgId,msgIndex); + PlayerInfoProto.MailReadRequest mailReadRequest = PlayerInfoProto.MailReadRequest.parseFrom(message); + String mailId = mailReadRequest.getMailId(); + MailUtil.getInstance().readMail(iSession,mailId); + + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java new file mode 100644 index 000000000..31acb7836 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/TakeMailHandler.java @@ -0,0 +1,49 @@ +package com.ljsd.jieling.handler; + +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.protocols.PlayerInfoProto; +import com.ljsd.jieling.util.MailUtil; +import com.ljsd.jieling.util.MessageUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class TakeMailHandler extends BaseHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(TakeMailHandler.class); + + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.MAIL_TAKE_MAIL_ITEM_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + int userId = netData.getUserId(); + int token = netData.getToken(); + int msgId = netData.getMsgId(); + int msgIndex = netData.getIndex(); + byte[] message = netData.parseClientProtoNetData(); + LOGGER.info("processMessage->uid={},token={},msgId={},msgIndex={}", + userId, token,msgId,msgIndex); + PlayerInfoProto.TakeMailRequest takeMailRequest = PlayerInfoProto.TakeMailRequest.parseFrom(message); + List mailIdsList = takeMailRequest.getMailIdsList(); + CommonProto.Drop.Builder dropBuilder = MailUtil.getInstance().takeMail(mailIdsList, userId); + PlayerInfoProto.TakeMailResponse takeMailResponse = PlayerInfoProto.TakeMailResponse.newBuilder() + .setDrop(dropBuilder) + .buildPartial(); + try { + MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAIL_TAKE_MAIL_ITEM_RESPONESE_VALUE,takeMailResponse , true); + LOGGER.info("back to client!"); + } catch (Exception e) { + e.printStackTrace(); + } + + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AutoIncrement.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AutoIncrement.java index fc16226cb..24c3ac5a8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AutoIncrement.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/AutoIncrement.java @@ -11,6 +11,9 @@ public class AutoIncrement extends MongoBase { private int cnt; + public AutoIncrement(){ + } + public void setCnt(int cnt) throws Exception { updateString("cnt", cnt); this.cnt = cnt; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Mail.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Mail.java index 9f323ad72..691db9321 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Mail.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Mail.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; +import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.util.KeyGenUtils; import com.ljsd.jieling.util.UUIDEnum; @@ -25,10 +26,13 @@ public class Mail extends MongoBase { private String sendName;//发送者名字 private int mailType; //邮件类型 1:系统邮件 2:idip 业务邮件 + public Mail(){ + } 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.state = Global.MAIL_STATE_NEW; this.head = head; this.content = content; this.mailItem = mailItem; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystem.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystem.java index a604d27d8..200166d38 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystem.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystem.java @@ -5,10 +5,11 @@ import com.ljsd.common.mogodb.MongoRoot; public class MailingSystem extends MongoRoot { public static final String _COLLECTION_NAME = "mailingSystem"; - private static LjsdMongoTemplate _myMongoDBPool; - private static SystemMailManager systemMailManager; - private static SysMailManager sysMailManager; - private static AutoIncrementManager cAutoIncrementManager; + + private static LjsdMongoTemplate _myMongoDBPool; + private SystemMailManager systemMailManager; + private SysMailManager sysMailManager; + private AutoIncrementManager cAutoIncrementManager; @Override public String getCollection() { return _COLLECTION_NAME; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java index ecefee454..bc0f375ac 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MailingSystemManager.java @@ -26,7 +26,9 @@ public class MailingSystemManager { 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"); + mailingSystem.getSysMailManager().addSystemMail(new SysMail(1)); + MailingSystemManager.ljsdMongoTemplate.lastUpdate(); + MailUtil.getInstance().sendSystemMail("开服邮件",new ArrayList<>(),"DSKGSD",nowTime,"1#5000|2#100",30*24*60*60,"IDIP",0,"0"); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SysMail.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SysMail.java index 1c50d3640..73ab42310 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SysMail.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SysMail.java @@ -7,21 +7,18 @@ import java.util.concurrent.CopyOnWriteArrayList; public class SysMail extends MongoBase { - private String id ; - private int roleUid; //所属玩家的UID private List sysMailIds ; //领取过的系统邮件id + public SysMail(){ + + } public void setSysMailIds(List sysMailIds) throws Exception { updateString("sysMailIds", sysMailIds); this.sysMailIds = sysMailIds; } - public String getId() { - return id; - } - public int getRoleUid() { return roleUid; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SystemMail.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SystemMail.java index 015a68d11..83b8219c4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SystemMail.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/SystemMail.java @@ -31,7 +31,12 @@ public class SystemMail extends MongoBase { */ private String version; - public SystemMail(int id,String title,List userList,String content,int sendTime, String reward,int effectiveTime,String name){ + public SystemMail(){ + + } + + public SystemMail(int id,String title,List userList,String content,int sendTime, String reward, + int effectiveTime,String name,long registerEndTime,String version){ this.id = id; this.title = title; this.userList = userList; @@ -40,6 +45,8 @@ public class SystemMail extends MongoBase { this.reward = reward; this.effectiveTime = effectiveTime; this.name = name; + this.registerEndTime = registerEndTime; + this.version = version; } public int getId() { return id; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index 122feedd9..7d9c3fed7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -29,7 +29,7 @@ public class UserManager { public static User getUserForLogin(int uid) throws Exception { User user = userMap.get(uid); - if (user == null) { + if (user != null) { user = ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class); } if (user == null) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index ef513d494..25fc30751 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -15,23 +15,43 @@ 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,float dropRatio) throws Exception { + public static CommonProto.Drop.Builder drop(User user, int[][] itemArr) throws Exception { CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); - SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId); - if (sRewardGroup == null){ - return dropBuilder; - } Map itemMap = new HashMap<>(); Map cardMap = new HashMap<>(); + Map equipMap = new HashMap<>(); + selectItemArr(itemArr,cardMap,itemMap,equipMap); - selectDrop(sRewardGroup,itemMap,cardMap,dropRatio); + addItem(user,itemMap,dropBuilder); + addCard(user,cardMap,dropBuilder); + addEquip(user,equipMap,dropBuilder); + return dropBuilder; + } + private static void selectItemArr(int[][] itemArr, Map cardMap, Map itemMap,Map equipMap) { + for (int[] items : itemArr){ + getMap(items[0],items[1], itemMap, cardMap,equipMap,1); + } + } + + //掉落 + public static CommonProto.Drop.Builder drop(User user, int[] dropGroupIds,float dropRatio) throws Exception { + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + Map itemMap = new HashMap<>(); + Map cardMap = new HashMap<>(); + Map equipMap = new HashMap<>(); + for (int dropGroupId :dropGroupIds){ + SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId); + if (sRewardGroup == null){ + continue; + } + selectDrop(sRewardGroup,itemMap,cardMap,equipMap,dropRatio); + } addItem(user,itemMap,dropBuilder); addCard(user,cardMap,dropBuilder); return dropBuilder; } - - private static void selectDrop(SRewardGroup sRewardGroup,Map itemMap, Map cardMap,float dropRatio) { + private static void selectDrop(SRewardGroup sRewardGroup,Map itemMap, Map cardMap,Map equipMap,float dropRatio) { int[] rewardItem = sRewardGroup.getRewardItem(); StringBuilder rewardStr = new StringBuilder(); StringBuilder weight = new StringBuilder(); @@ -53,20 +73,23 @@ public class ItemUtil { } switch (sRewardGroup.getIsUpset()) { case GlobalItemType.ALL_DROP: - getMap(rewardStr.toString().split("#"),itemMap,cardMap,dropRatio); + getMap(StringUtil.parseFiledInt(rewardStr.toString()),itemMap,cardMap,equipMap,dropRatio); break; case GlobalItemType.WEIGHT_DROP: - getRandomMap(sRewardGroup.getRewardMaxNum(),rewardStr.toString().split("#"),weight.toString().split("#"),itemMap,cardMap,dropRatio); + getRandomMap(sRewardGroup.getRewardMaxNum(),rewardStr.toString().split("#"),weight.toString().split("#"), + itemMap,equipMap,cardMap,dropRatio); break; case GlobalItemType.SUCCESSIVELY_RANDOM: - getSuccessivelyRandmoMap(sRewardGroup,rewardStr.toString().split("#"),weight.toString().split("#"),itemMap,cardMap,dropRatio); + getSuccessivelyRandmoMap(sRewardGroup,rewardStr.toString().split("#"),weight.toString().split("#"), + itemMap,cardMap,equipMap,dropRatio); break; default: break; } } - private static void getSuccessivelyRandmoMap(SRewardGroup sRewardGroup,String[] rewardArr,String[] weightArr, Map itemMap, Map cardMap,float dropRatio) { + private static void getSuccessivelyRandmoMap(SRewardGroup sRewardGroup,String[] rewardArr,String[] weightArr, Map itemMap, + Map cardMap,Map equipMap,float dropRatio) { for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){ int itemId = 0; for (int j = 0 ; j < sRewardGroup.getLoop();i++){ @@ -81,35 +104,41 @@ public class ItemUtil { itemId = Integer.parseInt(rewardArr[index]); } SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId); - getMap(itemId,itemMap, cardMap, sRewardItem,dropRatio); + int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax()); + getMap(itemId,itemNum ,itemMap, cardMap,equipMap,dropRatio); } } - private static void getRandomMap(int randomItemNum ,String[] rewardArr,String[] weightArr, Map itemMap, Map cardMap,float dropRatio) { + private static void getRandomMap(int randomItemNum ,String[] rewardArr,String[] weightArr, Map itemMap, Map cardMap, + Map equipMap,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,dropRatio); + int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax()); + getMap(itemId,itemNum, itemMap, cardMap,equipMap,dropRatio); } } - private static void getMap(String[] itemInfo, Map itemMap,Map cardMap,float dropRatio) { - for (String itemId :itemInfo){ - SRewardItem sRewardItem = SRewardItem.getsDropMap().get(Integer.parseInt(itemId)); - getMap(Integer.parseInt(itemId),itemMap, cardMap, sRewardItem,dropRatio); + private static void getMap(int[] itemInfo, Map itemMap,Map cardMap,Map equipMap,float dropRatio) { + for (int itemId :itemInfo){ + SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId); + int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax()); + getMap(itemId,itemNum,itemMap, cardMap,equipMap,dropRatio); } } - private static void getMap(int itemId ,Map itemMap, Map cardMap, SRewardItem sRewardItem,float dropRatio) { - int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax()); + private static void getMap(int itemId ,int itemNum, Map itemMap, Map cardMap,Map equipMap,float dropRatio) { SItem sItem = SItem.getsItemMap().get(itemId); switch (sItem.getItemType()) { case GlobalItemType.ITEM: - putcountMap(itemId,(int)(itemNum *dropRatio),itemMap); + putcountMap(itemId, (int) (itemNum * dropRatio), itemMap); break; case GlobalItemType.CARD: - putcountMap(itemId,itemNum,cardMap); + putcountMap(itemId, itemNum, cardMap); + break; + case GlobalItemType.EQUIP: + putcountMap(itemId, itemNum, cardMap); break; default: break; @@ -183,6 +212,32 @@ public class ItemUtil { return itemList; } + /** + * 添加装备 + * @param user + * @param equipMap + * @param dropBuilder + */ + private static void addEquip(User user, Map equipMap, CommonProto.Drop.Builder dropBuilder) { + List equipList = new CopyOnWriteArrayList<>(); + for (Map.Entry entry : equipMap.entrySet()) { + int count = entry.getValue(); + for (int i = 0; i < count; i++) { + addEquip(user,entry.getKey(),equipList); + } + } + dropBuilder.addAllEquipId(equipList); + } + private static void addEquip(User user,int equipId ,List equipList) { + } + + /** + * 添加卡牌 + * @param user + * @param cardMap + * @param dropBuilder + * @throws Exception + */ public static void addCard(User user,Map cardMap,CommonProto.Drop.Builder dropBuilder) throws Exception { List heroList = new CopyOnWriteArrayList<>(); for (Map.Entry entry : cardMap.entrySet()) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java index 00906db35..19286b1af 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MailUtil.java @@ -2,7 +2,9 @@ package com.ljsd.jieling.util; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.dao.*; +import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.MessageTypeProto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -133,25 +135,50 @@ public class MailUtil { } } + // 读取邮件 + public void readMail(ISession iSession, String mailId) throws Exception { + int msgId = MessageTypeProto.MessageType.GET_ALL_MAIL_INFO_RESPONSE_VALUE; + int uid = iSession.getUid(); + User user = UserManager.getUser(uid); + MailManager mailManager = user.getMailManager(); + Mail mail = mailManager.getMailMap().get(mailId); + if (mail == null){ + MessageUtil.sendErrorResponse(iSession,0,msgId,""); + } + mail.setState(Global.MAIL_STATE_READ); + mailManager.addMail(mail); + MessageUtil.sendMessage(iSession, 1,msgId, null, true); + } + + //领取附件 + public CommonProto.Drop.Builder takeMail(List mailIdsList, int userId) throws Exception { + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + User user = UserManager.getUser(userId); + MailManager mailManager = user.getMailManager(); + for (String mailId : mailIdsList){ + Mail mail = mailManager.getMail(mailId); + if (mail == null){ + continue; + } + String mailItem = mail.getMailItem(); + int[][] itemArr = StringUtil.parseFiledInt2(mailItem); + dropBuilder = ItemUtil.drop(user, itemArr); + } + return dropBuilder; + } + /** * 发送系统邮件 - * @param title - * @param userList - * @param content - * @param sendTime - * @param reward - * @param effectiveTime - * @param sendName - * @throws Exception */ - public void sendSystemMail(String title,List userList,String content,int sendTime, String reward,int effectiveTime,String sendName) throws Exception { + public void sendSystemMail(String title,List userList,String content,int sendTime, String reward, + int effectiveTime,String sendName,long registerEndTime,String version) 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)); + systemMailManager.addSystemMail(new SystemMail(id,title,userList,content,sendTime,reward,effectiveTime,sendName,registerEndTime,version)); MailingSystemManager.ljsdMongoTemplate.lastUpdate(); }