读取邮件
parent
9b40fd7e62
commit
a5967b2ff1
|
@ -10,5 +10,6 @@ public interface GlobalItemType {
|
|||
int GEM = 3; // 钻石Id(充值获得)
|
||||
int ITEM = 10; //道具
|
||||
int CARD = 11; // 卡牌
|
||||
int EQUIP = 12; //装备
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
}
|
|
@ -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<String> 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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 SystemMailManager systemMailManager;
|
||||
private SysMailManager sysMailManager;
|
||||
private AutoIncrementManager cAutoIncrementManager;
|
||||
@Override
|
||||
public String getCollection() {
|
||||
return _COLLECTION_NAME;
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,21 +7,18 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|||
|
||||
public class SysMail extends MongoBase {
|
||||
|
||||
private String id ;
|
||||
|
||||
private int roleUid; //所属玩家的UID
|
||||
|
||||
private List<Integer> sysMailIds ; //领取过的系统邮件id
|
||||
|
||||
public SysMail(){
|
||||
|
||||
}
|
||||
public void setSysMailIds(List<Integer> sysMailIds) throws Exception {
|
||||
updateString("sysMailIds", sysMailIds);
|
||||
this.sysMailIds = sysMailIds;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getRoleUid() {
|
||||
return roleUid;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,12 @@ public class SystemMail extends MongoBase {
|
|||
*/
|
||||
private String version;
|
||||
|
||||
public SystemMail(int id,String title,List<Integer> userList,String content,int sendTime, String reward,int effectiveTime,String name){
|
||||
public SystemMail(){
|
||||
|
||||
}
|
||||
|
||||
public SystemMail(int id,String title,List<Integer> 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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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<Integer, Integer> itemMap = new HashMap<>();
|
||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
Map<Integer,Integer> 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<Integer, Integer> cardMap, Map<Integer, Integer> itemMap,Map<Integer,Integer> 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<Integer, Integer> itemMap = new HashMap<>();
|
||||
Map<Integer, Integer> cardMap = new HashMap<>();
|
||||
Map<Integer, Integer> 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<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,float dropRatio) {
|
||||
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> 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<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,float dropRatio) {
|
||||
private static void getSuccessivelyRandmoMap(SRewardGroup sRewardGroup,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap,
|
||||
Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
||||
for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){
|
||||
int itemId = 0;
|
||||
for (int j = 0 ; j < sRewardGroup.getLoop();i++){
|
||||
|
@ -81,28 +104,31 @@ 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<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,float dropRatio) {
|
||||
private static void getRandomMap(int randomItemNum ,String[] rewardArr,String[] weightArr, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,
|
||||
Map<Integer,Integer> 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);
|
||||
}
|
||||
}
|
||||
|
||||
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,dropRatio);
|
||||
}
|
||||
}
|
||||
|
||||
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());
|
||||
getMap(itemId,itemNum, itemMap, cardMap,equipMap,dropRatio);
|
||||
}
|
||||
}
|
||||
|
||||
private static void getMap(int[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer,Integer> 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 ,int itemNum, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||
switch (sItem.getItemType()) {
|
||||
case GlobalItemType.ITEM:
|
||||
|
@ -111,6 +137,9 @@ public class ItemUtil {
|
|||
case GlobalItemType.CARD:
|
||||
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<Integer, Integer> equipMap, CommonProto.Drop.Builder dropBuilder) {
|
||||
List<CommonProto.Equip> equipList = new CopyOnWriteArrayList<>();
|
||||
for (Map.Entry<Integer, Integer> 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<CommonProto.Equip> equipList) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加卡牌
|
||||
* @param user
|
||||
* @param cardMap
|
||||
* @param dropBuilder
|
||||
* @throws Exception
|
||||
*/
|
||||
public static void addCard(User user,Map<Integer,Integer> cardMap,CommonProto.Drop.Builder dropBuilder) throws Exception {
|
||||
List<CommonProto.Hero> heroList = new CopyOnWriteArrayList<>();
|
||||
for (Map.Entry<Integer, Integer> entry : cardMap.entrySet()) {
|
||||
|
|
|
@ -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<String> 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<Integer> userList,String content,int sendTime, String reward,int effectiveTime,String sendName) throws Exception {
|
||||
public void sendSystemMail(String title,List<Integer> 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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue