1.update login token response to string;2.add auth check on music

main
Gary 10 months ago
parent 6c4df54f35
commit 6ff77ebbcc

@ -1,19 +1,31 @@
package com.luoo.music.controller; package com.luoo.music.controller;
import api.Result; import api.Result;
import api.StatusCode; import api.StatusCode;
import exception.BizException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
/** /**
* *
*/ */
@Slf4j
@ControllerAdvice @ControllerAdvice
public class BaseExceptionHandler { public class BaseExceptionHandler {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public Result<Void> error(Exception e) {
log.error("执行出错", e);
return Result.failed(StatusCode.MUSIC_COMMON_FAILED);
}
@ExceptionHandler(value = Exception.class) @ExceptionHandler(value = BizException.class)
@ResponseBody @ResponseBody
public Result<Void> error(Exception e){ public Result<String> error(BizException e) {
e.printStackTrace(); log.info("业务错误:{}", e.getMessage());
return Result.failed(StatusCode.MUSIC_COMMON_FAILED); return Result.failed(StatusCode.MUSIC_COMMON_FAILED, e.getMessage());
} }
} }

@ -36,7 +36,7 @@ public class JournalController {
@ApiOperation(value = "1.查询期刊信息") @ApiOperation(value = "1.查询期刊信息")
@GetMapping("/list") @GetMapping("/list")
//@GlobalInterceptor(checkLogin = true) @GlobalInterceptor(checkLogin = true)
public Result<PageResult<JournalRespDTO>> page(@RequestHeader(value = "token", required = false) String token, public Result<PageResult<JournalRespDTO>> page(@RequestHeader(value = "token", required = false) String token,
JournalQueryReq queryReq){ JournalQueryReq queryReq){
Page<Article> pageList = articleService.queryPage(queryReq); Page<Article> pageList = articleService.queryPage(queryReq);

@ -1,10 +1,11 @@
package com.luoo.music.controller; package com.luoo.music.controller;
import com.luoo.music.dto.response.SongRespDTO; import com.luoo.music.dto.response.SongRespDTO;
import com.luoo.music.pojo.Article; import com.luoo.music.pojo.Article;
import com.luoo.music.pojo.Song; import com.luoo.music.pojo.Song;
import com.luoo.music.service.SongService; import com.luoo.music.service.SongService;
import annotation.GlobalInterceptor;
import api.PageResult; import api.PageResult;
import api.Result; import api.Result;
import constants.Constants; import constants.Constants;
@ -25,147 +26,167 @@ import java.util.stream.Collectors;
@RequestMapping("/song") @RequestMapping("/song")
public class SongController { public class SongController {
@Autowired @Autowired
private SongService songService; private SongService songService;
/** /**
* *
* @return *
*/ * @return
@GetMapping */
public Result<List<Song>> findAll(){ @GetMapping
return Result.success(songService.findAll()); public Result<List<Song>> findAll() {
} return Result.success(songService.findAll());
@ApiOperation(value = "1.根据期刊号查询歌曲信息") }
@GetMapping("/getByJournalNo/{journalNo}")
public Result<List<SongRespDTO>> getByJournalNo(@PathVariable String journalNo){ @ApiOperation(value = "1.根据期刊号查询歌曲信息")
List<Song> songs=songService.findByVolid(journalNo); @GetMapping("/getByJournalNo/{journalNo}")
List<SongRespDTO> results=songs.stream().map(s->getSongRespDTO(s)).collect(Collectors.toList()); @GlobalInterceptor(checkLogin = true)
return Result.success(results); public Result<List<SongRespDTO>> getByJournalNo(@RequestHeader(value = "token", required = false) String token,
} @PathVariable String journalNo) {
List<Song> songs = songService.findByVolid(journalNo);
private SongRespDTO getSongRespDTO(Song song) { List<SongRespDTO> results = songs.stream().map(s -> getSongRespDTO(s)).collect(Collectors.toList());
SongRespDTO songRespDTO = new SongRespDTO(); return Result.success(results);
songRespDTO.setJournalNo(song.getVolid()); }
songRespDTO.setAlbum(song.getAlbum());
songRespDTO.setArtist(song.getArtist()); /*
songRespDTO.setId(song.getId()); * @ApiOperation(value = "2.随机播放歌曲",notes="雀乐FM")
songRespDTO.setTitle(song.getName()); *
songRespDTO.setSrc(Constants.MUSIC_RESOURCE_PREFIX+song.getUrl()); * @GetMapping("/random/{limit}")
songRespDTO.setPic(Constants.MUSIC_RESOURCE_PREFIX+song.getUrl().replace(".mp3",".jpg")); *
songRespDTO.setLrc(Constants.MUSIC_RESOURCE_PREFIX+song.getUrl().replace(".mp3",".lyric")); * @GlobalInterceptor(checkLogin = true) public Result<List<SongRespDTO>>
songRespDTO.setSongNo(song.getSongno()); * getByJournalNo(@RequestHeader(value = "token", required = false) String
return songRespDTO; * token) { List<Song> songs = songService.random(); List<SongRespDTO> results =
} * songs.stream().map(s -> getSongRespDTO(s)).collect(Collectors.toList());
/** * return Result.success(results); }
* ID */
* @param id ID
* @return private SongRespDTO getSongRespDTO(Song song) {
*/ SongRespDTO songRespDTO = new SongRespDTO();
@GetMapping("/{id}") songRespDTO.setJournalNo(song.getVolid());
public Result<Song> findById(@PathVariable String id){ songRespDTO.setAlbum(song.getAlbum());
return Result.success(songService.findById(id)); songRespDTO.setArtist(song.getArtist());
} songRespDTO.setId(song.getId());
songRespDTO.setTitle(song.getName());
songRespDTO.setSrc(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl());
/** songRespDTO.setPic(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl().replace(".mp3", ".jpg"));
* + songRespDTO.setLrc(Constants.MUSIC_RESOURCE_PREFIX + song.getUrl().replace(".mp3", ".lyric"));
* @param searchMap songRespDTO.setSongNo(song.getSongno());
* @param page return songRespDTO;
* @param size }
* @return
*/ /**
@PostMapping("/search/{page}/{size}") * ID
public Result<PageResult<Song>> findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){ *
Page<Song> pageList = songService.findSearch(searchMap, page, size); * @param id ID
return Result.success(new PageResult<Song>(pageList.getTotalElements(), pageList.getContent()) ); * @return
} */
@GetMapping("/{id}")
public Result<Song> findById(@PathVariable String id) {
@PostMapping("/init") return Result.success(songService.findById(id));
public Result<Void> init(@RequestBody Map map) { }
List<Map> data = (List) map.get("data");
System.out.println(data.size()); /**
Song song = new Song(); * +
Set<Article> set = new HashSet<Article>(); *
* @param searchMap
int temp=0; * @param page
int num=0; * @param size
for (Map dataMap :data * @return
) { */
Article article = new Article(); @PostMapping("/search/{page}/{size}")
article.setVolid(dataMap.get("id")+""); public Result<PageResult<Song>> findSearch(@RequestBody Map searchMap, @PathVariable int page,
article.setTitle(dataMap.get("title")+""); @PathVariable int size) {
String avatar = "0000"+dataMap.get("id"); Page<Song> pageList = songService.findSearch(searchMap, page, size);
String substring = avatar.substring(avatar.length() - 5); return Result.success(new PageResult<Song>(pageList.getTotalElements(), pageList.getContent()));
System.out.println(substring); }
article.setImage(substring+"/00.jpg");
if (temp== (int) dataMap.get("id")){ @PostMapping("/init")
num = num+1; public Result<Void> init(@RequestBody Map map) {
}else { List<Map> data = (List) map.get("data");
num = 0; System.out.println(data.size());
} Song song = new Song();
temp = (int) dataMap.get("id"); Set<Article> set = new HashSet<Article>();
String numstr = "0000"+(num+1);
System.out.println(numstr.substring(numstr.length()-2)); int temp = 0;
int num = 0;
song.setAlbum(dataMap.get("album")+""); for (Map dataMap : data) {
song.setArtist(dataMap.get("artist")+""); Article article = new Article();
song.setName(dataMap.get("name")+""); article.setVolid(dataMap.get("id") + "");
song.setVolid(dataMap.get("id")+""); article.setTitle(dataMap.get("title") + "");
song.setUrl(substring+"/"+numstr.substring(numstr.length()-2)+".mp3"); String avatar = "0000" + dataMap.get("id");
song.setSongno(num+1); String substring = avatar.substring(avatar.length() - 5);
System.out.println(substring);
songService.add(song); article.setImage(substring + "/00.jpg");
set.add(article); if (temp == (int) dataMap.get("id")) {
} num = num + 1;
System.out.println(set.size()); } else {
num = 0;
for (Article pojo : set) { }
temp = (int) dataMap.get("id");
String numstr = "0000" + (num + 1);
System.out.println(numstr.substring(numstr.length() - 2));
song.setAlbum(dataMap.get("album") + "");
song.setArtist(dataMap.get("artist") + "");
song.setName(dataMap.get("name") + "");
song.setVolid(dataMap.get("id") + "");
song.setUrl(substring + "/" + numstr.substring(numstr.length() - 2) + ".mp3");
song.setSongno(num + 1);
songService.add(song);
set.add(article);
}
System.out.println(set.size());
for (Article pojo : set) {
// articleService.add(pojo); // articleService.add(pojo);
} }
return Result.success(); return Result.success();
} }
/** /**
* *
* @param searchMap *
* @return * @param searchMap
*/ * @return
@PostMapping("/search") */
public Result<List<Song>> findSearch( @RequestBody Map searchMap){ @PostMapping("/search")
return Result.success(songService.findSearch(searchMap)); public Result<List<Song>> findSearch(@RequestBody Map searchMap) {
} return Result.success(songService.findSearch(searchMap));
}
/** /**
* *
* @param song *
*/ * @param song
@PostMapping */
public Result<Void> add(@RequestBody Song song){ @PostMapping
songService.add(song); public Result<Void> add(@RequestBody Song song) {
return Result.success(); songService.add(song);
} return Result.success();
}
/**
* /**
* @param song *
*/ *
@PutMapping("/{id}") * @param song
public Result<Void> update(@RequestBody Song song, @PathVariable String id ){ */
song.setId(id); @PutMapping("/{id}")
songService.update(song); public Result<Void> update(@RequestBody Song song, @PathVariable String id) {
return Result.success(); song.setId(id);
} songService.update(song);
return Result.success();
/** }
*
* @param id /**
*/ *
@DeleteMapping("/{id}") *
public Result<Void> delete(@PathVariable String id ){ * @param id
songService.deleteById(id); */
return Result.success(); @DeleteMapping("/{id}")
} public Result<Void> delete(@PathVariable String id) {
songService.deleteById(id);
return Result.success();
}
} }

@ -8,12 +8,16 @@ import lombok.Setter;
@Setter @Setter
public class SongRespDTO { public class SongRespDTO {
private String id; private String id;
@ApiModelProperty(value = "歌曲名")
private String title; private String title;
@ApiModelProperty(value = "歌手/乐队名")
private String artist; private String artist;
@ApiModelProperty(value = "专辑") @ApiModelProperty(value = "专辑")
private String album; private String album;
private String src; private String src;
@ApiModelProperty(value = "歌曲专辑封面")
private String pic; private String pic;
@ApiModelProperty(value = "歌词")
private String lrc; private String lrc;
@ApiModelProperty(value = "剘刊号") @ApiModelProperty(value = "剘刊号")
private String journalNo; private String journalNo;

@ -104,12 +104,8 @@ public class UserController {
return Result.failed(StatusCode.USER_MOBILE_VERIFICATION_CODE_MISMATCH); return Result.failed(StatusCode.USER_MOBILE_VERIFICATION_CODE_MISMATCH);
} }
User user = userService.loginOrRegister(mobile); User user = userService.loginOrRegister(mobile);
String token = jwtUtil.createJWT(user.getId(),user.getNickname(),Constants.TOKEN_ROLE_APP_USER); String token = jwtUtil.createJWT(user.getId(),user.getNickname(),Constants.TOKEN_ROLE_APP_USER);
Map<String,String> map = new HashMap<>(); return Result.success(token);
map.put("token", token);
return Result.success(map);
}finally { }finally {
redisTemplate.delete(redisMobileCheckCodeKey); redisTemplate.delete(redisMobileCheckCodeKey);
} }
@ -118,12 +114,10 @@ public class UserController {
@ApiOperation(value = "3.游客登录返回token", notes = "token中的subject和roles均为tourist") @ApiOperation(value = "3.游客登录返回token", notes = "token中的subject和roles均为tourist")
@GetMapping("/touristLogin") @GetMapping("/touristLogin")
public Result<Map<String,String>> touristLogin() { public Result<String> touristLogin() {
String nickName="游客-"+NickNameUtil.getRandomNickName(); String nickName="游客-"+NickNameUtil.getRandomNickName();
String token = jwtUtil.createJWT(String.valueOf(idWorker.nextId()),nickName,Constants.TOKEN_ROLE_TOURIST); String token = jwtUtil.createJWT(String.valueOf(idWorker.nextId()),nickName,Constants.TOKEN_ROLE_TOURIST);
Map<String,String> map=new HashMap<>(); return Result.success(token);
map.put("token", token);
return Result.success(map);
} }
/** /**
@ -143,10 +137,8 @@ public class UserController {
@ApiOperation(value = "5.token续期", notes = "有效期7天") @ApiOperation(value = "5.token续期", notes = "有效期7天")
@PostMapping("/autoLogin") @PostMapping("/autoLogin")
@GlobalInterceptor @GlobalInterceptor
public Result<Map<String, String>> autoLogin(@RequestHeader(value = "token", required = false) String token) { public Result<String> autoLogin(@RequestHeader(value = "token", required = false) String token) {
Map<String,String> map=new HashMap<>(); return Result.success(userService.autoLogin(token));
map.put("token", userService.autoLogin(token));
return Result.success(map);
} }
/** /**

Loading…
Cancel
Save