基于SpringBoot音乐翻唱网站的设计与实现

简介: 今天手撸一个音乐系统,springboot框架,数据库mysql,核心的介绍如下所示。

今天手撸一个音乐系统,springboot框架,数据库mysql,核心的介绍如下所示。


1,系统的界面演示


微信图片_20221009224025.png


微信图片_20221009224035.png


微信图片_20221009224040.png


微信图片_20221009224045.png


微信图片_20221009224049.png



微信图片_20221009224053.png微信图片_20221009224056.png


微信图片_20221009224101.png


微信图片_20221009224105.png


微信图片_20221009224109.png


微信图片_20221009224114.png


2,系统核心代码演示


/**
 * 小孟v:jishulearn
 */
@RequestMapping("config")
@RestController
public class ConfigController{
  @Autowired
  private ConfigService configService;
  /**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,ConfigEntity config){
        EntityWrapper<ConfigEntity> ew = new EntityWrapper<ConfigEntity>();
      PageUtils page = configService.queryPage(params);
        return R.ok().put("data", page);
    }
  /**
     * 列表
     */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,ConfigEntity config){
        EntityWrapper<ConfigEntity> ew = new EntityWrapper<ConfigEntity>();
      PageUtils page = configService.queryPage(params);
        return R.ok().put("data", page);
    }
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        ConfigEntity config = configService.selectById(id);
        return R.ok().put("data", config);
    }
    /**
     * 详情
     */
    @IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") String id){
        ConfigEntity config = configService.selectById(id);
        return R.ok().put("data", config);
    }
    /**
     * 根据name获取信息
     */
    @RequestMapping("/info")
    public R infoByName(@RequestParam String name){
        ConfigEntity config = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
        return R.ok().put("data", config);
    }
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody ConfigEntity config){
//      ValidatorUtils.validateEntity(config);
      configService.insert(config);
        return R.ok();
    }
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody ConfigEntity config){
//        ValidatorUtils.validateEntity(config);
        configService.updateById(config);//全部更新
        return R.ok();
    }
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
      configService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}


/**
 * 小孟v:jishulearn
 */
@RestController
public class CommonController{
  @Autowired
  private CommonService commonService;
  @Autowired
  private ConfigService configService;
  private static AipFace client = null;
  private static String BAIDU_DITU_AK = null;
  @RequestMapping("/location")
  public R location(String lng,String lat) {
  if(BAIDU_DITU_AK==null) {
    BAIDU_DITU_AK = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "baidu_ditu_ak")).getValue();
    if(BAIDU_DITU_AK==null) {
    return R.error("请在配置管理中正确配置baidu_ditu_ak");
    }
  }
  Map<String, String> map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
  return R.ok().put("data", map);
  }
  /**
  * 人脸比对
  * 
  * @param face1 人脸1
  * @param face2 人脸2
  * @return
  */
  @RequestMapping("/matchFace")
  public R matchFace(String face1, String face2) {
  if(client==null) {
    /*String AppID = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "AppID")).getValue();*/
    String APIKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "APIKey")).getValue();
    String SecretKey = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "SecretKey")).getValue();
    String token = BaiduUtil.getAuth(APIKey, SecretKey);
    if(token==null) {
    return R.error("请在配置管理中正确配置APIKey和SecretKey");
    }
    client = new AipFace(null, APIKey, SecretKey);
    client.setConnectionTimeoutInMillis(2000);
    client.setSocketTimeoutInMillis(60000);
  }
  JSONObject res = null;
  try {
    File file1 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face1);
    File file2 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face2);
    String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
    String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
    MatchRequest req1 = new MatchRequest(img1, "BASE64");
    MatchRequest req2 = new MatchRequest(img2, "BASE64");
    ArrayList<MatchRequest> requests = new ArrayList<MatchRequest>();
    requests.add(req1);
    requests.add(req2);
    res = client.match(requests);
    System.out.println(res.get("result"));
  } catch (FileNotFoundException e) {
    e.printStackTrace();
    return R.error("文件不存在");
  } catch (IOException e) {
    e.printStackTrace();
  } 
  return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
  }
  /**
  * 获取table表中的column列表(联动接口)
  * @param table
  * @param column
  * @return
  */
  @IgnoreAuth
  @RequestMapping("/option/{tableName}/{columnName}")
  public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
  Map<String, Object> params = new HashMap<String, Object>();
  params.put("table", tableName);
  params.put("column", columnName);
  if(StringUtils.isNotBlank(level)) {
    params.put("level", level);
  }
  if(StringUtils.isNotBlank(parent)) {
    params.put("parent", parent);
  }
  List<String> data = commonService.getOption(params);
  return R.ok().put("data", data);
  }
  /**
  * 根据table中的column获取单条记录
  * @param table
  * @param column
  * @return
  */
  @IgnoreAuth
  @RequestMapping("/follow/{tableName}/{columnName}")
  public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
  Map<String, Object> params = new HashMap<String, Object>();
  params.put("table", tableName);
  params.put("column", columnName);
  params.put("columnValue", columnValue);
  Map<String, Object> result = commonService.getFollowByOption(params);
  return R.ok().put("data", result);
  }
  /**
  * 修改table表的sfsh状态
  * @param table
  * @param map
  * @return
  */
  @RequestMapping("/sh/{tableName}")
  public R sh(@PathVariable("tableName") String tableName, @RequestBody Map<String, Object> map) {
  map.put("table", tableName);
  commonService.sh(map);
  return R.ok();
  }
  /**
  * 获取需要提醒的记录数
  * @param tableName
  * @param columnName
  * @param type 1:数字 2:日期
  * @param map
  * @return
  */
  @IgnoreAuth
  @RequestMapping("/remind/{tableName}/{columnName}/{type}")
  public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, 
       @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
  map.put("table", tableName);
  map.put("column", columnName);
  map.put("type", type);
  if(type.equals("2")) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar c = Calendar.getInstance();
    Date remindStartDate = null;
    Date remindEndDate = null;
    if(map.get("remindstart")!=null) {
    Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    c.setTime(new Date()); 
    c.add(Calendar.DAY_OF_MONTH,remindStart);
    remindStartDate = c.getTime();
    map.put("remindstart", sdf.format(remindStartDate));
    }
    if(map.get("remindend")!=null) {
    Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    c.setTime(new Date());
    c.add(Calendar.DAY_OF_MONTH,remindEnd);
    remindEndDate = c.getTime();
    map.put("remindend", sdf.format(remindEndDate));
    }
  }
  int count = commonService.remindCount(map);
  return R.ok().put("count", count);
  }
  /**
  * 单列求和
  */
  @IgnoreAuth
  @RequestMapping("/cal/{tableName}/{columnName}")
  public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
  Map<String, Object> params = new HashMap<String, Object>();
  params.put("table", tableName);
  params.put("column", columnName);
  Map<String, Object> result = commonService.selectCal(params);
  return R.ok().put("data", result);
  }
  /**
  * 分组统计
  */
  @IgnoreAuth
  @RequestMapping("/group/{tableName}/{columnName}")
  public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
  Map<String, Object> params = new HashMap<String, Object>();
  params.put("table", tableName);
  params.put("column", columnName);
  List<Map<String, Object>> result = commonService.selectGroup(params);
  return R.ok().put("data", result);
  }
目录
相关文章
|
2月前
|
JavaScript 前端开发 Java
基于springboot的留守儿童爱心网站
这是一个基于SpringBoot的留守儿童爱心网站,包含管理员和用户两种角色。管理员负责用户、新闻、志愿活动、捐赠等管理;用户可进行登录注册、爱心捐赠及活动报名。项目采用SpringBoot与Mybatis作为后端框架,前端则使用HTML和VUE。适用于JDK1.8、IDEA/Eclipse、MySQL5.7/8.x,无需特定Tomcat或Maven版本,支持Windows系统。
93 13
基于springboot的留守儿童爱心网站
|
2月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的音乐推荐管理系统
基于Java+Springboot+Vue开发的音乐推荐管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的音乐推荐管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
97 8
基于Java+Springboot+Vue开发的音乐推荐管理系统
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的音乐播放器的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的音乐播放器的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的二手商品网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的二手商品网站的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的个人健康管理网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的个人健康管理网站的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的“力炫”健身馆网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的“力炫”健身馆网站的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的在线音乐网站附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的在线音乐网站附带文章源码部署视频讲解等
64 2
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的传统文化网站附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的传统文化网站附带文章源码部署视频讲解等
34 1
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的国风彩妆网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的国风彩妆网站的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的古风生活体验交流网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的古风生活体验交流网站的详细设计和实现(源码+lw+部署文档+讲解等)