|
@@ -3,6 +3,7 @@ package com.izouma.wenlvju.service.performance;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
+import com.izouma.wenlvju.domain.Award;
|
|
|
import com.izouma.wenlvju.domain.performance.Participant;
|
|
import com.izouma.wenlvju.domain.performance.Participant;
|
|
|
import com.izouma.wenlvju.domain.performance.Programme;
|
|
import com.izouma.wenlvju.domain.performance.Programme;
|
|
|
import com.izouma.wenlvju.dto.PageQuery;
|
|
import com.izouma.wenlvju.dto.PageQuery;
|
|
@@ -75,7 +76,7 @@ public class ParticipantService {
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private String createAward(Participant participant, String award) throws IOException {
|
|
|
|
|
|
|
+ public String createAward(Participant participant, String award) throws IOException {
|
|
|
BufferedImage shareImg = ImageIO.read(this.getClass().getResourceAsStream("/static/certificate.jpeg"));
|
|
BufferedImage shareImg = ImageIO.read(this.getClass().getResourceAsStream("/static/certificate.jpeg"));
|
|
|
BufferedImage result = new BufferedImage(1100, 778, BufferedImage.TYPE_INT_RGB);
|
|
BufferedImage result = new BufferedImage(1100, 778, BufferedImage.TYPE_INT_RGB);
|
|
|
Graphics2D g = result.createGraphics();
|
|
Graphics2D g = result.createGraphics();
|
|
@@ -91,7 +92,7 @@ public class ParticipantService {
|
|
|
// int size = Math.min(avatar.getWidth(), avatar.getHeight());
|
|
// int size = Math.min(avatar.getWidth(), avatar.getHeight());
|
|
|
// BufferedImage subImg = avatar
|
|
// BufferedImage subImg = avatar
|
|
|
// .getSubimage((avatar.getWidth() - size) / 2, (avatar.getHeight() - size) / 2, size, size);
|
|
// .getSubimage((avatar.getWidth() - size) / 2, (avatar.getHeight() - size) / 2, size, size);
|
|
|
- BufferedImage avatarImg = new BufferedImage(68 * 2, 78 * 2, BufferedImage.TYPE_INT_ARGB);
|
|
|
|
|
|
|
+ BufferedImage avatarImg = new BufferedImage(68 * 2, 80 * 2, BufferedImage.TYPE_INT_ARGB);
|
|
|
Graphics2D g2 = avatarImg.createGraphics();
|
|
Graphics2D g2 = avatarImg.createGraphics();
|
|
|
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
|
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
|
|
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
|
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
|
@@ -99,9 +100,9 @@ public class ParticipantService {
|
|
|
g2.setComposite(AlphaComposite.SrcOver);
|
|
g2.setComposite(AlphaComposite.SrcOver);
|
|
|
g2.setBackground(Color.GREEN);
|
|
g2.setBackground(Color.GREEN);
|
|
|
// g2.setClip(new Ellipse2D.Float(0, 0, 68 * 2, 76 * 2)); //椭圆
|
|
// g2.setClip(new Ellipse2D.Float(0, 0, 68 * 2, 76 * 2)); //椭圆
|
|
|
- g2.drawImage(avatar, 0, 0, 68 * 2, 78 * 2, null);
|
|
|
|
|
|
|
+ g2.drawImage(avatar, 0, 0, 68 * 2, 160, null);
|
|
|
|
|
|
|
|
- g.drawImage(avatarImg, 420 * 2, 50 * 2, 68 * 2, 78 * 2, null);
|
|
|
|
|
|
|
+ g.drawImage(avatarImg, 420 * 2, 50 * 2, 68 * 2, 160, null);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -129,10 +130,10 @@ public class ParticipantService {
|
|
|
.toOutputStream(out);
|
|
.toOutputStream(out);
|
|
|
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
|
|
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
|
|
|
|
|
|
|
|
- return storageService.uploadFromInputStream(in, "/award/" + participant.getId() + ".jpg");
|
|
|
|
|
|
|
+ return storageService.uploadFromInputStream(in, "award/" + participant.getId() + ".jpg");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public void create(Long programmeId) {
|
|
|
|
|
|
|
+ public void awardByProgrammeId(Long programmeId) {
|
|
|
List<Participant> participants = participantRepo.findAllByProgrammeId(programmeId);
|
|
List<Participant> participants = participantRepo.findAllByProgrammeId(programmeId);
|
|
|
if (ObjectUtil.isNull(participants)) {
|
|
if (ObjectUtil.isNull(participants)) {
|
|
|
return;
|
|
return;
|
|
@@ -154,4 +155,29 @@ public class ParticipantService {
|
|
|
|
|
|
|
|
participantRepo.saveAll(result);
|
|
participantRepo.saveAll(result);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public void awardByAwardId(Long awardId, Long specialtyId, boolean parent) {
|
|
|
|
|
+ String award = awardRepo.findById(awardId).orElseThrow(new BusinessException("无奖项")).getName();
|
|
|
|
|
+ List<Long> programmes;
|
|
|
|
|
+ if (ObjectUtil.isNull(specialtyId)) {
|
|
|
|
|
+ programmes = programmeRepo.findAllByAwardId(awardId);
|
|
|
|
|
+ } else if (parent) {
|
|
|
|
|
+ programmes = programmeRepo.findAllByAwardIdAndParentSpecialtyId(awardId, specialtyId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ programmes = programmeRepo.findAllByAwardIdAndSpecialtyId(awardId, specialtyId);
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Participant> participants = participantRepo.findAllByProgrammeIdIn(programmes);
|
|
|
|
|
+ List<Participant> result = new ArrayList<>();
|
|
|
|
|
+ participants.forEach(participant -> {
|
|
|
|
|
+ if (ObjectUtil.isNull(participant.getAwardImg())) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ participant.setAwardImg(this.createAward(participant, award));
|
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ }
|
|
|
|
|
+ result.add(participant);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ participantRepo.saveAll(result);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|