diff --git a/backend/__debug_bin961456679 b/backend/__debug_bin1230854055
similarity index 94%
rename from backend/__debug_bin961456679
rename to backend/__debug_bin1230854055
index 94df6e2..6603d7e 100755
Binary files a/backend/__debug_bin961456679 and b/backend/__debug_bin1230854055 differ
diff --git a/backend/modules/medias/service.go b/backend/modules/medias/service.go
index a36c9d4..d795874 100644
--- a/backend/modules/medias/service.go
+++ b/backend/modules/medias/service.go
@@ -111,36 +111,38 @@ func (svc *Service) List(ctx context.Context, tenantId, userId int64, filter *Li
tbl := table.Medias
stmt := tbl.
SELECT(tbl.AllColumns).
- WHERE(tbl.TenantID.EQ(Int(tenantId))).
ORDER_BY(tbl.ID.DESC())
+ cond := tbl.TenantID.EQ(Int(tenantId))
if filter.Title != nil && *filter.Title != "" {
- stmt = stmt.WHERE(tbl.Title.LIKE(String("%" + *filter.Title + "%")))
+ cond = cond.AND(tbl.Title.LIKE(String("%" + *filter.Title + "%")))
}
if filter.Bought != nil && *filter.Bought {
if len(boughtIDs) > 0 {
- stmt = stmt.
- WHERE(tbl.ID.IN(lo.Map(boughtIDs, func(item int64, _ int) Expression {
+ cond = cond.
+ AND(tbl.ID.IN(lo.Map(boughtIDs, func(item int64, _ int) Expression {
return Int(item)
})...))
}
} else {
- stmt = stmt.WHERE(tbl.Publish.EQ(Bool(true)))
+ cond = cond.AND(tbl.Publish.EQ(Bool(true)))
}
if filter.OffsetID > 0 {
if filter.Action == 0 {
- stmt = stmt.WHERE(tbl.ID.LT(Int(filter.OffsetID)))
+ cond = cond.AND(tbl.ID.LT(Int(filter.OffsetID)))
stmt = stmt.LIMIT(10)
}
if filter.Action == 1 {
- stmt = stmt.WHERE(tbl.ID.GT(Int(filter.OffsetID)))
+ cond = cond.AND(tbl.ID.GT(Int(filter.OffsetID)))
}
} else {
stmt = stmt.LIMIT(10)
}
+
+ stmt = stmt.WHERE(cond)
log.Debug(stmt.DebugSql())
var dest []model.Medias
diff --git a/frontend/src/components/ChargeCode.vue b/frontend/src/components/ChargeCode.vue
index c9976b0..585a761 100644
--- a/frontend/src/components/ChargeCode.vue
+++ b/frontend/src/components/ChargeCode.vue
@@ -1,5 +1,8 @@
-
+
+
+ 刷新充值码
+
diff --git a/frontend/src/components/List.vue b/frontend/src/components/List.vue
index fd2717e..5ec5e26 100644
--- a/frontend/src/components/List.vue
+++ b/frontend/src/components/List.vue
@@ -1,9 +1,8 @@
-
+
-
@@ -26,6 +25,17 @@ export default defineComponent({
const pageLimit = ref(10);
const offset = ref("");
+ const onSearch = () => {
+ items.value = [];
+ offset.value = "";
+ finished.value = false;
+ loadData();
+ };
+
+ const onSearchCancel = () => {
+ search.value = "";
+ onSearch();
+ };
const loadData = () => {
// request /v1/medias
@@ -34,6 +44,7 @@ export default defineComponent({
action: 0,
limit: pageLimit.value,
bought: props.bought,
+ title: search.value,
};
request
@@ -69,6 +80,8 @@ export default defineComponent({
loading,
finished,
loadData,
+ onSearch,
+ onSearchCancel,
};
},
});
diff --git a/frontend/src/views/PlayView.vue b/frontend/src/views/PlayView.vue
index 87a0433..8906eae 100644
--- a/frontend/src/views/PlayView.vue
+++ b/frontend/src/views/PlayView.vue
@@ -1,20 +1,18 @@
-
+
- 花费 {{ item.price * item.discount / 100 }} 点 立即购买
+ 花费 {{ (item.price * item.discount) / 100 }} 点 立即购买
-
-
@@ -34,7 +32,6 @@
-
@@ -47,118 +44,110 @@ import { onBeforeUnmount, onMounted } from "vue";
const router = useRouter();
const route = useRoute();
-console.log("router: ", router);
-console.log("route: ", route.meta);
-
const item = ref({
title: "加载中...",
-})
+});
const currentTime = ref(0);
const duration = ref(0);
const playing = ref(false);
onBeforeUnmount(() => {
- const player = document.getElementById('video');
+ const player = document.getElementById("video");
if (player && playing.value) {
stop();
}
-})
+});
onMounted(() => {
- console.log(123123)
loadMedia(route.params.hash);
- const player = document.getElementById('video');
- player.addEventListener('timeupdate', updateTime);
- player.addEventListener('loadedmetadata', () => {
+ const player = document.getElementById("video");
+ player.addEventListener("timeupdate", updateTime);
+ player.addEventListener("loadedmetadata", () => {
duration.value = player.duration;
});
- player.addEventListener('ended', function () {
+ player.addEventListener("ended", function () {
console.log("Video ended");
playing.value = false;
});
- player.addEventListener('pause', () => {
+ player.addEventListener("pause", () => {
playing.value = false;
player.currentTime = 0;
currentTime.value = 0;
});
-})
+});
const onClickLeft = () => {
if (route.meta.from?.name) {
- router.back()
+ router.back();
return;
}
router.replace({
- name: 'tab.home',
+ name: "tab.home",
params: {
- tenant: route.params.tenant
- }
+ tenant: route.params.tenant,
+ },
});
};
-
const loadMedia = (hash) => {
- console.log("loadMedia: ", hash);
setTimeout(() => {
request
.get(`/medias/${hash}`)
.then((res) => {
- console.log(res)
+ console.log(res);
item.value = res.data;
})
.catch((err) => {
console.error("ERROR", err);
- })
- }, 1000)
-}
+ });
+ }, 1000);
+};
const play = (hash, type) => {
playing.value = true;
- const player = document.getElementById('video');
- const source = `/v1/medias/${hash}/${type}`
+ const player = document.getElementById("video");
+ const source = `/v1/medias/${hash}/${type}`;
if (Hls.isSupported()) {
var hls = new Hls({
xhrSetup: function (xhr, url) {
- xhr.setRequestHeader('Authorization', 'Bearer ' + __GA);
- }
+ xhr.setRequestHeader("Authorization", "Bearer " + __GA);
+ },
});
hls.loadSource(source);
hls.attachMedia(player);
hls.on(Hls.Events.MANIFEST_PARSED, function () {
player.play();
});
- } else if (player.canPlayType('application/vnd.apple.mpegurl')) {
+ } else if (player.canPlayType("application/vnd.apple.mpegurl")) {
player.src = source;
- player.addEventListener('loadedmetadata', function () {
+ player.addEventListener("loadedmetadata", function () {
player.play();
});
}
-
-}
+};
const updateTime = () => {
- const player = document.getElementById('video');
+ const player = document.getElementById("video");
currentTime.value = player?.currentTime;
};
const stop = () => {
- const player = document.getElementById('video');
+ const player = document.getElementById("video");
if (!player) {
return;
}
player.pause();
player.currentTime = 0;
currentTime.value = 0;
-}
+};
const formatTime = (time) => {
const minutes = Math.floor(time / 60);
const seconds = Math.floor(time % 60);
- return `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
+ return `${minutes}:${seconds < 10 ? "0" : ""}${seconds}`;
};
-
\ No newline at end of file
+
diff --git a/frontend/src/views/tabs/UserView.vue b/frontend/src/views/tabs/UserView.vue
index aafe44f..95ea7aa 100644
--- a/frontend/src/views/tabs/UserView.vue
+++ b/frontend/src/views/tabs/UserView.vue
@@ -1,5 +1,4 @@
-