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

Commit 2fc004f4 authored by jiangxiulong's avatar jiangxiulong

Merge remote-tracking branch 'origin/dev' into dev

parents cdc3e0cc 0bc54988
......@@ -38,6 +38,7 @@ public class AdamRedisConst {
public static final String SWITCH = ADAM.concat("switch:");
public static final String SWITCH_BUY_MEMBER = SWITCH.concat("buy:member");
public static final String SWITCH_GRAY_LOGIN_SMS = SWITCH.concat("gray:login:sms");
/* ----------------------------------------------------------------- */
......
package com.liquidnet.commons.lang.constant;
public final class LnsEnum {
public enum ENV {
dev,
test,
prod;
}
public static void main(String[] args) {
System.out.println(ENV.dev.name());
}
}
......@@ -3,11 +3,14 @@ package com.liquidnet.commons.lang.util;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;
public class CurrentUtil {
public static final String CK_ENV_ACTIVE = "spring.profiles.active";
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";
......
......@@ -29,5 +29,8 @@ liquidnet:
aliyun:
accessKeyId: LTAI4FvoqxJUT5T1ydJSyhUn
accessSecret: WNCgFn9dSjnoDdej2YTvR0v0216WWU
reviewer:
app-login:
mobile: 13724286255
#以下为spring各环境个性配置
......@@ -29,5 +29,8 @@ liquidnet:
aliyun:
accessKeyId: LTAI4FvoqxJUT5T1ydJSyhUn
accessSecret: WNCgFn9dSjnoDdej2YTvR0v0216WWU
reviewer:
app-login:
mobile: 13724286255
#以下为spring各环境个性配置
......@@ -2,11 +2,11 @@ server:
port: ${liquidnet.info.port}
tomcat:
uri-encoding: UTF-8
maxThreads: 200 #默认200
minSpareThreads: 30 #默认10
maxConnections: 12000 #默认10000
maxThreads: 2000 #默认200
minSpareThreads: 2000 #默认10
maxConnections: 20000 #默认10000
acceptCount: 5000 #默认100
processorCache: 200 #默认200
processorCache: -1 #默认200
servlet:
context-path: ${liquidnet.info.context}
# -----------------------------------------------------------
......@@ -19,7 +19,7 @@ knife4j:
password: ${liquidnet.security.password}
# -----------------------------------------------------------
logging:
# config: ${liquidnet.logfile.config}
# config: ${liquidnet.logfile.config}
file:
name: ${liquidnet.logfile.path}/${liquidnet.logfile.name}.log
max-size: ${liquidnet.logfile.file-max-size}
......@@ -34,11 +34,11 @@ logging:
liquidnet: ${liquidnet.logfile.level}
# -----------------------------------------------------------
eureka:
# client:
# register-with-eureka: true
# fetch-registry: true
# serviceUrl:
# defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
# client:
# register-with-eureka: true
# fetch-registry: true
# serviceUrl:
# defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
instance:
hostname: ${spring.cloud.client.ip-address}
lease-expiration-duration-in-seconds: 15 #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
......
......@@ -9,8 +9,10 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamLoginInfoVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
......@@ -26,6 +28,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.util.CollectionUtils;
import org.springframework.util.DigestUtils;
......@@ -67,7 +70,8 @@ public class AdamLoginController {
@Autowired
IAdamUserService adamUserService;
@Value("${liquidnet.reviewer.app-login.mobile}")
private String reviewMobile;
private static final String PHP_API_SMS_CODE_SEND = "/smsCode";
private static final String PHP_API_SMS_CODE_VALID = "/smsValidation";
......@@ -174,7 +178,7 @@ public class AdamLoginController {
loginInfoVo.setUserInfo(userInfoVo);
loginInfoVo.setToken(this.ssoProcess(userInfoVo));
loginInfoVo.getUserInfo().setMobile(SensitizeUtil.custom(userInfoVo.getMobile(), 3, 4));
log.info(UserPathDto.setData(toRegister ? "注册":"登录", ServletUtils.getRequest().getParameterMap(), loginInfoVo));
log.info(UserPathDto.setData(toRegister ? "注册" : "登录", ServletUtils.getRequest().getParameterMap(), loginInfoVo));
return ResponseDto.success(loginInfoVo);
}
......@@ -212,7 +216,7 @@ public class AdamLoginController {
loginInfoVo.setUserInfo(userInfoVo);
loginInfoVo.setToken(this.ssoProcess(userInfoVo));
loginInfoVo.getUserInfo().setMobile(SensitizeUtil.custom(userInfoVo.getMobile(), 3, 4));
log.info(UserPathDto.setData(toRegister ? "注册":"登录", ServletUtils.getRequest().getParameterMap(), loginInfoVo));
log.info(UserPathDto.setData(toRegister ? "注册" : "登录", ServletUtils.getRequest().getParameterMap(), loginInfoVo));
return ResponseDto.success(loginInfoVo);
}
......@@ -247,7 +251,7 @@ public class AdamLoginController {
}
loginInfoVo.setToken(this.ssoProcess(loginInfoVo.getUserInfo()));
loginInfoVo.getUserInfo().setMobile(SensitizeUtil.custom(loginInfoVo.getUserInfo().getMobile(), 3, 4));
log.info(UserPathDto.setData(toRegister ? "注册":"登录", ServletUtils.getRequest().getParameterMap(), loginInfoVo));
log.info(UserPathDto.setData(toRegister ? "注册" : "登录", ServletUtils.getRequest().getParameterMap(), loginInfoVo));
return ResponseDto.success(loginInfoVo);
}
......@@ -283,9 +287,23 @@ public class AdamLoginController {
/* ---------------------------- Internal Method ---------------------------- */
private boolean checkSmsCode(String mobile, String code) {
if (Arrays.asList("dev", "test", "prod").contains(env.getProperty("spring.profiles.active")) && "111111".equals(code)) {
Integer switchGrayLoginSms = (Integer) redisUtil.get(AdamRedisConst.SWITCH_GRAY_LOGIN_SMS);
if (null != switchGrayLoginSms) {
if (switchGrayLoginSms == 615243) {
if (CurrentUtil.GRAY_LOGIN_SMS_CODE.equals(code)) {
return true;
}
}
if (switchGrayLoginSms == 612543) {
if (reviewMobile.equals(mobile) ||
Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(env.getProperty(CurrentUtil.CK_ENV_ACTIVE))
) {
if (CurrentUtil.GRAY_LOGIN_SMS_CODE.equals(code)) {
return true;
}
}
}
}
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
paramsMap.add("mobile", mobile);
......@@ -328,7 +346,6 @@ public class AdamLoginController {
private String ssoProcess(AdamUserInfoVo userInfoVo) {
Map<String, Object> claimsMap = new HashMap<>();
claimsMap.put("sub", userInfoVo.getUid());
// TODO: 2021/5/25 修改手机号更新TOKEN
claimsMap.put("mobile", userInfoVo.getMobile());
claimsMap.put("nickname", userInfoVo.getNickname());
claimsMap.put("type", "user");
......
......@@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.common.cache.redisson.util.RedisLockUtil;
import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
......@@ -89,9 +90,13 @@ public class AdamMemberOrderController {
return ResponseDto.failure(ErrorMapping.get("10213"));
}
AdamUserMemberVo userMemberVo = adamRdmService.getUserMemberVoByUid(currentUid);
if (null == userMemberVo || !userMemberVo.isActive()) {
// 当前用户非会员或会员已过期时,购买会员时会受系统配置[开放/限制购买会员]限制
if (1 != adamRdmService.getSwitch(AdamRedisConst.SWITCH_BUY_MEMBER)) {
return ResponseDto.failure(ErrorMapping.get("10215"));
}
}
AdamRealInfoVo realInfoVo = adamRdmService.getRealInfoVoByUid(currentUid);
if (null == realInfoVo) {
......@@ -157,7 +162,7 @@ public class AdamMemberOrderController {
return "fail";
}
if (!"dev".equals(env.getProperty("spring.profiles.active"))) {
if (!LnsEnum.ENV.dev.name().equals(env.getProperty(CurrentUtil.CK_ENV_ACTIVE))) {
ResponseDto<Integer> checkOrderResult = this.checkOrderResult(parameter.getOrderCode());
if (!checkOrderResult.isSuccess() || checkOrderResult.getData() != 1) {
log.warn("###购买会员支付回调支付中心验证不通过,无法处理[{}]", JsonUtils.toJson(parameter));
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.constant.LnsRegex;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.HttpUtil;
......@@ -304,8 +305,9 @@ public class AdamUserController {
private static final String PHP_API_SMS_CODE_VALID = "/smsValidation";
private boolean checkSmsCode(String mobile, String code) {
if (Arrays.asList("dev", "test", "prod").contains(env.getProperty("spring.profiles.active"))) {
return "111111".equals(code);
if (Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(env.getProperty(CurrentUtil.CK_ENV_ACTIVE))
&& CurrentUtil.GRAY_LOGIN_SMS_CODE.equals(code)) {
return true;
}
LinkedMultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.constant.LnsRegex;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.*;
......@@ -483,8 +484,8 @@ public class KylinStationController {
}
return ResponseDto.failure(ErrorMapping.get("20602"));
} else {// 校验验证码
if (Arrays.asList("dev", "test").contains(environment.getProperty("spring.profiles.active"))) {
if ("111111".equals(identity)) {
if (Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(environment.getProperty(CurrentUtil.CK_ENV_ACTIVE))) {
if (CurrentUtil.GRAY_LOGIN_SMS_CODE.equals(identity)) {
return this.loginAuthentication(checkUserVo);
}
return ResponseDto.failure(ErrorMapping.get("20002"));
......
......@@ -990,7 +990,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
if (null != performanceVo.getIsCanRefund() && performanceVo.getIsCanRefund() == 1) {
LocalDateTime refundOpenDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundOpenTime());
LocalDateTime refundCloseDate = DateUtil.Formatter.yyyyMMddHHmmss.parse(performanceVo.getRefundCloseTime());
if (LocalDateTime.now().isAfter(refundOpenDate) && LocalDateTime.now().isBefore(refundCloseDate)) {
if (LocalDateTime.now().isAfter(refundOpenDate) && LocalDateTime.now().isBefore(refundCloseDate) && !orderTicketVo.getExpressAddress().trim().equals("")) {
vo.setIsCanRefund(1);
} else {
vo.setIsCanRefund(0);
......
......@@ -71,7 +71,7 @@ public class DataImpl {
public boolean performance() {
try {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String url = "jdbc:mysql://pc-2ze6z2hxkug559q79.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
......@@ -307,7 +307,7 @@ public class DataImpl {
tickets.setPriceExpress(ticketData.getBigDecimal("price_express"));
tickets.setPriceDiscountMember(new BigDecimal("0.00"));
tickets.setPriceDiscount(new BigDecimal("0.00"));
tickets.setDescribes(ticketData.getString("describe_express"));
tickets.setDescribes(ticketData.getString("describe"));
tickets.setDescribeExpress(ticketData.getString("describe_express"));
tickets.setDescribeElectronic(ticketData.getString("describe_electronic"));
tickets.setAdvanceMinuteMember(5);
......@@ -345,7 +345,7 @@ public class DataImpl {
ticketStatus.setSurplusExchange(ticketData.getInt("surplus_exchange"));
ticketStatus.setExpressType(ticketData.getInt("express_type"));
ticketStatus.setIsTrueName(ticketData.getString("need_id_card").equals("yes") ? 1 : 0);
ticketStatus.setLimitCount(0);
ticketStatus.setLimitCount(ticketData.getInt("num_limit_mobile"));
ticketStatus.setMemberLimitCount(1);
ticketStatus.setIsTransfer(0);
ticketStatus.setIsExclusive(ticketData.getInt("is_exclusive"));
......@@ -443,7 +443,7 @@ public class DataImpl {
public boolean order(String month) {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String url = "jdbc:mysql://pc-2ze6z2hxkug559q79.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
......@@ -772,7 +772,7 @@ public class DataImpl {
public boolean roadShow() {
String driverClassName = "com.mysql.cj.jdbc.Driver"; //启动驱动
String url = "jdbc:mysql://zhengzai.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String url = "jdbc:mysql://pc-2ze6z2hxkug559q79.mysql.polardb.rds.aliyuncs.com:3306/mall"; //设置连接路径
String username = "readonly"; //数据库用户名
String password = "ZWDsf8Fy"; //数据库连接密码
Connection con = null; //连接
......
......@@ -61,9 +61,9 @@ public class MongoVoUtils {
fields.setName((String) redisUtil.hget(KylinRedisConst.FIELDS + ":" + p3.getFieldId(), "name"));
//相关状态时间初始变量
LocalDateTime stopSellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
LocalDateTime sellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
LocalDateTime sellMemberTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
LocalDateTime stopSellTime = null;
LocalDateTime sellTime = null;
LocalDateTime sellMemberTime = null;
int isLackRegister = 0;
int isMember = 0;
......@@ -132,13 +132,13 @@ public class MongoVoUtils {
price = kylinTicketVo.getPrice();
}
}
if ((stopSellTime == null || stopSellTime.isBefore(t1.getTimeEnd())) && (t2.getStatus()>=6 && t2.getStatus()!=7)) {
if ((stopSellTime == null || stopSellTime.isBefore(t1.getTimeEnd())) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) {
stopSellTime = t1.getTimeEnd();
}
if ((sellMemberTime == null || sellMemberTime.isAfter(t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()))) && (t2.getStatus()>=6 && t2.getStatus()!=7)) {
if ((sellMemberTime == null || sellMemberTime.isAfter(t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember()))) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) {
sellMemberTime = t1.getTimeStart().plusMinutes(-t1.getAdvanceMinuteMember());
}
if ((sellTime == null || sellTime.isAfter(t1.getTimeStart())) && (t2.getStatus()>=6 && t2.getStatus()!=7)) {
if ((sellTime == null || sellTime.isAfter(t1.getTimeStart())) && (t2.getStatus() >= 6 && t2.getStatus() != 7)) {
sellTime = t1.getTimeStart();
}
}
......@@ -157,6 +157,16 @@ public class MongoVoUtils {
voData.setPerformanceStatus(p2);
voData.setPerformanceRelations(p3);
voData.setFieldsData(fields, cityName);
if (stopSellTime == null) {
stopSellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
if (sellTime == null) {
sellTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
if (sellMemberTime == null) {
sellMemberTime = DateUtil.Formatter.yyyyMMddHHmmss.parse("2030-12-01 12:00:00");
}
voData.setTimePriceVipAndLack(isLackRegister, isMember, isExclusive, price, stopSellTime, sellMemberTime, sellTime, isAdvance, isDiscount, payCountdownMinute);
voData.setTicketTimeList(timeList);
voData.setAppStatus(p2.getStatus());
......
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