GlobalAward保存成功发送站内信,根据url可跳转且召回已填写资料

This commit is contained in:
litianxiang
2026-01-21 14:59:41 +08:00
parent b1e6183dd1
commit 6db0afd515
5 changed files with 26 additions and 18 deletions

View File

@@ -145,12 +145,12 @@ public class GlobalAwardController {
return Response.success(globalAwardService.saveContestant(request));
}
// @GetMapping("/contestants/by-email")
// @ApiOperation(value = "根据邮箱查询参赛者", notes = "根据邮箱地址获取参赛者信息")
// public Response<ContestantDTO> getContestantByEmail(@ApiParam(value = "参赛者邮箱地址", required = true) @RequestParam("email") String email) {
// ContestantDTO dto = globalAwardService.getContestantByEmail(email);
// return Response.success(dto);
// }
@GetMapping("/contestants/{id}")
@ApiOperation(value = "根据id查询参赛者", notes = "根据id获取参赛者信息")
public Response<ContestantDTO> getContestantByID(@ApiParam(value = "参赛者id", required = true) @PathVariable("id") String id) {
ContestantDTO dto = globalAwardService.getContestantByID(id);
return Response.success(dto);
}
@GetMapping("/checkEmail")
public Response<String> checkEmail(@RequestParam("email") String email) {

View File

@@ -13,7 +13,7 @@ public interface GlobalAwardService {
Map<String, Object> saveContestant(ContestantDTO request);
com.ai.da.model.dto.ContestantDTO getContestantByEmail(String email);
com.ai.da.model.dto.ContestantDTO getContestantByID(String email);
void checkEmail(String email);

View File

@@ -161,6 +161,7 @@ public class GlobalAwardServiceImpl implements GlobalAwardService {
.build();
contestantMapper.insert(toInsert);
resp.put("success", true);
sendSiteMsg(toInsert.getId(), toInsert.getEmail());
return resp;
} else {
// update existing contestant
@@ -184,18 +185,16 @@ public class GlobalAwardServiceImpl implements GlobalAwardService {
}
@Override
public ContestantDTO getContestantByEmail(String email) {
if (email == null) {
throw new BusinessException("Email is required.");
public ContestantDTO getContestantByID(String id) {
if (id == null) {
throw new BusinessException("id is required.");
}
QueryWrapper<Contestant> qw = new QueryWrapper<>();
qw.eq("email", email);
Contestant existing = contestantMapper.selectOne(qw);
Contestant existing = contestantMapper.selectById(id);
if (existing == null) {
return null;
}
ContestantDTO dto = new ContestantDTO();
dto.setEmail(existing.getEmail());
// dto.setEmail(existing.getEmail());
dto.setFirstName(existing.getFirstName());
dto.setLastName(existing.getLastName());
dto.setGender(existing.getGender());
@@ -251,7 +250,7 @@ public class GlobalAwardServiceImpl implements GlobalAwardService {
String secureToken = UUID.randomUUID().toString().replace("-", "");
redisUtil.addToString(tokenCacheKey + email, secureToken, 3 * 24 * 60 * 60L);
return new CheckOTPVO(secureToken, getContestantByEmail(email));
return new CheckOTPVO(secureToken, getContestantByID(email));
} else {
throw new BusinessException("Verification code is incorrect. Please try again.");
}
@@ -275,7 +274,16 @@ public class GlobalAwardServiceImpl implements GlobalAwardService {
}
// 发送站内信
public void sendSiteMsg(String applicationId, Long userId) {
public void sendSiteMsg(String applicationId, String email) {
Long userId;
QueryWrapper<Account> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Account::getUserEmail, email);
List<Account> accounts = accountMapper.selectList(queryWrapper);
if (accounts.isEmpty()) {
throw new BusinessException("Please register and subscribe to AiDA, then resubmit your application.");
}else {
userId = accounts.get(0).getId();
}
PublishSysNotificationDTO sysNotificationDTO = new PublishSysNotificationDTO();
Notification notification = new Notification();
notification.setType("system");