fix store
parent
76f1408171
commit
255c9277ce
|
@ -52,7 +52,8 @@ public class StoreLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void checkGlobalStore(boolean isStartServer) throws Exception {
|
public static void checkGlobalStore(boolean isStartServer) throws Exception {
|
||||||
long now = System.currentTimeMillis();
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
long now = calendar.getTimeInMillis();
|
||||||
for(SStoreTypeConfig sStoreTypeConfig : SStoreTypeConfig.getsStoreTypeConfigMap().values()){
|
for(SStoreTypeConfig sStoreTypeConfig : SStoreTypeConfig.getsStoreTypeConfigMap().values()){
|
||||||
if(sStoreTypeConfig.getStoreOpenRule() == 3){
|
if(sStoreTypeConfig.getStoreOpenRule() == 3){
|
||||||
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_TIME,0, 1);
|
long startTime = ToolsUtil.getTimeLong(sStoreTypeConfig.getStartTimeLong(), sStoreTypeConfig.getEndTimeLong(),ActivityType.OPEN_TYPE_TIME,0, 1);
|
||||||
|
@ -60,7 +61,10 @@ public class StoreLogic {
|
||||||
if(startTime!=0 && endTime!=0 && now > startTime && now<endTime && !openStoreInfo.contains(sStoreTypeConfig.getId())){
|
if(startTime!=0 && endTime!=0 && now > startTime && now<endTime && !openStoreInfo.contains(sStoreTypeConfig.getId())){
|
||||||
for(ISession session : OnlineUserManager.sessionMap.values()){
|
for(ISession session : OnlineUserManager.sessionMap.values()){
|
||||||
if(session.getFiveReady() == 1){
|
if(session.getFiveReady() == 1){
|
||||||
updateUsersStoreAyync(UserManager.getUser(session.getUid()),sStoreTypeConfig.getId());
|
updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> {
|
||||||
|
initOneStore(user1,sStoreTypeConfig.getId());
|
||||||
|
MongoUtil.getInstence().lastUpdate();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(isStartServer){
|
if(isStartServer){
|
||||||
|
@ -78,7 +82,10 @@ public class StoreLogic {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(!user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
if(!user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
||||||
updateUsersStoreAyync(UserManager.getUser(session.getUid()),sStoreTypeConfig.getId());
|
updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> {
|
||||||
|
initOneStore(user1,sStoreTypeConfig.getId());
|
||||||
|
MongoUtil.getInstence().lastUpdate();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,20 +99,44 @@ public class StoreLogic {
|
||||||
if(session.getFiveReady() == 1){
|
if(session.getFiveReady() == 1){
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
if(!user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
if(!user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
||||||
updateUsersStoreAyync(UserManager.getUser(session.getUid()),sStoreTypeConfig.getId());
|
updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> {
|
||||||
|
initOneStore(user1,sStoreTypeConfig.getId());
|
||||||
|
MongoUtil.getInstence().lastUpdate();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(sStoreTypeConfig.getRefreshType()[0]==2&& calendar.get(Calendar.MINUTE) ==0 && sStoreTypeConfig.getRefreshType()[1]==calendar.get(Calendar.HOUR_OF_DAY)){
|
||||||
|
for(ISession session : OnlineUserManager.sessionMap.values()){
|
||||||
|
if(session.getFiveReady() == 1){
|
||||||
|
User user = UserManager.getUser(session.getUid());
|
||||||
|
if(user.getStoreManager().getStoreInfoMap().containsKey(sStoreTypeConfig.getId())){
|
||||||
|
updateUsersStoreAyync(UserManager.getUser(session.getUid()),user1 -> {
|
||||||
|
getStoreItem(sStoreTypeConfig.getId(),sStoreTypeConfig,user);
|
||||||
|
StoreInfo storeInfo = user.getStoreManager().getStoreInfoMap().get(sStoreTypeConfig.getId());
|
||||||
|
|
||||||
|
Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user);
|
||||||
|
if(storeItem == null){
|
||||||
|
LOGGER.error("the uid={},the storeID={} is null",user.getId(),sStoreTypeConfig.getId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
storeInfo.setItemNumMap(storeItem);
|
||||||
|
storeInfo.setLastRefreshTime(now);
|
||||||
|
MongoUtil.getInstence().lastUpdate();
|
||||||
|
sendStoreUpdateIndication(user.getId(),storeInfo);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void updateUsersStoreAyync(User user,int id){
|
private static void updateUsersStoreAyync(User user, AyncWorkerRunnable ayncWorkerRunnable){
|
||||||
AyyncWorker ayyncWorker = new AyyncWorker(user,true,user1 -> {
|
AyyncWorker ayyncWorker = new AyyncWorker(user,true,ayncWorkerRunnable);
|
||||||
initOneStore(user1,id);
|
|
||||||
MongoUtil.getInstence().lastUpdate();
|
|
||||||
});
|
|
||||||
ProtocolsManager instance = ProtocolsManager.getInstance();
|
ProtocolsManager instance = ProtocolsManager.getInstance();
|
||||||
HandlerLogicThread handlerThread = instance.handlerThreads[user.getId() % instance.HANDLER_THREAD_NUM];
|
HandlerLogicThread handlerThread = instance.handlerThreads[user.getId() % instance.HANDLER_THREAD_NUM];
|
||||||
handlerThread.addAyyncWorker(ayyncWorker);
|
handlerThread.addAyyncWorker(ayyncWorker);
|
||||||
|
|
Loading…
Reference in New Issue