diff --git a/RuoYi-Vue/.github/FUNDING.yml b/RuoYi-Vue/.github/FUNDING.yml deleted file mode 100644 index fbcab77..0000000 --- a/RuoYi-Vue/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -custom: http://doc.ruoyi.vip/ruoyi-vue/other/donate.html diff --git a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomController.java b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomController.java index be69b83..2d34eaa 100644 --- a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomController.java +++ b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.scoring; +import java.util.Collections; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.springframework.security.access.prepost.PreAuthorize; @@ -60,15 +61,32 @@ public class ScoreRoomController extends BaseController } /** - * 获取【请填写功能名称】详细信息 + * 获取【roomId】详细信息 */ @PreAuthorize("@ss.hasPermi('system:room:query')") - @GetMapping(value = "/{roomId}") + @GetMapping(value = "/id/{roomId}") public AjaxResult getInfo(@PathVariable("roomId") Long roomId) { return success(scoreRoomService.selectScoreRoomByRoomId(roomId)); } + + /** + * 获取【createUser】详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:room:query1')") + @GetMapping(value = "/createUser/{createUser}") + public AjaxResult getByCreateUser(@PathVariable("createUser") Long createUser) + { + List rooms = scoreRoomService.selectScoreRoomBycreateUser(createUser); + if (rooms == null || rooms.isEmpty()) { + return AjaxResult.success("无历史记录,创建新房间", Collections.emptyList()); + } + return AjaxResult.success(rooms); + } + + + /** * 新增【请填写功能名称】 */ diff --git a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomDetailController.java b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomDetailController.java index 7095100..1741830 100644 --- a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomDetailController.java +++ b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomDetailController.java @@ -75,9 +75,9 @@ public class ScoreRoomDetailController extends BaseController @PreAuthorize("@ss.hasPermi('system:detail:add')") @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody ScoreRoomDetail scoreRoomDetail) + public AjaxResult add(@RequestBody List scoreRoomDetails) { - return toAjax(scoreRoomDetailService.insertScoreRoomDetail(scoreRoomDetail)); + return toAjax(scoreRoomDetailService.insertScoreRoomDetail(scoreRoomDetails)); } /** diff --git a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomUserController.java b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomUserController.java index e95747e..af88666 100644 --- a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomUserController.java +++ b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreRoomUserController.java @@ -34,6 +34,20 @@ public class ScoreRoomUserController extends BaseController @Autowired private IScoreRoomUserService scoreRoomUserService; + /** + * 获取房间内所有用户及其详细对局记录 + */ + @GetMapping("/user-details/{roomId}") + public AjaxResult getUserScoresWithDetails(@PathVariable("roomId") Long roomId) { + try { + List result = scoreRoomUserService.getUserScoresWithDetails(roomId); + return AjaxResult.success(result); + } catch (Exception e) { + logger.error("查询房间{}用户得分详情失败", roomId, e); + return AjaxResult.error("查询失败: " + e.getMessage()); + } + } + /** * 查询【请填写功能名称】列表 */ @@ -62,13 +76,26 @@ public class ScoreRoomUserController extends BaseController /** * 获取【请填写功能名称】详细信息 */ - @PreAuthorize("@ss.hasPermi('system:user:query')") - @GetMapping(value = "/{roomUserId}") - public AjaxResult getInfo(@PathVariable("roomUserId") Long roomUserId) + @PreAuthorize("@ss.hasPermi('system:user:query1')") + @GetMapping(value = "/userid/{UserId}") + public AjaxResult getInfo(@PathVariable("UserId") Long UserId) { - return success(scoreRoomUserService.selectScoreRoomUserByRoomUserId(roomUserId)); + return success(scoreRoomUserService.selectScoreRoomUserByUserId(UserId)); } + + /** + * 获取【请填写功能名称】详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:user:query')") + @GetMapping(value = "/RoomUserId/{RoomUserId}") + public AjaxResult getInfo1(@PathVariable("RoomUserId") Long RoomUserId) + { + return success(scoreRoomUserService.selectScoreRoomUserByRoomUserId(RoomUserId)); + } + + + /** * 新增【请填写功能名称】 */ @@ -83,12 +110,18 @@ public class ScoreRoomUserController extends BaseController /** * 修改【请填写功能名称】 */ - @PreAuthorize("@ss.hasPermi('system:user:edit')") + @PreAuthorize("@ss.hasPermi('system:user:edit1')") @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody ScoreRoomUser scoreRoomUser) + public AjaxResult edit(@RequestBody List scoreRoomUsers) { - return toAjax(scoreRoomUserService.updateScoreRoomUser(scoreRoomUser)); + try { + int result = scoreRoomUserService.updateScoreRoomUser(scoreRoomUsers); + return AjaxResult.success("得分提交成功!", result); + } catch (Exception e) { + logger.error("得分提交成功: {}", e.getMessage()); + return AjaxResult.error("得分提交成功: " + e.getMessage()); + } } /** @@ -96,7 +129,7 @@ public class ScoreRoomUserController extends BaseController */ @PreAuthorize("@ss.hasPermi('system:user:remove')") @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{roomUserIds}") + @DeleteMapping("/{roomUserIds}") public AjaxResult remove(@PathVariable Long[] roomUserIds) { return toAjax(scoreRoomUserService.deleteScoreRoomUserByRoomUserIds(roomUserIds)); diff --git a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreUserController.java b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreUserController.java index 6706f4d..00c9749 100644 --- a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreUserController.java +++ b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/scoring/ScoreUserController.java @@ -1,6 +1,8 @@ package com.ruoyi.web.controller.scoring; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletResponse; import com.ruoyi.utils.SimpleResult; @@ -66,7 +68,7 @@ public class ScoreUserController extends BaseController */ @PreAuthorize("@ss.hasPermi('system:user:query')") @GetMapping(value = "/{userId}") - public AjaxResult getInfo(@PathVariable("userId") Long userId) + public AjaxResult getInfo(@PathVariable("userId") String userId) { return success(scoreUserService.selectScoreUserByUserId(userId)); } @@ -79,7 +81,19 @@ public class ScoreUserController extends BaseController @PostMapping public AjaxResult add(@RequestBody ScoreUser scoreUser) { - return toAjax(scoreUserService.insertScoreUser(scoreUser)); + try { + ScoreUser newUser = scoreUserService.insertScoreUser(scoreUser); + // 构建返回数据 + Map data = new HashMap<>(); + data.put("userId", newUser.getUserId()); + data.put("nickName", newUser.getNickName()); + data.put("avatars", newUser.getAvatars()); + data.put("openId", newUser.getOpenId()); + return AjaxResult.success("用户添加成功", data); + + } catch (Exception e) { + return AjaxResult.error("用户添加失败: " + e.getMessage()); + } } /** diff --git a/RuoYi-Vue/ruoyi-system/pom.xml b/RuoYi-Vue/ruoyi-system/pom.xml index 53b6309..4730e69 100644 --- a/RuoYi-Vue/ruoyi-system/pom.xml +++ b/RuoYi-Vue/ruoyi-system/pom.xml @@ -31,6 +31,10 @@ okhttp 4.11.0 + + org.springframework + spring-webmvc + diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoom.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoom.java index d8d9cfa..17d9322 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoom.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoom.java @@ -32,7 +32,10 @@ public class ScoreRoom extends BaseEntity /** 房主id */ @Excel(name = "房主id") - private Long boosId; + private Long bossId; + + @Excel(name = "房间名称") + private String roomName; public void setRoomId(Long roomId) { @@ -74,14 +77,22 @@ public class ScoreRoom extends BaseEntity return roomStatus; } - public void setBoosId(Long boosId) + public void setBossId(Long bossId) { - this.boosId = boosId; + this.bossId = bossId; } - public Long getBoosId() + public Long getBossId() { - return boosId; + return bossId; + } + + public String getRoomName() { + return roomName; + } + + public void setRoomName(String roomName) { + this.roomName = roomName; } @Override @@ -91,7 +102,8 @@ public class ScoreRoom extends BaseEntity .append("createUser", getCreateUser()) .append("odds", getOdds()) .append("roomStatus", getRoomStatus()) - .append("boosId", getBoosId()) + .append("roomName", getRoomName()) + .append("bossId", getBossId()) .toString(); } } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomDetail.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomDetail.java index b0f26e8..318d9e3 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomDetail.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomDetail.java @@ -30,7 +30,7 @@ public class ScoreRoomDetail extends BaseEntity /** 详情分数 */ @Excel(name = "详情分数") - private Long score; + private Long detailScore; /** 触发时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -41,9 +41,17 @@ public class ScoreRoomDetail extends BaseEntity @Excel(name = "0 胜 1 负") private Long detailType; - /** 目标玩家id 多人模式给分使用 */ - @Excel(name = "目标玩家id 多人模式给分使用") - private Long getterId; + /** 局次 */ + @Excel(name = "局次") + private Long gameTime; + + public Long getGameTime() { + return gameTime; + } + + public void setGameTime(Long gameTime) { + this.gameTime = gameTime; + } public void setDetailId(Long detailId) { @@ -75,16 +83,6 @@ public class ScoreRoomDetail extends BaseEntity return userId; } - public void setScore(Long score) - { - this.score = score; - } - - public Long getScore() - { - return score; - } - public void setCreatedTime(Date createdTime) { this.createdTime = createdTime; @@ -105,15 +103,6 @@ public class ScoreRoomDetail extends BaseEntity return detailType; } - public void setGetterId(Long getterId) - { - this.getterId = getterId; - } - - public Long getGetterId() - { - return getterId; - } @Override public String toString() { @@ -121,10 +110,18 @@ public class ScoreRoomDetail extends BaseEntity .append("detailId", getDetailId()) .append("roomId", getRoomId()) .append("userId", getUserId()) - .append("score", getScore()) + .append("detailScore", getDetailScore()) .append("createdTime", getCreatedTime()) .append("detailType", getDetailType()) - .append("getterId", getGetterId()) + .append("gameTime", getGameTime()) .toString(); } + + public Long getDetailScore() { + return detailScore; + } + + public void setDetailScore(Long detailScore) { + this.detailScore = detailScore; + } } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomUser.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomUser.java index 319d64a..dee47e9 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomUser.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreRoomUser.java @@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.util.List; + /** * 【请填写功能名称】对象 score_room_user * @@ -28,7 +30,7 @@ public class ScoreRoomUser extends BaseEntity /** 得分 */ @Excel(name = "得分") - private Long score; + private Long totalScore; /** 三个值 {'user', 'boot', 'business'} */ @Excel(name = "三个值 {'user', 'boot', 'business'}") @@ -42,6 +44,17 @@ public class ScoreRoomUser extends BaseEntity @Excel(name = "玩家头像") private String avatars; + // 详细对局记录 + private List details; + + public List getDetails() { + return details; + } + + public void setDetails(List details) { + this.details = details; + } + public void setRoomUserId(Long roomUserId) { this.roomUserId = roomUserId; @@ -72,16 +85,6 @@ public class ScoreRoomUser extends BaseEntity return userId; } - public void setScore(Long score) - { - this.score = score; - } - - public Long getScore() - { - return score; - } - public void setPlayerType(String playerType) { this.playerType = playerType; @@ -118,10 +121,19 @@ public class ScoreRoomUser extends BaseEntity .append("roomUserId", getRoomUserId()) .append("roomId", getRoomId()) .append("userId", getUserId()) - .append("score", getScore()) + .append("totalScore", getTotalScore()) .append("playerType", getPlayerType()) .append("nickName", getNickName()) .append("avatars", getAvatars()) + .append("details", getDetails()) .toString(); } + + public Long getTotalScore() { + return totalScore; + } + + public void setTotalScore(Long totalScore) { + this.totalScore = totalScore; + } } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreUser.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreUser.java index 983de7a..11f7695 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreUser.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/domain/ScoreUser.java @@ -16,7 +16,7 @@ public class ScoreUser extends BaseEntity private static final long serialVersionUID = 1L; /** 用户id */ - private Long userId; + private String userId; /** 微信id */ @Excel(name = "微信id") @@ -30,12 +30,12 @@ public class ScoreUser extends BaseEntity @Excel(name = "用户头像") private String avatars; - public void setUserId(Long userId) + public void setUserId(String userId) { this.userId = userId; } - public Long getUserId() + public String getUserId() { return userId; } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomDetailMapper.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomDetailMapper.java index ed61aef..f3308f6 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomDetailMapper.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomDetailMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.mapper; import java.util.List; import com.ruoyi.system.domain.ScoreRoomDetail; +import org.apache.ibatis.annotations.Param; /** * 【请填写功能名称】Mapper接口 @@ -30,10 +31,10 @@ public interface ScoreRoomDetailMapper /** * 新增【请填写功能名称】 * - * @param scoreRoomDetail 【请填写功能名称】 + * @param scoreRoomDetails 【请填写功能名称】 * @return 结果 */ - public int insertScoreRoomDetail(ScoreRoomDetail scoreRoomDetail); + public int insertScoreRoomDetail(@Param("scoreRoomDetails") List scoreRoomDetails); /** * 修改【请填写功能名称】 diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomMapper.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomMapper.java index 3f1b361..1f47d08 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomMapper.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomMapper.java @@ -58,4 +58,8 @@ public interface ScoreRoomMapper * @return 结果 */ public int deleteScoreRoomByRoomIds(Long[] roomIds); + + + + public List selectScoreRoomBycreateUser(Long createUser); } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomUserMapper.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomUserMapper.java index f5c99b8..0ca97c9 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomUserMapper.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreRoomUserMapper.java @@ -2,6 +2,7 @@ package com.ruoyi.system.mapper; import java.util.List; import com.ruoyi.system.domain.ScoreRoomUser; +import org.apache.ibatis.annotations.Param; /** * 【请填写功能名称】Mapper接口 @@ -19,6 +20,20 @@ public interface ScoreRoomUserMapper */ public ScoreRoomUser selectScoreRoomUserByRoomUserId(Long roomUserId); + + /** + * 查询【请填写功能名称】 + * + * @param UserId 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + public ScoreRoomUser selectScoreRoomUserByUserId(Long UserId); + + + + public ScoreRoomUser selectScoreRoomUserPrescore(@Param("userId") Long UserId, @Param("roomId") Long RoomId); + + /** * 查询【请填写功能名称】列表 * @@ -27,6 +42,7 @@ public interface ScoreRoomUserMapper */ public List selectScoreRoomUserList(ScoreRoomUser scoreRoomUser); + /** * 新增【请填写功能名称】 * @@ -35,13 +51,7 @@ public interface ScoreRoomUserMapper */ public int insertScoreRoomUser(ScoreRoomUser scoreRoomUser); - /** - * 修改【请填写功能名称】 - * - * @param scoreRoomUser 【请填写功能名称】 - * @return 结果 - */ - public int updateScoreRoomUser(ScoreRoomUser scoreRoomUser); + public int updateScoreRoomUser(@Param("scoreRoomUsers") List scoreRoomUsers); /** * 删除【请填写功能名称】 @@ -58,4 +68,10 @@ public interface ScoreRoomUserMapper * @return 结果 */ public int deleteScoreRoomUserByRoomUserIds(Long[] roomUserIds); + + /** + * 通过JOIN查询获取房间内所有用户及其详细对局记录 + */ + public List selectUserScoresWithDetails(Long roomId); + } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreUserMapper.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreUserMapper.java index aa1e188..77f4878 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreUserMapper.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ScoreUserMapper.java @@ -17,7 +17,7 @@ public interface ScoreUserMapper * @param userId 【请填写功能名称】主键 * @return 【请填写功能名称】 */ - public ScoreUser selectScoreUserByUserId(Long userId); + public ScoreUser selectScoreUserByUserId(String userId); /** * 查询【请填写功能名称】列表 diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomDetailService.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomDetailService.java index 1535cef..8f64a64 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomDetailService.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomDetailService.java @@ -30,10 +30,10 @@ public interface IScoreRoomDetailService /** * 新增【请填写功能名称】 * - * @param scoreRoomDetail 【请填写功能名称】 + * @param scoreRoomDetails 【请填写功能名称】 * @return 结果 */ - public int insertScoreRoomDetail(ScoreRoomDetail scoreRoomDetail); + public int insertScoreRoomDetail(List scoreRoomDetails); /** * 修改【请填写功能名称】 diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomService.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomService.java index 33d6d7b..8cb5a01 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomService.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomService.java @@ -58,4 +58,5 @@ public interface IScoreRoomService * @return 结果 */ public int deleteScoreRoomByRoomId(Long roomId); + public List selectScoreRoomBycreateUser(Long createUser); } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomUserService.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomUserService.java index e9c5c6d..2c64d1a 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomUserService.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreRoomUserService.java @@ -2,6 +2,7 @@ package com.ruoyi.system.service; import java.util.List; import com.ruoyi.system.domain.ScoreRoomUser; +import io.lettuce.core.dynamic.annotation.Param; /** * 【请填写功能名称】Service接口 @@ -19,6 +20,16 @@ public interface IScoreRoomUserService */ public ScoreRoomUser selectScoreRoomUserByRoomUserId(Long roomUserId); + + /** + * 查询【请填写功能名称】 + * + * @param UserId 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + public ScoreRoomUser selectScoreRoomUserByUserId(Long UserId); + + /** * 查询【请填写功能名称】列表 * @@ -27,6 +38,13 @@ public interface IScoreRoomUserService */ public List selectScoreRoomUserList(ScoreRoomUser scoreRoomUser); + /** + * 查询【请填写功能名称】列表 + * + * @param roomId 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + public List getUserScoresWithDetails(Long roomId); /** * 新增【请填写功能名称】 * @@ -35,13 +53,8 @@ public interface IScoreRoomUserService */ public int insertScoreRoomUser(ScoreRoomUser scoreRoomUser); - /** - * 修改【请填写功能名称】 - * - * @param scoreRoomUser 【请填写功能名称】 - * @return 结果 - */ - public int updateScoreRoomUser(ScoreRoomUser scoreRoomUser); + + public int updateScoreRoomUser(List scoreRoomUsers); /** * 批量删除【请填写功能名称】 diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreUserService.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreUserService.java index aed4d16..a87fde4 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreUserService.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/IScoreUserService.java @@ -17,7 +17,7 @@ public interface IScoreUserService * @param userId 【请填写功能名称】主键 * @return 【请填写功能名称】 */ - public ScoreUser selectScoreUserByUserId(Long userId); + public ScoreUser selectScoreUserByUserId(String userId); /** * 查询【请填写功能名称】列表 @@ -33,8 +33,7 @@ public interface IScoreUserService * @param scoreUser 【请填写功能名称】 * @return 结果 */ - public int insertScoreUser(ScoreUser scoreUser); - + public ScoreUser insertScoreUser(ScoreUser scoreUser); /** * 修改【请填写功能名称】 * diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomDetailServiceImpl.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomDetailServiceImpl.java index e2ed06f..f0f5676 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomDetailServiceImpl.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomDetailServiceImpl.java @@ -46,13 +46,13 @@ public class ScoreRoomDetailServiceImpl implements IScoreRoomDetailService /** * 新增【请填写功能名称】 * - * @param scoreRoomDetail 【请填写功能名称】 + * @param scoreRoomDetails 【请填写功能名称】 * @return 结果 */ @Override - public int insertScoreRoomDetail(ScoreRoomDetail scoreRoomDetail) + public int insertScoreRoomDetail(List scoreRoomDetails) { - return scoreRoomDetailMapper.insertScoreRoomDetail(scoreRoomDetail); + return scoreRoomDetailMapper.insertScoreRoomDetail(scoreRoomDetails); } /** diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomServiceImpl.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomServiceImpl.java index d8ef4e1..e51b258 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomServiceImpl.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomServiceImpl.java @@ -31,6 +31,18 @@ public class ScoreRoomServiceImpl implements IScoreRoomService return scoreRoomMapper.selectScoreRoomByRoomId(roomId); } + /** + * 查询【请填写功能名称】 + * + * @param createUser 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + @Override + public List selectScoreRoomBycreateUser(Long createUser) + { + return scoreRoomMapper.selectScoreRoomBycreateUser(createUser); + } + /** * 查询【请填写功能名称】列表 * @@ -52,6 +64,8 @@ public class ScoreRoomServiceImpl implements IScoreRoomService @Override public int insertScoreRoom(ScoreRoom scoreRoom) { +// List newRoom = scoreRoomMapper.selectScoreRoomList(scoreRoom); + return scoreRoomMapper.insertScoreRoom(scoreRoom); } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomUserServiceImpl.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomUserServiceImpl.java index 1a1ff45..b91f1e0 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomUserServiceImpl.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreRoomUserServiceImpl.java @@ -1,6 +1,10 @@ package com.ruoyi.system.service.impl; +import java.util.ArrayList; +import java.util.Date; import java.util.List; + +import io.lettuce.core.dynamic.annotation.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.ScoreRoomUserMapper; @@ -31,6 +35,20 @@ public class ScoreRoomUserServiceImpl implements IScoreRoomUserService return scoreRoomUserMapper.selectScoreRoomUserByRoomUserId(roomUserId); } + /** + * 查询【请填写功能名称】 + * + * @param UserId 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + @Override + public ScoreRoomUser selectScoreRoomUserByUserId(Long UserId) + { + return scoreRoomUserMapper.selectScoreRoomUserByUserId(UserId); + } + + + /** * 查询【请填写功能名称】列表 * @@ -43,6 +61,17 @@ public class ScoreRoomUserServiceImpl implements IScoreRoomUserService return scoreRoomUserMapper.selectScoreRoomUserList(scoreRoomUser); } + /** + * 查询【请填写功能名称】列表 + * + * @param roomId 【请填写功能名称】 + * @return 【请填写功能名称】 + */ + @Override + public List getUserScoresWithDetails(Long roomId) { + return scoreRoomUserMapper.selectUserScoresWithDetails(roomId); + } + /** * 新增【请填写功能名称】 * @@ -55,16 +84,53 @@ public class ScoreRoomUserServiceImpl implements IScoreRoomUserService return scoreRoomUserMapper.insertScoreRoomUser(scoreRoomUser); } - /** - * 修改【请填写功能名称】 - * - * @param scoreRoomUser 【请填写功能名称】 - * @return 结果 - */ + @Override - public int updateScoreRoomUser(ScoreRoomUser scoreRoomUser) + public int updateScoreRoomUser(List scoreRoomUsers) { - return scoreRoomUserMapper.updateScoreRoomUser(scoreRoomUser); + List updatedUsers = new ArrayList<>(); + + for (ScoreRoomUser playerScore: scoreRoomUsers){ + // 处理单个用户的得分累加 + ScoreRoomUser updatedUser = processUserScoreUpdate(playerScore); + updatedUsers.add(updatedUser); + } + + return scoreRoomUserMapper.updateScoreRoomUser(updatedUsers); + } + + private ScoreRoomUser processUserScoreUpdate(ScoreRoomUser newScore) { + // 1. 首先检查用户是否已在房间中 + ScoreRoomUser existingUser = scoreRoomUserMapper.selectScoreRoomUserPrescore(newScore.getUserId(), newScore.getRoomId()); + + Long newTotalScore; + ScoreRoomUser userToUpdate; + + if (existingUser == null) { + // 用户不在房间中,创建新记录 + userToUpdate = new ScoreRoomUser(); + userToUpdate.setRoomId(newScore.getRoomId()); + userToUpdate.setUserId(newScore.getUserId()); + userToUpdate.setPlayerType("user"); + userToUpdate.setNickName(newScore.getNickName()); + userToUpdate.setTotalScore(newScore.getTotalScore() != null ? newScore.getTotalScore() : 0L); + + // 插入新记录 + scoreRoomUserMapper.insertScoreRoomUser(userToUpdate); + return userToUpdate; + } else { + // 2. 存在记录:历史总分 + 本次得分 + Long currentScore = existingUser.getTotalScore() != null ? existingUser.getTotalScore() : 0L; + Long additionalScore = newScore.getTotalScore() != null ? newScore.getTotalScore() : 0L; + + newTotalScore = currentScore + additionalScore; + + // 使用现有记录进行更新 + userToUpdate = existingUser; + userToUpdate.setTotalScore(newTotalScore); + + return userToUpdate; + } } /** @@ -90,4 +156,7 @@ public class ScoreRoomUserServiceImpl implements IScoreRoomUserService { return scoreRoomUserMapper.deleteScoreRoomUserByRoomUserId(roomUserId); } + + + } diff --git a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreUserServiceImpl.java b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreUserServiceImpl.java index 83357e6..694ed9a 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreUserServiceImpl.java +++ b/RuoYi-Vue/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ScoreUserServiceImpl.java @@ -27,7 +27,7 @@ public class ScoreUserServiceImpl implements IScoreUserService * @return 【请填写功能名称】 */ @Override - public ScoreUser selectScoreUserByUserId(Long userId) + public ScoreUser selectScoreUserByUserId(String userId) { return scoreUserMapper.selectScoreUserByUserId(userId); } @@ -51,16 +51,23 @@ public class ScoreUserServiceImpl implements IScoreUserService * @return 结果 */ @Override - public int insertScoreUser(ScoreUser scoreUser) + public ScoreUser insertScoreUser(ScoreUser scoreUser) { // 判断当前openId是否已经有值了 ScoreUser scoreUser1 = scoreUserMapper.selectScoreUserByOpenId(scoreUser.getOpenId()); if(scoreUser1 != null) { - return 1; + throw new RuntimeException("当前openId是否已经有值"); } - scoreUser.setCreateTime(DateUtils.getNowDate()); - return scoreUserMapper.insertScoreUser(scoreUser); + // 插入用户,MyBatis会自动将自增ID设置到user对象的userId属性中 + int result = scoreUserMapper.insertScoreUser(scoreUser); + + if (result > 0) { + // 返回包含自增ID的用户对象 + return scoreUser; + } else { + throw new RuntimeException("用户插入失败"); + } } /** diff --git a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomDetailMapper.xml b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomDetailMapper.xml index 6b0d4e8..826a6af 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomDetailMapper.xml +++ b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomDetailMapper.xml @@ -35,26 +35,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where detail_id = #{detailId} - - insert into score_room_detail - - room_id, - user_id, - score, - created_time, - detail_type, - getter_id, - - - #{roomId}, - #{userId}, - #{score}, - #{createdTime}, - #{detailType}, - #{getterId}, - + + + + INSERT INTO score_room_detail + (room_id, user_id, detail_score, game_time, created_time, detail_type) + VALUES + + ( + #{item.roomId}, + #{item.userId}, + #{item.detailScore}, + #{item.gameTime}, + NOW(), + 0 + ) + + update score_room_detail diff --git a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomMapper.xml b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomMapper.xml index c4ec238..a6125f7 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomMapper.xml +++ b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomMapper.xml @@ -9,11 +9,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + - select room_id, create_user, odds, room_status, boos_id from score_room + select room_id, create_user, odds, room_status, boss_id from score_room @@ -31,19 +32,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where room_id = #{roomId} + + insert into score_room create_user, odds, room_status, - boos_id, + boss_id, + room_name, #{createUser}, #{odds}, #{roomStatus}, - #{boosId}, + #{bossId}, + #{roomName}, @@ -53,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_user = #{createUser}, odds = #{odds}, room_status = #{roomStatus}, - boos_id = #{boosId}, + boss_id = #{bossId}, where room_id = #{roomId} diff --git a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomUserMapper.xml b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomUserMapper.xml index 9038547..a189475 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomUserMapper.xml +++ b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreRoomUserMapper.xml @@ -8,7 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -23,49 +23,65 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and room_id = #{roomId} and user_id = #{userId} - and score = #{score} + and player_type = #{playerType} and nick_name like concat('%', #{nickName}, '%') and avatars = #{avatars} - + + + + + + + + insert into score_room_user room_id, user_id, - score, + score, player_type, nick_name, avatars, - + #{roomId}, #{userId}, - #{score}, + #{totalScore}, #{playerType}, #{nickName}, #{avatars}, - - update score_room_user - - room_id = #{roomId}, - user_id = #{userId}, - score = #{score}, - player_type = #{playerType}, - nick_name = #{nickName}, - avatars = #{avatars}, - - where room_user_id = #{roomUserId} + + UPDATE score_room_user + SET + score = CASE + + WHEN room_id = #{item.roomId} AND user_id = #{item.userId} THEN #{item.totalScore} + + ELSE score + END + + WHERE (room_id, user_id) IN + + (#{item.roomId}, #{item.userId}) + @@ -78,4 +94,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{roomUserId} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreUserMapper.xml b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreUserMapper.xml index 1a82a26..b52ca22 100644 --- a/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreUserMapper.xml +++ b/RuoYi-Vue/ruoyi-system/src/main/resources/mapper/system/ScoreUserMapper.xml @@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - where user_id = #{userId} diff --git a/scoring/api/room.js b/scoring/api/room.js index 521e6c2..87c8266 100644 --- a/scoring/api/room.js +++ b/scoring/api/room.js @@ -1,8 +1,55 @@ -import {GET} from '@/utils/request' +// api/room.js - 房间相关API +import { GET, POST, PUT, DELETE } from '@/utils/request' +/** + * 房间相关API + */ +export default { + /** + * 根据房间ID查询房间 + * @param {number} roomId 房间ID + */ + getRoomById(roomId) { + return GET(`/system/room/id/${roomId}`) + }, -// 查询【请填写功能名称】详细 -export const getuser = (roomid) => { - return GET('/system/roomuser/list',roomid) -} + /** + * 根据创建者查询房间 + * @param {number} createUser 创建者ID + */ + getRoomsByCreateUser(createUser) { + return GET(`/system/room/createUser/${createUser}`) + }, + /** + * 查询房间列表 + * @param {Object} params 查询参数 + */ + getRoomList(params) { + return GET('/system/room/list', params) + }, + + /** + * 新增房间 + * @param {Object} roomData 房间数据 + */ + addRoom(roomData) { + return POST('/system/room', roomData) + }, + + /** + * 修改房间 + * @param {Object} roomData 房间数据 + */ + updateRoom(roomData) { + return PUT('/system/room', roomData) + }, + + /** + * 批量删除房间 + * @param {Array} roomIds 房间ID数组 + */ + deleteRooms(roomIds) { + return DELETE(`/system/room/${roomIds}`) + } +} \ No newline at end of file diff --git a/scoring/api/roomDetail.js b/scoring/api/roomDetail.js new file mode 100644 index 0000000..29282e5 --- /dev/null +++ b/scoring/api/roomDetail.js @@ -0,0 +1,47 @@ +// api/roomDetail.js - 房间详情相关API +import { GET, POST, PUT, DELETE } from '@/utils/request' + +/** + * 房间详情相关API + */ +export default { + /** + * 根据详情ID查询房间详情 + * @param {number} detailId 详情ID + */ + getRoomDetailById(detailId) { + return GET(`/system/detail/${detailId}`) + }, + + /** + * 查询房间详情列表 + * @param {Object} params 查询参数 + */ + getRoomDetailList(params) { + return GET('/system/detail/list', params) + }, + + /** + * 批量新增房间详情 + * @param {Array} roomDetails 房间详情数据数组 + */ + addRoomDetails(roomDetails) { + return POST('/system/detail', roomDetails) + }, + + /** + * 修改房间详情 + * @param {Object} roomDetail 房间详情数据 + */ + updateRoomDetail(roomDetail) { + return PUT('/system/detail', roomDetail) + }, + + /** + * 批量删除房间详情 + * @param {Array} detailIds 详情ID数组 + */ + deleteRoomDetails(detailIds) { + return DELETE(`/system/detail/${detailIds}`) + } +} \ No newline at end of file diff --git a/scoring/api/roomUser.js b/scoring/api/roomUser.js new file mode 100644 index 0000000..3609423 --- /dev/null +++ b/scoring/api/roomUser.js @@ -0,0 +1,179 @@ +// api/roomUser.js - 房间用户相关API +import { GET, POST, PUT, DELETE } from '@/utils/request' + +/** + * 房间用户相关API + */ +export default { + /** + * 获取房间内所有用户及其详细对局记录(已修复) + * @param {number} roomId 房间ID + */ + async getUserScoresWithDetails(roomId) { + try { + console.log('获取房间用户详情,房间ID:', roomId); + + // 使用正确的API路径 + const response = await GET(`/system/score/room/user/user-details/${roomId}`); + + console.log('房间用户详情API响应:', response); + + // 处理不同的响应格式 + if (response.code === 200 || response.code === 0) { + return response.data; + } else if (response.success) { + return response.data; + } else { + // 如果接口返回错误,尝试使用列表接口 + console.warn('主接口失败,尝试使用列表接口'); + return await this.getRoomUserList({ roomId }); + } + } catch (error) { + console.error('获取房间用户详情失败:', error); + + // 降级方案1:使用列表接口 + try { + console.log('尝试使用列表接口作为降级方案'); + const listResult = await this.getRoomUserList({ roomId }); + if (listResult) { + return listResult; + } + } catch (listError) { + console.error('列表接口也失败:', listError); + } + + // 降级方案2:返回空数据并提示 + throw error; + } + }, + + /** + * 根据RoomUserId查询 + * @param {number} roomUserId 房间用户ID + */ + async getRoomUserById(roomUserId) { + try { + const response = await GET(`/system/score/room/user/RoomUserId/${roomUserId}`); + return response.data || response; + } catch (error) { + console.error('获取房间用户信息失败:', error); + throw error; + } + }, + + /** + * 根据UserId查询 + * @param {number} userId 用户ID + */ + async getRoomUserByUserId(userId) { + try { + const response = await GET(`/system/score/room/user/userid/${userId}`); + return response.data || response; + } catch (error) { + console.error('根据用户ID获取房间用户失败:', error); + throw error; + } + }, + + /** + * 查询房间用户列表 + * @param {Object} params 查询参数 + */ + async getRoomUserList(params) { + try { + console.log('获取房间用户列表,参数:', params); + const response = await GET('/system/score/room/user/list', params); + console.log('房间用户列表响应:', response); + return response.data || response; + } catch (error) { + console.error('获取房间用户列表失败:', error); + throw error; + } + }, + + /** + * 新增房间用户 + * @param {Object} roomUserData 房间用户数据 + */ + async addRoomUser(roomUserData) { + try { + console.log('新增房间用户:', roomUserData); + const response = await POST('/system/score/room/user', roomUserData); + console.log('新增房间用户响应:', response); + return response.data || response; + } catch (error) { + console.error('新增房间用户失败:', error); + throw error; + } + }, + + + +async updateRoomUsersSafe(roomUsers) { + try { + console.log('安全更新房间用户得分:', roomUsers); + + // 过滤和转换数据 + const safeUsers = roomUsers.map(user => { + let userId = user.userId; + + // 确保userId在int范围内 + if (userId > 2147483647 || userId < -2147483648) { + console.warn('用户ID超出范围,进行转换:', userId); + // 使用哈希值 + const strId = userId.toString(); + let hash = 0; + for (let i = 0; i < strId.length; i++) { + hash = ((hash << 5) - hash) + strId.charCodeAt(i); + hash = hash & hash; + } + userId = Math.abs(hash) % 1000000; + } + + return { + ...user, + userId: userId + }; + }); + + const response = await PUT('/system/score/room/user', safeUsers); + console.log('安全更新响应:', response); + return response.data || response; + } catch (error) { + console.error('安全更新房间用户得分:', error); + throw error; + } +}, + /** + * 批量更新用户得分 + * @param {Array} roomUsers 房间用户数据数组 + */ + async updateRoomUsers(roomUsers) { + + try { + + + console.log('更新房间用户得分:', roomUsers); + const response = await PUT('/system/score/room/user', roomUsers); + console.log('更新房间用户得分响应:', response); + return response.data || response; + } catch (error) { + console.error('更新房间用户得分:', error); + throw error; + } + }, + + /** + * 批量删除房间用户 + * @param {Array} roomUserIds 房间用户ID数组 + */ + async deleteRoomUsers(roomUserIds) { + try { + const response = await DELETE(`/system/score/room/user/${roomUserIds}`); + return response.data || response; + } catch (error) { + console.error('删除房间用户失败:', error); + throw error; + } + } +} \ No newline at end of file diff --git a/scoring/api/user.js b/scoring/api/user.js index 0cff81a..ad47cab 100644 --- a/scoring/api/user.js +++ b/scoring/api/user.js @@ -1,4 +1,4 @@ -import { GET, POST } from '@/utils/request.js' +import { GET, POST,PUT,DELETE } from '@/utils/request.js' export const register = (userInfo) => { return POST('/system/score/user', userInfo); @@ -6,4 +6,60 @@ export const register = (userInfo) => { export const login = (userInfo) => { return POST('/system/score/user/login', userInfo); +} + + + + +/** + * 用户相关API + */ +export default { + /** + * 根据用户ID查询用户 + * @param {string} userId 用户ID + */ + getUserById(userId) { + return GET(`/system/score/user/${userId}`) + }, + + /** + * 查询用户列表 + * @param {Object} params 查询参数 + */ + getUserList(params) { + return GET('/system/score/user/list', params) + }, + + /** + * 新增用户 + * @param {Object} userData 用户数据 + */ + addUser(userData) { + return POST('/system/score/user', userData) + }, + + /** + * 修改用户 + * @param {Object} userData 用户数据 + */ + updateUser(userData) { + return PUT('/system/score/user', userData) + }, + + /** + * 批量删除用户 + * @param {Array} userIds 用户ID数组 + */ + deleteUsers(userIds) { + return DELETE(`/system/score/user/${userIds}`) + }, + + /** + * 用户登录 + * @param {Object} loginData 登录数据 + */ + login(loginData) { + return POST('/system/score/user/login', loginData) + } } \ No newline at end of file diff --git a/scoring/pages.json b/scoring/pages.json index 9459a30..f912091 100644 --- a/scoring/pages.json +++ b/scoring/pages.json @@ -32,7 +32,7 @@ }, { - "path": "pages/settle/index", // 结算页面(新增注册) + "path": "pages/settle/index", "style": { "navigationBarTitleText": "房间结算" } }, { diff --git a/scoring/pages/game-detail/index.vue b/scoring/pages/game-detail/index.vue index ce7931d..2e68f99 100644 --- a/scoring/pages/game-detail/index.vue +++ b/scoring/pages/game-detail/index.vue @@ -11,38 +11,80 @@ - - - - 玩家 ({{ players.length }}位) - - - - {{ player.name }} + + + + + + + + + 玩家 ({{ players.length }}位) + + + + + + + + {{ player.name }} + + + + + + + + + + + 总分 + + + {{ formatScore(player.totalScore) }} + + + + + + + 第{{ roundIndex + 1 }}局 + + + {{ formatScore(getPlayerRoundScore(roundIndex, player.id)) }} + + + - - - - - - - - 总分 - - - {{ formatScore(player.totalScore) }} - - - - - - - 第{{ roundIndex + 1 }}局 - - - {{ formatScore(getPlayerRoundScore(roundIndex, player.id)) }} - + + + + + + @@ -55,13 +97,45 @@