重写用户获取火点数据的接口
This commit is contained in:
parent
6d75affb2c
commit
6ddb10b45b
@ -5,11 +5,15 @@ import com.xkrs.straw.dao.FirePointPreciseDao;
|
||||
import com.xkrs.straw.model.bean.FirePointQueryResultBean;
|
||||
import com.xkrs.straw.model.bean.VipTimeRangeBean;
|
||||
import com.xkrs.straw.model.entity.SysUserEntity;
|
||||
import com.xkrs.utils.DateTimeUtil;
|
||||
import com.xkrs.utils.DateTimeUtils;
|
||||
import com.xkrs.utils.FirePointCodeUtils;
|
||||
import org.apache.hc.core5.util.TextUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@ -23,6 +27,8 @@ public class FirePointQueryManager {
|
||||
|
||||
public FirePointQueryResultBean queryFirePointBelongToUser(SysUserEntity sysUserEntity, String startTime, String endTime, String satelliteType, String landType) {
|
||||
|
||||
String mNoRedundantUserCode = null;
|
||||
final List<VipTimeRangeBean.VipTimeRangeItemBean> mVipTimeRangeItemList = new ArrayList<>();
|
||||
try {
|
||||
//获取用户注册的区划编码
|
||||
String userCode = sysUserEntity.getCountyCode();
|
||||
@ -52,7 +58,41 @@ public class FirePointQueryManager {
|
||||
|
||||
//得到由<开始时间 + 结束时间>组成的集合
|
||||
List<VipTimeRangeBean.VipTimeRangeItemBean> vipTimeRangeItemList = vipTimeRangeBean.getList();
|
||||
|
||||
for (VipTimeRangeBean.VipTimeRangeItemBean vipTimeRangeItemA : vipTimeRangeItemList) {
|
||||
//校验用户VIP开始时间合法性
|
||||
if (!DateTimeUtil.isValidDateTime(vipTimeRangeItemA.getStartTime())) {
|
||||
return new FirePointQueryResultBean(false, "User VIP 开始时间格式不合法1, StartTime = " + vipTimeRangeItemA.getStartTime(), null);
|
||||
}
|
||||
//校验用户VIP结束时间合法性
|
||||
if (!DateTimeUtil.isValidDateTime(vipTimeRangeItemA.getEndTime())) {
|
||||
return new FirePointQueryResultBean(false, "User VIP 结束时间格式不合法2, EndTime = " + vipTimeRangeItemA.getEndTime(), null);
|
||||
}
|
||||
LocalDateTime userStartLocalDateTimeA = LocalDateTime.parse(vipTimeRangeItemA.getStartTime(), DateTimeUtils.DATE_TIME_FORMATTER_1);
|
||||
LocalDateTime userEndLocalDateTimeA = LocalDateTime.parse(vipTimeRangeItemA.getEndTime(), DateTimeUtils.DATE_TIME_FORMATTER_1);
|
||||
for (VipTimeRangeBean.VipTimeRangeItemBean vipTimeRangeItemB : vipTimeRangeItemList) {
|
||||
if (vipTimeRangeItemA != vipTimeRangeItemB) {
|
||||
//校验用户VIP开始时间合法性
|
||||
if (!DateTimeUtil.isValidDateTime(vipTimeRangeItemB.getStartTime())) {
|
||||
return new FirePointQueryResultBean(false, "User VIP 开始时间格式不合法3, StartTime = " + vipTimeRangeItemB.getStartTime(), null);
|
||||
}
|
||||
//校验用户VIP结束时间合法性
|
||||
if (!DateTimeUtil.isValidDateTime(vipTimeRangeItemB.getEndTime())) {
|
||||
return new FirePointQueryResultBean(false, "User VIP 结束时间格式不合法4, EndTime = " + vipTimeRangeItemB.getEndTime(), null);
|
||||
}
|
||||
LocalDateTime userStartLocalDateTimeB = LocalDateTime.parse(vipTimeRangeItemB.getStartTime(), DateTimeUtils.DATE_TIME_FORMATTER_1);
|
||||
LocalDateTime userEndLocalDateTimeB = LocalDateTime.parse(vipTimeRangeItemB.getEndTime(), DateTimeUtils.DATE_TIME_FORMATTER_1);
|
||||
//校验用户VIP开始结束时间是否存在交叉现象
|
||||
if (userStartLocalDateTimeB.isBefore(userStartLocalDateTimeA) && userEndLocalDateTimeB.isAfter(userStartLocalDateTimeA)) {
|
||||
return new FirePointQueryResultBean(false, "User VIP 开始结束时间格式不合法5, 存在交叉现象", null);
|
||||
}
|
||||
if (userStartLocalDateTimeB.isBefore(userEndLocalDateTimeA) && userEndLocalDateTimeB.isAfter(userEndLocalDateTimeA)) {
|
||||
return new FirePointQueryResultBean(false, "User VIP 开始结束时间格式不合法6, 存在交叉现象", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mNoRedundantUserCode = noRedundantUserCode;
|
||||
mVipTimeRangeItemList.addAll(vipTimeRangeItemList);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -60,8 +100,6 @@ public class FirePointQueryManager {
|
||||
}
|
||||
|
||||
|
||||
//FirePointQueryResultBean
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.xkrs.utils;
|
||||
|
||||
import org.apache.hc.core5.util.TextUtils;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
@ -77,15 +79,22 @@ public class DateTimeUtil {
|
||||
/**
|
||||
* 判断时间格式 格式必须为 "YYYY-MM-DD HH:mm:ss"
|
||||
*/
|
||||
public static boolean isValidDateTime(String sDateTime) {
|
||||
final int minLen = 19;
|
||||
if ((sDateTime == null) || (sDateTime.length() < minLen)) {
|
||||
public static boolean isValidDateTime(String formattedDateTime) {
|
||||
int validLength = 19;
|
||||
if (TextUtils.isEmpty(formattedDateTime) || formattedDateTime.length() != validLength) {
|
||||
return false;
|
||||
}
|
||||
String eL = "(((01[0-9]{2}|0[2-9][0-9]{2}|[1-9][0-9]{3})-(0?[13578]|1[02])-" + "(0?[1-9]|[12]\\\\d|3[01]))|((01[0-9]{2}|0[2-9][0-9]{2}|[1-9][0-9]{3})-" + "(0?[13456789]|1[012])-(0?[1-9]|[12]\\\\d|30))|((01[0-9]{2}|0[2-9][0-9]{2}|[1-9][0-9]{3})-0?2-" + "(0?[1-9]|1\\\\d|2[0-8]))|(((1[6-9]|[2-9]\\\\d)(0[48]|[2468][048]|[13579][26])|((04|08|12|16|[2468][048]|" + "[3579][26])00))-0?2-29)) (20|21|22|23|[0-1]?\\\\d):[0-5]?\\\\d:[0-5]?\\\\d";
|
||||
Pattern pat = Pattern.compile(eL);
|
||||
Matcher matcher = pat.matcher(sDateTime);
|
||||
String regex = "^([1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9])\\s(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d$";
|
||||
Pattern pattern = Pattern.compile(regex);
|
||||
Matcher matcher = pattern.matcher(formattedDateTime);
|
||||
return matcher.matches();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// boolean validDateTime = isValidDateTime("2222-01-21 19:59:59");
|
||||
// System.out.println("validDateTime = " + validDateTime);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user