|
|
@@ -1,5 +1,6 @@
|
|
|
package com.izouma.zhumj.service;
|
|
|
|
|
|
+import com.izouma.zhumj.config.GenericProperties;
|
|
|
import com.izouma.zhumj.domain.AccessTicket;
|
|
|
import com.izouma.zhumj.domain.CheckinInfo;
|
|
|
import com.izouma.zhumj.domain.User;
|
|
|
@@ -20,6 +21,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.ui.Model;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.UnsupportedEncodingException;
|
|
|
+import java.net.URLEncoder;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
|
import java.util.Collections;
|
|
|
@@ -30,15 +33,16 @@ import java.util.UUID;
|
|
|
@AllArgsConstructor
|
|
|
@Slf4j
|
|
|
public class AccessTicketService {
|
|
|
- private AccessTicketRepo accessTicketRepo;
|
|
|
- private CheckinInfoRepo checkinInfoRepo;
|
|
|
+ private AccessTicketRepo accessTicketRepo;
|
|
|
+ private CheckinInfoRepo checkinInfoRepo;
|
|
|
+ private GenericProperties genericProperties;
|
|
|
|
|
|
- public AccessTicket getTicket(Long checkinId) {
|
|
|
+ public String getTicket(Long checkinId) throws UnsupportedEncodingException {
|
|
|
CheckinInfo checkinInfo = checkinInfoRepo.findById(checkinId).orElseThrow(new BusinessException("无入住信息"));
|
|
|
if (StringUtils.isBlank(checkinInfo.getIdNo())) {
|
|
|
throw new BusinessException("无身份证号");
|
|
|
}
|
|
|
- return accessTicketRepo.save(AccessTicket.builder()
|
|
|
+ AccessTicket accessTicket = accessTicketRepo.save(AccessTicket.builder()
|
|
|
.checkinId(checkinId)
|
|
|
.idNo(checkinInfo.getIdNo())
|
|
|
.name(checkinInfo.getName())
|
|
|
@@ -47,6 +51,8 @@ public class AccessTicketService {
|
|
|
.bedId(checkinInfo.getBedId())
|
|
|
.expireAt(LocalDateTime.now().plusMinutes(10))
|
|
|
.build());
|
|
|
+ return genericProperties.getServerAddress() + "/wx/redirect?redirectUrl=" +
|
|
|
+ URLEncoder.encode(genericProperties.getServerAddress() + "/temporalAccess?ticket=" + accessTicket
|
|
|
+ .getId(), "UTF-8");
|
|
|
}
|
|
|
-
|
|
|
}
|