Selaa lähdekoodia

小程序打卡-新增限制校验

lixuesong 3 vuotta sitten
vanhempi
commit
bb6eb59cf7

+ 12 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmUserSignServiceImpl.java

@@ -100,16 +100,20 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 			}
 		}
 
+		// 一个用户,在同一打卡地点,4小时内只能打卡一次
 		WmUserSign singQuery = new WmUserSign();
 		singQuery.setSignUserid(wmUserSign.getSignUserid());
 		singQuery.setSignEntName(wmUserSign.getSignEntName());
 //		singQuery.setSignDate(LocalDateTime.now().minus(4, ChronoUnit.HOURS));
 		int total = this.count(Wrappers.query(singQuery).lambda()
-		.gt(WmUserSign::getSignDate,LocalDateTime.now().minus(4, ChronoUnit.HOURS)));
-
-		if(total != 0){
-			log.warn("打卡间隔过短:{} {}", wmUserSign.getSignUserid(),wmUserSign.getSignEntName());
-			return R.failed("客户拜访任务,登录人不符");
+				.gt(WmUserSign::getSignDate, LocalDateTime.now().minus(4, ChronoUnit.HOURS)));
+		// 一个用户,半小时内只能打卡一次
+		int halfHourTotal = this.count(Wrappers.<WmUserSign>lambdaQuery()
+				.eq(WmUserSign::getSignUserid, wmUserSign.getSignUserid())
+				.gt(WmUserSign::getSignDate, LocalDateTime.now().minus(30, ChronoUnit.MINUTES)));
+		if (total != 0 || halfHourTotal != 0) {
+			log.warn("打卡间隔过短:{} {}", wmUserSign.getSignUserid(), wmUserSign.getSignEntName());
+			return R.failed("打卡间隔过短");
 		}
 
 		/**
@@ -140,8 +144,10 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 			wmTask.setTaskUserId(sysU.getUserId() + "");    //任务提交人
 			if ("1".equals(wmUserSign.getSignEntType())) {
 				wmTask.setTaskTypeId("5");                           //任务类型
-			} else {
+			} else if ("2".equals(wmUserSign.getSignEntType())) {
 				wmTask.setTaskTypeId("6");                           //任务类型
+			} else if ("3".equals(wmUserSign.getSignEntType())) {
+				wmTask.setTaskTypeId("33");
 			}
 			wmTask.setSubmitStatus("0");
 			LocalDateTime localDateTime = LocalDateTime.now();