mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-23 06:30:48 +08:00
Compare commits
1 Commits
codex/add-
...
codex/add-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1076d7256 |
@@ -6,7 +6,7 @@ import com.openisle.repository.ActivityRepository;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.boot.CommandLineRunner;
|
import org.springframework.boot.CommandLineRunner;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -29,9 +29,10 @@ public class ActivityInitializer implements CommandLineRunner {
|
|||||||
Activity a = new Activity();
|
Activity a = new Activity();
|
||||||
a.setTitle("🎁邀请码送积分活动");
|
a.setTitle("🎁邀请码送积分活动");
|
||||||
a.setType(ActivityType.INVITE_POINTS);
|
a.setType(ActivityType.INVITE_POINTS);
|
||||||
a.setIcon("https://icons.veryicon.com/png/o/commerce-shopping/two-color-icon-library/gift-30.png");
|
a.setIcon("https://img.icons8.com/color/96/gift.png");
|
||||||
a.setContent("活动期间,邀请好友注册可获得积分奖励,快来参与吧!");
|
a.setContent("使用邀请码注册或邀请好友即可获得积分奖励,快来参与吧!");
|
||||||
a.setEndTime(LocalDateTime.of(2025, 10, 1, 0, 0));
|
a.setStartTime(LocalDateTime.now());
|
||||||
|
a.setEndTime(LocalDate.of(LocalDate.now().getYear(), 10, 1).atStartOfDay());
|
||||||
activityRepository.save(a);
|
activityRepository.save(a);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<ActivityPopup
|
|
||||||
:visible="showInvitePointsPopup"
|
|
||||||
:icon="invitePointsIcon"
|
|
||||||
text="邀请码送积分活动火热进行中,快来邀请好友吧!"
|
|
||||||
@close="closeInvitePointsPopup"
|
|
||||||
/>
|
|
||||||
<ActivityPopup
|
<ActivityPopup
|
||||||
:visible="showMilkTeaPopup"
|
:visible="showMilkTeaPopup"
|
||||||
:icon="milkTeaIcon"
|
:icon="milkTeaIcon"
|
||||||
@@ -26,8 +20,6 @@ import { authState } from '~/utils/auth'
|
|||||||
const config = useRuntimeConfig()
|
const config = useRuntimeConfig()
|
||||||
const API_BASE_URL = config.public.apiBaseUrl
|
const API_BASE_URL = config.public.apiBaseUrl
|
||||||
|
|
||||||
const showInvitePointsPopup = ref(false)
|
|
||||||
const invitePointsIcon = ref('')
|
|
||||||
const showMilkTeaPopup = ref(false)
|
const showMilkTeaPopup = ref(false)
|
||||||
const milkTeaIcon = ref('')
|
const milkTeaIcon = ref('')
|
||||||
const showNotificationPopup = ref(false)
|
const showNotificationPopup = ref(false)
|
||||||
@@ -35,9 +27,6 @@ const showMedalPopup = ref(false)
|
|||||||
const newMedals = ref([])
|
const newMedals = ref([])
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await checkInvitePointsActivity()
|
|
||||||
if (showInvitePointsPopup.value) return
|
|
||||||
|
|
||||||
await checkMilkTeaActivity()
|
await checkMilkTeaActivity()
|
||||||
if (showMilkTeaPopup.value) return
|
if (showMilkTeaPopup.value) return
|
||||||
|
|
||||||
@@ -70,29 +59,6 @@ const closeMilkTeaPopup = () => {
|
|||||||
showMilkTeaPopup.value = false
|
showMilkTeaPopup.value = false
|
||||||
checkNotificationSetting()
|
checkNotificationSetting()
|
||||||
}
|
}
|
||||||
const checkInvitePointsActivity = async () => {
|
|
||||||
if (!process.client) return
|
|
||||||
if (localStorage.getItem('invitePointsActivityPopupShown')) return
|
|
||||||
try {
|
|
||||||
const res = await fetch(`${API_BASE_URL}/api/activities`)
|
|
||||||
if (res.ok) {
|
|
||||||
const list = await res.json()
|
|
||||||
const a = list.find((i) => i.type === 'INVITE_POINTS' && !i.ended)
|
|
||||||
if (a) {
|
|
||||||
invitePointsIcon.value = a.icon
|
|
||||||
showInvitePointsPopup.value = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
// ignore network errors
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const closeInvitePointsPopup = () => {
|
|
||||||
if (!process.client) return
|
|
||||||
localStorage.setItem('invitePointsActivityPopupShown', 'true')
|
|
||||||
showInvitePointsPopup.value = false
|
|
||||||
checkMilkTeaActivity()
|
|
||||||
}
|
|
||||||
const checkNotificationSetting = async () => {
|
const checkNotificationSetting = async () => {
|
||||||
if (!process.client) return
|
if (!process.client) return
|
||||||
if (!authState.loggedIn) return
|
if (!authState.loggedIn) return
|
||||||
|
|||||||
Reference in New Issue
Block a user