Commit 113b921b by WeiCong

优化支持渠道类型判断方式

优化部分分页日志记录
parent bb0f7d02
...@@ -2,6 +2,8 @@ package cn.com.brilliance.eibs.auth; ...@@ -2,6 +2,8 @@ package cn.com.brilliance.eibs.auth;
import org.sss.common.impl.AbstractLoginContext; import org.sss.common.impl.AbstractLoginContext;
import org.sss.common.model.IMenuItem; import org.sss.common.model.IMenuItem;
import org.sss.presentation.noui.common.Constants;
import org.sss.presentation.noui.util.StringUtil;
import java.sql.Connection; import java.sql.Connection;
import java.util.Map; import java.util.Map;
...@@ -12,10 +14,13 @@ import java.util.Map; ...@@ -12,10 +14,13 @@ import java.util.Map;
public class ELoginContext extends AbstractLoginContext { public class ELoginContext extends AbstractLoginContext {
private String userId; private String userId;
private String needSign="no"; private String needSign = "no";
private String terminalType;
public ELoginContext(String userId) { public ELoginContext(String userId, String terminalType) {
this.userId = userId; this.userId = userId;
//区别app还是zk版本
this.terminalType = StringUtil.isEmpty(terminalType) ? "APP" : terminalType;
} }
@Override @Override
...@@ -54,9 +59,10 @@ public class ELoginContext extends AbstractLoginContext { ...@@ -54,9 +59,10 @@ public class ELoginContext extends AbstractLoginContext {
public Object getValue(String key) { public Object getValue(String key) {
if ("usrinr".equals(key)) { if ("usrinr".equals(key)) {
return userId; return userId;
} } else if ("needSign".equals(key)) {
if("needSign".equals(key)){
return needSign; return needSign;
} else if (Constants.TERMINAL_TYPE.equals(key)) {
return terminalType;
} }
return null; return null;
} }
......
...@@ -58,9 +58,6 @@ public class PreHandle { ...@@ -58,9 +58,6 @@ public class PreHandle {
} }
public static void preHandle(String trnName, Map<String, ?> paramsMap, NoUiContext context) throws Exception { public static void preHandle(String trnName, Map<String, ?> paramsMap, NoUiContext context) throws Exception {
//区别app还是zk版本
String terminalType = StringUtil.isEmpty(context.getNoUiRequest().getTerminalType()) ? "APP" : context.getNoUiRequest().getTerminalType();
context.getSession().storeData("__terminalType", terminalType);
if (paramsMap.containsKey("__sptinr")) { if (paramsMap.containsKey("__sptinr")) {
loadSpt(context, paramsMap); loadSpt(context, paramsMap);
} }
......
...@@ -36,7 +36,7 @@ public class NoUiRequest { ...@@ -36,7 +36,7 @@ public class NoUiRequest {
public NoUiRequest(HttpServletRequest request, String mappingUrl, Map<String, ?> requestData) { public NoUiRequest(HttpServletRequest request, String mappingUrl, Map<String, ?> requestData) {
String tokenId = request.getHeader("token"); String tokenId = request.getHeader("token");
String userId = request.getHeader("userId"); String userId = request.getHeader("userId");
String terminalType = request.getHeader("terminalType"); String terminalType = request.getHeader(Constants.TERMINAL_TYPE);
String security = request.getHeader("security"); String security = request.getHeader("security");
//光大e结算改造 //光大e结算改造
this.cid = request.getHeader(Constants.CIFNO); this.cid = request.getHeader(Constants.CIFNO);
......
package org.sss.presentation.noui.cache; package org.sss.presentation.noui.cache;
import log.Log;
import log.LogFactory;
import org.hibernate.Criteria; import org.hibernate.Criteria;
import org.hibernate.query.Query; import org.hibernate.query.Query;
import org.hibernate.query.internal.QueryImpl; import org.hibernate.query.internal.QueryImpl;
...@@ -18,6 +20,7 @@ import java.util.Map; ...@@ -18,6 +20,7 @@ import java.util.Map;
public abstract class AbstractCache implements CacheController { public abstract class AbstractCache implements CacheController {
public static final ThreadLocal paginationMap = new ThreadLocal(); public static final ThreadLocal paginationMap = new ThreadLocal();
protected static final Log log = LogFactory.getLog(AbstractCache.class);
protected final String cacheName; protected final String cacheName;
final String SPLIT = "__"; final String SPLIT = "__";
final String NULL = "NULL"; final String NULL = "NULL";
...@@ -26,6 +29,43 @@ public abstract class AbstractCache implements CacheController { ...@@ -26,6 +29,43 @@ public abstract class AbstractCache implements CacheController {
this.cacheName = redis_cache; this.cacheName = redis_cache;
} }
public static Map<String, Object> getPageInfo(IModuleList moduleList) {
Map<String, Map<String, Integer>> paginationCache = (Map<String, Map<String, Integer>>) paginationMap.get();
if (paginationCache == null || paginationCache.isEmpty()) {
return null;
}
Map<String, Integer> paginationItem = paginationCache.remove(moduleList.getUrl());
if (paginationCache.size() == 0) {
paginationMap.remove();
}
if (paginationItem == null || paginationItem.isEmpty()) {
return null;
}
Map<String, Object> paginationInfo = new HashMap<>();
int total = moduleList.fullSize();
int index = paginationItem.get(Constants.PAGINATION_INDEX);
int pageSize = paginationItem.get(Constants.PAGINATION_PAGESIZE);
index = getPage(index, pageSize, total);
paginationInfo.put(Constants.PAGINATION_TOTAL, total);
paginationInfo.put(Constants.PAGINATION_INDEX, index);
return paginationInfo;
}
private static int getPage(int index, int pageSize, int total) {
if (pageSize <= 0) {
return 0;
}
index = index >= 1 ? (index <= getPages(pageSize, total) ? index : getPages(pageSize, total)) : 1;
return index;
}
private static int getPages(int pageSize, int total) {
if (pageSize <= 0) {
return 0;
}
return total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
}
@Override @Override
public CacheList cacheRead(CacheKey cacheKey, long keepAlive, int maxSize, int offset) { public CacheList cacheRead(CacheKey cacheKey, long keepAlive, int maxSize, int offset) {
Object o = cacheKey.getKey(); Object o = cacheKey.getKey();
...@@ -112,18 +152,18 @@ public abstract class AbstractCache implements CacheController { ...@@ -112,18 +152,18 @@ public abstract class AbstractCache implements CacheController {
if (o instanceof EibsResultSet) { if (o instanceof EibsResultSet) {
sb.append(((EibsResultSet) o).getSql()); sb.append(((EibsResultSet) o).getSql());
} else if (o instanceof Query) { } else if (o instanceof Query) {
sb.append(((Query)o).getQueryString()); sb.append(((Query) o).getQueryString());
} else { } else {
sb.append(o.toString()); sb.append(o.toString());
} }
if (o instanceof EibsResultSet || o instanceof QueryImpl) { if (o instanceof EibsResultSet || o instanceof QueryImpl) {
Object[] values =((EibsResultSet) o).getArgs(); Object[] values = ((EibsResultSet) o).getArgs();
sb.append(appendKeyByPara(values)); sb.append(appendKeyByPara(values));
} }
return sb.toString(); return sb.toString();
} }
private StringBuffer appendKeyByPara(Object[] values){ private StringBuffer appendKeyByPara(Object[] values) {
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
if (values != null) { if (values != null) {
for (Object val : values) { for (Object val : values) {
...@@ -140,11 +180,13 @@ public abstract class AbstractCache implements CacheController { ...@@ -140,11 +180,13 @@ public abstract class AbstractCache implements CacheController {
@Override @Override
public void prepareReadset(IModuleList moduleList) { public void prepareReadset(IModuleList moduleList) {
Map<String, Map<String, Integer>> paginationCache = (Map<String, Map<String, Integer>>) paginationMap.get(); Map<String, Map<String, Integer>> paginationCache = (Map<String, Map<String, Integer>>) paginationMap.get();
if (paginationCache == null || paginationCache.isEmpty()){ if (paginationCache == null || paginationCache.isEmpty()) {
log.warn("未发现请求中包含分页信息");
return; return;
} }
Map<String, Integer> paginationItem = paginationCache.get(moduleList.getUrl()); Map<String, Integer> paginationItem = paginationCache.get(moduleList.getUrl());
if (paginationItem == null || paginationItem.isEmpty()){ if (paginationItem == null || paginationItem.isEmpty()) {
log.warn("未找到[" + moduleList.getUrl() + "]模型对应的分页信息。可能原因:nouiMapping_xxx.properties未配置该模型映射关系");
return; return;
} }
moduleList.setPaging(true); moduleList.setPaging(true);
...@@ -152,46 +194,7 @@ public abstract class AbstractCache implements CacheController { ...@@ -152,46 +194,7 @@ public abstract class AbstractCache implements CacheController {
moduleList.setPage(paginationItem.get(Constants.PAGINATION_INDEX)); moduleList.setPage(paginationItem.get(Constants.PAGINATION_INDEX));
} }
protected abstract Object doCacheRead(String key); protected abstract Object doCacheRead(String key);
protected abstract void doCacheWrite(String key, Object lst, long keepAlive); protected abstract void doCacheWrite(String key, Object lst, long keepAlive);
public static Map<String,Object> getPageInfo(IModuleList moduleList) {
Map<String, Map<String, Integer>> paginationCache = (Map<String, Map<String, Integer>>) paginationMap.get();
if (paginationCache == null || paginationCache.isEmpty()){
return null;
}
Map<String, Integer> paginationItem = paginationCache.remove(moduleList.getUrl());
if (paginationCache.size() == 0){
paginationMap.remove();
}
if (paginationItem == null || paginationItem.isEmpty()){
return null;
}
Map<String, Object> paginationInfo = new HashMap<>();
int total = moduleList.fullSize();
int index = paginationItem.get(Constants.PAGINATION_INDEX);
int pageSize=paginationItem.get(Constants.PAGINATION_PAGESIZE);
index=getPage(index,pageSize,total);
paginationInfo.put(Constants.PAGINATION_TOTAL, total);
paginationInfo.put(Constants.PAGINATION_INDEX, index);
return paginationInfo;
}
private static int getPage(int index,int pageSize,int total) {
if (pageSize <= 0) {
return 0;
}
index = index >= 1 ? (index <= getPages(pageSize,total) ? index : getPages(pageSize,total)) : 1;
return index;
}
private static int getPages(int pageSize,int total) {
if (pageSize <= 0) {
return 0;
}
return total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
}
} }
...@@ -27,6 +27,7 @@ public class Constants { ...@@ -27,6 +27,7 @@ public class Constants {
public static final String PAGINATION_PAGESIZE = "pageSize"; public static final String PAGINATION_PAGESIZE = "pageSize";
public static final String PAGINATION_TOTAL = "total"; public static final String PAGINATION_TOTAL = "total";
public static final String SIGNLE_LST = "__lst"; public static final String SIGNLE_LST = "__lst";
public static final String TERMINAL_TYPE = "__terminalType";
//光大e结算新增常量 //光大e结算新增常量
public static final String CIFNO = "cifno"; public static final String CIFNO = "cifno";
......
...@@ -30,10 +30,9 @@ public class NoUiContextManager { ...@@ -30,10 +30,9 @@ public class NoUiContextManager {
ILoginContext loginContext = null; ILoginContext loginContext = null;
if (noUiRequest.isOpenSource()) { if (noUiRequest.isOpenSource()) {
loginContext = new EmptyLoginContext(everybody); loginContext = new EmptyLoginContext(everybody);
}else if(!StringUtil.isEmpty(noUiRequest.getCid()) && !StringUtil.isEmpty(noUiRequest.getOid())){ } else if (!StringUtil.isEmpty(noUiRequest.getCid()) && !StringUtil.isEmpty(noUiRequest.getOid())) {
loginContext = new ELoginContext(noUiRequest.getUserId()); loginContext = new ELoginContext(noUiRequest.getUserId(), noUiRequest.getTerminalType());
} } else if (StringUtils.isEmpty(noUiRequest.getToken())) {
else if (StringUtils.isEmpty(noUiRequest.getToken())) {
try { try {
loginContext = (ILoginContext) Class.forName(loginContextName).newInstance(); loginContext = (ILoginContext) Class.forName(loginContextName).newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
......
...@@ -95,7 +95,7 @@ public abstract class AbstractCommonController { ...@@ -95,7 +95,7 @@ public abstract class AbstractCommonController {
mainPanel.invokeDefaultRules(context); mainPanel.invokeDefaultRules(context);
} }
// 模型赋值 // 模型赋值
NoUiPresentationUtil.hanleInput(context, noUiRequest, alias); NoUiPresentationUtil.handleInput(context, noUiRequest, alias);
//数据安全性拦截-篡改数据拦截 //数据安全性拦截-篡改数据拦截
if (DataSecurityUtil.isSafeMode() && noUiRequest.isSecurity()) { if (DataSecurityUtil.isSafeMode() && noUiRequest.isSecurity()) {
......
...@@ -27,7 +27,7 @@ import java.util.*; ...@@ -27,7 +27,7 @@ import java.util.*;
public class NoUiPresentationUtil { public class NoUiPresentationUtil {
protected static final Log log = LogFactory.getLog(NoUiPresentationUtil.class); protected static final Log log = LogFactory.getLog(NoUiPresentationUtil.class);
public static void hanleInput(NoUiContext context, NoUiRequest request, Alias alias) { public static void handleInput(NoUiContext context, NoUiRequest request, Alias alias) {
Map<String, ?> dataMap = request.getDataMap(); Map<String, ?> dataMap = request.getDataMap();
for (String aliasKey : dataMap.keySet()) { for (String aliasKey : dataMap.keySet()) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment