记得上下班打卡 | git大法好,push需谨慎

Commit 02af3785 authored by anjiabin's avatar anjiabin
parents d60c4a3c ea2f57f7
...@@ -249,7 +249,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM ...@@ -249,7 +249,7 @@ public class KylinOrderRefundsServiceImpl extends ServiceImpl<KylinOrderRefundsM
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE}; orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
break; break;
case "reject": case "reject":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE}; orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPLY, KylinTableStatusConst.ORDER_REFUND_STATUS_REFUSE};
break; break;
case "unfilled": case "unfilled":
orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR}; orderRefundStatus = new Integer[]{KylinTableStatusConst.ORDER_REFUND_STATUS_APPROVED, KylinTableStatusConst.ORDER_REFUND_STATUS_ERROR};
......
...@@ -417,7 +417,7 @@ public class KylinRefundsStatusServiceImpl { ...@@ -417,7 +417,7 @@ public class KylinRefundsStatusServiceImpl {
params.add("paymentId", oderInfo.getPaymentId()); params.add("paymentId", oderInfo.getPaymentId());
params.add("paymentType", oderInfo.getPaymentType()); params.add("paymentType", oderInfo.getPaymentType());
params.add("price", String.valueOf(refundPrice)); params.add("price", String.valueOf(refundPrice));
params.add("priceTotal", String.valueOf(refundPrice)); params.add("priceTotal", String.valueOf(oderInfo.getPriceTotal()));
params.add("reason", refund.getReason()); params.add("reason", refund.getReason());
/*String sign = StringUtils.Ksort(params); /*String sign = StringUtils.Ksort(params);
......
...@@ -18,6 +18,7 @@ import java.util.Map; ...@@ -18,6 +18,7 @@ import java.util.Map;
@ConfigurationProperties(prefix = "jwt") @ConfigurationProperties(prefix = "jwt")
public class JwtValidator { public class JwtValidator {
private String ssoRedisKey = "adam:identity:sso:"; private String ssoRedisKey = "adam:identity:sso:";
private String msoRedisKey = "adam:identity:mso:";
private String secret; private String secret;
// 分钟 // 分钟
private Long expireTtl; private Long expireTtl;
......
...@@ -10,14 +10,19 @@ public class CurrentUtil { ...@@ -10,14 +10,19 @@ public class CurrentUtil {
public static final String GRAY_LOGIN_SMS_CODE = "111111"; public static final String GRAY_LOGIN_SMS_CODE = "111111";
/* ======================================================= | */ /* ======================================================= | */
public static final String uID = "sub";
public static final String uTag = "u-tag";
public static final String uToken = "authorization"; public static final String uToken = "authorization";
public static final String uTag = "u-tag";
public static final String TOKEN_SUB = "sub";
public static final String TOKEN_MOBILE = "mobile";
public static final String TOKEN_NICKNAME = "nickname";
public static final String TOKEN_TYPE = "type";
public static final String TOKEN_TYPE_VAL_USER = "user";
public static final String TOKEN_TYPE_VAL_STATION = "station";
public static final String CLI_SOURCE = "source"; public static final String HEADER_CLI_SOURCE = "source";
public static final String CLI_VERSION = "version"; public static final String HEADER_CLI_VERSION = "version";
public static final String CLI_UNKNOWN = "unknown"; public static final String HEADER_CLI_UNKNOWN = "unknown";
private static final String IP_UTILS_FLAG = ","; private static final String IP_UTILS_FLAG = ",";
private static final String LOCALHOST_IP = "0:0:0:0:0:0:0:1"; private static final String LOCALHOST_IP = "0:0:0:0:0:0:0:1";
...@@ -32,33 +37,33 @@ public class CurrentUtil { ...@@ -32,33 +37,33 @@ public class CurrentUtil {
} }
public static String getCurrentUid() { public static String getCurrentUid() {
return (String) ServletUtils.getRequest().getAttribute(uID); return (String) ServletUtils.getRequest().getAttribute(TOKEN_SUB);
} }
public static String getCliSource() { public static String getHeaderCliSource() {
return ServletUtils.getRequest().getHeader(CLI_SOURCE); return ServletUtils.getRequest().getHeader(HEADER_CLI_SOURCE);
} }
public static String getCliVersion() { public static String getHeaderCliVersion() {
return ServletUtils.getRequest().getHeader(CLI_VERSION); return ServletUtils.getRequest().getHeader(HEADER_CLI_VERSION);
} }
public static String getCliIpAddr() { public static String getCliIpAddr() {
HttpServletRequest request = ServletUtils.getRequest(); HttpServletRequest request = ServletUtils.getRequest();
String ip = request.getHeader("x-forwarded-for"); String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || CLI_UNKNOWN.equalsIgnoreCase(ip)) { if (ip == null || ip.length() == 0 || HEADER_CLI_UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP"); ip = request.getHeader("Proxy-Client-IP");
} }
if (ip == null || ip.length() == 0 || CLI_UNKNOWN.equalsIgnoreCase(ip)) { if (ip == null || ip.length() == 0 || HEADER_CLI_UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Forwarded-For"); ip = request.getHeader("X-Forwarded-For");
} }
if (ip == null || ip.length() == 0 || CLI_UNKNOWN.equalsIgnoreCase(ip)) { if (ip == null || ip.length() == 0 || HEADER_CLI_UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP"); ip = request.getHeader("WL-Proxy-Client-IP");
} }
if (ip == null || ip.length() == 0 || CLI_UNKNOWN.equalsIgnoreCase(ip)) { if (ip == null || ip.length() == 0 || HEADER_CLI_UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP"); ip = request.getHeader("X-Real-IP");
} }
if (ip == null || ip.length() == 0 || CLI_UNKNOWN.equalsIgnoreCase(ip)) { if (ip == null || ip.length() == 0 || HEADER_CLI_UNKNOWN.equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr(); ip = request.getRemoteAddr();
// if (LOCALHOST_IP1.equalsIgnoreCase(ip) || LOCALHOST_IP.equalsIgnoreCase(ip)) { // if (LOCALHOST_IP1.equalsIgnoreCase(ip) || LOCALHOST_IP.equalsIgnoreCase(ip)) {
// // 根据网卡取本机配置的IP // // 根据网卡取本机配置的IP
......
package com.liquidnet.service.base; package com.liquidnet.service.base;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import java.io.IOException; import java.io.IOException;
...@@ -88,9 +89,9 @@ public class SqlMapping { ...@@ -88,9 +89,9 @@ public class SqlMapping {
/* ---------------------- ---------------------- ---------------------- */ /* ---------------------- ---------------------- ---------------------- */
public static String get(String sqlKey, Object... params) { public static String get(String sqlKey, Object... params) {
LinkedList<String> sqls = new LinkedList<>(); LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add((String) sqlsProperties.get(sqlKey)); sqls.add((String) sqlsProperties.get(sqlKey));
LinkedList<Object[]> paramsList = new LinkedList<>(); LinkedList<Object[]> paramsList = CollectionUtil.linkedListObjectArr();
paramsList.add(params); paramsList.add(params);
LinkedList<Object[]>[] args = new LinkedList[]{paramsList}; LinkedList<Object[]>[] args = new LinkedList[]{paramsList};
...@@ -101,7 +102,7 @@ public class SqlMapping { ...@@ -101,7 +102,7 @@ public class SqlMapping {
} }
public static String get(String sqlKey, LinkedList<Object[]> paramsList) { public static String get(String sqlKey, LinkedList<Object[]> paramsList) {
LinkedList<String> sqls = new LinkedList<>(); LinkedList<String> sqls = CollectionUtil.linkedListString();
sqls.add((String) sqlsProperties.get(sqlKey)); sqls.add((String) sqlsProperties.get(sqlKey));
LinkedList<Object[]>[] args = new LinkedList[]{paramsList}; LinkedList<Object[]>[] args = new LinkedList[]{paramsList};
......
...@@ -11,7 +11,6 @@ import io.jsonwebtoken.ExpiredJwtException; ...@@ -11,7 +11,6 @@ import io.jsonwebtoken.ExpiredJwtException;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
...@@ -39,10 +38,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter { ...@@ -39,10 +38,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
private static final String TOKEN_KICK = "40002"; private static final String TOKEN_KICK = "40002";
private static final String TOKEN_INVALID = "40003"; private static final String TOKEN_INVALID = "40003";
private static final String ENV_PROD = "prod"; // private static final String KYLIN_STATION_JWT_VALID = "/*/station/**";
private static final String ENV_ACTIVE = "spring.profiles.active";
private static final String KYLIN_STATION_JWT_VALID = "/*/station/**";
private final static AntPathMatcher antPathMatcher = new AntPathMatcher(); private final static AntPathMatcher antPathMatcher = new AntPathMatcher();
...@@ -58,16 +54,17 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter { ...@@ -58,16 +54,17 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
String authorization = request.getHeader(CurrentUtil.uToken), uri = request.getRequestURI(), String authorization = request.getHeader(CurrentUtil.uToken), uri = request.getRequestURI(),
responseCode = null, token = null, currentUid = null; responseCode = null, token = null, currentUid = null;
Claims claims = null;
if (StringUtils.isNotBlank(authorization) && StringUtils.length(authorization) > 7) { if (StringUtils.isNotBlank(authorization) && StringUtils.length(authorization) > 7) {
token = authorization.substring(7); token = authorization.substring(7);
try { try {
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑 // 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
Claims claims = jwtValidator.parse(token); claims = jwtValidator.parse(token);
currentUid = (String) claims.get(CurrentUtil.uID); currentUid = (String) claims.get(CurrentUtil.TOKEN_SUB);
request.setAttribute(CurrentUtil.uToken, token); request.setAttribute(CurrentUtil.uToken, token);
request.setAttribute(CurrentUtil.uID, currentUid); request.setAttribute(CurrentUtil.TOKEN_SUB, currentUid);
request.setAttribute(CurrentUtil.uTag, JsonUtils.toJson(claims)); request.setAttribute(CurrentUtil.uTag, JsonUtils.toJson(claims));
} catch (ExpiredJwtException expiredJwtEx) { } catch (ExpiredJwtException expiredJwtEx) {
...@@ -95,7 +92,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter { ...@@ -95,7 +92,7 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
this.responseHandler(response, TOKEN_ILLEGAL); this.responseHandler(response, TOKEN_ILLEGAL);
return false; return false;
} }
if (this.authorityHandler(response, uri, token, currentUid)) { if (this.authorityHandler(response, uri, token, currentUid, claims)) {
return true; return true;
} }
return false; return false;
...@@ -109,38 +106,84 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter { ...@@ -109,38 +106,84 @@ public class GlobalAuthorityInterceptor extends HandlerInterceptorAdapter {
response.getWriter().write(JsonUtils.toJson(responseDto)); response.getWriter().write(JsonUtils.toJson(responseDto));
} }
private boolean authorityHandler(HttpServletResponse response, String uri, String token, String currentUid) throws IOException { private boolean authorityHandler(HttpServletResponse response, String uri, String token, String currentUid, Claims claims) throws IOException {
if (antPathMatcher.match(KYLIN_STATION_JWT_VALID, uri)) {// 专业版APP // if (antPathMatcher.match(KYLIN_STATION_JWT_VALID, uri)) {// 专业版APP
// adam:identity:sso:${uid}:MD5(${token})=${1-在线|0-离线} // // adam:identity:sso:${uid}:MD5(${token})=${1-在线|0-离线}
// String ssoUidM5TokenKey = jwtValidator.getSsoRedisKey() // String ssoUidM5TokenKey = jwtValidator.getMsoRedisKey()
// .concat(uid).concat(":").concat(DigestUtils.md5DigestAsHex(uToken.getBytes(StandardCharsets.UTF_8))); // .concat(currentUid).concat(":").concat(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)));
// Integer online = (Integer) redisUtil.get(ssoUidM5TokenKey); // Integer online = (Integer) redisUtil.get(ssoUidM5TokenKey);
// if (null == online || online != 1) { // if (null == online || online != 1) {
// this.respHandler(ctx, TOKEN_INVALID); // // 已离线
// this.responseHandler(response, TOKEN_INVALID);
//
// return false;
// } else { // } else {
return true; // return true;
// } // }
} else { // } else {
// adam:identity:sso:${uid}=MD5(${token}) // // adam:identity:sso:${uid}=MD5(${token})
String ssoKey = jwtValidator.getSsoRedisKey().concat(currentUid), md5Token; // String ssoKey = jwtValidator.getSsoRedisKey().concat(currentUid), md5Token;
//
// if (StringUtils.isEmpty(md5Token = (String) redisUtil.get(ssoKey))) {
// // 已离线
// this.responseHandler(response, TOKEN_INVALID);
//
// return false;
// } else {
// // 与在线TOKEN比对
// if (md5Token.equals(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)))) {
// // 一致则放行
// return true;
// } else {
// // 不一致则被踢下线
// this.responseHandler(response, TOKEN_KICK);
//
// return false;
// }
// }
// }
if (StringUtils.isEmpty(md5Token = (String) redisUtil.get(ssoKey))) {
// 已离线
this.responseHandler(response, TOKEN_INVALID);
return false; String tokenType = (String) claims.get(CurrentUtil.TOKEN_TYPE);
} else { switch (tokenType) {
// 与在线TOKEN比对 case CurrentUtil.TOKEN_TYPE_VAL_STATION:// 专业版APP
if (md5Token.equals(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)))) { // adam:identity:sso:${uid}:MD5(${token})=${1-在线|0-离线}
// 一致则放行 String ssoUidM5TokenKey = jwtValidator.getMsoRedisKey()
return true; .concat(currentUid).concat(":").concat(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)));
Integer online = (Integer) redisUtil.get(ssoUidM5TokenKey);
if (null == online || online != 1) {
// 已离线
this.responseHandler(response, TOKEN_INVALID);
return false;
} else { } else {
// 不一致则被踢下线 return true;
this.responseHandler(response, TOKEN_KICK); }
case CurrentUtil.TOKEN_TYPE_VAL_USER:
// adam:identity:sso:${uid}=MD5(${token})
String ssoKey = jwtValidator.getSsoRedisKey().concat(currentUid), md5Token;
if (StringUtils.isEmpty(md5Token = (String) redisUtil.get(ssoKey))) {
// 已离线
this.responseHandler(response, TOKEN_INVALID);
return false; return false;
} else {
// 与在线TOKEN比对
if (md5Token.equals(DigestUtils.md5DigestAsHex(token.getBytes(StandardCharsets.UTF_8)))) {
// 一致则放行
return true;
} else {
// 不一致则被踢下线
this.responseHandler(response, TOKEN_KICK);
return false;
}
} }
} default:
log.warn("Authority failed:{} (Unknown token type).uri:[{}],token:{}", TOKEN_ILLEGAL, uri, token);
this.responseHandler(response, TOKEN_ILLEGAL);
return false;
} }
} }
} }
package com.liquidnet.common.web.filter; package com.liquidnet.common.web.filter;
import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.slf4j.MDC; import org.slf4j.MDC;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -10,7 +9,6 @@ import javax.servlet.http.HttpServletRequest; ...@@ -10,7 +9,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@Slf4j @Slf4j
@Data
@Component @Component
public class GlobalLogTrackInterceptor extends HandlerInterceptorAdapter { public class GlobalLogTrackInterceptor extends HandlerInterceptorAdapter {
private static final String LNS_TRANCE_ID = "lnsTranceId"; private static final String LNS_TRANCE_ID = "lnsTranceId";
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
<where> <where>
AND a.order_tickets_id = #{orderTicketsId} AND a.order_tickets_id = #{orderTicketsId}
AND a.status != ${orderRefundStatusCancel} AND a.status != ${orderRefundStatusCancel}
AND a.status != 5
AND b.order_ticket_entities_id = #{orderTicketEntitiesId} AND b.order_ticket_entities_id = #{orderTicketEntitiesId}
</where> </where>
</select> </select>
......
...@@ -442,10 +442,10 @@ public class AdamLoginController { ...@@ -442,10 +442,10 @@ public class AdamLoginController {
private String ssoProcess(AdamUserInfoVo userInfoVo) { private String ssoProcess(AdamUserInfoVo userInfoVo) {
Map<String, Object> claimsMap = CollectionUtil.mapStringObject(); Map<String, Object> claimsMap = CollectionUtil.mapStringObject();
claimsMap.put("sub", userInfoVo.getUid()); claimsMap.put(CurrentUtil.TOKEN_SUB, userInfoVo.getUid());
claimsMap.put("mobile", userInfoVo.getMobile()); claimsMap.put(CurrentUtil.TOKEN_MOBILE, userInfoVo.getMobile());
claimsMap.put("nickname", userInfoVo.getNickname()); claimsMap.put(CurrentUtil.TOKEN_NICKNAME, userInfoVo.getNickname());
claimsMap.put("type", "user"); claimsMap.put(CurrentUtil.TOKEN_TYPE, CurrentUtil.TOKEN_TYPE_VAL_USER);
String token = jwtValidator.create(claimsMap); String token = jwtValidator.create(claimsMap);
......
...@@ -132,8 +132,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -132,8 +132,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
memberOrderVo.setUid(CurrentUtil.getCurrentUid()); memberOrderVo.setUid(CurrentUtil.getCurrentUid());
memberOrderVo.setPrice(param.getPrice()); memberOrderVo.setPrice(param.getPrice());
memberOrderVo.setClientIp(clientIp); memberOrderVo.setClientIp(clientIp);
memberOrderVo.setVersion(CurrentUtil.getCliVersion()); String headerCliVersion = CurrentUtil.getHeaderCliVersion(), headerCliSource = CurrentUtil.getHeaderCliSource();
memberOrderVo.setSource(CurrentUtil.getCliSource()); memberOrderVo.setSource(null == headerCliSource ? "" : headerCliSource);
memberOrderVo.setVersion(null == headerCliVersion ? "" : headerCliVersion);
if (!adamRdmService.setShotMemberOrderVoByOrderNo(orderNo, memberOrderVo)) { if (!adamRdmService.setShotMemberOrderVoByOrderNo(orderNo, memberOrderVo)) {
log.warn("###购买会员创建订单失败[memberOrderVo:{}]", JsonUtils.toJson(memberOrderVo)); log.warn("###购买会员创建订单失败[memberOrderVo:{}]", JsonUtils.toJson(memberOrderVo));
...@@ -255,7 +256,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -255,7 +256,7 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
if (1 == handleMemberOrderVo.getMode()) {// 购买会员码回调 if (1 == handleMemberOrderVo.getMode()) {// 购买会员码回调
String memberNo = adamUserMemberService.getNextMemberNo(handleMemberOrderVo.getMemberId()); String memberNo = adamUserMemberService.getNextMemberNo(handleMemberOrderVo.getMemberId());
AdamMemberCodeVo initMemberCodeVo = new AdamMemberCodeVo(); AdamMemberCodeVo initMemberCodeVo = AdamMemberCodeVo.getNew();
initMemberCodeVo.setCode(MemberUtil.buyCode()); initMemberCodeVo.setCode(MemberUtil.buyCode());
initMemberCodeVo.setMemberId(handleMemberOrderVo.getMemberId()); initMemberCodeVo.setMemberId(handleMemberOrderVo.getMemberId());
initMemberCodeVo.setMemberPriceId(handleMemberOrderVo.getMemberPriceId()); initMemberCodeVo.setMemberPriceId(handleMemberOrderVo.getMemberPriceId());
...@@ -347,8 +348,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService { ...@@ -347,8 +348,9 @@ public class AdamMemberOrderServiceImpl implements IAdamMemberOrderService {
initMemberOrderVo.setPaymentAt(now); initMemberOrderVo.setPaymentAt(now);
initMemberOrderVo.setCreatedAt(now); initMemberOrderVo.setCreatedAt(now);
initMemberOrderVo.setClientIp(CurrentUtil.getCliIpAddr()); initMemberOrderVo.setClientIp(CurrentUtil.getCliIpAddr());
initMemberOrderVo.setSource(CurrentUtil.getCliSource()); String headerCliVersion = CurrentUtil.getHeaderCliVersion(), headerCliSource = CurrentUtil.getHeaderCliSource();
initMemberOrderVo.setVersion(CurrentUtil.getCliVersion()); initMemberOrderVo.setSource(null == headerCliSource ? "" : headerCliSource);
initMemberOrderVo.setVersion(null == headerCliVersion ? "" : headerCliVersion);
LinkedList<String> toMqSqls = CollectionUtil.linkedListString(); LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> updateMemberCodeObjs = CollectionUtil.linkedListObjectArr(), LinkedList<Object[]> updateMemberCodeObjs = CollectionUtil.linkedListObjectArr(),
......
...@@ -43,4 +43,8 @@ public class WePayRefundReturnDto { ...@@ -43,4 +43,8 @@ public class WePayRefundReturnDto {
private String couponRefundCount; private String couponRefundCount;
@XStreamAlias("cash_refund_fee") @XStreamAlias("cash_refund_fee")
private String cashRefundFee; private String cashRefundFee;
@XStreamAlias("err_code")
private String errCode;
@XStreamAlias("err_code_des")
private String errCodeDes;
} }
...@@ -104,11 +104,10 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -104,11 +104,10 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
} else if (dto.getResult().equalsIgnoreCase("error")) { } else if (dto.getResult().equalsIgnoreCase("error")) {
//调用回调 //调用回调
log.error(""); log.error("");
return ResponseDto.failure("退款失败:" + dto.getMessage());
} else if (dto.getResult().equalsIgnoreCase("exception")) { } else if (dto.getResult().equalsIgnoreCase("exception")) {
log.error(""); log.error("");
} }
DragonRefundAppDto refundAppDto = new DragonRefundAppDto(); DragonRefundAppDto refundAppDto = new DragonRefundAppDto();
refundAppDto.setOrderCode(orderCode); refundAppDto.setOrderCode(orderCode);
refundAppDto.setCode(code); refundAppDto.setCode(code);
...@@ -167,6 +166,14 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -167,6 +166,14 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
String jsonStr = EntityUtils.toString(entity, "UTF-8"); String jsonStr = EntityUtils.toString(entity, "UTF-8");
log.debug("JSONSTR = " + jsonStr); log.debug("JSONSTR = " + jsonStr);
WePayRefundReturnDto wePayRefundReturnDto = XmlUtil.toBean(jsonStr, WePayRefundReturnDto.class); WePayRefundReturnDto wePayRefundReturnDto = XmlUtil.toBean(jsonStr, WePayRefundReturnDto.class);
if (wePayRefundReturnDto.getErrCodeDes() != null) {
channelDto.setResult("error");
channelDto.setMessage(paymentType + " refund error: " + wePayRefundReturnDto.getErrCodeDes());
contentDto.setRequest(data);
contentDto.setResponse(jsonStr);
channelDto.setContent(contentDto);
return channelDto;
}
log.debug("BEAN = " + wePayRefundReturnDto); log.debug("BEAN = " + wePayRefundReturnDto);
if (!wePayRefundReturnDto.getReturnCode().equalsIgnoreCase("SUCCESS") || wePayRefundReturnDto.getReturnCode() == null) { if (!wePayRefundReturnDto.getReturnCode().equalsIgnoreCase("SUCCESS") || wePayRefundReturnDto.getReturnCode() == null) {
try { try {
...@@ -373,10 +380,10 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -373,10 +380,10 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
} }
dto.setOrderRefundCode(info.getOutRefundNo()); dto.setOrderRefundCode(info.getOutRefundNo());
dto.setRefundCode(info.getOutTradeNo()); dto.setRefundCode(info.getOutTradeNo());
dto.setRefundPrice(info.getRefundFee()); dto.setRefundPrice(new BigDecimal(info.getRefundFee()).divide(BigDecimal.valueOf(100)).toString());
dto.setRefundAt(refundAt); dto.setRefundAt(refundAt);
dto.setRefundError(callBackDto.getReturnMsg()); dto.setRefundError(callBackDto.getReturnMsg());
log.debug("SEND WEPAY NOTIFTURL = "+ JSON.toJSONString(dto)); log.debug("SEND WEPAY NOTIFTURL = " + JSON.toJSONString(dto));
sendNotifyUrl(dto); sendNotifyUrl(dto);
mqHandleUtil.sendMySqlRedis( mqHandleUtil.sendMySqlRedis(
...@@ -432,7 +439,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -432,7 +439,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundAt(callBackDto.getGmtRefund()); dto.setRefundAt(callBackDto.getGmtRefund());
dto.setRefundPrice(response.getRefundAmount()); dto.setRefundPrice(response.getRefundAmount());
dto.setRefundError(""); dto.setRefundError("");
log.debug("SEND ALIPAY NOTIFTURL = "+ JSON.toJSONString(dto)); log.debug("SEND ALIPAY NOTIFTURL = " + JSON.toJSONString(dto));
sendNotifyUrl(dto); sendNotifyUrl(dto);
mqHandleUtil.sendMySqlRedis( mqHandleUtil.sendMySqlRedis(
...@@ -473,7 +480,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -473,7 +480,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
params.add("refundError", notifyUrlDto.getRefundError()); params.add("refundError", notifyUrlDto.getRefundError());
params.add("refundPrice", notifyUrlDto.getRefundPrice()); params.add("refundPrice", notifyUrlDto.getRefundPrice());
params.add("status", notifyUrlDto.getStatus().toString()); params.add("status", notifyUrlDto.getStatus().toString());
String response = HttpUtil.post( dataUtils.getRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + notifyUrlDto.getOrderRefundCode()), params); String response = HttpUtil.post(dataUtils.getRefundNotifyUrl(DragonConstant.REFUND_REDIS_KET + notifyUrlDto.getOrderRefundCode()), params);
log.debug("RETURN RESPONSE=" + response); log.debug("RETURN RESPONSE=" + response);
if (response.equals("success")) { if (response.equals("success")) {
mqHandleUtil.sendMySqlRedis( mqHandleUtil.sendMySqlRedis(
......
package com.liquidnet.service.kylin.service.impl; package com.liquidnet.service.kylin.service.impl;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
...@@ -7,6 +8,7 @@ import com.liquidnet.service.base.constant.MQConst; ...@@ -7,6 +8,7 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.dto.param.KylinStationUploadParam; import com.liquidnet.service.kylin.dto.param.KylinStationUploadParam;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService; import com.liquidnet.service.kylin.service.IKylinOrderTicketEntitiesService;
import com.liquidnet.service.kylin.utils.ObjectUtil;
import com.liquidnet.service.kylin.utils.QueueUtils; import com.liquidnet.service.kylin.utils.QueueUtils;
import com.mongodb.bulk.BulkWriteResult; import com.mongodb.bulk.BulkWriteResult;
import com.mongodb.client.model.UpdateOneModel; import com.mongodb.client.model.UpdateOneModel;
...@@ -55,8 +57,8 @@ public class KylinOrderTicketEntitiesServiceImpl implements IKylinOrderTicketEn ...@@ -55,8 +57,8 @@ public class KylinOrderTicketEntitiesServiceImpl implements IKylinOrderTicketEn
LocalDateTime nowDt = LocalDateTime.now(); LocalDateTime nowDt = LocalDateTime.now();
String nowDtStr = DateUtil.format(nowDt, DateUtil.Formatter.yyyyMMddHHmmss); String nowDtStr = DateUtil.format(nowDt, DateUtil.Formatter.yyyyMMddHHmmss);
LinkedList<Object[]> paramsList = new LinkedList<>(); LinkedList<Object[]> paramsList = CollectionUtil.linkedListObjectArr();
List<WriteModel<Document>> list = new ArrayList<>(); List<WriteModel<Document>> list = ObjectUtil.getWriteModelDocumentArrayList();
parameter.getCheckOrderParamList().forEach(r -> { parameter.getCheckOrderParamList().forEach(r -> {
KylinOrderTicketEntitiesVo updateVo = KylinOrderTicketEntitiesVo.getNew(); KylinOrderTicketEntitiesVo updateVo = KylinOrderTicketEntitiesVo.getNew();
updateVo.setStatus(1);// 出票状态: 0未出票 1已出票 updateVo.setStatus(1);// 出票状态: 0未出票 1已出票
......
...@@ -193,13 +193,17 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService { ...@@ -193,13 +193,17 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
currentTime = System.currentTimeMillis() - currentTime; currentTime = System.currentTimeMillis() - currentTime;
log.debug("获取倒计时 -> time:" + (currentTime) + "毫秒"); log.debug("获取倒计时 -> time:" + (currentTime) + "毫秒");
//TODO 顺丰快递
Integer orderExpressStatus = dataUtils.getOrderExpressInfo(orderTicketVo.getOrderTicketsId()); Integer orderExpressStatus = dataUtils.getOrderExpressInfo(orderTicketVo.getOrderTicketsId());
vo.setExpressStatus(orderExpressStatus); vo.setExpressStatus(orderExpressStatus);
List<KylinOrderRefundsVo> orderRefundsVoList = dataUtils.getOrderRefundVoByOrderId(orderId); List<KylinOrderRefundsVo> orderRefundsVoList;
currentTime = System.currentTimeMillis() - currentTime; if (orderTicketVo.getQrCode().equalsIgnoreCase("")) {
log.debug("获取退款详情 -> time:" + (currentTime) + "毫秒"); orderRefundsVoList = new ArrayList<>();
} else {
orderRefundsVoList = dataUtils.getOrderRefundVoByOrderId(orderId);
currentTime = System.currentTimeMillis() - currentTime;
log.debug("获取退款详情 -> time:" + (currentTime) + "毫秒");
}
List<OrderRefundListVo> orderRefundListVos = new ArrayList<>(); List<OrderRefundListVo> orderRefundListVos = new ArrayList<>();
BigDecimal lockPrice = BigDecimal.valueOf(0.00); BigDecimal lockPrice = BigDecimal.valueOf(0.00);
......
package com.liquidnet.service.kylin.utils;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinStationPerformanceVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinStationTicketVo;
import com.mongodb.client.model.WriteModel;
import org.bson.Document;
import java.util.ArrayList;
import java.util.List;
public class ObjectUtil {
private static final ArrayList<KylinStationPerformanceVo> kylinStationPerformanceVoArrayList = new ArrayList<>();
private static final ArrayList<KylinTicketVo> kylinTicketVoArrayList = new ArrayList<>();
private static final ArrayList<KylinStationTicketVo> kylinStationTicketVoArrayList = new ArrayList<>();
private static final ArrayList<WriteModel<Document>> writeModelDocumentArrayList = new ArrayList<>();
private static final PagedResult<KylinStationPerformanceVo> kylinStationPerformanceVoPagedResult = new PagedResult<>();
public static List<KylinStationPerformanceVo> getKylinStationPerformanceVoArrayList() {
return (List<KylinStationPerformanceVo>) kylinStationPerformanceVoArrayList.clone();
}
public static List<KylinTicketVo> getKylinTicketVoArrayList() {
return (List<KylinTicketVo>) kylinTicketVoArrayList.clone();
}
public static List<KylinStationTicketVo> getKylinStationTicketVoArrayList() {
return (List<KylinStationTicketVo>) kylinStationTicketVoArrayList.clone();
}
public static List<WriteModel<Document>> getWriteModelDocumentArrayList() {
return (List<WriteModel<Document>>) writeModelDocumentArrayList.clone();
}
public static PagedResult<KylinStationPerformanceVo> getKylinStationPerformanceVoPagedResult() {
return kylinStationPerformanceVoPagedResult.clone();
}
}
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#APP ERROR #APP ERROR
20001=验证码发送失败 20001=验证码发送失败
20002=验证码无效 20002=验证码错误,请重新输入
20003=无权查看 20003=无权查看
20004=参数错误 20004=参数错误
20005=手机号获取失败,请更换登录方式 20005=手机号获取失败,请更换登录方式
......
...@@ -328,8 +328,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -328,8 +328,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
private ResponseDto<PayInnerResultVo> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData, List<AdamEntersVo> entersVoList, Integer isStudent, KylinTicketTimesVo ticketTimesData, Long currentTime) { private ResponseDto<PayInnerResultVo> order(PayOrderParam payOrderParam, String uid, boolean isMember, int isTrueName, KylinPerformanceVo performanceData, KylinTicketVo ticketData, List<AdamEntersVo> entersVoList, Integer isStudent, KylinTicketTimesVo ticketTimesData, Long currentTime) {
LinkedList<String> sqls = ObjectUtil.cloneLinkedListStr(); LinkedList<String> sqls = ObjectUtil.cloneLinkedListStr();
String source = CurrentUtil.getCliSource() == null ? "" : CurrentUtil.getCliSource(); String headerCliSource = CurrentUtil.getHeaderCliSource(), headerCliVersion = CurrentUtil.getHeaderCliVersion();
String version = CurrentUtil.getCliVersion() == null ? "" : CurrentUtil.getCliVersion(); String source = headerCliSource == null ? "" : headerCliSource;
String version = headerCliVersion == null ? "" : headerCliVersion;
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
//生成订单 order_ticket //生成订单 order_ticket
KylinOrderTickets orderTickets = KylinOrderTickets.getNew(); KylinOrderTickets orderTickets = KylinOrderTickets.getNew();
...@@ -872,15 +873,15 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -872,15 +873,15 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
adTemplate = ticketData.getIsShowCode() == 1 ? SmsEnum.ADTemplate.SMS_171358560 : SmsEnum.ADTemplate.SMS_181500419; adTemplate = ticketData.getIsShowCode() == 1 ? SmsEnum.ADTemplate.SMS_171358560 : SmsEnum.ADTemplate.SMS_181500419;
} }
if (null != adTemplate) { // if (null != adTemplate) {
queueUtils.sendMsgByRedis(MQConst.KylinQueue.SMS_NOTICE.getKey(), // queueUtils.sendMsgByRedis(MQConst.KylinQueue.SMS_NOTICE.getKey(),
SmsMessage.builder().setPhone(orderTicketData.getUserMobile()) // SmsMessage.builder().setPhone(orderTicketData.getUserMobile())
.setSignName(SmsEnum.ADSignName.M02.getVal()) // .setSignName(SmsEnum.ADSignName.M02.getVal())
.setTemplateCode(adTemplate.name()) // .setTemplateCode(adTemplate.name())
.setTemplateParam("name", orderTicketData.getPerformanceTitle()) // .setTemplateParam("name", orderTicketData.getPerformanceTitle())
.setTemplateParam("time", time1 + " " + time2).toJson() // .setTemplateParam("time", time1 + " " + time2).toJson()
); // );
} // }
// 大麦回调 // 大麦回调
sycDamaiOrder(orderTickets.getOrderTicketsId()); sycDamaiOrder(orderTickets.getOrderTicketsId());
......
...@@ -11,12 +11,9 @@ import com.netflix.zuul.ZuulFilter; ...@@ -11,12 +11,9 @@ import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.context.RequestContext;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.ExpiredJwtException;
import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
...@@ -74,7 +71,7 @@ public class GlobalAuthFilter extends ZuulFilter { ...@@ -74,7 +71,7 @@ public class GlobalAuthFilter extends ZuulFilter {
// 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑 // 解析没有异常则表示token验证通过,如有必要可根据自身需求增加验证逻辑
Claims claims = jwtValidator.parse(token); Claims claims = jwtValidator.parse(token);
ctx.addZuulRequestHeader(CurrentUtil.uID, (String) claims.get(CurrentUtil.uID)); ctx.addZuulRequestHeader(CurrentUtil.TOKEN_SUB, (String) claims.get(CurrentUtil.TOKEN_SUB));
ctx.addZuulRequestHeader(CurrentUtil.uTag, JsonUtils.toJson(claims)); ctx.addZuulRequestHeader(CurrentUtil.uTag, JsonUtils.toJson(claims));
} catch (ExpiredJwtException expiredJwtEx) { } catch (ExpiredJwtException expiredJwtEx) {
ctx.addZuulRequestHeader(TOKEN_STATUS, TOKEN_INVALID); ctx.addZuulRequestHeader(TOKEN_STATUS, TOKEN_INVALID);
...@@ -115,7 +112,7 @@ public class GlobalAuthFilter extends ZuulFilter { ...@@ -115,7 +112,7 @@ public class GlobalAuthFilter extends ZuulFilter {
log.debug("lns.headers:{}", zuulRequestHeaders); log.debug("lns.headers:{}", zuulRequestHeaders);
String uToken = zuulRequestHeaders.get(CurrentUtil.uToken), uid; String uToken = zuulRequestHeaders.get(CurrentUtil.uToken), uid;
if (StringUtils.isEmpty(uToken) || StringUtils.isEmpty(uid = zuulRequestHeaders.get(CurrentUtil.uID))) { if (StringUtils.isEmpty(uToken) || StringUtils.isEmpty(uid = zuulRequestHeaders.get(CurrentUtil.TOKEN_SUB))) {
this.respHandler(ctx, zuulRequestHeaders.get(TOKEN_STATUS)); this.respHandler(ctx, zuulRequestHeaders.get(TOKEN_STATUS));
return null; return null;
......
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