api token新增权限控制
音乐界面新增下载按钮 音乐列表新增返回功能 新增音乐文件夹功能 新增在文件夹内双击播放则按顺序播放当前文件夹内的歌 新增音乐文件夹列表的图标
This commit is contained in:
parent
180346963c
commit
3d60754263
2
pom.xml
2
pom.xml
@ -10,7 +10,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
<groupId>com.yutou</groupId>
|
<groupId>com.yutou</groupId>
|
||||||
<artifactId>tools</artifactId>
|
<artifactId>tools</artifactId>
|
||||||
<version>1.0.9.3</version>
|
<version>1.0.9.5</version>
|
||||||
<name>tools</name>
|
<name>tools</name>
|
||||||
<description>Demo project for Spring Boot</description>
|
<description>Demo project for Spring Boot</description>
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.yutou.tools;
|
package com.yutou.tools;
|
||||||
|
|
||||||
|
import com.yutou.tools.home.nas.MusicController;
|
||||||
|
import com.yutou.tools.utils.APIFilter;
|
||||||
import com.yutou.tools.utils.MusicTools;
|
import com.yutou.tools.utils.MusicTools;
|
||||||
import com.yutou.tools.utils.RedisTools;
|
import com.yutou.tools.utils.RedisTools;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
@ -9,9 +11,19 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||||||
public class ToolsApplication {
|
public class ToolsApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
System.out.println("当前版本号:1.0.9.5");
|
||||||
SpringApplication.run(ToolsApplication.class, args);
|
SpringApplication.run(ToolsApplication.class, args);
|
||||||
RedisTools.initRedisPoolSub();
|
RedisTools.initRedisPoolSub();
|
||||||
|
if(APIFilter.isDebug) {
|
||||||
|
MusicController.defaultMusicPath="C:\\Users\\admin\\Music\\";
|
||||||
MusicTools.getInstance().setMusicPath("C:\\Users\\admin\\Music\\");
|
MusicTools.getInstance().setMusicPath("C:\\Users\\admin\\Music\\");
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
MusicController.defaultMusicPath="/media/yutou/4t/public/音乐";
|
||||||
|
MusicTools.getInstance().setMusicPath("/media/yutou/4t/public/音乐");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import ealvatag.tag.NullTag;
|
|||||||
import ealvatag.tag.Tag;
|
import ealvatag.tag.Tag;
|
||||||
import ealvatag.tag.images.NullArtwork;
|
import ealvatag.tag.images.NullArtwork;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
@ -23,6 +24,21 @@ public class MusicData {
|
|||||||
private String composer;//作曲
|
private String composer;//作曲
|
||||||
private String artist_sort;//分类
|
private String artist_sort;//分类
|
||||||
private File file;//音乐文件
|
private File file;//音乐文件
|
||||||
|
private String lastDir;//上一个文件夹
|
||||||
|
private boolean isDir = false;
|
||||||
|
|
||||||
|
public void setFile(File file) {
|
||||||
|
this.file = file;
|
||||||
|
this.isDir = file.isDirectory();
|
||||||
|
this.lastDir=file.getParentFile().getParent();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
if (StringUtils.isEmpty(title)) {
|
||||||
|
title = file.getName();
|
||||||
|
}
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
public byte[] readImage() throws Exception {
|
public byte[] readImage() throws Exception {
|
||||||
AudioFile audioFile = null;
|
AudioFile audioFile = null;
|
||||||
|
@ -3,6 +3,8 @@ package com.yutou.tools.home.nas;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yutou.tools.home.nas.Data.MusicData;
|
import com.yutou.tools.home.nas.Data.MusicData;
|
||||||
|
import com.yutou.tools.nas.UpdateIp;
|
||||||
|
import com.yutou.tools.utils.APIFilter;
|
||||||
import com.yutou.tools.utils.MusicTools;
|
import com.yutou.tools.utils.MusicTools;
|
||||||
import com.yutou.tools.utils.Tools;
|
import com.yutou.tools.utils.Tools;
|
||||||
import org.springframework.core.io.FileSystemResource;
|
import org.springframework.core.io.FileSystemResource;
|
||||||
@ -22,8 +24,7 @@ import java.util.List;
|
|||||||
@RequestMapping("/nas/music/")
|
@RequestMapping("/nas/music/")
|
||||||
public class MusicController {
|
public class MusicController {
|
||||||
|
|
||||||
private String defaultMusicPath="C:\\Users\\admin\\Music";
|
public static String defaultMusicPath="/media/yutou/4t/public/音乐";
|
||||||
private String musicPath=defaultMusicPath;
|
|
||||||
|
|
||||||
@RequestMapping("all.do")
|
@RequestMapping("all.do")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ -40,21 +41,17 @@ public class MusicController {
|
|||||||
@RequestMapping("list.do")
|
@RequestMapping("list.do")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public String getMusicListOfPath(String path){
|
public String getMusicListOfPath(String path){
|
||||||
if(StringUtils.isEmpty(path)){
|
if(StringUtils.isEmpty(path)||path.equals("root")){
|
||||||
return getAllMusicList();
|
path=defaultMusicPath;
|
||||||
}
|
|
||||||
if(path.equals("root")){
|
|
||||||
return getAllMusicList();
|
|
||||||
}
|
}
|
||||||
//path=path.replace(defaultMusicPath+File.separator,"");
|
//path=path.replace(defaultMusicPath+File.separator,"");
|
||||||
JSONObject json=new JSONObject();
|
JSONObject json=new JSONObject();
|
||||||
JSONObject data = new JSONObject();
|
JSONObject data = new JSONObject();
|
||||||
json.put("code", 1);
|
json.put("code", 0);
|
||||||
MusicTools tools = MusicTools.getInstance();
|
MusicTools tools = MusicTools.getInstance();
|
||||||
data.put("scan", tools.isScan());
|
json.put("scan", tools.isScan());
|
||||||
data.put("size", tools.getLength());
|
json.put("size", tools.getLength());
|
||||||
data.put("list", JSONArray.toJSON(tools.getPath(path)));
|
json.put("data", JSONArray.toJSON(tools.getPath(path)));
|
||||||
json.put("data", data);
|
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -67,10 +64,22 @@ public class MusicController {
|
|||||||
json.put("msg","地址为空");
|
json.put("msg","地址为空");
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
json.put("code",1);
|
json.put("code",0);
|
||||||
json.put("data",MusicTools.getInstance().getMetadata(new File(base64ToString(path))));
|
json.put("data",MusicTools.getInstance().getMetadata(new File(base64ToString(path))));
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
@RequestMapping("getlocalhost.do")
|
||||||
|
@ResponseBody
|
||||||
|
public String getLocalHost(){
|
||||||
|
JSONObject json=new JSONObject();
|
||||||
|
if(APIFilter.isDebug){
|
||||||
|
json.put("data","");
|
||||||
|
}else{
|
||||||
|
json.put("data", "http://"+UpdateIp.nas_ip);
|
||||||
|
}
|
||||||
|
json.put("code",0);
|
||||||
|
return json.toJSONString();
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping("image.do")
|
@RequestMapping("image.do")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ -79,7 +88,7 @@ public class MusicController {
|
|||||||
json.put("code", 1);
|
json.put("code", 1);
|
||||||
if (StringUtils.isEmpty(fileName)) {
|
if (StringUtils.isEmpty(fileName)) {
|
||||||
json.put("msg", "文件为空");
|
json.put("msg", "文件为空");
|
||||||
json.put("code", 0);
|
json.put("code", -1);
|
||||||
json.put("data", "");
|
json.put("data", "");
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
@ -87,16 +96,16 @@ public class MusicController {
|
|||||||
try {
|
try {
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
json.put("msg", "ok");
|
json.put("msg", "ok");
|
||||||
json.put("code", 1);
|
json.put("code", 0);
|
||||||
json.put("data", MusicTools.getInstance().getMetadata(file).readImage());
|
json.put("data", MusicTools.getInstance().getMetadata(file).readImage());
|
||||||
} else {
|
} else {
|
||||||
json.put("msg", "文件不存在");
|
json.put("msg", "文件不存在");
|
||||||
json.put("code", 0);
|
json.put("code", -1);
|
||||||
json.put("data", "");
|
json.put("data", "");
|
||||||
}
|
}
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
json.put("msg", "图片读取失败");
|
json.put("msg", "图片读取失败");
|
||||||
json.put("code", 0);
|
json.put("code", -1);
|
||||||
json.put("data", "");
|
json.put("data", "");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -109,7 +118,7 @@ public class MusicController {
|
|||||||
List<MusicData> list=MusicTools.getInstance().getMusicList();
|
List<MusicData> list=MusicTools.getInstance().getMusicList();
|
||||||
MusicData data=list.get(Tools.randomCommon(0,list.size()-1,1)[0]);
|
MusicData data=list.get(Tools.randomCommon(0,list.size()-1,1)[0]);
|
||||||
JSONObject json=new JSONObject();
|
JSONObject json=new JSONObject();
|
||||||
json.put("code",1);
|
json.put("code",0);
|
||||||
try {
|
try {
|
||||||
json.put("data", URLEncoder.encode(getBase64(data.getFile().getAbsolutePath()),"UTF-8"));
|
json.put("data", URLEncoder.encode(getBase64(data.getFile().getAbsolutePath()),"UTF-8"));
|
||||||
} catch (UnsupportedEncodingException e) {
|
} catch (UnsupportedEncodingException e) {
|
||||||
@ -131,10 +140,8 @@ public class MusicController {
|
|||||||
}
|
}
|
||||||
if(random){
|
if(random){
|
||||||
List<MusicData> list=MusicTools.getInstance().getMusicList();
|
List<MusicData> list=MusicTools.getInstance().getMusicList();
|
||||||
System.out.println("size = "+list.size());
|
|
||||||
MusicData data=list.get(Tools.randomCommon(0,list.size()-1,1)[0]);
|
MusicData data=list.get(Tools.randomCommon(0,list.size()-1,1)[0]);
|
||||||
filePath=data.getFile().getAbsolutePath();
|
filePath=data.getFile().getAbsolutePath();
|
||||||
System.out.println("随机歌曲:"+data.getTitle());
|
|
||||||
}
|
}
|
||||||
File file = new File(filePath);
|
File file = new File(filePath);
|
||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
|
33
src/main/java/com/yutou/tools/mybatis/dao/PermissionDao.java
Normal file
33
src/main/java/com/yutou/tools/mybatis/dao/PermissionDao.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package com.yutou.tools.mybatis.dao;
|
||||||
|
|
||||||
|
import com.yutou.tools.mybatis.model.Permission;
|
||||||
|
import com.yutou.tools.mybatis.model.PermissionExample;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface PermissionDao {
|
||||||
|
long countByExample(PermissionExample example);
|
||||||
|
|
||||||
|
int deleteByExample(PermissionExample example);
|
||||||
|
|
||||||
|
int deleteByPrimaryKey(Integer id);
|
||||||
|
|
||||||
|
int insert(Permission record);
|
||||||
|
|
||||||
|
int insertSelective(Permission record);
|
||||||
|
|
||||||
|
List<Permission> selectByExample(PermissionExample example);
|
||||||
|
|
||||||
|
Permission selectByPrimaryKey(Integer id);
|
||||||
|
|
||||||
|
int updateByExampleSelective(@Param("record") Permission record, @Param("example") PermissionExample example);
|
||||||
|
|
||||||
|
int updateByExample(@Param("record") Permission record, @Param("example") PermissionExample example);
|
||||||
|
|
||||||
|
int updateByPrimaryKeySelective(Permission record);
|
||||||
|
|
||||||
|
int updateByPrimaryKey(Permission record);
|
||||||
|
}
|
@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface UKeyDao {
|
public interface UKeyDao {
|
||||||
long countByExample(UKeyExample example);
|
long countByExample(UKeyExample example);
|
||||||
@ -22,8 +23,6 @@ public interface UKeyDao {
|
|||||||
|
|
||||||
UKey selectByPrimaryKey(Integer id);
|
UKey selectByPrimaryKey(Integer id);
|
||||||
|
|
||||||
UKey selectByKey(String key);
|
|
||||||
|
|
||||||
int updateByExampleSelective(@Param("record") UKey record, @Param("example") UKeyExample example);
|
int updateByExampleSelective(@Param("record") UKey record, @Param("example") UKeyExample example);
|
||||||
|
|
||||||
int updateByExample(@Param("record") UKey record, @Param("example") UKeyExample example);
|
int updateByExample(@Param("record") UKey record, @Param("example") UKeyExample example);
|
||||||
|
19
src/main/java/com/yutou/tools/mybatis/model/Permission.java
Normal file
19
src/main/java/com/yutou/tools/mybatis/model/Permission.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package com.yutou.tools.mybatis.model;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* permission
|
||||||
|
* @author
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Permission implements Serializable {
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
}
|
@ -0,0 +1,401 @@
|
|||||||
|
package com.yutou.tools.mybatis.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class PermissionExample {
|
||||||
|
protected String orderByClause;
|
||||||
|
|
||||||
|
protected boolean distinct;
|
||||||
|
|
||||||
|
protected List<Criteria> oredCriteria;
|
||||||
|
|
||||||
|
public PermissionExample() {
|
||||||
|
oredCriteria = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderByClause(String orderByClause) {
|
||||||
|
this.orderByClause = orderByClause;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOrderByClause() {
|
||||||
|
return orderByClause;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDistinct(boolean distinct) {
|
||||||
|
this.distinct = distinct;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDistinct() {
|
||||||
|
return distinct;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Criteria> getOredCriteria() {
|
||||||
|
return oredCriteria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void or(Criteria criteria) {
|
||||||
|
oredCriteria.add(criteria);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria or() {
|
||||||
|
Criteria criteria = createCriteriaInternal();
|
||||||
|
oredCriteria.add(criteria);
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria createCriteria() {
|
||||||
|
Criteria criteria = createCriteriaInternal();
|
||||||
|
if (oredCriteria.size() == 0) {
|
||||||
|
oredCriteria.add(criteria);
|
||||||
|
}
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Criteria createCriteriaInternal() {
|
||||||
|
Criteria criteria = new Criteria();
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clear() {
|
||||||
|
oredCriteria.clear();
|
||||||
|
orderByClause = null;
|
||||||
|
distinct = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract static class GeneratedCriteria {
|
||||||
|
protected List<Criterion> criteria;
|
||||||
|
|
||||||
|
protected GeneratedCriteria() {
|
||||||
|
super();
|
||||||
|
criteria = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isValid() {
|
||||||
|
return criteria.size() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Criterion> getAllCriteria() {
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Criterion> getCriteria() {
|
||||||
|
return criteria;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void addCriterion(String condition) {
|
||||||
|
if (condition == null) {
|
||||||
|
throw new RuntimeException("Value for condition cannot be null");
|
||||||
|
}
|
||||||
|
criteria.add(new Criterion(condition));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void addCriterion(String condition, Object value, String property) {
|
||||||
|
if (value == null) {
|
||||||
|
throw new RuntimeException("Value for " + property + " cannot be null");
|
||||||
|
}
|
||||||
|
criteria.add(new Criterion(condition, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void addCriterion(String condition, Object value1, Object value2, String property) {
|
||||||
|
if (value1 == null || value2 == null) {
|
||||||
|
throw new RuntimeException("Between values for " + property + " cannot be null");
|
||||||
|
}
|
||||||
|
criteria.add(new Criterion(condition, value1, value2));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIsNull() {
|
||||||
|
addCriterion("id is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIsNotNull() {
|
||||||
|
addCriterion("id is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdEqualTo(Integer value) {
|
||||||
|
addCriterion("id =", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotEqualTo(Integer value) {
|
||||||
|
addCriterion("id <>", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdGreaterThan(Integer value) {
|
||||||
|
addCriterion("id >", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdGreaterThanOrEqualTo(Integer value) {
|
||||||
|
addCriterion("id >=", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdLessThan(Integer value) {
|
||||||
|
addCriterion("id <", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdLessThanOrEqualTo(Integer value) {
|
||||||
|
addCriterion("id <=", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIn(List<Integer> values) {
|
||||||
|
addCriterion("id in", values, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotIn(List<Integer> values) {
|
||||||
|
addCriterion("id not in", values, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdBetween(Integer value1, Integer value2) {
|
||||||
|
addCriterion("id between", value1, value2, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotBetween(Integer value1, Integer value2) {
|
||||||
|
addCriterion("id not between", value1, value2, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleIsNull() {
|
||||||
|
addCriterion("title is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleIsNotNull() {
|
||||||
|
addCriterion("title is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleEqualTo(String value) {
|
||||||
|
addCriterion("title =", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleNotEqualTo(String value) {
|
||||||
|
addCriterion("title <>", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleGreaterThan(String value) {
|
||||||
|
addCriterion("title >", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleGreaterThanOrEqualTo(String value) {
|
||||||
|
addCriterion("title >=", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleLessThan(String value) {
|
||||||
|
addCriterion("title <", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleLessThanOrEqualTo(String value) {
|
||||||
|
addCriterion("title <=", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleLike(String value) {
|
||||||
|
addCriterion("title like", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleNotLike(String value) {
|
||||||
|
addCriterion("title not like", value, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleIn(List<String> values) {
|
||||||
|
addCriterion("title in", values, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleNotIn(List<String> values) {
|
||||||
|
addCriterion("title not in", values, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleBetween(String value1, String value2) {
|
||||||
|
addCriterion("title between", value1, value2, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTitleNotBetween(String value1, String value2) {
|
||||||
|
addCriterion("title not between", value1, value2, "title");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlIsNull() {
|
||||||
|
addCriterion("url is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlIsNotNull() {
|
||||||
|
addCriterion("url is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlEqualTo(String value) {
|
||||||
|
addCriterion("url =", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlNotEqualTo(String value) {
|
||||||
|
addCriterion("url <>", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlGreaterThan(String value) {
|
||||||
|
addCriterion("url >", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlGreaterThanOrEqualTo(String value) {
|
||||||
|
addCriterion("url >=", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlLessThan(String value) {
|
||||||
|
addCriterion("url <", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlLessThanOrEqualTo(String value) {
|
||||||
|
addCriterion("url <=", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlLike(String value) {
|
||||||
|
addCriterion("url like", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlNotLike(String value) {
|
||||||
|
addCriterion("url not like", value, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlIn(List<String> values) {
|
||||||
|
addCriterion("url in", values, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlNotIn(List<String> values) {
|
||||||
|
addCriterion("url not in", values, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlBetween(String value1, String value2) {
|
||||||
|
addCriterion("url between", value1, value2, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andUrlNotBetween(String value1, String value2) {
|
||||||
|
addCriterion("url not between", value1, value2, "url");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
public static class Criteria extends GeneratedCriteria {
|
||||||
|
protected Criteria() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Criterion {
|
||||||
|
private String condition;
|
||||||
|
|
||||||
|
private Object value;
|
||||||
|
|
||||||
|
private Object secondValue;
|
||||||
|
|
||||||
|
private boolean noValue;
|
||||||
|
|
||||||
|
private boolean singleValue;
|
||||||
|
|
||||||
|
private boolean betweenValue;
|
||||||
|
|
||||||
|
private boolean listValue;
|
||||||
|
|
||||||
|
private String typeHandler;
|
||||||
|
|
||||||
|
public String getCondition() {
|
||||||
|
return condition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getSecondValue() {
|
||||||
|
return secondValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNoValue() {
|
||||||
|
return noValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSingleValue() {
|
||||||
|
return singleValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBetweenValue() {
|
||||||
|
return betweenValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isListValue() {
|
||||||
|
return listValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTypeHandler() {
|
||||||
|
return typeHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Criterion(String condition) {
|
||||||
|
super();
|
||||||
|
this.condition = condition;
|
||||||
|
this.typeHandler = null;
|
||||||
|
this.noValue = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Criterion(String condition, Object value, String typeHandler) {
|
||||||
|
super();
|
||||||
|
this.condition = condition;
|
||||||
|
this.value = value;
|
||||||
|
this.typeHandler = typeHandler;
|
||||||
|
if (value instanceof List<?>) {
|
||||||
|
this.listValue = true;
|
||||||
|
} else {
|
||||||
|
this.singleValue = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Criterion(String condition, Object value) {
|
||||||
|
this(condition, value, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
|
||||||
|
super();
|
||||||
|
this.condition = condition;
|
||||||
|
this.value = value;
|
||||||
|
this.secondValue = secondValue;
|
||||||
|
this.typeHandler = typeHandler;
|
||||||
|
this.betweenValue = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Criterion(String condition, Object value, Object secondValue) {
|
||||||
|
this(condition, value, secondValue, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -13,5 +13,7 @@ public class UKey implements Serializable {
|
|||||||
|
|
||||||
private String key;
|
private String key;
|
||||||
|
|
||||||
|
private String power;
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
}
|
}
|
@ -233,6 +233,76 @@ public class UKeyExample {
|
|||||||
addCriterion("`key` not between", value1, value2, "key");
|
addCriterion("`key` not between", value1, value2, "key");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerIsNull() {
|
||||||
|
addCriterion("`power` is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerIsNotNull() {
|
||||||
|
addCriterion("`power` is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerEqualTo(String value) {
|
||||||
|
addCriterion("`power` =", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerNotEqualTo(String value) {
|
||||||
|
addCriterion("`power` <>", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerGreaterThan(String value) {
|
||||||
|
addCriterion("`power` >", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerGreaterThanOrEqualTo(String value) {
|
||||||
|
addCriterion("`power` >=", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerLessThan(String value) {
|
||||||
|
addCriterion("`power` <", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerLessThanOrEqualTo(String value) {
|
||||||
|
addCriterion("`power` <=", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerLike(String value) {
|
||||||
|
addCriterion("`power` like", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerNotLike(String value) {
|
||||||
|
addCriterion("`power` not like", value, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerIn(List<String> values) {
|
||||||
|
addCriterion("`power` in", values, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerNotIn(List<String> values) {
|
||||||
|
addCriterion("`power` not in", values, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerBetween(String value1, String value2) {
|
||||||
|
addCriterion("`power` between", value1, value2, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andPowerNotBetween(String value1, String value2) {
|
||||||
|
addCriterion("`power` not between", value1, value2, "power");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
package com.yutou.tools.utils;
|
package com.yutou.tools.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.yutou.tools.mybatis.dao.PermissionDao;
|
||||||
import com.yutou.tools.mybatis.dao.UKeyDao;
|
import com.yutou.tools.mybatis.dao.UKeyDao;
|
||||||
|
import com.yutou.tools.mybatis.model.Permission;
|
||||||
|
import com.yutou.tools.mybatis.model.PermissionExample;
|
||||||
|
import com.yutou.tools.mybatis.model.UKey;
|
||||||
import com.yutou.tools.mybatis.model.UKeyExample;
|
import com.yutou.tools.mybatis.model.UKeyExample;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
@ -13,20 +18,23 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@WebFilter
|
@WebFilter
|
||||||
public class APIFilter implements Filter {
|
public class APIFilter implements Filter {
|
||||||
private static boolean isDebug=true;
|
public static boolean isDebug = false;
|
||||||
@Resource
|
@Resource
|
||||||
UKeyDao keyDao;
|
UKeyDao keyDao;
|
||||||
|
@Resource
|
||||||
|
PermissionDao permissionDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||||
if(isDebug){
|
/* if(isDebug){
|
||||||
filterChain.doFilter(servletRequest, servletResponse);
|
filterChain.doFilter(servletRequest, servletResponse);
|
||||||
return;
|
return;
|
||||||
}
|
}*/
|
||||||
HttpServletRequest request = (HttpServletRequest) servletRequest;
|
HttpServletRequest request = (HttpServletRequest) servletRequest;
|
||||||
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
||||||
String token = request.getParameter("token");
|
String token = request.getParameter("token");
|
||||||
@ -37,8 +45,29 @@ public class APIFilter implements Filter {
|
|||||||
if (!StringUtils.isEmpty(token)) {
|
if (!StringUtils.isEmpty(token)) {
|
||||||
UKeyExample example = new UKeyExample();
|
UKeyExample example = new UKeyExample();
|
||||||
example.createCriteria().andKeyEqualTo(token);
|
example.createCriteria().andKeyEqualTo(token);
|
||||||
if (keyDao.selectByExample(example).size() > 0) {
|
List<UKey> list = keyDao.selectByExample(example);
|
||||||
|
if (list.size() > 0) {
|
||||||
|
String url = null;
|
||||||
|
String tmp = request.getRequestURI();
|
||||||
|
try {
|
||||||
|
url = tmp.split(tmp.split("/")[tmp.split("/").length - 1])[0];
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
|
UKey key = list.get(0);
|
||||||
|
JSONArray powers = JSONArray.parseArray(key.getPower());
|
||||||
|
if(powers.toJavaList(String.class).contains("-1")){
|
||||||
isToken=true;
|
isToken=true;
|
||||||
|
}else {
|
||||||
|
PermissionExample pExample = new PermissionExample();
|
||||||
|
pExample.createCriteria().andUrlEqualTo(url);
|
||||||
|
List<Permission> permissions = permissionDao.selectByExample(pExample);
|
||||||
|
if (permissions != null && permissions.size() > 0) {
|
||||||
|
if (powers.toJavaList(Integer.class).contains(permissions.get(0).getId())) {
|
||||||
|
isToken = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (cookie != null) {
|
if (cookie != null) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.yutou.tools.utils;
|
package com.yutou.tools.utils;
|
||||||
|
|
||||||
import com.yutou.tools.home.nas.Data.MusicData;
|
import com.yutou.tools.home.nas.Data.MusicData;
|
||||||
|
import com.yutou.tools.home.nas.MusicController;
|
||||||
import ealvatag.audio.AudioFile;
|
import ealvatag.audio.AudioFile;
|
||||||
import ealvatag.audio.AudioFileIO;
|
import ealvatag.audio.AudioFileIO;
|
||||||
import ealvatag.audio.exceptions.CannotReadException;
|
import ealvatag.audio.exceptions.CannotReadException;
|
||||||
@ -77,16 +78,52 @@ public class MusicTools {
|
|||||||
}
|
}
|
||||||
public List<MusicData> getPath(String path){
|
public List<MusicData> getPath(String path){
|
||||||
if(musicMap.containsKey(path)){
|
if(musicMap.containsKey(path)){
|
||||||
return musicMap.get(path);
|
List<MusicData> list=new ArrayList<>();
|
||||||
|
MusicData tmp=musicMap.get(path).isEmpty()?null:musicMap.get(path).get(0);
|
||||||
|
if(tmp!=null){
|
||||||
|
if(!tmp.getFile().getParent().equals(MusicController.defaultMusicPath)) {
|
||||||
|
MusicData t2 = new MusicData();
|
||||||
|
t2.setTitle("返回");
|
||||||
|
t2.setFile(new File(tmp.getLastDir()));
|
||||||
|
list.add(t2);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
getDirList(path, list);
|
||||||
|
list.addAll(musicMap.get(path));
|
||||||
|
return list;
|
||||||
|
}else{
|
||||||
|
if(path.contains(MusicController.defaultMusicPath)){
|
||||||
|
List<MusicData> list=new ArrayList<>();
|
||||||
|
MusicData t2 = new MusicData();
|
||||||
|
t2.setTitle("返回");
|
||||||
|
t2.setFile(new File(path).getParentFile());
|
||||||
|
list.add(t2);
|
||||||
|
getDirList(path, list);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getDirList(String path, List<MusicData> list) {
|
||||||
|
File file=new File(path);
|
||||||
|
for (File listFile : file.listFiles()) {
|
||||||
|
if(listFile.isDirectory()){
|
||||||
|
MusicData data=new MusicData();
|
||||||
|
data.setTitle(listFile.getName());
|
||||||
|
data.setFile(listFile);
|
||||||
|
list.add(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void add(File file) {
|
private void add(File file) {
|
||||||
MusicData data = getMetadata(file);
|
MusicData data = getMetadata(file);
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
musicList.add(data);
|
musicList.add(data);
|
||||||
String path=file.getAbsolutePath().replace(file.getName(),"");
|
String path=file.getAbsolutePath().replace(File.separator+file.getName(),"");
|
||||||
List<MusicData> list;
|
List<MusicData> list;
|
||||||
if(musicMap.containsKey(path)){
|
if(musicMap.containsKey(path)){
|
||||||
list=musicMap.get(path);
|
list=musicMap.get(path);
|
||||||
@ -100,7 +137,10 @@ public class MusicTools {
|
|||||||
|
|
||||||
public MusicData getMetadata(File file) {
|
public MusicData getMetadata(File file) {
|
||||||
try {
|
try {
|
||||||
if (file.getName().endsWith(".lrc") || file.getName().endsWith(".jpg")) {
|
if (file.getName().endsWith(".lrc")
|
||||||
|
|| file.getName().endsWith(".jpg")
|
||||||
|
|| file.getName().endsWith(".ini")
|
||||||
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
AudioFile audioFile = AudioFileIO.read(file);
|
AudioFile audioFile = AudioFileIO.read(file);
|
||||||
|
@ -262,11 +262,20 @@ public class Tools {
|
|||||||
downloadInterface.onError(e);
|
downloadInterface.onError(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造给前端的文件
|
||||||
|
* @param file 文件路径
|
||||||
|
* @return 前端获取的文件
|
||||||
|
*/
|
||||||
public static ResponseEntity<FileSystemResource> getFile(File file){
|
public static ResponseEntity<FileSystemResource> getFile(File file){
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
System.out.println(file.getName());
|
|
||||||
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
|
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||||
|
try {
|
||||||
|
headers.add("Content-Disposition", "attachment; filename=" +URLEncoder.encode(file.getName(),"UTF-8"));
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
headers.add("Content-Disposition", "attachment; filename=" +file.getName());
|
headers.add("Content-Disposition", "attachment; filename=" +file.getName());
|
||||||
|
}
|
||||||
headers.add("Pragma", "no-cache");
|
headers.add("Pragma", "no-cache");
|
||||||
headers.add("Expires", "0");
|
headers.add("Expires", "0");
|
||||||
headers.add("Last-Modified", new Date().toString());
|
headers.add("Last-Modified", new Date().toString());
|
||||||
|
173
src/main/resources/mapper/PermissionDao.xml
Normal file
173
src/main/resources/mapper/PermissionDao.xml
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.yutou.tools.mybatis.dao.PermissionDao">
|
||||||
|
<resultMap id="BaseResultMap" type="com.yutou.tools.mybatis.model.Permission">
|
||||||
|
<id column="id" jdbcType="INTEGER" property="id" />
|
||||||
|
<result column="title" jdbcType="VARCHAR" property="title" />
|
||||||
|
<result column="url" jdbcType="VARCHAR" property="url" />
|
||||||
|
</resultMap>
|
||||||
|
<sql id="Example_Where_Clause">
|
||||||
|
<where>
|
||||||
|
<foreach collection="oredCriteria" item="criteria" separator="or">
|
||||||
|
<if test="criteria.valid">
|
||||||
|
<trim prefix="(" prefixOverrides="and" suffix=")">
|
||||||
|
<foreach collection="criteria.criteria" item="criterion">
|
||||||
|
<choose>
|
||||||
|
<when test="criterion.noValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.singleValue">
|
||||||
|
and ${criterion.condition} #{criterion.value}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.betweenValue">
|
||||||
|
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.listValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
||||||
|
#{listItem}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
</foreach>
|
||||||
|
</trim>
|
||||||
|
</if>
|
||||||
|
</foreach>
|
||||||
|
</where>
|
||||||
|
</sql>
|
||||||
|
<sql id="Update_By_Example_Where_Clause">
|
||||||
|
<where>
|
||||||
|
<foreach collection="example.oredCriteria" item="criteria" separator="or">
|
||||||
|
<if test="criteria.valid">
|
||||||
|
<trim prefix="(" prefixOverrides="and" suffix=")">
|
||||||
|
<foreach collection="criteria.criteria" item="criterion">
|
||||||
|
<choose>
|
||||||
|
<when test="criterion.noValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.singleValue">
|
||||||
|
and ${criterion.condition} #{criterion.value}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.betweenValue">
|
||||||
|
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
|
||||||
|
</when>
|
||||||
|
<when test="criterion.listValue">
|
||||||
|
and ${criterion.condition}
|
||||||
|
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
|
||||||
|
#{listItem}
|
||||||
|
</foreach>
|
||||||
|
</when>
|
||||||
|
</choose>
|
||||||
|
</foreach>
|
||||||
|
</trim>
|
||||||
|
</if>
|
||||||
|
</foreach>
|
||||||
|
</where>
|
||||||
|
</sql>
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id, title, url
|
||||||
|
</sql>
|
||||||
|
<select id="selectByExample" parameterType="com.yutou.tools.mybatis.model.PermissionExample" resultMap="BaseResultMap">
|
||||||
|
select
|
||||||
|
<if test="distinct">
|
||||||
|
distinct
|
||||||
|
</if>
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
from permission
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
<if test="orderByClause != null">
|
||||||
|
order by ${orderByClause}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
|
||||||
|
select
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
from permission
|
||||||
|
where id = #{id,jdbcType=INTEGER}
|
||||||
|
</select>
|
||||||
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
|
||||||
|
delete from permission
|
||||||
|
where id = #{id,jdbcType=INTEGER}
|
||||||
|
</delete>
|
||||||
|
<delete id="deleteByExample" parameterType="com.yutou.tools.mybatis.model.PermissionExample">
|
||||||
|
delete from permission
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</delete>
|
||||||
|
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.yutou.tools.mybatis.model.Permission" useGeneratedKeys="true">
|
||||||
|
insert into permission (title, url)
|
||||||
|
values (#{title,jdbcType=VARCHAR}, #{url,jdbcType=VARCHAR})
|
||||||
|
</insert>
|
||||||
|
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.yutou.tools.mybatis.model.Permission" useGeneratedKeys="true">
|
||||||
|
insert into permission
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="title != null">
|
||||||
|
title,
|
||||||
|
</if>
|
||||||
|
<if test="url != null">
|
||||||
|
url,
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="title != null">
|
||||||
|
#{title,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="url != null">
|
||||||
|
#{url,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
<select id="countByExample" parameterType="com.yutou.tools.mybatis.model.PermissionExample" resultType="java.lang.Long">
|
||||||
|
select count(*) from permission
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
<update id="updateByExampleSelective" parameterType="map">
|
||||||
|
update permission
|
||||||
|
<set>
|
||||||
|
<if test="record.id != null">
|
||||||
|
id = #{record.id,jdbcType=INTEGER},
|
||||||
|
</if>
|
||||||
|
<if test="record.title != null">
|
||||||
|
title = #{record.title,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="record.url != null">
|
||||||
|
url = #{record.url,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</update>
|
||||||
|
<update id="updateByExample" parameterType="map">
|
||||||
|
update permission
|
||||||
|
set id = #{record.id,jdbcType=INTEGER},
|
||||||
|
title = #{record.title,jdbcType=VARCHAR},
|
||||||
|
url = #{record.url,jdbcType=VARCHAR}
|
||||||
|
<if test="_parameter != null">
|
||||||
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
|
</if>
|
||||||
|
</update>
|
||||||
|
<update id="updateByPrimaryKeySelective" parameterType="com.yutou.tools.mybatis.model.Permission">
|
||||||
|
update permission
|
||||||
|
<set>
|
||||||
|
<if test="title != null">
|
||||||
|
title = #{title,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="url != null">
|
||||||
|
url = #{url,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
where id = #{id,jdbcType=INTEGER}
|
||||||
|
</update>
|
||||||
|
<update id="updateByPrimaryKey" parameterType="com.yutou.tools.mybatis.model.Permission">
|
||||||
|
update permission
|
||||||
|
set title = #{title,jdbcType=VARCHAR},
|
||||||
|
url = #{url,jdbcType=VARCHAR}
|
||||||
|
where id = #{id,jdbcType=INTEGER}
|
||||||
|
</update>
|
||||||
|
</mapper>
|
@ -4,6 +4,7 @@
|
|||||||
<resultMap id="BaseResultMap" type="com.yutou.tools.mybatis.model.UKey">
|
<resultMap id="BaseResultMap" type="com.yutou.tools.mybatis.model.UKey">
|
||||||
<id column="id" jdbcType="INTEGER" property="id" />
|
<id column="id" jdbcType="INTEGER" property="id" />
|
||||||
<result column="key" jdbcType="VARCHAR" property="key" />
|
<result column="key" jdbcType="VARCHAR" property="key" />
|
||||||
|
<result column="power" jdbcType="VARCHAR" property="power" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Example_Where_Clause">
|
<sql id="Example_Where_Clause">
|
||||||
<where>
|
<where>
|
||||||
@ -64,7 +65,7 @@
|
|||||||
</where>
|
</where>
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id, `key`
|
id, `key`, `power`
|
||||||
</sql>
|
</sql>
|
||||||
<select id="selectByExample" parameterType="com.yutou.tools.mybatis.model.UKeyExample" resultMap="BaseResultMap">
|
<select id="selectByExample" parameterType="com.yutou.tools.mybatis.model.UKeyExample" resultMap="BaseResultMap">
|
||||||
select
|
select
|
||||||
@ -97,8 +98,8 @@
|
|||||||
</if>
|
</if>
|
||||||
</delete>
|
</delete>
|
||||||
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.yutou.tools.mybatis.model.UKey" useGeneratedKeys="true">
|
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.yutou.tools.mybatis.model.UKey" useGeneratedKeys="true">
|
||||||
insert into u_key (`key`)
|
insert into u_key (`key`, `power`)
|
||||||
values (#{key,jdbcType=VARCHAR})
|
values (#{key,jdbcType=VARCHAR}, #{power,jdbcType=VARCHAR})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.yutou.tools.mybatis.model.UKey" useGeneratedKeys="true">
|
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.yutou.tools.mybatis.model.UKey" useGeneratedKeys="true">
|
||||||
insert into u_key
|
insert into u_key
|
||||||
@ -106,11 +107,17 @@
|
|||||||
<if test="key != null">
|
<if test="key != null">
|
||||||
`key`,
|
`key`,
|
||||||
</if>
|
</if>
|
||||||
|
<if test="power != null">
|
||||||
|
`power`,
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="key != null">
|
<if test="key != null">
|
||||||
#{key,jdbcType=VARCHAR},
|
#{key,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="power != null">
|
||||||
|
#{power,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
<select id="countByExample" parameterType="com.yutou.tools.mybatis.model.UKeyExample" resultType="java.lang.Long">
|
<select id="countByExample" parameterType="com.yutou.tools.mybatis.model.UKeyExample" resultType="java.lang.Long">
|
||||||
@ -119,13 +126,6 @@
|
|||||||
<include refid="Example_Where_Clause" />
|
<include refid="Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
<select id="selectByKey" resultType="com.yutou.tools.mybatis.model.UKey">
|
|
||||||
select
|
|
||||||
<include refid="Base_Column_List"/>
|
|
||||||
from u_key
|
|
||||||
where
|
|
||||||
`key` =#{key,jdbcType=VARCHAR}
|
|
||||||
</select>
|
|
||||||
<update id="updateByExampleSelective" parameterType="map">
|
<update id="updateByExampleSelective" parameterType="map">
|
||||||
update u_key
|
update u_key
|
||||||
<set>
|
<set>
|
||||||
@ -135,6 +135,9 @@
|
|||||||
<if test="record.key != null">
|
<if test="record.key != null">
|
||||||
`key` = #{record.key,jdbcType=VARCHAR},
|
`key` = #{record.key,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="record.power != null">
|
||||||
|
`power` = #{record.power,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
@ -143,7 +146,8 @@
|
|||||||
<update id="updateByExample" parameterType="map">
|
<update id="updateByExample" parameterType="map">
|
||||||
update u_key
|
update u_key
|
||||||
set id = #{record.id,jdbcType=INTEGER},
|
set id = #{record.id,jdbcType=INTEGER},
|
||||||
`key` = #{record.key,jdbcType=VARCHAR}
|
`key` = #{record.key,jdbcType=VARCHAR},
|
||||||
|
`power` = #{record.power,jdbcType=VARCHAR}
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
@ -154,12 +158,16 @@
|
|||||||
<if test="key != null">
|
<if test="key != null">
|
||||||
`key` = #{key,jdbcType=VARCHAR},
|
`key` = #{key,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="power != null">
|
||||||
|
`power` = #{power,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where id = #{id,jdbcType=INTEGER}
|
where id = #{id,jdbcType=INTEGER}
|
||||||
</update>
|
</update>
|
||||||
<update id="updateByPrimaryKey" parameterType="com.yutou.tools.mybatis.model.UKey">
|
<update id="updateByPrimaryKey" parameterType="com.yutou.tools.mybatis.model.UKey">
|
||||||
update u_key
|
update u_key
|
||||||
set `key` = #{key,jdbcType=VARCHAR}
|
set `key` = #{key,jdbcType=VARCHAR},
|
||||||
|
`power` = #{power,jdbcType=VARCHAR}
|
||||||
where id = #{id,jdbcType=INTEGER}
|
where id = #{id,jdbcType=INTEGER}
|
||||||
</update>
|
</update>
|
||||||
</mapper>
|
</mapper>
|
@ -24,19 +24,12 @@
|
|||||||
<div id="artist">艺术家:</div>
|
<div id="artist">艺术家:</div>
|
||||||
<div id="album">专辑:</div>
|
<div id="album">专辑:</div>
|
||||||
<div id="composer">作曲家</div>
|
<div id="composer">作曲家</div>
|
||||||
|
<a class="layui-btn layui-btn-normal" id="download">下载</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="audioWrap"></div>
|
<div id="audioWrap"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<ul class="layui-nav layui-bg-cyan" lay-filter="menus" style="margin-right: 10px;">
|
|
||||||
<div style="margin-top: 10px;">
|
|
||||||
<span id="menu" class="layui-breadcrumb" lay-separator="/"
|
|
||||||
style="visibility: visible;">
|
|
||||||
<a href="javascript:onMenuClick('root');">主目录</a>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</ul>
|
|
||||||
<table id="playlist" lay-filter="music"></table>
|
<table id="playlist" lay-filter="music"></table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -46,33 +39,78 @@
|
|||||||
</div>
|
</div>
|
||||||
<script src="/layui/layui.js"></script>
|
<script src="/layui/layui.js"></script>
|
||||||
<script src="/js/jquery-3.2.1.js"></script>
|
<script src="/js/jquery-3.2.1.js"></script>
|
||||||
<script src="/js/video.min.js"></script>
|
|
||||||
<script src="/js/myjs.js"></script>
|
<script src="/js/myjs.js"></script>
|
||||||
<link rel="stylesheet" href="/css/AudioPlayer.css">
|
<link rel="stylesheet" href="/css/AudioPlayer.css">
|
||||||
<script src="/js/AudioPlayer.js"></script>
|
<script src="/js/AudioPlayer.js"></script>
|
||||||
|
<script id="listTemplet">
|
||||||
|
{{# if(d.dir){ }}
|
||||||
|
<div><i class="layui-icon"></i>{{d.title}}</div>
|
||||||
|
{{# } else { }}
|
||||||
|
<div><i class="layui-icon"></i>{{d.title}}</div>
|
||||||
|
{{# } }}
|
||||||
|
</script>
|
||||||
|
<script type="text/html" id="music">
|
||||||
|
<a class="layui-btn layui-btn-xs" lay-event="download">下载</a>
|
||||||
|
</script>
|
||||||
<script>
|
<script>
|
||||||
//let localhost="http://192.168.31.88:8000";
|
//let localhost="http://192.168.31.88:8000";
|
||||||
let localhost = "";
|
let localhost = "";
|
||||||
|
let musicLib=[]
|
||||||
|
let isRandom=true;
|
||||||
|
let playIndex=0;
|
||||||
|
let playNow=""
|
||||||
|
$.get("/nas/music/getlocalhost.do",function (obj){
|
||||||
|
/* let json=JSON.parse(obj);
|
||||||
|
localhost=json.data;*/
|
||||||
|
// localhost="http://116.22.200.20:8000"
|
||||||
|
})
|
||||||
layui.use(['table', 'element'], function () {
|
layui.use(['table', 'element'], function () {
|
||||||
let table = layui.table;
|
let table = layui.table;
|
||||||
let element = layui.element;
|
let element = layui.element;
|
||||||
table.render({
|
let listTable=table.render({
|
||||||
elem: '#playlist'
|
elem: '#playlist'
|
||||||
, height: 312
|
, url: localhost + '/nas/music/list.do?token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk' //数据接口
|
||||||
, url: localhost + '/nas/music/all.do' //数据接口
|
|
||||||
, page: true //开启分页
|
, page: true //开启分页
|
||||||
, cols: [[
|
, cols: [[
|
||||||
{field: 'title', title: '标题', width: 400}
|
{field: 'title', title: '标题', width: 400,templet:"#listTemplet"}
|
||||||
, {field: 'artist', title: '艺术家', width: 200}
|
, {field: 'artist', title: '艺术家', width: 200}
|
||||||
, {field: 'album', title: '专辑', width: 200}
|
, {field: 'album', title: '专辑', width: 200}
|
||||||
, {field: 'composer', title: '作曲', width: 200}
|
, {field: 'composer', title: '作曲', width: 200}
|
||||||
, {field: 'track', title: '音轨号', width: 100}
|
, {field: 'track', title: '音轨号', width: 100}
|
||||||
|
, {field: "right", width: 100, toolbar: '#music'}
|
||||||
]]
|
]]
|
||||||
|
,done:function (res,curr,count){
|
||||||
|
musicLib=res.data
|
||||||
|
}
|
||||||
})
|
})
|
||||||
table.on('rowDouble(music)', function (obj) {
|
table.on('rowDouble(music)', function (obj) {
|
||||||
//obj 同上
|
//obj 同上
|
||||||
console.log(obj.data.file) //得到当前行元素对象
|
console.log(obj.data) //得到当前行元素对象
|
||||||
|
if(obj.data.dir){
|
||||||
|
listTable.reload({
|
||||||
|
where:{
|
||||||
|
path:obj.data.file
|
||||||
|
}
|
||||||
|
,page:{
|
||||||
|
curr:1
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
isRandom=false;
|
||||||
|
playIndex=obj.tr[0].dataset.index;
|
||||||
play(obj.data.file)
|
play(obj.data.file)
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
table.on('tool(music)', function (obj) {
|
||||||
|
let data = obj.data;
|
||||||
|
if(obj.event === 'download'){
|
||||||
|
if(!data.dir){
|
||||||
|
window.open(localhost+"/nas/music/play.do?token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk&random=false&filePath="+new Base64().encode(data.file))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
});
|
});
|
||||||
element.on('nav(menus)', function (elem) {
|
element.on('nav(menus)', function (elem) {
|
||||||
console.log(elem); //得到当前点击的DOM对象
|
console.log(elem); //得到当前点击的DOM对象
|
||||||
@ -94,7 +132,12 @@
|
|||||||
, allowSeek: true
|
, allowSeek: true
|
||||||
, endedCallback: function () {
|
, endedCallback: function () {
|
||||||
console.log('播放完成')
|
console.log('播放完成')
|
||||||
|
if(isRandom){
|
||||||
random()
|
random()
|
||||||
|
}else{
|
||||||
|
playNext()
|
||||||
|
}
|
||||||
|
|
||||||
}, canplayCallback: function () {
|
}, canplayCallback: function () {
|
||||||
console.log("点击播放")
|
console.log("点击播放")
|
||||||
}
|
}
|
||||||
@ -104,19 +147,34 @@
|
|||||||
$('#footer').load("/html/footer.html");
|
$('#footer').load("/html/footer.html");
|
||||||
$('#side').load("/html/body/nas/side.html");
|
$('#side').load("/html/body/nas/side.html");
|
||||||
$('#img').click(function () {
|
$('#img').click(function () {
|
||||||
|
isRandom=true;
|
||||||
random()
|
random()
|
||||||
});
|
});
|
||||||
|
$('#download').click(function (){
|
||||||
|
window.open(localhost+"/nas/music/play.do?token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk&random=false&filePath="+playNow)
|
||||||
|
})
|
||||||
|
|
||||||
function onMenuClick(that) {
|
|
||||||
console.log(that)
|
function playNext(){
|
||||||
|
if(playIndex===musicLib.length){
|
||||||
|
playIndex=0;
|
||||||
|
}
|
||||||
|
if(musicLib[playIndex].dir){
|
||||||
|
playIndex++
|
||||||
|
playNext()
|
||||||
|
}else{
|
||||||
|
play(musicLib[playIndex].file);
|
||||||
|
playIndex++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function random() {
|
function random() {
|
||||||
$.get(localhost + "/nas/music/random.do", function (data) {
|
$.get(localhost + "/nas/music/random.do?token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk", function (data) {
|
||||||
let json = JSON.parse(data)
|
let json = JSON.parse(data)
|
||||||
if (json.code === 1) {
|
if (json.code === 0) {
|
||||||
|
playNow=json.data
|
||||||
player.updateSource({
|
player.updateSource({
|
||||||
source: localhost + "/nas/music/play.do?random=false&filePath=" + json.data
|
source: localhost + "/nas/music/play.do?random=false&filePath=" + json.data+"&token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk"
|
||||||
});
|
});
|
||||||
update(json.data)
|
update(json.data)
|
||||||
player.play()
|
player.play()
|
||||||
@ -129,31 +187,24 @@
|
|||||||
|
|
||||||
function play(file) {
|
function play(file) {
|
||||||
let filePath = escape(new Base64().encode(file))
|
let filePath = escape(new Base64().encode(file))
|
||||||
|
playNow=filePath
|
||||||
player.updateSource({
|
player.updateSource({
|
||||||
source: localhost + "/nas/music/play.do?random=false&filePath=" + filePath
|
source: localhost + "/nas/music/play.do?random=false&filePath=" + filePath+"&token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk"
|
||||||
});
|
});
|
||||||
update(filePath)
|
update(filePath)
|
||||||
player.play()
|
player.play()
|
||||||
}
|
}
|
||||||
|
|
||||||
function update(fileName) {
|
function update(fileName) {
|
||||||
$.get(localhost + '/nas/music/find/file.do?path=' + fileName, function (data) {
|
$.get(localhost + '/nas/music/find/file.do?token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk&path=' + fileName, function (data) {
|
||||||
let json = JSON.parse(data);
|
let json = JSON.parse(data);
|
||||||
if (json.code === 0) {
|
|
||||||
layer.msg(json.msg);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
$('#title').html("标题:" + json.data.title)
|
$('#title').html("标题:" + json.data.title)
|
||||||
$('#artist').html("艺术家:" + json.data.artist)
|
$('#artist').html("艺术家:" + json.data.artist)
|
||||||
$('#album').html("专辑:" + json.data.album)
|
$('#album').html("专辑:" + json.data.album)
|
||||||
$('#composer').html("作曲:" + json.data.composer)
|
$('#composer').html("作曲:" + json.data.composer)
|
||||||
})
|
})
|
||||||
$.get(localhost + "/nas/music/image.do?fileName=" + fileName, function (data) {
|
$.get(localhost + "/nas/music/image.do?token=PlVodzYhvxRQbOHKakpKs2dvnoc43Cnk&fileName=" + fileName, function (data) {
|
||||||
let json = JSON.parse(data);
|
let json = JSON.parse(data);
|
||||||
if (json.code === 0) {
|
|
||||||
layer.msg(json.msg);
|
|
||||||
return
|
|
||||||
}
|
|
||||||
$('#img').attr("src", "data:image/png;base64," + json.data)
|
$('#img').attr("src", "data:image/png;base64," + json.data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
$('#side').load("/html/body/nas/side.html");
|
$('#side').load("/html/body/nas/side.html");
|
||||||
$.get("/login/check.do", function (data) {
|
$.get("/login/check.do", function (data) {
|
||||||
let json = JSON.parse(data);
|
let json = JSON.parse(data);
|
||||||
if (json.code != 0) {
|
if (json.code !== 0) {
|
||||||
window.location.href = "/"
|
window.location.href = "/"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user