Commit 8a09e898 authored by shiyu's avatar shiyu

签到前置校验

parent e6798523
...@@ -11,7 +11,6 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao; ...@@ -11,7 +11,6 @@ import com.wwdz.ch.db.dao.distribution.DistributionOrderDao;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInDao; import com.wwdz.ch.db.dao.qiandao.QdUserSignInDao;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInNoteDao; import com.wwdz.ch.db.dao.qiandao.QdUserSignInNoteDao;
import com.wwdz.ch.db.dao.qiandao.SignInTaskDao; import com.wwdz.ch.db.dao.qiandao.SignInTaskDao;
import com.wwdz.ch.db.domain.UserSignIn;
import com.wwdz.ch.db.domain.distribution.DistributionOrder; import com.wwdz.ch.db.domain.distribution.DistributionOrder;
import com.wwdz.ch.db.domain.qiandao.QdUserSignIn; import com.wwdz.ch.db.domain.qiandao.QdUserSignIn;
import com.wwdz.ch.db.domain.qiandao.QdUserSignInNote; import com.wwdz.ch.db.domain.qiandao.QdUserSignInNote;
...@@ -24,7 +23,6 @@ import org.slf4j.Logger; ...@@ -24,7 +23,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -54,6 +52,42 @@ public class QdUserSignInServiceImpl implements QdUserSignInService { ...@@ -54,6 +52,42 @@ public class QdUserSignInServiceImpl implements QdUserSignInService {
@Autowired @Autowired
QdUserSignInNoteDao qdUserSignInNoteDao; QdUserSignInNoteDao qdUserSignInNoteDao;
@Override
public Result check(QdUserSignInRequestDto dto) {
try {
long userId = dto.getUserId();
Long taskId = dto.getTaskId() == null ? CommConsts.DEFAULT_TASK_ID : dto.getTaskId();
SignInTask signInTask = signInTaskDao.findById(taskId);
//签到目标天数
int goalDays = signInTask.getGoalDays();
//检查是否已签到过
String todayStr = DateUtils.DATE.format(LocalDate.now());
if (qdUserSignInDao.isExisted(userId, todayStr, taskId)) {
return Result.failed("今天已打过卡");
}
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("H:mm");
SimpleDateFormat timeFormat = new SimpleDateFormat("H:mm");
if (signInTask.getSignInStartTime() != null && signInTask.getSignInEndTime() != null) {
String start = timeFormat.format(signInTask.getSignInStartTime());
String end = timeFormat.format(signInTask.getSignInEndTime());
LocalTime localTime = LocalTime.parse(start, dateTimeFormatter);
LocalDate today = LocalDate.now();
LocalDateTime todayStartTime = today.atTime(localTime);
LocalTime endlocalTime = LocalTime.parse(end, dateTimeFormatter);
LocalDateTime todayEndTime = today.atTime(endlocalTime);
LocalDateTime nowTime = LocalDateTime.now();
if (nowTime.isBefore(todayStartTime) || nowTime.isAfter(todayEndTime)) {
return Result.failed("非打卡时段");
}
}
return Result.success();
} catch (Exception e) {
logger.error("签到前置检测失败 error:{}", e);
}
return Result.failed();
}
@Override @Override
public Result signIn(QdUserSignInRequestDto dto) { public Result signIn(QdUserSignInRequestDto dto) {
try { try {
......
...@@ -5,6 +5,14 @@ import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto; ...@@ -5,6 +5,14 @@ import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInRequestDto;
public interface QdUserSignInService { public interface QdUserSignInService {
/**
* 签到前置校验
* @param dto
* @return
*/
Result check(QdUserSignInRequestDto dto);
/** /**
* 签到 * 签到
* @param dto * @param dto
......
...@@ -31,6 +31,18 @@ public class QdUserSignInController { ...@@ -31,6 +31,18 @@ public class QdUserSignInController {
@Autowired @Autowired
QdUserSignInService qdUserSignInService; QdUserSignInService qdUserSignInService;
@ApiOperation(value = "签到前置校验")
@PostMapping("/check")
public Object check(@RequestBody QdUserSignInRequestDto dto) {
logger.info("【请求开始】签到前置校验,请求参数:{}", JSON.toJSONString(dto));
if (dto.getUserId() == null) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return qdUserSignInService.check(dto);
}
@ApiOperation(value = "乾岛签到") @ApiOperation(value = "乾岛签到")
@PostMapping("/signIn") @PostMapping("/signIn")
public Object signIn(@RequestBody QdUserSignInRequestDto dto) { public Object signIn(@RequestBody QdUserSignInRequestDto dto) {
......
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