修改应用一对多,添加置顶功能,修复bug

main
wanghb 2 years ago
parent 32ccaab4c3
commit c95dbf5091

@ -139,4 +139,13 @@ public class AcademicController {
} }
return JsonResult.error(ResultCode.Fail,"失败"); return JsonResult.error(ResultCode.Fail,"失败");
} }
@ApiOperation("目录删除")
@GetMapping("/delDownloadDirectory")
public JsonResult delAcademicDirectory(String name){
academicService.delCourseDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -28,4 +28,6 @@ public interface AcademicService extends IService<Academic> {
int addDirectory(Directory directory); int addDirectory(Directory directory);
List<ClientAcademicVo> queryAcademicClient(); List<ClientAcademicVo> queryAcademicClient();
void delCourseDirectory(String name);
} }

@ -79,7 +79,7 @@ public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> i
} }
QueryWrapper<Academic> qwa=new QueryWrapper<>(); QueryWrapper<Academic> qwa=new QueryWrapper<>();
qwa.lambda().eq(Academic::getAcademicName,academicVo.getAcademicName()).or().eq(Academic::getAcademicUrl,academicVo.getAcademicUrl()); qwa.lambda().eq(Academic::getAcademicName,academicVo.getAcademicName());
Academic academic1 = academicMapper.selectOne(qwa); Academic academic1 = academicMapper.selectOne(qwa);
if(academic1!=null){ if(academic1!=null){
throw new ServiceException("403","学术名称或链接已存在"); throw new ServiceException("403","学术名称或链接已存在");
@ -209,6 +209,7 @@ public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> i
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setDirIden(6); directory.setDirIden(6);
directory.setSequence(0);
int insert = directoryMapper.insert(directory); int insert = directoryMapper.insert(directory);
return insert; return insert;
} }
@ -239,5 +240,17 @@ public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> i
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void delCourseDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,6);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
QueryWrapper<Academic> qw = new QueryWrapper<>();
qw.lambda().eq(Academic::getDirId,directory.getId());
academicMapper.delete(qw);
}
} }

@ -1,14 +1,11 @@
package com.zhiyun.zhiyun03.application.controller; package com.zhiyun.zhiyun03.application.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
import com.zhiyun.zhiyun03.academic.vo.AcademicVo;
import com.zhiyun.zhiyun03.application.config.HospConfig;
import com.zhiyun.zhiyun03.application.entity.Application; import com.zhiyun.zhiyun03.application.entity.Application;
import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.application.service.ApplicationService; import com.zhiyun.zhiyun03.application.service.ApplicationService;
import com.zhiyun.zhiyun03.application.vo.ApplicationVo; import com.zhiyun.zhiyun03.application.vo.ApplicationVo;
import com.zhiyun.zhiyun03.application.vo.ClientApplicationVo; import com.zhiyun.zhiyun03.application.vo.ClientApplicationVo;
import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.course.vo.PageVO;
import com.zhiyun.zhiyun03.utils.common.JsonResult; import com.zhiyun.zhiyun03.utils.common.JsonResult;
import com.zhiyun.zhiyun03.utils.common.ResultCode; import com.zhiyun.zhiyun03.utils.common.ResultCode;
@ -16,14 +13,10 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.annotation.ApplicationScope;
import springfox.documentation.spring.web.json.Json;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import static com.alibaba.druid.sql.ast.TDDLHint.Type.JSON;
@Api("应用中心") @Api("应用中心")
@RestController @RestController
@RequestMapping("/application") @RequestMapping("/application")
@ -42,14 +35,15 @@ public class ApplicationController {
return JsonResult.success(lists).setCount(lists.getTotal()); return JsonResult.success(lists).setCount(lists.getTotal());
} }
@GetMapping ("/queryDir") @GetMapping ("/queryAppCourseDirectory")
@ApiOperation("查询目录") @ApiOperation("查询目录")
public JsonResult<Directory> queryDir(){ public JsonResult<ApplicationVo> queryAppCourseDirectory(){
List<Directory> list = applicationService.queryDir(); List<Directory> list = applicationService.queryDirectory();
return JsonResult.success(list); return JsonResult.success(list);
} }
@PostMapping ("/queryApp") @PostMapping ("/queryApp")
@ApiOperation("客户端应用中心模块查询") @ApiOperation("客户端应用中心模块查询")
public JsonResult<ClientApplicationVo> queryApp(){ public JsonResult<ClientApplicationVo> queryApp(){
@ -61,7 +55,7 @@ public class ApplicationController {
@RequestMapping(value = "/addApplication",method = RequestMethod.POST) @RequestMapping(value = "/addApplication",method = RequestMethod.POST)
@ApiOperation("新增应用") @ApiOperation("新增应用")
public JsonResult addApplication(ApplicationVo applicationVo){ public JsonResult addApplication(@RequestBody ApplicationVo applicationVo){
int result = applicationService.addApplication(applicationVo); int result = applicationService.addApplication(applicationVo);
if(result>0){ if(result>0){
return JsonResult.success(ResultCode.SUCCESS); return JsonResult.success(ResultCode.SUCCESS);
@ -81,7 +75,7 @@ public class ApplicationController {
@PostMapping("/updateApplication") @PostMapping("/updateApplication")
@ApiOperation("更新应用") @ApiOperation("更新应用")
public JsonResult updateApplication(ApplicationVo applicationVo){ public JsonResult updateApplication(@RequestBody ApplicationVo applicationVo){
int result = applicationService.updateApplication(applicationVo); int result = applicationService.updateApplication(applicationVo);
if(result>0){ if(result>0){
return JsonResult.success(ResultCode.SUCCESS); return JsonResult.success(ResultCode.SUCCESS);
@ -108,4 +102,15 @@ public class ApplicationController {
} }
return JsonResult.error(ResultCode.Fail,"失败"); return JsonResult.error(ResultCode.Fail,"失败");
} }
@PostMapping("/dirSequence")
@ApiOperation("目录排序")
public JsonResult dirSequence(Application application){
applicationService.dirSequence(application);
return JsonResult.success(ResultCode.SUCCESS);
}
} }

@ -47,7 +47,7 @@ public class Application {
* id * id
*/ */
@TableField(value = "dir_id") @TableField(value = "dir_id")
private int dirId; private String dirId;
/** /**
* icon * icon
@ -71,4 +71,13 @@ public class Application {
@TableField(value = "app_updatetime") @TableField(value = "app_updatetime")
private Date appUpdatetime; private Date appUpdatetime;
/**
*
*/
@TableField(value = "sequence")
private Integer sequence;
} }

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhiyun.zhiyun03.course.entity.Course; import com.zhiyun.zhiyun03.course.entity.Course;
import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -60,4 +61,12 @@ public class Directory {
private Date dirAddtime; private Date dirAddtime;
/**
*
*/
@TableField(value = "sequence")
private Integer sequence;
} }

@ -2,6 +2,7 @@ package com.zhiyun.zhiyun03.application.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhiyun.zhiyun03.application.entity.Application; import com.zhiyun.zhiyun03.application.entity.Application;
import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.application.vo.ApplicationVo; import com.zhiyun.zhiyun03.application.vo.ApplicationVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -14,4 +15,6 @@ public interface ApplicationMapper extends BaseMapper<Application> {
List<ApplicationVo> queryApplication(); List<ApplicationVo> queryApplication();
int findByNameAndId(@Param("id") Integer id,@Param("appName") String appName); int findByNameAndId(@Param("id") Integer id,@Param("appName") String appName);
int updateSequence(Application application);
} }

@ -1,7 +1,5 @@
package com.zhiyun.zhiyun03.application.service; package com.zhiyun.zhiyun03.application.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zhiyun.zhiyun03.application.entity.Application; import com.zhiyun.zhiyun03.application.entity.Application;
import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.application.entity.Directory;
@ -16,7 +14,6 @@ public interface ApplicationService extends IService<Application> {
int addApplication(ApplicationVo applicationVo); int addApplication(ApplicationVo applicationVo);
List<Directory> queryDir();
ApplicationVo selectByIdApplication(Integer id); ApplicationVo selectByIdApplication(Integer id);
@ -27,4 +24,8 @@ public interface ApplicationService extends IService<Application> {
int addDirectory(Directory directory); int addDirectory(Directory directory);
List<ClientApplicationVo> queryApp(); List<ClientApplicationVo> queryApp();
List<Directory> queryDirectory();
void dirSequence(Application application);
} }

@ -1,29 +1,23 @@
package com.zhiyun.zhiyun03.application.service.impl; package com.zhiyun.zhiyun03.application.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.util.BeanUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.zhiyun.zhiyun03.academic.vo.AcademicVo;
import com.zhiyun.zhiyun03.application.entity.Application; import com.zhiyun.zhiyun03.application.entity.Application;
import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.application.mapper.ApplicationMapper; import com.zhiyun.zhiyun03.application.mapper.ApplicationMapper;
import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper; import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper;
import com.zhiyun.zhiyun03.application.service.ApplicationService; import com.zhiyun.zhiyun03.application.service.ApplicationService;
import com.zhiyun.zhiyun03.application.vo.ClientApplicationVo; import com.zhiyun.zhiyun03.application.vo.ClientApplicationVo;
import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.course.vo.PageVO;
import com.zhiyun.zhiyun03.utils.convert.ConvertUtil; import com.zhiyun.zhiyun03.utils.convert.ConvertUtil;
import com.zhiyun.zhiyun03.application.vo.ApplicationVo; import com.zhiyun.zhiyun03.application.vo.ApplicationVo;
import com.zhiyun.zhiyun03.utils.convert.Switch;
import com.zhiyun.zhiyun03.utils.exception.ServiceException; import com.zhiyun.zhiyun03.utils.exception.ServiceException;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -43,9 +37,27 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
*/ */
@Override @Override
public PageVO<ApplicationVo> queryApplication(Integer page, Integer limit) { public PageVO<ApplicationVo> queryApplication(Integer page, Integer limit) {
PageHelper.startPage(page,limit); String orderBy = "sequence desc";
PageHelper.startPage(page,limit,orderBy);
//查询所有课程 //查询所有课程
List<ApplicationVo> applicationVos = applicationMapper.queryApplication(); // List<ApplicationVo> applicationVos = applicationMapper.queryApplication();
QueryWrapper<Application> qwa=new QueryWrapper<>();
List<Application> applications = applicationMapper.selectList(qwa);
ConvertUtil convertUtil=new ConvertUtil();
List<ApplicationVo> applicationVos = convertUtil.entityToVoList(applications, ApplicationVo.class);
List list=null;
for (int i = 0; i <applications.size(); i++) {
String[] split = applications.get(i).getDirId().split(",");
list=new ArrayList();
for (int j = 0; j < split.length; j++) {
QueryWrapper<Directory> qwd=new QueryWrapper<>();
qwd.lambda().eq(Directory::getId,split[j]);
Directory directory = directoryMapper.selectOne(qwd);
list.add(directory.getDirName());
applicationVos.get(i).setAppCourseDirectoryVos(list);
}
}
if (applicationVos.isEmpty()) if (applicationVos.isEmpty())
{ {
throw new ServiceException("400","应用数据为空"); throw new ServiceException("400","应用数据为空");
@ -62,13 +74,14 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
return applicationVoPageVO; return applicationVoPageVO;
} }
/** /**
* *
*/ */
@Override @Override
public List<Directory> queryDir() { public List<Directory> queryDirectory() {
QueryWrapper<Directory> qwd=new QueryWrapper<>(); QueryWrapper<Directory> qwd=new QueryWrapper<>();
qwd.lambda().eq(Directory::getDirIden,2); qwd.select("directory_name").lambda().eq(Directory::getDirIden,2);
List<Directory> list = directoryMapper.selectList(qwd); List<Directory> list = directoryMapper.selectList(qwd);
if(list.isEmpty()){ if(list.isEmpty()){
throw new ServiceException("400","目录数据为空"); throw new ServiceException("400","目录数据为空");
@ -76,6 +89,15 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
return list; return list;
} }
@Override
public void dirSequence(Application application) {
QueryWrapper<Application> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Application::getAppName,application.getAppName());
Application application1 = applicationMapper.selectOne(queryWrapper);
applicationMapper.updateSequence(application1);
}
/** /**
* id * id
@ -86,14 +108,19 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
QueryWrapper<Application> qwa=new QueryWrapper<>(); QueryWrapper<Application> qwa=new QueryWrapper<>();
qwa.lambda().eq(Application::getId,id); qwa.lambda().eq(Application::getId,id);
Application application = applicationMapper.selectOne(qwa); Application application = applicationMapper.selectOne(qwa);
//查询目录
QueryWrapper<Directory> qwd=new QueryWrapper<>();
qwd.lambda().eq(Directory::getId,application.getDirId());
Directory directory = directoryMapper.selectOne(qwd);
ConvertUtil convertUtil=new ConvertUtil(); ConvertUtil convertUtil=new ConvertUtil();
ApplicationVo applicationVo = convertUtil.entityToVo(application, ApplicationVo.class); ApplicationVo applicationVo = convertUtil.entityToVo(application, ApplicationVo.class);
//查询目录
List list=new ArrayList();
String[] split = application.getDirId().split(",");
for (int i = 0; i < split.length; i++) {
QueryWrapper<Directory> qwd=new QueryWrapper<>();
qwd.lambda().eq(Directory::getId,split[i]);
Directory directory = directoryMapper.selectOne(qwd);
list.add(directory.getDirName());
}
//给目录名称赋值 //给目录名称赋值
applicationVo.setDirName(directory.getDirName()); applicationVo.setAppCourseDirectoryVos(list);
return applicationVo; return applicationVo;
} }
@ -108,7 +135,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
if(applicationVo.getAppUrl().isEmpty()){ if(applicationVo.getAppUrl().isEmpty()){
throw new ServiceException("400","应用链接不能为空"); throw new ServiceException("400","应用链接不能为空");
} }
if(applicationVo.getDirName().isEmpty()){ if(applicationVo.getAppCourseDirectoryVos().isEmpty()){
throw new ServiceException("400","归属目录不能为空"); throw new ServiceException("400","归属目录不能为空");
} }
if(applicationVo.getAppIcon().isEmpty()){ if(applicationVo.getAppIcon().isEmpty()){
@ -118,15 +145,23 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
int sum = applicationMapper.findByNameAndId(applicationVo.getId(),applicationVo.getAppName()); int sum = applicationMapper.findByNameAndId(applicationVo.getId(),applicationVo.getAppName());
if (sum>0) if (sum>0)
{ {
throw new ServiceException("300","课程名已存在"); throw new ServiceException("300","应用名已存在");
} }
ConvertUtil convertUtil=new ConvertUtil(); ConvertUtil convertUtil=new ConvertUtil();
Application application = convertUtil.VoToEntity(applicationVo, Application.class); Application application = convertUtil.VoToEntity(applicationVo, Application.class);
QueryWrapper<Directory> qwd=new QueryWrapper<>(); String arr="";
qwd.lambda().eq(Directory::getDirName,applicationVo.getDirName()).eq(Directory::getDirIden,2); for (int i = 0; i < applicationVo.getAppCourseDirectoryVos().size(); i++) {
Directory directory = directoryMapper.selectOne(qwd); QueryWrapper<Directory> qwd=new QueryWrapper<>();
application.setDirId(directory.getId()); qwd.lambda().eq(Directory::getDirIden,2).eq(Directory::getDirName,applicationVo.getAppCourseDirectoryVos().get(i).getDirectoryName());
Directory directory = directoryMapper.selectOne(qwd);
if(i==applicationVo.getAppCourseDirectoryVos().size()-1){
arr=arr+directory.getId();
}else {
arr=directory.getId()+",";
}
}
application.setDirId(arr);
application.setAppUpdatetime(new Date()); application.setAppUpdatetime(new Date());
int update = applicationMapper.updateById(application); int update = applicationMapper.updateById(application);
return update; return update;
@ -174,6 +209,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setDirIden(2); directory.setDirIden(2);
directory.setSequence(0);
int insert = directoryMapper.insert(directory); int insert = directoryMapper.insert(directory);
return insert; return insert;
} }
@ -190,25 +226,37 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
if (applicationVo.getAppUrl().isEmpty()){ if (applicationVo.getAppUrl().isEmpty()){
throw new ServiceException("400","应用链接不能为空"); throw new ServiceException("400","应用链接不能为空");
} }
if(applicationVo.getDirName().isEmpty()){ if(applicationVo.getAppCourseDirectoryVos().isEmpty()){
throw new ServiceException("400","归属目录不能为空"); throw new ServiceException("400","归属目录不能为空");
} }
if(applicationVo.getAppIcon().isEmpty()){ if(applicationVo.getAppIcon().isEmpty()){
throw new ServiceException("400","应用图片不能为空"); throw new ServiceException("400","应用图片不能为空");
} }
QueryWrapper<Application> qwa=new QueryWrapper<>(); QueryWrapper<Application> qwa=new QueryWrapper<>();
qwa.lambda().eq(Application::getAppName,applicationVo.getAppName()).or().eq(Application::getAppUrl,applicationVo.getAppUrl()); qwa.lambda().eq(Application::getAppName,applicationVo.getAppName());
List<Application> applications = applicationMapper.selectList(qwa); List<Application> applications = applicationMapper.selectList(qwa);
if(applications.size()!=0){ if(applications.size()!=0){
throw new ServiceException("403","应用名称或链接已存在"); throw new ServiceException("403","应用名称已存在");
} }
ConvertUtil convertUtil=new ConvertUtil(); ConvertUtil convertUtil=new ConvertUtil();
Application application = convertUtil.VoToEntity(applicationVo, Application.class); Application application = convertUtil.VoToEntity(applicationVo, Application.class);
QueryWrapper<Directory> qwd=new QueryWrapper<>(); String arr="";
qwd.lambda().eq(Directory::getDirName,applicationVo.getDirName()).eq(Directory::getDirIden,2); for (int i = 0; i < applicationVo.getAppCourseDirectoryVos().size(); i++) {
Directory directory = directoryMapper.selectOne(qwd); QueryWrapper<Directory> qwd=new QueryWrapper<>();
application.setDirId(directory.getId()); qwd.lambda().eq(Directory::getDirName,applicationVo.getAppCourseDirectoryVos().get(i).getDirectoryName()).eq(Directory::getDirIden,2);
Directory directory = directoryMapper.selectOne(qwd);
if (i==applicationVo.getAppCourseDirectoryVos().size()-1){
arr=arr+directory.getId();
}else {
arr=directory.getId()+",";
}
}
Integer uuid= UUID.randomUUID().toString().replaceAll("-","").hashCode();
uuid = uuid < 0 ? -uuid : uuid;//String.hashCode() 值会为空
application.setId(uuid);
application.setDirId(arr);
application.setAppAddtime(new Date()); application.setAppAddtime(new Date());
application.setSequence(0);
int insert = applicationMapper.insert(application); int insert = applicationMapper.insert(application);
return insert; return insert;
} }
@ -229,7 +277,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli
List list=new ArrayList(); List list=new ArrayList();
for (int i = 0; i < applicationVoList.size(); i++) { for (int i = 0; i < applicationVoList.size(); i++) {
//判断目录是否相同 //判断目录是否相同
if (applicationVoList.get(i).getDirName().equals(clientApplicationVos.get(j).getDirName())){ if (applicationVoList.get(i).getAppCourseDirectoryVos().equals(clientApplicationVos.get(j).getDirName())){
list.add(applicationVoList.get(i)); list.add(applicationVoList.get(i));
clientApplicationVos.get(j).setApplicationVos(list); clientApplicationVos.get(j).setApplicationVos(list);
} }

@ -0,0 +1,12 @@
package com.zhiyun.zhiyun03.application.vo;
import lombok.Data;
/**
* @author tz
* @date 2023/9/12 15:38
*/
@Data
public class AppCourseDirectoryVo {
private String directoryName;
}

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class ApplicationVo { public class ApplicationVo {
@TableId @TableId
@ -15,7 +17,7 @@ public class ApplicationVo {
//超链接 //超链接
private String appUrl; private String appUrl;
//归属目录 //归属目录
private String dirName; private List<AppCourseDirectoryVo> appCourseDirectoryVos;
//应用图标 //应用图标
private String appIcon; private String appIcon;
} }

@ -10,5 +10,7 @@ public class ClientApplicationVo {
private String dirIcon; private String dirIcon;
private String sequence;
private List<ApplicationVo> applicationVos; private List<ApplicationVo> applicationVos;
} }

@ -14,6 +14,7 @@ import com.zhiyun.zhiyun03.course.vo.DirectoryVo;
import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.course.vo.PageVO;
import com.zhiyun.zhiyun03.utils.common.JsonResult; import com.zhiyun.zhiyun03.utils.common.JsonResult;
import com.zhiyun.zhiyun03.utils.common.ResultCode;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
@ -44,7 +45,7 @@ public class CourseController {
@ApiOperation("查询课程") @ApiOperation("查询课程")
@GetMapping("/queryCourse") @GetMapping("/queryCourse")
public JsonResult<PageVO<CourseVo>> queryCourse(@ApiParam @RequestParam(value = "page",required = false,defaultValue = "1")Integer page, public JsonResult<PageVO<CourseVo>> queryCourse(@ApiParam @RequestParam(value = "page",required = false,defaultValue = "1")Integer page,
@ApiParam @RequestParam(value = "limit",required = false,defaultValue = "5")Integer limit ){ @ApiParam @RequestParam(value = "limit",required = false,defaultValue = "10")Integer limit ){
PageVO<CourseVo> lists = courseService.queryCourse(page,limit); PageVO<CourseVo> lists = courseService.queryCourse(page,limit);
@ -128,4 +129,24 @@ public class CourseController {
} }
@PostMapping("/dirSequence")
@ApiOperation("目录排序")
public JsonResult dirSequence(Course course){
courseService.dirSequence(course);
return JsonResult.success(ResultCode.SUCCESS);
}
/**
*
*/
@ApiOperation("目录删除")
@GetMapping("/delCourseDirectory")
public JsonResult delCourseDirectory(String name){
courseService.delCourseDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -1,6 +1,7 @@
package com.zhiyun.zhiyun03.course.mapper; package com.zhiyun.zhiyun03.course.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.course.entity.Course; import com.zhiyun.zhiyun03.course.entity.Course;
import com.zhiyun.zhiyun03.course.vo.ClientCourseVo; import com.zhiyun.zhiyun03.course.vo.ClientCourseVo;
import com.zhiyun.zhiyun03.course.vo.CourseVo; import com.zhiyun.zhiyun03.course.vo.CourseVo;
@ -37,4 +38,6 @@ public interface CourseMapper extends BaseMapper<Course> {
int findByNameAndId(@Param("id") Integer id, @Param("courseName") String courseName); int findByNameAndId(@Param("id") Integer id, @Param("courseName") String courseName);
int updateSequence(Directory directory);
} }

@ -56,4 +56,8 @@ public interface CourseService extends IService<Course> {
List<ClientCourseVo> queryCourseByDir(); List<ClientCourseVo> queryCourseByDir();
List<ClientCourseVo> queryCourseClient(); List<ClientCourseVo> queryCourseClient();
void dirSequence(Course course);
void delCourseDirectory(String name);
} }

@ -50,8 +50,8 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
*/ */
@Override @Override
public PageVO<CourseVo> queryCourse(Integer page, Integer limit) { public PageVO<CourseVo> queryCourse(Integer page, Integer limit) {
//开启分页 String orderBy = "sequence desc";
PageHelper.startPage(page,limit); PageHelper.startPage(page,limit,orderBy);
//查询所有课程 //查询所有课程
List<CourseVo> courseVoList = courseMapper.queryCourse(); List<CourseVo> courseVoList = courseMapper.queryCourse();
PageInfo<CourseVo> pageInfo = new PageInfo<CourseVo>(courseVoList); PageInfo<CourseVo> pageInfo = new PageInfo<CourseVo>(courseVoList);
@ -226,6 +226,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
} }
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setSequence(0);
directoryMapper.addCourseDirectory(directory); directoryMapper.addCourseDirectory(directory);
} }
/** /**
@ -250,7 +251,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
public List<ClientCourseVo> queryCourseClient() { public List<ClientCourseVo> queryCourseClient() {
//查询对应模块目录 //查询对应模块目录
QueryWrapper<Directory> qwd=new QueryWrapper<>(); QueryWrapper<Directory> qwd=new QueryWrapper<>();
qwd.lambda().eq(Directory::getDirIden,1); qwd.lambda().eq(Directory::getDirIden,1).orderByDesc(true,Directory::getSequence);;
List<Directory> directories = directoryMapper.selectList(qwd); List<Directory> directories = directoryMapper.selectList(qwd);
//转成vo类 //转成vo类
ConvertUtil convertUtil=new ConvertUtil(); ConvertUtil convertUtil=new ConvertUtil();
@ -270,4 +271,37 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper,Course> implemen
} }
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void dirSequence(Course course) {
QueryWrapper<Course> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Course::getCourseName,course.getCourseName());
Course course1 = courseMapper.selectOne(queryWrapper);
QueryWrapper<Directory> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(Directory::getId,course1.getDirId()).eq(Directory::getDirIden,1);
Directory directory = directoryMapper.selectOne(wrapper);
courseMapper.updateSequence(directory);
}
/**
*
* @param name
* @return
*/
@Override
public void delCourseDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,1);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
}
} }

@ -136,4 +136,12 @@ public class DownloadController {
@ApiOperation("目录删除")
@GetMapping("/delDownloadDirectory")
public JsonResult delDownloadDirectory(String name){
downloadService.delCourseDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -31,4 +31,6 @@ public interface DownloadService extends IService<Download> {
List<DirectoryVo> queryDownloadDirectory(); List<DirectoryVo> queryDownloadDirectory();
List<ClientDownloadVo> queryDown(); List<ClientDownloadVo> queryDown();
void delCourseDirectory(String name);
} }

@ -193,6 +193,7 @@ public class DownloadServiceImpl extends ServiceImpl<DownloadMapper, Download> i
} }
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setSequence(0);
/*添加下载*/ /*添加下载*/
directoryMapper.addDownloadDirectory(directory); directoryMapper.addDownloadDirectory(directory);
} }
@ -230,4 +231,12 @@ public class DownloadServiceImpl extends ServiceImpl<DownloadMapper, Download> i
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void delCourseDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,3);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
}
} }

@ -140,4 +140,13 @@ public class GameController {
return JsonResult.error(ResultCode.Fail,"失败"); return JsonResult.error(ResultCode.Fail,"失败");
} }
@ApiOperation("目录删除")
@GetMapping("/delGameDirectory")
public JsonResult delGameDirectory(String name){
gameService.delGameDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -26,4 +26,6 @@ public interface GameService extends IService<Game> {
int addDirectory(Directory directory); int addDirectory(Directory directory);
List<ClientGameVo> queryGameClient(); List<ClientGameVo> queryGameClient();
void delGameDirectory(String name);
} }

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.zhiyun.zhiyun03.academic.entity.Academic;
import com.zhiyun.zhiyun03.application.entity.Application; import com.zhiyun.zhiyun03.application.entity.Application;
import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper; import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper;
@ -84,7 +85,7 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
throw new ServiceException("400","结束时间不能为空"); throw new ServiceException("400","结束时间不能为空");
} }
QueryWrapper<Game> qwg=new QueryWrapper<>(); QueryWrapper<Game> qwg=new QueryWrapper<>();
qwg.lambda().eq(Game::getGameName,gameVo.getGameName()).or().eq(Game::getGameUrl,gameVo.getGameUrl()); qwg.lambda().eq(Game::getGameName,gameVo.getGameName());
List<Game> games = gameMapper.selectList(qwg); List<Game> games = gameMapper.selectList(qwg);
if (games.size()!=0){ if (games.size()!=0){
throw new ServiceException("403","大赛名称或链接已存在"); throw new ServiceException("403","大赛名称或链接已存在");
@ -207,6 +208,7 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setDirIden(5); directory.setDirIden(5);
directory.setSequence(0);
int insert = directoryMapper.insert(directory); int insert = directoryMapper.insert(directory);
return insert; return insert;
} }
@ -236,4 +238,17 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void delGameDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,5);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
QueryWrapper<Game> qw = new QueryWrapper<>();
qw.lambda().eq(Game::getDirId,directory.getId());
gameMapper.delete(qw);
}
} }

@ -92,11 +92,19 @@ public class InviteController {
@ApiOperation("查询目录") @ApiOperation("查询目录")
@GetMapping("/queryInviteDirectory") @GetMapping("/queryInviteDirectory")
public JsonResult<DirectoryVo> queryInviteDirectory(){ public JsonResult<DirectoryVo> querycDirectory(){
List<DirectoryVo> directory = inviteService.queryInviteDirectory(); List<DirectoryVo> directory = inviteService.queryInviteDirectory();
return JsonResult.success(directory); return JsonResult.success(directory);
} }
@ApiOperation("目录删除")
@GetMapping("/delInviteDirectory")
public JsonResult delInviteDirectory(String name){
inviteService.delInviteDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -27,4 +27,6 @@ public interface InviteService extends IService<Invite> {
List<DirectoryVo> queryInviteDirectory(); List<DirectoryVo> queryInviteDirectory();
List<ClientInviteVo> queryInviteClient(); List<ClientInviteVo> queryInviteClient();
void delInviteDirectory(String name);
} }

@ -184,6 +184,7 @@ public class InviteServieImpl extends ServiceImpl<InviteMapper, Invite> implemen
} }
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setSequence(0);
directoryMapper.addInviteDirectory(directory); directoryMapper.addInviteDirectory(directory);
} }
@ -221,4 +222,13 @@ public class InviteServieImpl extends ServiceImpl<InviteMapper, Invite> implemen
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void delInviteDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,8);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
}
} }

@ -141,4 +141,13 @@ public class KnowledgeController {
List<Directory> list = knowledgeService.queryDir(); List<Directory> list = knowledgeService.queryDir();
return JsonResult.success(list); return JsonResult.success(list);
} }
@ApiOperation("目录删除")
@GetMapping("/delKnowledgeDirectory")
public JsonResult delKnowledgeDirectory(String name){
knowledgeService.delKnowledgeDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -26,4 +26,6 @@ public interface KnowledgeService extends IService<Knowledge> {
List<Directory> queryDir(); List<Directory> queryDir();
List<ClientKnowledgeVo> queryKnowledgeClient(); List<ClientKnowledgeVo> queryKnowledgeClient();
void delKnowledgeDirectory(String name);
} }

@ -82,7 +82,7 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge>
QueryWrapper<Knowledge> qwk=new QueryWrapper<>(); QueryWrapper<Knowledge> qwk=new QueryWrapper<>();
qwk.lambda().eq(Knowledge::getKnowledgeBrief,knowledgeVo.getKnowledgeBrief()).or().eq(Knowledge::getKnowledgeUrl,knowledgeVo.getKnowledgeUrl()); qwk.lambda().eq(Knowledge::getKnowledgeBrief,knowledgeVo.getKnowledgeBrief());
List<Knowledge> knowledges = knowledgeMapper.selectList(qwk); List<Knowledge> knowledges = knowledgeMapper.selectList(qwk);
if(knowledges.size()!=0){ if(knowledges.size()!=0){
@ -202,6 +202,7 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge>
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setDirIden(7); directory.setDirIden(7);
directory.setSequence(0);
int insert = directoryMapper.insert(directory); int insert = directoryMapper.insert(directory);
return insert; return insert;
} }
@ -226,8 +227,13 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge>
//转成vo类 //转成vo类
ConvertUtil convertUtil=new ConvertUtil(); ConvertUtil convertUtil=new ConvertUtil();
List<ClientKnowledgeVo> clientApplicationVos = convertUtil.entityToVoList(directories, ClientKnowledgeVo.class); List<ClientKnowledgeVo> clientApplicationVos = convertUtil.entityToVoList(directories, ClientKnowledgeVo.class);
List<KnowledgeVo> applicationVoList = knowledgeMapper.queryKnowledge();
if (clientApplicationVos == null)
{
throw new RuntimeException("数据为空");
}
List<KnowledgeVo> applicationVoList = knowledgeMapper.queryKnowledge();
//向clientApplicationVos中赋值 //向clientApplicationVos中赋值
for (int j = 0; j < clientApplicationVos.size(); j++) { for (int j = 0; j < clientApplicationVos.size(); j++) {
List list=new ArrayList(); List list=new ArrayList();
@ -242,4 +248,12 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge>
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void delKnowledgeDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,7);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
}
} }

@ -136,4 +136,12 @@ public class ServeController {
return JsonResult.success(directory); return JsonResult.success(directory);
} }
@ApiOperation("目录删除")
@GetMapping("/delServiceDirectory")
public JsonResult delServiceDirectory(String name){
serveService.delServiceDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -29,4 +29,6 @@ public interface ServeService extends IService<Serve> {
List<DirectoryVo> queryServiceDirectory(); List<DirectoryVo> queryServiceDirectory();
List<ClientServeVo> queryServeClient(); List<ClientServeVo> queryServeClient();
void delServiceDirectory(String name);
} }

@ -16,6 +16,7 @@ import com.zhiyun.zhiyun03.serve.mapper.ServeMapper;
import com.zhiyun.zhiyun03.serve.service.ServeService; import com.zhiyun.zhiyun03.serve.service.ServeService;
import com.zhiyun.zhiyun03.serve.vo.ClientServeVo; import com.zhiyun.zhiyun03.serve.vo.ClientServeVo;
import com.zhiyun.zhiyun03.serve.vo.ServeVo; import com.zhiyun.zhiyun03.serve.vo.ServeVo;
import com.zhiyun.zhiyun03.textual.entity.Textual;
import com.zhiyun.zhiyun03.utils.convert.ConvertUtil; import com.zhiyun.zhiyun03.utils.convert.ConvertUtil;
import com.zhiyun.zhiyun03.utils.exception.ServiceException; import com.zhiyun.zhiyun03.utils.exception.ServiceException;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -201,6 +202,7 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
} }
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setSequence(0);
directoryMapper.addServiceDirectory(directory); directoryMapper.addServiceDirectory(directory);
} }
/* /*
@ -246,4 +248,17 @@ public class ServeServiceImpl extends ServiceImpl<ServeMapper, Serve> implements
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void delServiceDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,9);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
QueryWrapper<Serve> qw = new QueryWrapper<>();
qw.lambda().eq(Serve::getDirId,directory.getId());
serveMapper.delete(qw);
}
} }

@ -96,4 +96,12 @@ public class TextualController {
} }
return JsonResult.error(ResultCode.Fail,"失败"); return JsonResult.error(ResultCode.Fail,"失败");
} }
@ApiOperation("目录删除")
@GetMapping("/delTextualDirectory")
public JsonResult delTextualDirectory(String name){
textualService.delTextualDirectory(name);
return JsonResult.success("删除成功");
}
} }

@ -27,4 +27,6 @@ public interface TextualService extends IService<Textual> {
List<ClientTextualVo> queryTextualClient(); List<ClientTextualVo> queryTextualClient();
void delTextualDirectory(String name);
} }

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.zhiyun.zhiyun03.academic.entity.Academic;
import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.application.entity.Directory;
import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper; import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper;
import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.course.vo.PageVO;
@ -78,7 +79,7 @@ public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> impl
} }
QueryWrapper<Textual> qwt=new QueryWrapper<>(); QueryWrapper<Textual> qwt=new QueryWrapper<>();
qwt.lambda().eq(Textual::getTextualName,textualVo.getTextualName()).or().eq(Textual::getTextualUrl,textualVo.getTextualUrl()); qwt.lambda().eq(Textual::getTextualName,textualVo.getTextualName());
List<Textual> textuals = textualMapper.selectList(qwt); List<Textual> textuals = textualMapper.selectList(qwt);
if(textuals.size()!=0) { if(textuals.size()!=0) {
throw new ServiceException("403","考证名称或链接已存在"); throw new ServiceException("403","考证名称或链接已存在");
@ -203,6 +204,7 @@ public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> impl
directory.setDirAddtime(new Date()); directory.setDirAddtime(new Date());
directory.setId(uuid); directory.setId(uuid);
directory.setDirIden(4); directory.setDirIden(4);
directory.setSequence(0);
int insert = directoryMapper.insert(directory); int insert = directoryMapper.insert(directory);
return insert; return insert;
} }
@ -231,4 +233,17 @@ public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> impl
} }
return clientApplicationVos; return clientApplicationVos;
} }
@Override
public void delTextualDirectory(String name) {
QueryWrapper<Directory> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Directory::getDirName,name).eq(Directory::getDirIden,4);
Directory directory = directoryMapper.selectOne(queryWrapper);
directoryMapper.deleteById(directory.getId());
QueryWrapper<Textual> qw = new QueryWrapper<>();
qw.lambda().eq(Textual::getDirId,directory.getId());
textualMapper.delete(qw);
}
} }

@ -20,7 +20,6 @@ import java.io.IOException;
public class UserController { public class UserController {
@Autowired @Autowired
UserService userService; UserService userService;
@NoLoginCheck @NoLoginCheck
@RequestMapping(path = "/login") @RequestMapping(path = "/login")
public JsonResult<User> login(HttpSession session, @RequestParam(name = "userName") String username, @RequestParam(name = "password") String password) { public JsonResult<User> login(HttpSession session, @RequestParam(name = "userName") String username, @RequestParam(name = "password") String password) {
@ -36,7 +35,6 @@ public class UserController {
} }
return JsonResult.error(ResultCode.USER_ACCOUNT_ERROR, "账号或密码错误"); return JsonResult.error(ResultCode.USER_ACCOUNT_ERROR, "账号或密码错误");
} }
//退出 //退出
@RequestMapping("/logout") @RequestMapping("/logout")
public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException { public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {

@ -28,8 +28,8 @@ spring:
mode: HTML #模板 mode: HTML #模板
servlet: servlet:
multipart: multipart:
max-file-size: 50MB max-file-size: 200MB
max-request-size: 50MB max-request-size: 500MB
web: web:
resources: resources:
static-locations: classpath:/static/ static-locations: classpath:/static/

@ -1,6 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhiyun.zhiyun03.application.mapper.ApplicationMapper"> <mapper namespace="com.zhiyun.zhiyun03.application.mapper.ApplicationMapper">
<update id="updateSequence">
UPDATE
application
SET
sequence =
(SELECT
se + 1
FROM
(SELECT
MAX(sequence) AS se
FROM
application) IP)
WHERE id = #{id}
</update>
<select id="queryApplication" resultType="com.zhiyun.zhiyun03.application.vo.ApplicationVo"> <select id="queryApplication" resultType="com.zhiyun.zhiyun03.application.vo.ApplicationVo">
select c.id, select c.id,
@ -15,6 +29,7 @@
inner join inner join
(select * from directory) as d (select * from directory) as d
on c.dir_id = d.id on c.dir_id = d.id
</select> </select>
<select id="findByNameAndId" resultType="java.lang.Integer"> <select id="findByNameAndId" resultType="java.lang.Integer">
select count(1) from application where app_name = #{appName} and id != #{id} select count(1) from application where app_name = #{appName} and id != #{id}

@ -43,6 +43,20 @@
</if> </if>
</where> </where>
</update> </update>
<update id="updateSequence">
UPDATE
directory
SET
sequence =
(SELECT
se + 1
FROM
(SELECT
MAX(sequence) AS se
FROM
directory) IP)
WHERE id = #{id}
</update>
<select id="queryCourse" resultType="com.zhiyun.zhiyun03.course.vo.CourseVo"> <select id="queryCourse" resultType="com.zhiyun.zhiyun03.course.vo.CourseVo">
@ -56,7 +70,7 @@
c.course_updatetime c.course_updatetime
from course as c from course as c
inner join inner join
(select id,dir_name,dir_img,dir_addtime,dir_iden from directory) as d (select id,dir_name,dir_img,dir_addtime,dir_iden,sequence from directory) as d
on c.dir_id = d.id on c.dir_id = d.id
WHERE d.dir_iden = 1 WHERE d.dir_iden = 1
</select> </select>

@ -4,16 +4,16 @@
<insert id="addCourseDirectory"> <insert id="addCourseDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirIcon},1,#{dirAddtime}) insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime,sequence) values (#{id},#{dirName},#{dirIcon},1,#{dirAddtime},#{sequence})
</insert> </insert>
<insert id="addDownloadDirectory"> <insert id="addDownloadDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirIcon},3,#{dirAddtime}) insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime,sequence) values (#{id},#{dirName},#{dirIcon},3,#{dirAddtime},#{sequence})
</insert> </insert>
<insert id="addInviteDirectory"> <insert id="addInviteDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime,dir_brief) values (#{id},#{dirName},#{dirIcon},8,#{dirAddtime},#{dirBrief}) insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime,dir_brief,sequence) values (#{id},#{dirName},#{dirIcon},8,#{dirAddtime},#{dirBrief},#{sequence})
</insert> </insert>
<insert id="addServiceDirectory"> <insert id="addServiceDirectory">
insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime) values (#{id},#{dirName},#{dirIcon},9,#{dirAddtime}) insert into directory (id,dir_name,dir_img,dir_iden,dir_addtime,sequence) values (#{id},#{dirName},#{dirIcon},9,#{dirAddtime},#{sequence})
</insert> </insert>
<select id="selectByName" resultType="java.lang.Integer"> <select id="selectByName" resultType="java.lang.Integer">
select id from directory where dir_name =#{dirName} and dir_iden = #{dirIden} select id from directory where dir_name =#{dirName} and dir_iden = #{dirIden}

@ -30,6 +30,7 @@
<script type="text/html" id="barDemo"> <script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="top">置顶</a>
</script> </script>
@ -66,12 +67,12 @@
} }
, cols: [[ , cols: [[
{ type: 'checkbox', fixed: 'left' } { type: 'checkbox', fixed: 'left' }
,{field:'id', title:'编号', width:300, sort: true, } ,{field:'id', title:'编号', width:280, sort: true, }
,{field:'appName', title:'应用名称', width:300} ,{field:'appName', title:'应用名称', width:280}
,{field:'appBrief', title:'应用简介', width:300} ,{field:'appBrief', title:'应用简介', width:280}
,{field:'appUrl', title:'超链接', width:300} ,{field:'appUrl', title:'超链接', width:280}
,{field:'dirName', title:'归属目录', width:300} ,{field:'dirName', title:'归属目录', width:280}
, { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150 } , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 200 }
]] ]]
, page: true , page: true
}) })
@ -113,11 +114,51 @@
}) })
} else if (obj.event === 'edit') { } else if (obj.event === 'edit') {
selectOne(data) selectOne(data)
}else if (obj.event === 'top'){
layer.confirm('真的置顶行么', function (index) {
layer.close(index)
//获取要删除的服务的id
var TopCourseId = data.appName
$.post("http://localhost:8080/application/dirSequence", { "appName": TopCourseId }, function (result) {
if (result.code == 200) {
// 删除成功之后 弹出msg
layer.msg(result.msg)
// 重点:继续显示当前页
$(".layui-laypage-btn").click()
} else {
layer.msg(result.msg, { icon: 2 })
layer.close(index)
}
})
})
} }
}) })
}); });
</script> </script>
<!--置顶-->
<script>
function top (data) {
layui.use(['form'], function () {
var form = layui.form
$.get("http://localhost:8080/application/updateById", formData,
function (data) {
if ("success" == data.msg) {
layer.msg(data.msg)
$(".layui-laypage-btn").click()
parent.layer.close(index)
} else {
layer.msg(data.msg)
}
})
})
}
</script>
<script> <script>
function selectOne (data) { function selectOne (data) {
layui.use(['form'], function () { layui.use(['form'], function () {

@ -1,6 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html"> <html xmlns="http://www.w3.org/1999/html">
<link rel="stylesheet" href="xm-select.css">
<script src="xm-select.js"></script>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Layui</title> <title>Layui</title>
@ -23,12 +24,15 @@
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-sm" lay-event="addData">添加目录</button> <button class="layui-btn layui-btn-sm" lay-event="addData">添加目录</button>
<button class="layui-btn layui-btn-sm" lay-event="delData">目录管理</button>
<button class="layui-btn layui-btn-sm" lay-event="addCourse">添加课程</button> <button class="layui-btn layui-btn-sm" lay-event="addCourse">添加课程</button>
</div> </div>
</script> </script>
<script type="text/html" id="barDemo"> <script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="top">置顶</a>
</script> </script>
<script src="layui/layui.js"></script> <script src="layui/layui.js"></script>
@ -65,12 +69,12 @@
} }
, cols: [[ , cols: [[
{ type: 'checkbox', fixed: 'left' } { type: 'checkbox', fixed: 'left' }
, { field: 'id', title: '序号', width: 300, sort: true, } , { field: 'id', title: '序号', width: 280, sort: true, }
, { field: 'courseName', title: '课程名称', width: 300 } , { field: 'courseName', title: '课程名称', width: 280 }
, { field: 'courseBrief', title: '课程简介', width: 300 } , { field: 'courseBrief', title: '课程简介', width: 280 }
, { field: 'courseUrl', title: '超链接', width: 300 } , { field: 'courseUrl', title: '超链接', width: 280 }
, { field: 'dirName', title: '归属目录', width: 300 } , { field: 'dirName', title: '归属目录', width: 280 }
, { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150 } , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 200 }
]] ]]
, page: true , page: true
}) })
@ -83,6 +87,12 @@
} else if (obj.event === 'addCourse') { } else if (obj.event === 'addCourse') {
addCourse(data) addCourse(data)
} }
// else if (obj.event === 'top') {
// top(data)
// }
else if (obj.event === 'delData') {
delData(data)
}
}) })
//监听行工具事件 //监听行工具事件
table.on('tool(test)', function (obj) { table.on('tool(test)', function (obj) {
@ -110,11 +120,52 @@
}) })
} else if (obj.event === 'edit') { } else if (obj.event === 'edit') {
selectOne(data) selectOne(data)
}else if (obj.event === 'top'){
layer.confirm('真的置顶行么', function (index) {
layer.close(index)
//获取要删除的服务的id
var TopCourseId = data.courseName
$.post("http://localhost:8080/api/course/dirSequence", { "courseName": TopCourseId }, function (result) {
if (result.code == 200) {
// 删除成功之后 弹出msg
layer.msg(result.msg)
// 重点:继续显示当前页
$(".layui-laypage-btn").click()
} else {
layer.msg(result.msg, { icon: 2 })
layer.close(index)
}
})
})
} }
}) })
}); });
</script> </script>
<!--置顶-->
<script>
function top (data) {
layui.use(['form'], function () {
var form = layui.form
$.get("http://localhost:8080/api/course/updateById", formData,
function (data) {
if ("success" == data.msg) {
layer.msg(data.msg)
$(".layui-laypage-btn").click()
parent.layer.close(index)
} else {
layer.msg(data.msg)
}
})
})
}
</script>
<script> <script>
function selectOne (data) { function selectOne (data) {
layui.use(['form'], function () { layui.use(['form'], function () {
@ -217,6 +268,7 @@
} }
</script> </script>
<script type="text/html" id="updateForm"> <script type="text/html" id="updateForm">
<form class="layui-form layui-form-pane" id="updateCourse" lay-filter="updateCourse" style="padding: 15px;"> <form class="layui-form layui-form-pane" id="updateCourse" lay-filter="updateCourse" style="padding: 15px;">
@ -448,7 +500,6 @@
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/92.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/92.png">
</div> </div>
</div> </div>
</div> </div>
<div class="swiper-button-next" style="margin-right: -5px;"></div> <div class="swiper-button-next" style="margin-right: -5px;"></div>
@ -458,6 +509,80 @@
</div> </div>
</form> </form>
</script> </script>
<!--删除目录-->
<script>
function delData (data) {
var $ = layui.jquery
var dirIcon = ''
//弹框
layer.open({
type: 1,
content: $("#delForm").html(),
title: ['修改目录', 'font-size:18px;'],
area: ['600px', '600px'],
btn: ['提交', '取消']
, yes: function (index, layero) {
// 获取所有图标元素
var dirName = $('#dirName').val()
var params = {
dirName: dirName,
dirIcon: dirIcon,
}
//修改操作
$.get("http://localhost:8080/api/course/addCourseDirectory", params,
function (data) {
if ("success" == data.msg) {
layer.msg(data.msg)
$(".layui-laypage-btn").click()
parent.layer.close(index)
} else {
layer.msg(data.msg)
}
})
}
, btn2: function (index, layero) {
// alert("取消")
}
})
}
</script>
<script type="text/html" id="delForm">
<table class="layui-table">
<colgroup>
<col width="255">
<col width="50">
<col>
</colgroup>
<thead>
<tr>
<th>目录名</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td>贤心</td>
<td><button class="layui-btn layui-btn-sm" lay-event="addCourse">删除</button></td>
</tr>
<!-- <tr>-->
<!-- <td>许闲心</td>-->
<!-- <td> <button class="layui-btn layui-btn-sm" lay-event="addCourse">删除</button></td>-->
<!-- </tr>-->
</tbody>
</table>
</script>
<script> <script>
function addDir (data) { function addDir (data) {
var $ = layui.jquery var $ = layui.jquery
@ -612,6 +737,7 @@
</div> </div>
</form> </form>
</script> </script>
<style> <style>
.icon-swiper-wrap { .icon-swiper-wrap {
position: relative; position: relative;
@ -743,6 +869,21 @@
} }
}) })
layui.use(['xmSelect'], function(){
var xmSelect = layui.xmSelect;
xmSelect.render({
el: '#directorId',
name: 'director',
layVerify: 'required',
max: 3, // 最多选择 3 个
data: [
{name: '苹果', value: 1},
{name: '香蕉', value: 2},
{name: '橙子', value: 3}
]
});
});
var swiper = new Swiper(".icon-swiper", { var swiper = new Swiper(".icon-swiper", {
slidesPerView: 6, slidesPerView: 6,
spaceBetween: 10, spaceBetween: 10,
@ -856,9 +997,6 @@
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/47.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/47.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/49.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/49.png">
</div> </div>
@ -877,7 +1015,6 @@
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/54.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/54.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/55.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/55.png">
</div> </div>
@ -932,7 +1069,6 @@
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/72.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/72.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/73.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/73.png">
</div> </div>
@ -963,8 +1099,6 @@
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/82.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/82.png">
</div> </div>
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/83.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/83.png">
</div> </div>
@ -995,8 +1129,6 @@
<div class="swiper-slide"> <div class="swiper-slide">
<img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/92.png"> <img class="image-item" src="https://zhiyun03.oss-cn-beijing.aliyuncs.com/images/92.png">
</div> </div>
</div> </div>
</div> </div>
<div class="swiper-button-next" style="margin-right: -5px;"></div> <div class="swiper-button-next" style="margin-right: -5px;"></div>

@ -99,8 +99,8 @@
, cols: [[ , cols: [[
{type: 'checkbox', fixed: 'left'} {type: 'checkbox', fixed: 'left'}
, {field: 'id', title: '序号', width: 300, sort: true,} , {field: 'id', title: '序号', width: 300, sort: true,}
, {field: 'downloadName', title: '招聘名称', width: 300} , {field: 'downloadName', title: '下载名称', width: 300}
, {field: 'downloadBrief', title: '招聘简介', width: 300} , {field: 'downloadBrief', title: '下载简介', width: 300}
, {field: 'downloadUrl', title: '超链接', width: 300} , {field: 'downloadUrl', title: '超链接', width: 300}
, {field: 'dirName', title: '归属目录', width: 300} , {field: 'dirName', title: '归属目录', width: 300}
, {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150} , {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150}
@ -225,7 +225,7 @@
upload.render({ upload.render({
elem: '#test10' elem: '#test10'
,url: 'http://localhost:8080/download/upload?file=upload' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。 ,url: 'http://localhost:8080/download/upload?file=upload' //此处用的是第三方的 http 请求演示,实际使用时改成您自己的上传接口即可。
, accept: 'file' // , accept: 'file'
,done: function(res){ ,done: function(res){
layer.msg('上传成功'); layer.msg('上传成功');
layui.$('#uploadDemoView').removeClass('layui-hide').find('img').attr('src', res.data); layui.$('#uploadDemoView').removeClass('layui-hide').find('img').attr('src', res.data);

@ -99,8 +99,8 @@
, cols: [[ , cols: [[
{type: 'checkbox', fixed: 'left'} {type: 'checkbox', fixed: 'left'}
, {field: 'id', title: '序号', width: 300, sort: true,} , {field: 'id', title: '序号', width: 300, sort: true,}
, {field: 'serveName', title: '招聘名称', width: 300} , {field: 'serveName', title: '服务名称', width: 300}
, {field: 'serveBrief', title: '招聘简介', width: 300} , {field: 'serveBrief', title: '服务简介', width: 300}
, {field: 'serveUrl', title: '超链接', width: 300} , {field: 'serveUrl', title: '超链接', width: 300}
, {field: 'dirName', title: '归属目录', width: 300} , {field: 'dirName', title: '归属目录', width: 300}
, {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150} , {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 150}

Loading…
Cancel
Save