商店刷新

back_recharge
gaojie 2019-05-13 15:01:38 +08:00
parent c5b27e63d4
commit 04de59ded6
9 changed files with 290 additions and 40 deletions

View File

@ -1,5 +1,5 @@
Id Number RefreshItem RefreshType StoreOpenRule StartTime EndTime Id Number RefreshItem RefreshType IfManualRefresh StoreOpenRule StartTime EndTime
int int mut,int#int,2 mut,int#int,1 int string string int int mut,int#int,2 mut,int#int,1 int int string string
1 3 14|0#0#0#10000 2#5 1 0 0 1 3 14|0#0#0#10000 2#5 1 1 0 0
2 3 14|0#0#0#10000 3#2 1 0 0 2 3 14|0#0#0#10000 3#2 1 1 0 0
3 3 14|0#0#0#10000 1#0 2 0 30 3 3 14|0#0#0#10000 1#0 1 2 0 30

View File

@ -20,17 +20,18 @@ public class SStoreTypeConfig implements BaseConfig {
private String endTime; private String endTime;
private int ifManualRefresh;
@Override @Override
public void init() throws Exception { public void init() throws Exception {
sStoreTypeConfigMap = STableManager.getConfig(SStoreTypeConfig.class); sStoreTypeConfigMap = STableManager.getConfig(SStoreTypeConfig.class);
} }
public static Map<Integer, SStoreTypeConfig> getSstoreTypeConfigMap (){ public static Map<Integer, SStoreTypeConfig> getsStoreTypeConfigMap() {
return sStoreTypeConfigMap; return sStoreTypeConfigMap;
} }
public int getId() { public int getId() {
return id; return id;
} }
@ -57,4 +58,7 @@ public class SStoreTypeConfig implements BaseConfig {
public int getNumber() { public int getNumber() {
return number; return number;
} }
public int getIfManualRefresh() {
return ifManualRefresh;
}
} }

View File

@ -0,0 +1,25 @@
package com.ljsd.jieling.handler.store;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.store.StoreLogic;
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 org.springframework.stereotype.Component;
@Component
public class BuyStoreItemHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.BUY_STORE_ITEM_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
PlayerInfoProto.BuyStoreItemRequest buyStoreItemRequest
= PlayerInfoProto.BuyStoreItemRequest.parseFrom(netData.parseClientProtoNetData());
StoreLogic.buyStoreItem(iSession,buyStoreItemRequest.getStoreId(),buyStoreItemRequest.getItemId(),buyStoreItemRequest.getItemNum());
}
}

View File

@ -0,0 +1,31 @@
package com.ljsd.jieling.handler.store;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.store.StoreLogic;
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 org.springframework.stereotype.Component;
@Component
public class StoreRefreItemHandler extends BaseHandler {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.BUY_STORE_ITEM_REQUEST;
}
@Override
public void process(ISession iSession, PacketNetData netData) throws Exception {
PlayerInfoProto.StoreGoodsRefreshRequest buyStoreItemRequest
= PlayerInfoProto.StoreGoodsRefreshRequest.parseFrom(netData.parseClientProtoNetData());
int type = buyStoreItemRequest.getType();
int storeId = buyStoreItemRequest.getStoreId();
if (type ==0){
StoreLogic.handRefreStore(iSession,storeId);
}else if (type ==1){
StoreLogic.automaticRefreStore(iSession,storeId);
}
}
}

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.dao;
import com.ljsd.common.mogodb.MongoBase; import com.ljsd.common.mogodb.MongoBase;
import java.util.List;
import java.util.Map; import java.util.Map;
public class StoreInfo extends MongoBase { public class StoreInfo extends MongoBase {
@ -38,6 +39,7 @@ public class StoreInfo extends MongoBase {
} }
public void setItemNumMap(Map<Integer, Integer> itemNumMap) { public void setItemNumMap(Map<Integer, Integer> itemNumMap) {
updateString("itemNumMap", itemNumMap);
this.itemNumMap = itemNumMap; this.itemNumMap = itemNumMap;
} }

View File

@ -257,5 +257,6 @@ public class MailLogic {
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
Mail mail = new Mail(uid,title,content,reward,sendTime, mailEffectiveTime,"system",Global.MAIL_TYPE_SYS); Mail mail = new Mail(uid,title,content,reward,sendTime, mailEffectiveTime,"system",Global.MAIL_TYPE_SYS);
user.getMailManager().addMail(mail); user.getMailManager().addMail(mail);
LOGGER.info("sendMail==>uid={},title={},reward:{}",uid,title,reward);
} }
} }

View File

@ -3,7 +3,7 @@ package com.ljsd.jieling.logic.store;
import ch.qos.logback.core.util.TimeUtil; import ch.qos.logback.core.util.TimeUtil;
import com.ljsd.jieling.config.SStoreConfig; import com.ljsd.jieling.config.SStoreConfig;
import com.ljsd.jieling.config.SStoreTypeConfig; import com.ljsd.jieling.config.SStoreTypeConfig;
import com.ljsd.jieling.handler.store.GetAllStoreHandler; import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.StoreInfo; import com.ljsd.jieling.logic.dao.StoreInfo;
import com.ljsd.jieling.logic.dao.StoreManager; import com.ljsd.jieling.logic.dao.StoreManager;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
@ -12,7 +12,9 @@ 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 com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
import com.ljsd.jieling.util.StringUtil;
import com.ljsd.jieling.util.TimeUtils; import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -33,42 +35,62 @@ public class StoreLogic {
User user = UserManager.getUser(uid); User user = UserManager.getUser(uid);
StoreManager storeManager = user.getStoreManager(); StoreManager storeManager = user.getStoreManager();
if (storeManager.getStoreInfoMap().size() == 0){ if (storeManager.getStoreInfoMap().size() == 0){
initStoreInfo(storeManager); initStoreInfo(user,storeManager);
} }
PlayerInfoProto.GetStoreInfos.Builder builder = PlayerInfoProto.GetStoreInfos.newBuilder(); PlayerInfoProto.GetStoreInfosResponse.Builder builder = PlayerInfoProto.GetStoreInfosResponse.newBuilder();
Map<Integer, StoreInfo> storeInfoMap = storeManager.getStoreInfoMap(); Map<Integer, StoreInfo> storeInfoMap = storeManager.getStoreInfoMap();
checkStoreRefresh(storeManager,storeInfoMap);
List<CommonProto.StoreInfo> storeInfos = new CopyOnWriteArrayList<>(); List<CommonProto.StoreInfo> storeInfos = new CopyOnWriteArrayList<>();
for (Map.Entry<Integer, StoreInfo> entry: storeInfoMap.entrySet()){ for (Map.Entry<Integer, StoreInfo> entry: storeInfoMap.entrySet()){
CommonProto.StoreInfo.Builder storeBuilder = CommonProto.StoreInfo.newBuilder(); CommonProto.StoreInfo.Builder storeBuilder = getBuilder(entry.getValue());
StoreInfo storeInfo = entry.getValue();
storeBuilder.setId(storeInfo.getId());
storeBuilder.setLastRefreshTime(storeInfo.getLastRefreshTime());
storeBuilder.setRefreshNum(storeInfo.getRefreshNum());
storeBuilder.setStartTime(storeInfo.getStartTime());
storeBuilder.setEndTime(storeInfo.getEndTime());
Map<Integer, Integer> itemNumMap = storeInfo.getItemNumMap();
List<CommonProto.StoreItem> builderList = new CopyOnWriteArrayList<>();
for (Map.Entry<Integer, Integer> entry1: itemNumMap.entrySet()){
int itemId = entry1.getKey();
int buyNum = entry1.getValue();
CommonProto.StoreItem.Builder storeItemBuilder = CommonProto.StoreItem.newBuilder();
storeItemBuilder.setId(itemId);
storeItemBuilder.setBuyNum(buyNum);
builderList.add(storeItemBuilder.build());
}
storeBuilder.addAllStoreItem(builderList);
storeInfos.add(storeBuilder.build()); storeInfos.add(storeBuilder.build());
} }
builder.addAllStoreInfo(storeInfos); builder.addAllStoreInfo(storeInfos);
MessageUtil.sendMessage(iSession, 1,msgId, builder.build(), true); MessageUtil.sendMessage(iSession, 1,msgId, builder.build(), true);
} }
private static CommonProto.StoreInfo.Builder getBuilder(StoreInfo storeInfo) {
CommonProto.StoreInfo.Builder storeBuilder = CommonProto.StoreInfo.newBuilder();
storeBuilder.setId(storeInfo.getId());
storeBuilder.setLastRefreshTime(storeInfo.getLastRefreshTime());
storeBuilder.setRefreshNum(storeInfo.getRefreshNum());
storeBuilder.setStartTime(storeInfo.getStartTime());
storeBuilder.setEndTime(storeInfo.getEndTime());
Map<Integer, Integer> itemNumMap = storeInfo.getItemNumMap();
List<CommonProto.StoreItem> builderList = new CopyOnWriteArrayList<>();
for (Map.Entry<Integer, Integer> entry1: itemNumMap.entrySet()){
int itemId = entry1.getKey();
int buyNum = entry1.getValue();
CommonProto.StoreItem.Builder storeItemBuilder = CommonProto.StoreItem.newBuilder();
storeItemBuilder.setId(itemId);
storeItemBuilder.setBuyNum(buyNum);
builderList.add(storeItemBuilder.build());
}
storeBuilder.addAllStoreItem(builderList);
return storeBuilder;
}
//检测商店刷新
private static void checkStoreRefresh(StoreManager storeManager,Map<Integer, StoreInfo> storeInfoMap) {
long nowTime = System.currentTimeMillis();
for (Map.Entry<Integer, StoreInfo> entry:storeInfoMap.entrySet()){
StoreInfo storeInfo = entry.getValue();
SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeInfo.getId());
if (sStoreTypeConfig.getStoreOpenRule() ==2){
if ((nowTime - storeInfo.getEndTime()) > Integer.parseInt(sStoreTypeConfig.getEndTime()) * 60 *1000){
storeManager.removeStoreInfo(storeInfo.getId());
}
}
}
}
//初始化商店 //初始化商店
private static void initStoreInfo(StoreManager storeManager) throws Exception { private static void initStoreInfo(User user,StoreManager storeManager) throws Exception {
Map<Integer, SStoreTypeConfig> sstoreTypeConfigMap = SStoreTypeConfig.getSstoreTypeConfigMap(); Map<Integer, SStoreTypeConfig> sstoreTypeConfigMap = SStoreTypeConfig.getsStoreTypeConfigMap();
for ( Map.Entry<Integer, SStoreTypeConfig> entry :sstoreTypeConfigMap.entrySet()){ for ( Map.Entry<Integer, SStoreTypeConfig> entry :sstoreTypeConfigMap.entrySet()){
SStoreTypeConfig sStoreTypeConfig = entry.getValue(); SStoreTypeConfig sStoreTypeConfig = entry.getValue();
if (sStoreTypeConfig.getStoreOpenRule() == 1){ //固定商店 if (sStoreTypeConfig.getStoreOpenRule() == 1){ //固定商店
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig.getNumber()); Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
long startTime = 0; long startTime = 0;
long endTime = 0; long endTime = 0;
if (!sStoreTypeConfig.getStartTime().equals("0")){ if (!sStoreTypeConfig.getStartTime().equals("0")){
@ -85,16 +107,17 @@ public class StoreLogic {
/** /**
* *
*/ */
private static Map<Integer,Integer> getStoreItem(int storeId,int itemNum) { private static Map<Integer,Integer> getStoreItem(int storeId, SStoreTypeConfig sStoreTypeConfig ,User user) {
Map<Integer, Integer> itemNumMap = new ConcurrentHashMap<>(); Map<Integer, Integer> itemNumMap = new ConcurrentHashMap<>();
for (int i = 1; i <= itemNum; i ++){ for (int i = 1; i <= sStoreTypeConfig.getNumber(); i ++){
int rewardId = getRewardId(storeId,i); int rewardId = getRewardId(storeId,i,user);
itemNumMap.put(rewardId, 0); itemNumMap.put(rewardId, 0);
} }
return itemNumMap; return itemNumMap;
} }
private static int getRewardId(int storeId,int sort) { private static int getRewardId(int storeId,int sort,User user) {
PlayerManager playerInfoManager = user.getPlayerInfoManager();
List<SStoreConfig> sstoreConfigBuyStore = SStoreConfig.getSstoreConfigBuyStore(storeId); List<SStoreConfig> sstoreConfigBuyStore = SStoreConfig.getSstoreConfigBuyStore(storeId);
List<SStoreConfig> randomSstoreConfigList = new CopyOnWriteArrayList<>(); List<SStoreConfig> randomSstoreConfigList = new CopyOnWriteArrayList<>();
int totalWeight = 0; int totalWeight = 0;
@ -102,8 +125,12 @@ public class StoreLogic {
if (sort != sStoreConfig.getSort()){ if (sort != sStoreConfig.getSort()){
continue; continue;
} }
totalWeight += sStoreConfig.getWeight(); int minLv = sStoreConfig.getOpenLv()[0];
randomSstoreConfigList.add(sStoreConfig); int maxLv = sStoreConfig.getOpenLv()[1];
if (minLv <= playerInfoManager.getLevel() && maxLv >= playerInfoManager.getLevel()){
totalWeight += sStoreConfig.getWeight();
randomSstoreConfigList.add(sStoreConfig);
}
} }
int weight = 0; int weight = 0;
int rewardId = 0; int rewardId = 0;
@ -118,4 +145,141 @@ public class StoreLogic {
} }
return rewardId; return rewardId;
} }
/**
*
* @param iSession
* @param storeId
* @param itemId
* @throws Exception
*/
public static void buyStoreItem(ISession iSession,int storeId, int itemId,int itemNum) throws Exception {
int msgId = MessageTypeProto.MessageType.BUY_STORE_ITEM_RESPONSE_VALUE;
int uid = iSession.getUid();
if (itemNum < 0|| itemNum >999){
LOGGER.info("buyStoreItem==> uid={},itemNum={}",uid,itemNum);
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
return;
}
User user = UserManager.getUser(uid);
Map<Integer, StoreInfo> storeInfoMap = user.getStoreManager().getStoreInfoMap();
if (!storeInfoMap.containsKey(storeId)){
LOGGER.info("buyStoreItem==> uid={},storeId={}",uid,storeId);
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
return;
}
StoreInfo storeInfo = storeInfoMap.get(storeId);
Map<Integer, Integer> itemNumMap =storeInfo.getItemNumMap();
if (!itemNumMap.containsKey(itemId)){
LOGGER.info("buyStoreItem==> uid={},itemId={}",uid,itemId);
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
return;
}
int buyTimes = itemNumMap.get(itemId);
SStoreConfig sStoreConfig = SStoreConfig.getSstoreConfigMap().get(itemId);
String cost = getCost(buyTimes,sStoreConfig.getCost());
boolean result = ItemUtil.itemCost(user, StringUtil.parseFiledInt2(cost));
if (!result){
MessageUtil.sendErrorResponse(iSession,0,msgId,"道具不足");
return;
}
itemNumMap.put(itemId,buyTimes +1);
storeInfo.setItemNumMap(itemNumMap);
int goodsId = sStoreConfig.getGoods()[0];
int goodsNum = sStoreConfig.getGoods()[0]*itemNum;
String reward = goodsId +"#"+goodsNum;
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt2(reward));
PlayerInfoProto.BuyStoreItemResponse builder = PlayerInfoProto.BuyStoreItemResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
}
private static String getCost(int buyTimes, int[][] costs) {
int costItemId = costs[0][0];
int[] ints = costs[1];
int costNum = (int) (Math.ceil(Math.pow(ints[0], 3)) *buyTimes) + (int) (Math.ceil(Math.pow(ints[1], 2)) *buyTimes) +(int) (Math.ceil(Math.pow(ints[2], 1)) *buyTimes) + ints[3];
String cost = costItemId +"#"+costNum;
return cost;
}
//手动刷新商店
public static void handRefreStore(ISession iSession,int storeId) throws Exception {
int msgId = MessageTypeProto.MessageType.STORE_GOODS_REFRESH_RESPONSE_VALUE;
int uid = iSession.getUid();
User user = UserManager.getUser(uid);
StoreManager storeManager = user.getStoreManager();
Map<Integer, StoreInfo> storeInfoMap = storeManager.getStoreInfoMap();
if (!storeInfoMap.containsKey(storeId)){
LOGGER.info("handRefreStore==> uid={},storeId={}",uid,storeId);
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
return;
}
StoreInfo storeInfo = storeInfoMap.get(storeId);
SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId);
if (sStoreTypeConfig.getIfManualRefresh() != 1){
LOGGER.info("handRefreStore==> uid={},storeId={},ifManualRefresh={}",uid,storeId,sStoreTypeConfig.getIfManualRefresh());
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
return;
}
int refreshNum = storeInfo.getRefreshNum();
String cost = getCost(refreshNum, sStoreTypeConfig.getRefreshItem());
boolean result = ItemUtil.itemCost(user, StringUtil.parseFiledInt2(cost));
if (!result){
MessageUtil.sendErrorResponse(iSession,0,msgId,"道具不足");
return;
}
Map<Integer, Integer> itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
storeInfo.setRefreshNum(storeInfo.getRefreshNum() +1);
storeInfo.setItemNumMap(itemNumMap);
CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo);
PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build();
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
}
//自动刷新商店
public static void automaticRefreStore(ISession iSession,int storeId) throws Exception {
int msgId = MessageTypeProto.MessageType.STORE_GOODS_REFRESH_RESPONSE_VALUE;
int uid = iSession.getUid();
User user = UserManager.getUser(uid);
StoreManager storeManager = user.getStoreManager();
Map<Integer, StoreInfo> storeInfoMap = storeManager.getStoreInfoMap();
if (!storeInfoMap.containsKey(storeId)){
LOGGER.info("handRefreStore==> uid={},storeId={}",uid,storeId);
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
return;
}
StoreInfo storeInfo = storeInfoMap.get(storeId);
SStoreTypeConfig sStoreTypeConfig = SStoreTypeConfig.getsStoreTypeConfigMap().get(storeId);
int type = sStoreTypeConfig.getRefreshType()[0];
if (type == 1){
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
LOGGER.info("automaticRefreStore==>uid={},storeid={},type={}",uid,storeId,type);
return;
}
Map<Integer, Integer> itemNumMap = null;
long nowTime = System.currentTimeMillis();
switch (type){
case 2:
boolean overTime = TimeUtils.isOverTime(5, storeInfo.getLastRefreshTime());
if (overTime){
itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
}
break;
case 3:
if ((nowTime - storeInfo.getEndTime()) > Integer.parseInt(sStoreTypeConfig.getEndTime()) *60 *1000){
itemNumMap = getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
}
break;
}
if (itemNumMap == null){
MessageUtil.sendErrorResponse(iSession,0,msgId,"");
LOGGER.info("automaticRefreStore==>uid={},storeid={},type={}",uid,storeId,type);
return;
}
storeInfo.setItemNumMap(itemNumMap);
storeInfo.setLastRefreshTime(nowTime);
storeInfo.setRefreshNum(storeInfo.getRefreshNum() +1);
CommonProto.StoreInfo.Builder storeBuilder = getBuilder(storeInfo);
PlayerInfoProto.StoreGoodsRefreshResponse builder = PlayerInfoProto.StoreGoodsRefreshResponse.newBuilder().setStoreInfo(storeBuilder).build();
MessageUtil.sendMessage(iSession, 1,msgId, builder, true);
}
} }

View File

@ -587,13 +587,36 @@ public class ItemUtil {
if (cardMap.isEmpty()) { if (cardMap.isEmpty()) {
return; return;
} }
SGameSetting gameSetting = SGameSetting.getGameSetting();
int hasHeroNum = user.getHeroManager().getHeroMap().size();
String title = SErrorCodeEerverConfig.getI18NMessage("card_bag_limit_title");
String content = SErrorCodeEerverConfig.getI18NMessage("card_bag_limit_txt");
if (hasHeroNum >= gameSetting.getHeroNumlimit()){
String reward = getLimitReward(cardMap);
int nowTime =(int) (TimeUtils.now()/1000);
MailLogic.getInstance().sendMail(Integer.parseInt(user.getId()),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME);
return;
}
List<CommonProto.Hero> heroList = new CopyOnWriteArrayList<>(); List<CommonProto.Hero> heroList = new CopyOnWriteArrayList<>();
StringBuilder reward = new StringBuilder();
for (Map.Entry<Integer, Integer> entry : cardMap.entrySet()) { for (Map.Entry<Integer, Integer> entry : cardMap.entrySet()) {
int count = entry.getValue(); int count = entry.getValue();
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
if (user.getHeroManager().getHeroMap().size() >= gameSetting.getHeroNumlimit()) {
if (reward.length() == 0){
reward = new StringBuilder(entry.getKey() + "#1");
}else{
reward.append("|").append(entry.getKey()).append("#1");
}
continue;
}
addCard(user, entry.getKey(),heroList); addCard(user, entry.getKey(),heroList);
} }
} }
if (reward.length() > 0) {
int nowTime = (int) (TimeUtils.now() / 1000);
MailLogic.getInstance().sendMail(Integer.parseInt(user.getId()), title, content, reward.toString(), nowTime, Global.MAIL_EFFECTIVE_TIME);
}
dropBuilder.addAllHero(heroList); dropBuilder.addAllHero(heroList);
} }

View File

@ -1,12 +1,12 @@
#server info #server info
server.id = 10215 server.id = 10212
server.openTime = 20190101000101 server.openTime = 20190101000101
server.num = 1 server.num = 1
# redis config # redis config
# Redis数据库索引默认为0 # Redis数据库索引默认为0
spring.redis.database=0 spring.redis.database=1
# Redis服务器地址 # Redis服务器地址
spring.redis.host=60.1.1.14 spring.redis.host=60.1.1.14
# Redis服务器连接端口 # Redis服务器连接端口
@ -30,7 +30,7 @@ spring.redis.expireTime = -1
#spring.data.mongodb.uri = mongodb://mongouser:ysj#2017#ljsd@111.231.54.96:27017/ysj_wx_1 #spring.data.mongodb.uri = mongodb://mongouser:ysj#2017#ljsd@111.231.54.96:27017/ysj_wx_1
#spring.data.mongodb2.uri = mongodb://mongouser:ysj#2017#ljsd@111.231.54.96:27017/develop_ysj_wx_1 #spring.data.mongodb2.uri = mongodb://mongouser:ysj#2017#ljsd@111.231.54.96:27017/develop_ysj_wx_1
#mongodb2 develop #mongodb2 develop
spring.data.mongodb.uri = mongodb://60.1.1.14:27017/jieling_10215 spring.data.mongodb.uri = mongodb://60.1.1.14:27017/jieling_10212
mongodb.options.maxWaitTime = 120000 mongodb.options.maxWaitTime = 120000
mongodb.options.connectTimeout = 1000 mongodb.options.connectTimeout = 1000
mongodb.options.socketTimeout = 0 mongodb.options.socketTimeout = 0