Commit 6f6ba554 by kangxiaoshan

加 收款金额 开票金额

parent b81fe475
...@@ -1634,7 +1634,8 @@ public class ContractServiceImpl implements ContractService { ...@@ -1634,7 +1634,8 @@ public class ContractServiceImpl implements ContractService {
//收款开票金额 //收款开票金额
if (codeMoneyMap.containsKey(c.getContractCode())) {
if (codeMoneyMap == null || codeMoneyMap.isEmpty() || !codeMoneyMap.containsKey(c.getContractCode())) {
c.setAmountCollected("0"); c.setAmountCollected("0");
c.setInvoiceAmount("0"); c.setInvoiceAmount("0");
} else { } else {
......
...@@ -31,133 +31,138 @@ import java.util.Map; ...@@ -31,133 +31,138 @@ import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class AuthorizationInterceptor extends HandlerInterceptorAdapter { public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
private static final Logger logger = LoggerFactory.getLogger(AuthorizationInterceptor.class); private static final Logger logger = LoggerFactory.getLogger(AuthorizationInterceptor.class);
//存放鉴权信息的Header名称,默认是Authorization //存放鉴权信息的Header名称,默认是Authorization
public static String httpHeaderName = "Authorization"; public static String httpHeaderName = "Authorization";
@Autowired @Autowired
private UserRepository userRepository; private UserRepository userRepository;
@Autowired @Autowired
private AuthRepository authRepository; private AuthRepository authRepository;
@Autowired @Autowired
private TokenManager manager; private TokenManager manager;
@Autowired @Autowired
private RedisLoginStatusManager redisLoginStatusManager; private RedisLoginStatusManager redisLoginStatusManager;
//鉴权信息的无用前缀,默认为空 //鉴权信息的无用前缀,默认为空
private String httpHeaderPrefix = ""; private String httpHeaderPrefix = "";
public void setHttpHeaderName(String httpHeaderName) { public void setHttpHeaderName(String httpHeaderName) {
this.httpHeaderName = httpHeaderName; this.httpHeaderName = httpHeaderName;
} }
public void setHttpHeaderPrefix(String httpHeaderPrefix) { public void setHttpHeaderPrefix(String httpHeaderPrefix) {
this.httpHeaderPrefix = httpHeaderPrefix; this.httpHeaderPrefix = httpHeaderPrefix;
} }
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
//放开登录 //放开登录
String requestURL = request.getRequestURL().toString(); String requestURL = request.getRequestURL().toString();
if (requestURL.contains("findSaleInfo")) { if (requestURL.contains("findSaleInfo")) {
System.out.println("-----" + requestURL.contains("findSaleInfo")); System.out.println("-----" + requestURL.contains("findSaleInfo"));
return true; return true;
} }
// System.out.println("============="+requestURL); // System.out.println("============="+requestURL);
// System.out.println(requestURL.indexOf("accountmng/findSaleInfo")); // System.out.println(requestURL.indexOf("accountmng/findSaleInfo"));
if (requestURL.indexOf("login/login") != -1 if (requestURL.indexOf("login/login") != -1
|| requestURL.indexOf("update/pwd") != -1 || requestURL.indexOf("update/pwd") != -1
|| requestURL.indexOf("user/forget") != -1 || requestURL.indexOf("user/forget") != -1
|| requestURL.indexOf("user/code") != -1 || requestURL.indexOf("user/code") != -1
|| requestURL.indexOf("txt2db") != -1 || requestURL.indexOf("txt2db") != -1
|| requestURL.indexOf("/open/account") != -1 || requestURL.indexOf("/open/account") != -1
|| requestURL.indexOf("/test/contract/flow") != -1 || requestURL.indexOf("/test/contract/flow") != -1
|| requestURL.indexOf("contract/build") != -1 || requestURL.indexOf("contract/build") != -1
|| requestURL.indexOf("accountmng/findSaleInfo") != -1) { || requestURL.indexOf("accountmng/findSaleInfo") != -1) {
return true; return true;
} }
//从header中得到token //从header中得到token
String token = request.getHeader(httpHeaderName); String token = request.getHeader(httpHeaderName);
//token = StringUtil.isEmpty(token) ? getCookieToken(request.getCookies(), "TOKEN") : token; //token = StringUtil.isEmpty(token) ? getCookieToken(request.getCookies(), "TOKEN") : token;
if (null != token) { if (null != token) {
token = token.substring(httpHeaderPrefix.length()); token = token.substring(httpHeaderPrefix.length());
//验证token //验证token
String key = manager.getKeyFromToken(token); String key = manager.getKeyFromToken(token);
//登陆状态 //登陆状态
boolean loginStatus = redisLoginStatusManager.getLoginStatusByKey(token); boolean loginStatus = redisLoginStatusManager.getLoginStatusByKey(token);
if (!StringUtil.isEmpty(key)) { if (!StringUtil.isEmpty(key)) {
User sessionAct = (User) request.getSession().getAttribute(Constant.CURRENT_ACCOUNT); User sessionAct = (User) request.getSession().getAttribute(Constant.CURRENT_ACCOUNT);
// 可这里查出权限 // 可这里查出权限
if (sessionAct == null) { if (sessionAct == null) {
User one = userRepository.findOne(Long.parseLong(key)); User one = userRepository.findOne(Long.parseLong(key));
if (!one.getRole().equals(RoleEnum.MANAGER.getKey())) { if (one == null) {
Auth auth = authRepository.findByUser(one.getId()); printJsonResponse(response, "用户不存在");
Map<String, String> authdata = (Map<String, String>) JSONArray.fromObject(auth.getAuth()) return false;
.stream().collect(Collectors.toMap(p -> ((Map) p).get("id").toString(), p -> "0")); }
one.setAuthdataDic(authdata);
} if (!one.getRole().equals(RoleEnum.MANAGER.getKey())) {
Auth auth = authRepository.findByUser(one.getId());
request.getSession().setAttribute(Constant.CURRENT_ACCOUNT, one); Map<String, String> authdata = (Map<String, String>) JSONArray.fromObject(auth.getAuth())
sessionAct = one; .stream().collect(Collectors.toMap(p -> ((Map) p).get("id").toString(), p -> "0"));
} one.setAuthdataDic(authdata);
}
if (!sessionAct.getRole().equals(RoleEnum.MANAGER.getKey())) {
//权限控制 request.getSession().setAttribute(Constant.CURRENT_ACCOUNT, one);
AuthKey authKey = handler.getClass().getAnnotation(AuthKey.class); sessionAct = one;
if (authKey != null && sessionAct.getAuthdataDic().get(authKey.value().getIdKey()) == null) { }
printJsonResponse(response, "权限不足!");
return false; if (!sessionAct.getRole().equals(RoleEnum.MANAGER.getKey())) {
} //权限控制
AuthKey authKey = handler.getClass().getAnnotation(AuthKey.class);
return true; if (authKey != null && sessionAct.getAuthdataDic().get(authKey.value().getIdKey()) == null) {
} printJsonResponse(response, "权限不足!");
return false;
return true; }
}
return true;
} }
printJsonResponse(response, null); return true;
}
return false;
} }
private void printJsonResponse(HttpServletResponse response, String message) { printJsonResponse(response, null);
try {
//如果验证token失败,并且方法注明了Authorization,返回401错误 return false;
response.setStatus(HttpStatus.UNAUTHORIZED.value()); }
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(response.getOutputStream()));
response.setContentType(MediaType.APPLICATION_JSON_VALUE); private void printJsonResponse(HttpServletResponse response, String message) {
try {
if (StringUtils.isEmpty(message)) { //如果验证token失败,并且方法注明了Authorization,返回401错误
message = new ObjectMapper().writeValueAsString(ResultModel.ERROR(ResultStatus.USERNAME_LOGIN_EXPIRE)); response.setStatus(HttpStatus.UNAUTHORIZED.value());
} BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(response.getOutputStream()));
response.setContentType(MediaType.APPLICATION_JSON_VALUE);
writer.write(message);
writer.close(); if (StringUtils.isEmpty(message)) {
} catch (Exception e) { message = new ObjectMapper().writeValueAsString(ResultModel.ERROR(ResultStatus.USERNAME_LOGIN_EXPIRE));
e.printStackTrace(); }
}
} writer.write(message);
writer.close();
} catch (Exception e) {
private String getCookieToken(Cookie[] cookies, String name) { e.printStackTrace();
}
String token = null; }
if (null != cookies) {
for (Cookie cookie : cookies) { private String getCookieToken(Cookie[] cookies, String name) {
if (cookie.getName().equals(name)) {
token = cookie.getValue(); String token = null;
}
} if (null != cookies) {
} for (Cookie cookie : cookies) {
if (cookie.getName().equals(name)) {
return token; token = cookie.getValue();
} }
}
}
return token;
}
} }
\ No newline at end of file
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