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

Commit 0bdb0d25 authored by 张国柄's avatar 张国柄

+验票API参数校验

parent 55a4afa3
package com.liquidnet.commons.lang.constant;
public class LnsRegex {
public static class Valid {
public static final String DATETIME_FULL = "^(((((0[48]|[2468][048]|[3579][26])00))|(([0-9]{2})(0[48]|[2468][048]|[13579][26])))[-|.|/| ]0?2[-|.|/| ]29|(((?!0{1,4})[0-9]{1,4})[-|.|/| ](((0[13-9]|1[0-2]|[13-9])[-|.|/| ](29|30))|((0[13578]|(10|12)|[13578])[-|.|/| ]31)|((0(?:[1-9])|1(?:[0-2])|[1-9])[-|.|/| ](0(?:[1-9])|1[0-9]|2[0-8]|[1-9])))))( ((0?[0-9])|(1[0-9]|2[0-3])):(([1-5][0-9])|(0?[0-9])):(([1-5][0-9])|(0?[0-9])))?$";
}
}
......@@ -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.LnsRegex;
import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.base.ErrorMapping;
......@@ -27,8 +28,12 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.util.CollectionUtils;
import org.springframework.util.DigestUtils;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
......@@ -38,11 +43,11 @@ import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Api(tags = "验票")
@Slf4j
@Validated
@RestController
@RequestMapping("station")
public class KylinStationController {
......@@ -65,7 +70,10 @@ public class KylinStationController {
@ApiImplicitParam(type = "form", dataType = "String", name = "passwd", value = "密码", example = "123456"),
})
@PostMapping("login")
public ResponseDto<KylinStationLoginVo> login(@RequestParam String mobile, @RequestParam String passwd) {
public ResponseDto<KylinStationLoginVo> login(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile,
@NotBlank(message = "密码不能为空")
@RequestParam String passwd) {
log.info("mobile:{},passwd:{}", mobile, passwd);
return this.loginVerification(mobile, passwd, true);
......@@ -77,7 +85,10 @@ public class KylinStationController {
@ApiImplicitParam(type = "body", required = true, dataType = "String", name = "code", value = "验证码", example = "111111"),
})
@PostMapping("login/sms")
public ResponseDto<KylinStationLoginVo> loginBySms(@RequestParam String mobile, @RequestParam String code) {
public ResponseDto<KylinStationLoginVo> loginBySms(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mobile,
@Pattern(regexp = "\\d{6}", message = "验证码格式有误")
@RequestParam String code) {
log.info("mobile:{},code:{}", mobile, code);
return this.loginVerification(mobile, code, false);
......@@ -108,9 +119,13 @@ public class KylinStationController {
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "pageSize", value = "页记录数", example = "5"),
})
@GetMapping("performances")
public ResponseDto<PageInfo<KylinStationPerformanceVo>> performances(@RequestParam String mod,
public ResponseDto<PageInfo<KylinStationPerformanceVo>> performances(@Pattern(regexp = "\\d{11}", message = "手机号格式有误")
@RequestParam String mod,
@Size(max = 30, message = "匹配字符过长")
@RequestParam(required = false) String match,
@Size(min = 1, max = 100, message = "页码无效")
@RequestParam(defaultValue = "1", required = false) int pageNo,
@Size(min = 5, max = 10, message = "页记录数无效")
@RequestParam(defaultValue = "5", required = false) int pageSize) {
List<KylinStationPerformanceVo> voList = new ArrayList<>();
String currentUid = CurrentUtil.getCurrentUid();
......@@ -144,7 +159,8 @@ public class KylinStationController {
return ResponseDto.success(new PageInfo<>());
}
if (StringUtils.isNotBlank(match)) {
Pattern pattern = Pattern.compile("^.*" + match + ".*$", Pattern.CASE_INSENSITIVE);
java.util.regex.Pattern pattern =
java.util.regex.Pattern.compile("^.*" + match + ".*$", java.util.regex.Pattern.CASE_INSENSITIVE);
criteria.orOperator(
Criteria.where("title").regex(pattern),
Criteria.where("cityName").regex(pattern),
......@@ -244,7 +260,8 @@ public class KylinStationController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "performanceId", value = "演出ID[64]"),
})
@GetMapping("download")
public ResponseDto<KylinStationCheckRefreshVo> downloadTicketData(@RequestParam String performanceId) {
public ResponseDto<KylinStationCheckRefreshVo> downloadTicketData(@NotBlank(message = "演出ID不能为空")
@RequestParam String performanceId) {
log.info("performanceId:{}", performanceId);
String currentUid = CurrentUtil.getCurrentUid();
......@@ -315,9 +332,11 @@ public class KylinStationController {
@ApiOperation(value = "上载验票数据")
@PostMapping("upload")
public ResponseDto<Object> uploadTicketData(@RequestBody List<KylinStationCheckOrderParam> checkOrderParamList) {
log.info("checkDataParams:{}", JsonUtils.toJson(checkOrderParamList));
log.debug("checkDataParams:{}", JsonUtils.toJson(checkOrderParamList));
kylinOrderTicketEntitiesService.updateByStation(checkOrderParamList);
if (!CollectionUtils.isEmpty(checkOrderParamList)) {
kylinOrderTicketEntitiesService.updateByStation(checkOrderParamList);
}
return ResponseDto.success();
}
......@@ -328,7 +347,10 @@ public class KylinStationController {
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "latestUpdateAt", value = "最近更新时间[yyyy-MM-dd HH:mm:ss]"),
})
@PostMapping("refresh")
public ResponseDto<KylinStationCheckRefreshVo> refreshTicketData(@RequestParam String performanceId, @RequestParam String latestUpdateAt) {
public ResponseDto<KylinStationCheckRefreshVo> refreshTicketData(@NotBlank(message = "演出ID不能为空")
@RequestParam String performanceId,
@Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "时间格式有误")
@RequestParam String latestUpdateAt) {
log.info("refresh performanceId:{},latestUpdateAt:{}", performanceId, latestUpdateAt);
String currentUid = CurrentUtil.getCurrentUid();
......
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