Skip to content

Commit 19f842c

Browse files
author
jianggang
committed
feat: add targeting publish time
1 parent 91241ca commit 19f842c

File tree

5 files changed

+15
-0
lines changed

5 files changed

+15
-0
lines changed

src/main/java/com/featureprobe/api/dto/TargetingResponse.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,6 @@ public class TargetingResponse {
3535

3636
private String modifiedBy;
3737

38+
private Date publishTime;
39+
3840
}

src/main/java/com/featureprobe/api/entity/Targeting.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
import javax.persistence.EnumType;
2020
import javax.persistence.Enumerated;
2121
import javax.persistence.Table;
22+
import javax.persistence.Temporal;
23+
import javax.persistence.TemporalType;
2224
import javax.persistence.Version;
25+
import java.util.Date;
2326

2427
@EqualsAndHashCode(callSuper = true)
2528
@NoArgsConstructor
@@ -54,6 +57,10 @@ public class Targeting extends AbstractAuditEntity implements TenantSupport {
5457
@Column(columnDefinition = "TEXT")
5558
private String content;
5659

60+
@Temporal(TemporalType.TIMESTAMP)
61+
@Column(name = "publish_time", nullable = false, updatable = false)
62+
private Date publishTime;
63+
5764
@Column(columnDefinition = "TINYINT")
5865
private boolean deleted;
5966

src/main/java/com/featureprobe/api/service/TargetingService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import java.util.Optional;
5858
import java.util.Set;
5959
import java.util.TreeSet;
60+
import java.util.Date;
6061
import java.util.regex.Pattern;
6162
import java.util.stream.Collectors;
6263
import java.util.stream.IntStream;
@@ -282,6 +283,7 @@ public TargetingResponse queryByKey(String projectKey, String environmentKey, St
282283
}
283284
}
284285
targetingResponse.setEnableApproval(environment.isEnableApproval());
286+
targetingResponse.setPublishTime(targeting.getPublishTime());
285287
return targetingResponse;
286288
}
287289

@@ -315,6 +317,7 @@ private TargetingResponse publishTargeting(String projectKey, String environment
315317
saveVariationHistory(updatedTargeting, targetingRequest.getContent());
316318
}
317319
updatedTargeting.setStatus(ToggleReleaseStatusEnum.RELEASE);
320+
updatedTargeting.setPublishTime(new Date());
318321
return TargetingMapper.INSTANCE.entityToResponse(updatedTargeting);
319322
}
320323

src/main/java/com/featureprobe/api/service/ToggleService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ private Targeting createDefaultTargeting(Toggle toggle, Environment environment)
185185
targeting.setContent(TargetingContent.newDefault(toggle).toJson());
186186
targeting.setToggleKey(toggle.getKey());
187187
targeting.setEnvironmentKey(environment.getKey());
188+
targeting.setPublishTime(new Date());
188189
return targeting;
189190
}
190191

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
alter table targeting add publish_time datetime not null after `deleted`;
2+
UPDATE targeting t SET publish_time = (SELECT (case when count(id) > 0 then tv.created_time else now() end) from targeting_version tv where tv.organization_id = t.organization_id AND tv.project_key = t.project_key AND tv.environment_key=t.environment_key AND tv.toggle_key=t.toggle_key ORDER BY tv.version desc LIMIT 1)

0 commit comments

Comments
 (0)