Bläddra i källkod

fix: 重复打卡加锁

lixuesong 1 år sedan
förälder
incheckning
cbb28a4d51

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -1759,6 +1759,12 @@ public class ApiController {
 		log.info("精细化拜访(医院/药店/商业公司打卡)参数:{}", paramsStr);
 
 		WmUserSign wmUserSign = JSONUtil.toBean(paramsStr, WmUserSign.class);
+
+		Boolean absent = redisTemplate.opsForValue().setIfAbsent("save_sign_info:user_id:" + wmUserSign.getSignUserid(), paramsStr, 5, TimeUnit.SECONDS);
+		if (Boolean.FALSE.equals(absent)) {
+			return R.failed("时间间隔太短,请5秒后重试");
+		}
+
 		// 重置打卡时间,以系统为准,规避端设备时间不准的问题
 		LocalDateTime now = LocalDateTime.now().plusMinutes(5L);
 		if (wmUserSign.getSignDate().isAfter(now)) {