This commit is contained in:
PC-20230316NUNE\Administrator
2024-01-04 18:58:21 +08:00
parent a5195e3a6d
commit 0556449f0a
23 changed files with 4024 additions and 963 deletions

View File

@@ -18,6 +18,7 @@ import cn.jisol.game.service.ModeOnHookService;
import cn.jisol.game.service.PlayerPetService;
import cn.jisol.game.service.ResourceService;
import cn.jisol.game.table.GTbGOnHookLevels;
import cn.jisol.game.vo.mode.ModeOnHookRankingOV;
import cn.jisol.game.vo.news.NewsResource;
import cn.jisol.game.vo.news.ov.ResourceUpdateOV;
import cn.jisol.ngame.util.NewsContext;
@@ -260,9 +261,9 @@ public class GOnHookController {
@ApiImplicitParams({})
@ApiOperation(value = "排行榜")
@GetMapping("/onRankings/{mapId}")
public NewsContext<List<ModeOnHook>> onRankings(@PathVariable Integer mapId){
public NewsContext<List<ModeOnHookRankingOV>> onRankings(@PathVariable Integer mapId,@CurrentPlayer Player player){
return NewsContext.onSuccess("查询成功",this.modeOnHookMapper.onRankings(mapId.toString()));
return NewsContext.onSuccess("查询成功",this.modeOnHookMapper.onRankings(mapId.toString(),player.getPlayerId()));
}

View File

@@ -2,6 +2,7 @@ package cn.jisol.game.mapper;
import cn.jisol.game.entity.game.Player;
import cn.jisol.game.entity.mode.ModeOnHook;
import cn.jisol.game.vo.mode.ModeOnHookRankingOV;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -13,7 +14,22 @@ import java.util.List;
public interface ModeOnHookMapper extends BaseMapper<ModeOnHook> {
//排行榜
@Select("SELECT * FROM mode_on_hook ORDER BY JSON_EXTRACT(on_hook_info, CONCAT('$.maps.\"',#{mapId},'\"')) DESC LIMIT 10;")
List<ModeOnHook> onRankings(@Param("mapId") String mapId);
@Select("SET @rank = 0;\n" +
"SELECT \n" +
" p.player_id,\n" +
" p.player_name,\n" +
" IFNULL(o.level_id,0) AS level_id,\n" +
" o.rank,\n" +
" #{mapId} AS map_id\n" +
"FROM \n" +
" (SELECT \n" +
" player_id,\n" +
" JSON_EXTRACT(on_hook_info, CONCAT('$.maps.\"',#{mapId},'\"')) AS level_id,\n" +
" @rank := @rank + 1 AS rank\n" +
" FROM mode_on_hook \n" +
" ORDER BY JSON_EXTRACT(on_hook_info, CONCAT('$.maps.\"',#{mapId},'\"')) DESC) AS o\n" +
"RIGHT JOIN player AS p ON o.player_id = p.player_id\n" +
"WHERE o.player_id = #{playerId} OR o.rank < 11;")
List<ModeOnHookRankingOV> onRankings(@Param("mapId") String mapId,@Param("playerId") Long playerId);
}

View File

@@ -0,0 +1,14 @@
package cn.jisol.game.vo.mode;
import lombok.Builder;
import lombok.Data;
@Builder
@Data
public class ModeOnHookRankingOV {
private Long playerId; //游戏玩家Id
private String playerName; //游戏玩家名称
private Integer levelId; //玩家关卡Id
private Integer rank; //玩家当前排名
private Integer mapId; //地图Id
}

View File

@@ -4,8 +4,8 @@ spring:
datasource:
username: pet_jisol_cn
password: sThsBwjfDcaw2wJR
url: jdbc:mysql://kyu.jisol.cn:3306/pet_jisol_cn?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
# url: jdbc:mysql://localhost:3306/pet_jisol_cn?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
# url: jdbc:mysql://kyu.jisol.cn:3306/pet_jisol_cn?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowMultiQueries=true
url: jdbc:mysql://localhost:3306/pet_jisol_cn?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowMultiQueries=true
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
serialization: