diff --git a/java/src/main/java/vip/xumy/idle/server/ctrl/ArchiveController.java b/java/src/main/java/vip/xumy/idle/server/ctrl/ArchiveController.java index 4c7bd31..507ad93 100644 --- a/java/src/main/java/vip/xumy/idle/server/ctrl/ArchiveController.java +++ b/java/src/main/java/vip/xumy/idle/server/ctrl/ArchiveController.java @@ -43,7 +43,7 @@ public class ArchiveController { if (archive == null) { return new BaseResponse(false, "未查询到你的存档"); } - return new BaseResponse(true, archive.getArchive()); + return new BaseResponse(archive.getArchive()); } } diff --git a/java/src/main/java/vip/xumy/idle/server/mapper/IArchiveMapper.java b/java/src/main/java/vip/xumy/idle/server/mapper/IArchiveMapper.java index 5ffcff3..5fdc624 100644 --- a/java/src/main/java/vip/xumy/idle/server/mapper/IArchiveMapper.java +++ b/java/src/main/java/vip/xumy/idle/server/mapper/IArchiveMapper.java @@ -1,18 +1,33 @@ package vip.xumy.idle.server.mapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Update; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import vip.xumy.idle.server.pojo.Archive; -/** Ownership belongs to the company +/** + * Ownership belongs to the company * - * @author:mengyxu - * @date:2025年5月19日 + * @author:mengyxu + * @date:2025年5月19日 */ @Mapper public interface IArchiveMapper extends BaseMapper { + @Update(""" + UPDATE archive + SET + lv = #{lv}, + coins = #{coins}, + strengthen_lv= #{strengthenLv} , + archive = #{archive} + WHERE + username = #{username} + and version = #{version} + """) + void update(Archive archive); + } diff --git a/java/src/main/java/vip/xumy/idle/server/pojo/Archive.java b/java/src/main/java/vip/xumy/idle/server/pojo/Archive.java index b22f33a..65e8f70 100644 --- a/java/src/main/java/vip/xumy/idle/server/pojo/Archive.java +++ b/java/src/main/java/vip/xumy/idle/server/pojo/Archive.java @@ -21,6 +21,7 @@ public class Archive { private String version; private int lv; private long coins; + private int strengthenLv; private String archive; } diff --git a/java/src/main/java/vip/xumy/idle/server/service/ArchiveService.java b/java/src/main/java/vip/xumy/idle/server/service/ArchiveService.java index 017201a..16fb66a 100644 --- a/java/src/main/java/vip/xumy/idle/server/service/ArchiveService.java +++ b/java/src/main/java/vip/xumy/idle/server/service/ArchiveService.java @@ -8,26 +8,27 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import vip.xumy.idle.server.mapper.IArchiveMapper; import vip.xumy.idle.server.pojo.Archive; -/** Ownership belongs to the company +/** + * Ownership belongs to the company * - * @author:mengyxu - * @date:2025年5月19日 + * @author:mengyxu + * @date:2025年5月19日 */ @Service public class ArchiveService { @Autowired private IArchiveMapper archiveMapper; - + public void saveOrUpdate(Archive archive) { Archive exit = getByKey(archive.getUsername(), archive.getVersion()); - if(exit == null) { + if (exit == null) { archiveMapper.insert(archive); - }else { - archiveMapper.updateById(archive); + } else { + archiveMapper.update(archive); } } - + public Archive getByKey(String username, String version) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("username", username); diff --git a/src/api/index.ts b/src/api/index.ts index 77350fa..490dfb5 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -16,6 +16,6 @@ export const getUser = () => { export const uploadArchive = (archive) => { return post(urls.archive, archive); }; -export const downArchive = () => { - return get(urls.archive); +export const downArchive = (param) => { + return get(urls.archive, param); }; diff --git a/src/views/archive.vue b/src/views/archive.vue index 3c4649c..099d754 100644 --- a/src/views/archive.vue +++ b/src/views/archive.vue @@ -38,6 +38,15 @@ const showArchive = computed(() => { const archive = ref(''); const key = 'KUf4hM5rThssysJhcRFCfxLR8Imihjl0eMsyhh1M7Wk'; let timeOut = 0; +const strengthenLv = computed(() => { + const player = state.playerAttribute; + const equips = [player.weapon, player.armor, player.neck, player.ring, player.jewelry, player.pants, player.shoes, player.bracers]; + let lv = 0; + equips.forEach(equip => { + equip && (lv += equip.strengthenLv) + }) + return lv; +}); const showMenu = () => { if (showArchive.value) { @@ -74,7 +83,7 @@ const uploadArchive = () => { API.getUser().then(user => { if (user) { const palyer = state.playerAttribute.attribute; - const data = { version: archive_version, lv: palyer.lv, coins: palyer.coins, archive: archive.value } + const data = { version: archive_version, lv: palyer.lv, coins: palyer.coins, strengthenLv: strengthenLv.value, archive: archive.value } API.uploadArchive(data).then(rsp => rsp && showMenu()); } else { state.showLogin = true; @@ -85,7 +94,12 @@ const uploadArchive = () => { const downArchive = () => { API.getUser().then(user => { if (user) { - API.downArchive().then(rsp => rsp && showMenu()); + API.downArchive({ version: archive_version }).then((rsp: any) => { + if (rsp) { + archive.value = rsp; + importArchive(); + } + }); } else { state.showLogin = true; } diff --git a/src/views/login.vue b/src/views/login.vue index ea4d521..f4557e5 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -8,7 +8,7 @@
{{ t('login.2') }}:
-
+
@@ -27,21 +27,21 @@ const { t } = useI18n(); const { state, commit, dispatch } = useStore(); const user = reactive({ username: '', - passowrd: '', + password: '', }) const login = () => { const username = user.username; - const passowrd = user.passowrd; + const password = user.password; if (!username) { commit('set_sys_info', { msg: t('login.4'), type: 'warning' }) return; } - if (!passowrd) { + if (!password) { commit('set_sys_info', { msg: t('login.5'), type: 'warning' }) return; } - const param = { username: username, passowrd: MD5(passowrd) }; + const param = { username: username, password: MD5(password) }; loginOrRegister(param).then(rsp => { rsp && (state.showLogin = false); })