读取邮件
parent
9b40fd7e62
commit
a5967b2ff1
|
@ -10,5 +10,6 @@ public interface GlobalItemType {
|
||||||
int GEM = 3; // 钻石Id(充值获得)
|
int GEM = 3; // 钻石Id(充值获得)
|
||||||
int ITEM = 10; //道具
|
int ITEM = 10; //道具
|
||||||
int CARD = 11; // 卡牌
|
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;
|
private int cnt;
|
||||||
|
|
||||||
|
public AutoIncrement(){
|
||||||
|
}
|
||||||
|
|
||||||
public void setCnt(int cnt) throws Exception {
|
public void setCnt(int cnt) throws Exception {
|
||||||
updateString("cnt", cnt);
|
updateString("cnt", cnt);
|
||||||
this.cnt = cnt;
|
this.cnt = cnt;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ljsd.jieling.logic.dao;
|
package com.ljsd.jieling.logic.dao;
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.MongoBase;
|
import com.ljsd.common.mogodb.MongoBase;
|
||||||
|
import com.ljsd.jieling.globals.Global;
|
||||||
import com.ljsd.jieling.util.KeyGenUtils;
|
import com.ljsd.jieling.util.KeyGenUtils;
|
||||||
import com.ljsd.jieling.util.UUIDEnum;
|
import com.ljsd.jieling.util.UUIDEnum;
|
||||||
|
|
||||||
|
@ -25,10 +26,13 @@ public class Mail extends MongoBase {
|
||||||
private String sendName;//发送者名字
|
private String sendName;//发送者名字
|
||||||
|
|
||||||
private int mailType; //邮件类型 1:系统邮件 2:idip 业务邮件
|
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){
|
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.id = KeyGenUtils.produceIdByModule(UUIDEnum.MAIL, String.valueOf(uid));
|
||||||
this.roleUid = uid;
|
this.roleUid = uid;
|
||||||
|
this.state = Global.MAIL_STATE_NEW;
|
||||||
this.head = head;
|
this.head = head;
|
||||||
this.content = content;
|
this.content = content;
|
||||||
this.mailItem = mailItem;
|
this.mailItem = mailItem;
|
||||||
|
|
|
@ -5,10 +5,11 @@ import com.ljsd.common.mogodb.MongoRoot;
|
||||||
|
|
||||||
public class MailingSystem extends MongoRoot {
|
public class MailingSystem extends MongoRoot {
|
||||||
public static final String _COLLECTION_NAME = "mailingSystem";
|
public static final String _COLLECTION_NAME = "mailingSystem";
|
||||||
private static LjsdMongoTemplate _myMongoDBPool;
|
|
||||||
private static SystemMailManager systemMailManager;
|
private static LjsdMongoTemplate _myMongoDBPool;
|
||||||
private static SysMailManager sysMailManager;
|
private SystemMailManager systemMailManager;
|
||||||
private static AutoIncrementManager cAutoIncrementManager;
|
private SysMailManager sysMailManager;
|
||||||
|
private AutoIncrementManager cAutoIncrementManager;
|
||||||
@Override
|
@Override
|
||||||
public String getCollection() {
|
public String getCollection() {
|
||||||
return _COLLECTION_NAME;
|
return _COLLECTION_NAME;
|
||||||
|
|
|
@ -26,7 +26,9 @@ public class MailingSystemManager {
|
||||||
mailingSystem = new MailingSystem();
|
mailingSystem = new MailingSystem();
|
||||||
addMailingSystem(mailingSystem);
|
addMailingSystem(mailingSystem);
|
||||||
int nowTime = (int)(TimeUtils.now()/1000);
|
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 {
|
public class SysMail extends MongoBase {
|
||||||
|
|
||||||
private String id ;
|
|
||||||
|
|
||||||
private int roleUid; //所属玩家的UID
|
private int roleUid; //所属玩家的UID
|
||||||
|
|
||||||
private List<Integer> sysMailIds ; //领取过的系统邮件id
|
private List<Integer> sysMailIds ; //领取过的系统邮件id
|
||||||
|
|
||||||
|
public SysMail(){
|
||||||
|
|
||||||
|
}
|
||||||
public void setSysMailIds(List<Integer> sysMailIds) throws Exception {
|
public void setSysMailIds(List<Integer> sysMailIds) throws Exception {
|
||||||
updateString("sysMailIds", sysMailIds);
|
updateString("sysMailIds", sysMailIds);
|
||||||
this.sysMailIds = sysMailIds;
|
this.sysMailIds = sysMailIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getRoleUid() {
|
public int getRoleUid() {
|
||||||
return roleUid;
|
return roleUid;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,12 @@ public class SystemMail extends MongoBase {
|
||||||
*/
|
*/
|
||||||
private String version;
|
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.id = id;
|
||||||
this.title = title;
|
this.title = title;
|
||||||
this.userList = userList;
|
this.userList = userList;
|
||||||
|
@ -40,6 +45,8 @@ public class SystemMail extends MongoBase {
|
||||||
this.reward = reward;
|
this.reward = reward;
|
||||||
this.effectiveTime = effectiveTime;
|
this.effectiveTime = effectiveTime;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
this.registerEndTime = registerEndTime;
|
||||||
|
this.version = version;
|
||||||
}
|
}
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class UserManager {
|
||||||
|
|
||||||
public static User getUserForLogin(int uid) throws Exception {
|
public static User getUserForLogin(int uid) throws Exception {
|
||||||
User user = userMap.get(uid);
|
User user = userMap.get(uid);
|
||||||
if (user == null) {
|
if (user != null) {
|
||||||
user = ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
|
user = ljsdMongoTemplate.findById(User.getCollectionName(), Integer.toString(uid), User.class);
|
||||||
}
|
}
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
|
|
|
@ -15,23 +15,43 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
public class ItemUtil {
|
public class ItemUtil {
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtil.class);
|
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();
|
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> itemMap = new HashMap<>();
|
||||||
Map<Integer, Integer> cardMap = 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);
|
addItem(user,itemMap,dropBuilder);
|
||||||
addCard(user,cardMap,dropBuilder);
|
addCard(user,cardMap,dropBuilder);
|
||||||
return dropBuilder;
|
return dropBuilder;
|
||||||
}
|
}
|
||||||
|
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
||||||
private static void selectDrop(SRewardGroup sRewardGroup,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,float dropRatio) {
|
|
||||||
int[] rewardItem = sRewardGroup.getRewardItem();
|
int[] rewardItem = sRewardGroup.getRewardItem();
|
||||||
StringBuilder rewardStr = new StringBuilder();
|
StringBuilder rewardStr = new StringBuilder();
|
||||||
StringBuilder weight = new StringBuilder();
|
StringBuilder weight = new StringBuilder();
|
||||||
|
@ -53,20 +73,23 @@ public class ItemUtil {
|
||||||
}
|
}
|
||||||
switch (sRewardGroup.getIsUpset()) {
|
switch (sRewardGroup.getIsUpset()) {
|
||||||
case GlobalItemType.ALL_DROP:
|
case GlobalItemType.ALL_DROP:
|
||||||
getMap(rewardStr.toString().split("#"),itemMap,cardMap,dropRatio);
|
getMap(StringUtil.parseFiledInt(rewardStr.toString()),itemMap,cardMap,equipMap,dropRatio);
|
||||||
break;
|
break;
|
||||||
case GlobalItemType.WEIGHT_DROP:
|
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;
|
break;
|
||||||
case GlobalItemType.SUCCESSIVELY_RANDOM:
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
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++){
|
for (int i = 0 ; i < sRewardGroup.getRewardMaxNum();i++){
|
||||||
int itemId = 0;
|
int itemId = 0;
|
||||||
for (int j = 0 ; j < sRewardGroup.getLoop();i++){
|
for (int j = 0 ; j < sRewardGroup.getLoop();i++){
|
||||||
|
@ -81,35 +104,41 @@ public class ItemUtil {
|
||||||
itemId = Integer.parseInt(rewardArr[index]);
|
itemId = Integer.parseInt(rewardArr[index]);
|
||||||
}
|
}
|
||||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
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++){
|
for (int i = 0 ; i < randomItemNum;i++){
|
||||||
int index = MathUtils.randomForStrArray(weightArr);
|
int index = MathUtils.randomForStrArray(weightArr);
|
||||||
int itemId = Integer.parseInt(rewardArr[index]);
|
int itemId = Integer.parseInt(rewardArr[index]);
|
||||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
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<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,float dropRatio) {
|
private static void getMap(int[] itemInfo, Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
||||||
for (String itemId :itemInfo){
|
for (int itemId :itemInfo){
|
||||||
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(Integer.parseInt(itemId));
|
SRewardItem sRewardItem = SRewardItem.getsDropMap().get(itemId);
|
||||||
getMap(Integer.parseInt(itemId),itemMap, cardMap, sRewardItem,dropRatio);
|
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
||||||
|
getMap(itemId,itemNum,itemMap, cardMap,equipMap,dropRatio);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void getMap(int itemId ,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, SRewardItem sRewardItem,float dropRatio) {
|
private static void getMap(int itemId ,int itemNum, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap,Map<Integer,Integer> equipMap,float dropRatio) {
|
||||||
int itemNum = MathUtils.random(sRewardItem.getRandomMin(), sRewardItem.getRandomMax());
|
|
||||||
SItem sItem = SItem.getsItemMap().get(itemId);
|
SItem sItem = SItem.getsItemMap().get(itemId);
|
||||||
switch (sItem.getItemType()) {
|
switch (sItem.getItemType()) {
|
||||||
case GlobalItemType.ITEM:
|
case GlobalItemType.ITEM:
|
||||||
putcountMap(itemId,(int)(itemNum *dropRatio),itemMap);
|
putcountMap(itemId, (int) (itemNum * dropRatio), itemMap);
|
||||||
break;
|
break;
|
||||||
case GlobalItemType.CARD:
|
case GlobalItemType.CARD:
|
||||||
putcountMap(itemId,itemNum,cardMap);
|
putcountMap(itemId, itemNum, cardMap);
|
||||||
|
break;
|
||||||
|
case GlobalItemType.EQUIP:
|
||||||
|
putcountMap(itemId, itemNum, cardMap);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -183,6 +212,32 @@ public class ItemUtil {
|
||||||
return itemList;
|
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 {
|
public static void addCard(User user,Map<Integer,Integer> cardMap,CommonProto.Drop.Builder dropBuilder) throws Exception {
|
||||||
List<CommonProto.Hero> heroList = new CopyOnWriteArrayList<>();
|
List<CommonProto.Hero> heroList = new CopyOnWriteArrayList<>();
|
||||||
for (Map.Entry<Integer, Integer> entry : cardMap.entrySet()) {
|
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.globals.Global;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
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();
|
MailingSystem mailingSystem = MailingSystemManager.getMailingSystem();
|
||||||
String name = mailingSystem.getSystemMailManager().getName();
|
String name = mailingSystem.getSystemMailManager().getName();
|
||||||
AutoIncrementManager autoIncrementManager = mailingSystem.getcAutoIncrementManager();
|
AutoIncrementManager autoIncrementManager = mailingSystem.getcAutoIncrementManager();
|
||||||
autoIncrementManager.addAutoIncrement(new AutoIncrement(name));
|
autoIncrementManager.addAutoIncrement(new AutoIncrement(name));
|
||||||
SystemMailManager systemMailManager = mailingSystem.getSystemMailManager();
|
SystemMailManager systemMailManager = mailingSystem.getSystemMailManager();
|
||||||
int id = getSystemMailId(autoIncrementManager,name);
|
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();
|
MailingSystemManager.ljsdMongoTemplate.lastUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue