Skip to content

Commit 742f6fa

Browse files
authored
✨ feat: 인장 재발급 기능 (#49)
1 parent eca1a72 commit 742f6fa

File tree

3 files changed

+33
-2
lines changed

3 files changed

+33
-2
lines changed

app-maple-stamp-api/src/main/java/com/mapletrend/appmaplestampapi/service/StampService.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.awt.image.BufferedImage;
1111
import java.io.ByteArrayOutputStream;
1212
import java.io.IOException;
13+
import java.util.Optional;
1314
import javax.imageio.ImageIO;
1415
import lombok.RequiredArgsConstructor;
1516
import lombok.extern.log4j.Log4j2;
@@ -24,6 +25,7 @@ public class StampService {
2425
private final StampRepository stampRepository;
2526

2627
public byte[] createStampImage(JSONObject jsonObject) {
28+
2729
String invenNickname = (String) jsonObject.get("invenNickname");
2830
String formattedCharacterLevel = (String) jsonObject.get("formattedCharacterLevel");
2931
String formattedBattlePower = (String) jsonObject.get("formattedBattlePower");
@@ -39,6 +41,13 @@ public byte[] createStampImage(JSONObject jsonObject) {
3941
long unionLevel = (long) jsonObject.get("unionLevel");
4042
String battlePower = (String) jsonObject.get("battlePower");
4143

44+
Optional<Stamp> isExistingStamp = stampRepository.findByNexonApiKeyAndInvenNicknameAndCharacterName(
45+
nexonApiKey, invenNickname, characterName);
46+
47+
if (isExistingStamp.isPresent()) {
48+
uuid = isExistingStamp.get().getUuid();
49+
}
50+
4251
int width = 600;
4352
int height = 200;
4453

@@ -123,6 +132,13 @@ public byte[] createStampImage(JSONObject jsonObject) {
123132
.stampImage(bytes)
124133
.build();
125134

135+
if (isExistingStamp.isPresent()) {
136+
Stamp existingStamp = isExistingStamp.get();
137+
existingStamp.updateStamp(ocid, worldName, characterLevel, battlePower, unionLevel, bytes);
138+
log.info("이미 존재하는 스탬프입니다.");
139+
return bytes;
140+
}
141+
126142
stampRepository.save(stamp);
127143

128144
return bytes;

maple-stamp-domain-mariadb/src/main/java/com/mapletrend/maplestampdomainmariadb/entity/Stamp.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class Stamp extends BaseEntity {
3636
@Column(unique = true, length = 45)
3737
private String characterName;
3838

39-
@Column(unique = true, length = 45)
39+
@Column(length = 45)
4040
private String worldName;
4141

4242
private long characterLevel;
@@ -63,4 +63,14 @@ public Stamp(String uuid, String nexonApiKey, String ocid, String invenNickname,
6363
this.unionLevel = unionLevel;
6464
this.stampImage = stampImage;
6565
}
66+
67+
public void updateStamp(String ocid, String worldName, long characterLevel, String battlePower, long unionLevel,
68+
byte[] stampImage) {
69+
this.ocid = ocid;
70+
this.worldName = worldName;
71+
this.characterLevel = characterLevel;
72+
this.battlePower = battlePower;
73+
this.unionLevel = unionLevel;
74+
this.stampImage = stampImage;
75+
}
6676
}
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package com.mapletrend.maplestampdomainmariadb.repository;
22

33
import com.mapletrend.maplestampdomainmariadb.entity.Stamp;
4+
import java.util.Optional;
45
import org.springframework.data.jpa.repository.JpaRepository;
56

67
public interface StampRepository extends JpaRepository<Stamp, Long> {
7-
8+
9+
Optional<Stamp> findByUuid(String uuid);
10+
11+
Optional<Stamp> findByNexonApiKeyAndInvenNicknameAndCharacterName(String apiKey, String invenNickname,
12+
String characterName);
813
}

0 commit comments

Comments
 (0)