diff --git a/pom.xml b/pom.xml index 7eaa992..696d351 100644 --- a/pom.xml +++ b/pom.xml @@ -100,7 +100,18 @@ </dependencies> + <build> + <resources> + <resource> + <directory>src/main/resources</directory> + <includes> + <include>**/*.*</include> + </includes> + <filtering>true</filtering> + </resource> + </resources> + <plugins> <plugin> <groupId>org.springframework.boot</groupId> diff --git a/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java b/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java index aa812b3..50f3a04 100644 --- a/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java +++ b/src/main/java/com/zhiyun/zhiyun03/Zhiyun03Application.java @@ -3,10 +3,11 @@ package com.zhiyun.zhiyun03; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication - +@ServletComponentScan public class Zhiyun03Application { public static void main(String[] args) { diff --git a/src/main/java/com/zhiyun/zhiyun03/academic/controller/AcademicController.java b/src/main/java/com/zhiyun/zhiyun03/academic/controller/AcademicController.java index bab78d3..e638a4f 100644 --- a/src/main/java/com/zhiyun/zhiyun03/academic/controller/AcademicController.java +++ b/src/main/java/com/zhiyun/zhiyun03/academic/controller/AcademicController.java @@ -3,6 +3,7 @@ package com.zhiyun.zhiyun03.academic.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhiyun.zhiyun03.academic.service.AcademicService; import com.zhiyun.zhiyun03.academic.vo.AcademicVo; +import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.course.vo.CourseVo; import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.game.vo.GameVo; @@ -18,6 +19,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.FileOutputStream; +import java.util.List; @RestController @RequestMapping("/academic") @@ -41,6 +43,13 @@ public class AcademicController { return JsonResult.success(lists).setCount(lists.getTotal()); } + @GetMapping ("/queryDir") + @ApiOperation("查询目录") + public JsonResult<Directory> queryDir(){ + List<Directory> list = academicService.queryDir(); + return JsonResult.success(list); + } + @PostMapping("/addAcademic") @ApiOperation("新增学术信息") public JsonResult addAcademic(AcademicVo academicVo){ @@ -55,8 +64,11 @@ public class AcademicController { @RequestMapping("/selectByIdAcademic") @ApiOperation("根据id查询学术信息") public JsonResult<AcademicVo> selectByIdAcademic(Integer id){ - AcademicVo academicVo = academicService.selectByIdAcademic(id); - return JsonResult.success(academicVo); + if (id!=null){ + AcademicVo academicVo = academicService.selectByIdAcademic(id); + return JsonResult.success(academicVo); + } + return JsonResult.error(); } @PostMapping("/updateAcademic") @@ -106,4 +118,13 @@ public class AcademicController { return JsonResult.success(path); } + @RequestMapping("/addDirectory") + @ApiOperation("新增目录") + public JsonResult addDirectory( Directory directory){ + int result = academicService.addDirectory(directory); + if(result>0){ + return JsonResult.success(ResultCode.SUCCESS); + } + return JsonResult.error(ResultCode.Fail,"失败"); + } } diff --git a/src/main/java/com/zhiyun/zhiyun03/academic/service/AcademicService.java b/src/main/java/com/zhiyun/zhiyun03/academic/service/AcademicService.java index c900396..0bee7e9 100644 --- a/src/main/java/com/zhiyun/zhiyun03/academic/service/AcademicService.java +++ b/src/main/java/com/zhiyun/zhiyun03/academic/service/AcademicService.java @@ -4,10 +4,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.zhiyun.zhiyun03.academic.entity.Academic; import com.zhiyun.zhiyun03.academic.vo.AcademicVo; +import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.course.vo.CourseVo; import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.game.vo.GameVo; +import java.util.List; + public interface AcademicService extends IService<Academic> { PageVO<AcademicVo> queryAcademic(Integer page, Integer limit); @@ -18,4 +21,8 @@ public interface AcademicService extends IService<Academic> { int updateAcademic(AcademicVo academicVo); int deleteAcademic(Integer id); + + List<Directory> queryDir(); + + int addDirectory(Directory directory); } diff --git a/src/main/java/com/zhiyun/zhiyun03/academic/service/impl/AcademicServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/academic/service/impl/AcademicServiceImpl.java index a002c37..751043d 100644 --- a/src/main/java/com/zhiyun/zhiyun03/academic/service/impl/AcademicServiceImpl.java +++ b/src/main/java/com/zhiyun/zhiyun03/academic/service/impl/AcademicServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.UUID; @Service public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> implements AcademicService { @@ -43,7 +44,7 @@ public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> i List<AcademicVo> academicVoList = academicMapper.queryAcademic(); if (academicVoList.isEmpty()) { - throw new ServiceException("400","课程数据为空"); + throw new ServiceException("400","学术数据为空"); } PageInfo<AcademicVo> pageInfo = new PageInfo<AcademicVo>(academicVoList); PageVO<AcademicVo> academicVoPageVO = new PageVO<>(); @@ -62,12 +63,31 @@ public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> i */ @Override public int addAcademic(AcademicVo academicVo) { + if(academicVo.getAcademicName().isEmpty()){ + throw new ServiceException("400","学术名称不能为空"); + } + if(academicVo.getAcademicUrl().isEmpty()){ + throw new ServiceException("400","学术链接不能为空"); + } + if (academicVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (academicVo.getAcademicImg().isEmpty()){ + throw new ServiceException("400","学术图片不能为空"); + } + + QueryWrapper<Academic> qwa=new QueryWrapper<>(); + qwa.lambda().eq(Academic::getAcademicName,academicVo.getAcademicName()).or().eq(Academic::getAcademicUrl,academicVo.getAcademicUrl()); + Academic academic1 = academicMapper.selectOne(qwa); + if(academic1!=null){ + throw new ServiceException("403","学术名称或链接已存在"); + } //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Academic academic = convertUtil.VoToEntity(academicVo, Academic.class); //根据目录名称查询目录id QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,academicVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,academicVo.getDirName()).eq(Directory::getDirIden,6); Directory directory = directoryMapper.selectOne(qwd); //将目录id封装到实体类 academic.setDirId(directory.getId()); @@ -101,12 +121,24 @@ public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> i */ @Override public int updateAcademic(AcademicVo academicVo) { + if(academicVo.getAcademicName().isEmpty()){ + throw new ServiceException("400","学术名称不能为空"); + } + if(academicVo.getAcademicUrl().isEmpty()){ + throw new ServiceException("400","学术链接不能为空"); + } + if (academicVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (academicVo.getAcademicImg().isEmpty()){ + throw new ServiceException("400","学术图片不能为空"); + } //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Academic academic = convertUtil.VoToEntity(academicVo, Academic.class); //根据目录名称查询目录id QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,academicVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,academicVo.getDirName()).eq(Directory::getDirIden,6); Directory directory = directoryMapper.selectOne(qwd); //将目录id封装到实体类 academic.setDirId(directory.getId()); @@ -126,4 +158,48 @@ public class AcademicServiceImpl extends ServiceImpl<AcademicMapper, Academic> i } return 0; } + + /** + * 目录查询 + * @return + */ + @Override + public List<Directory> queryDir() { + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirIden,6); + List<Directory> list = directoryMapper.selectList(qwd); + if(list.isEmpty()){ + throw new ServiceException("400","目录数据为空"); + } + return list; + } + + /** + * 添加目录 + * @param directory + * @return + */ + @Override + public int addDirectory(Directory directory) { + if (directory.getDirName().isEmpty() && directory.getDirImg().isEmpty()){ + throw new ServiceException("400","目录名称和图片不能为空"); + } + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirName,directory.getDirName()).eq(Directory::getDirIden,6); + Directory directory1 = directoryMapper.selectOne(qwd); + if(directory1!=null){ + throw new ServiceException("403","目录名称已存在"); + } + int uuid= UUID.randomUUID().hashCode(); + if(uuid<0){ + uuid=-uuid; + } + directory.setDirAddtime(new Date()); + directory.setId(uuid); + directory.setDirIden(6); + int insert = directoryMapper.insert(directory); + return insert; + } + + } diff --git a/src/main/java/com/zhiyun/zhiyun03/application/controller/ApplicationController.java b/src/main/java/com/zhiyun/zhiyun03/application/controller/ApplicationController.java index e9ea535..258e1f3 100644 --- a/src/main/java/com/zhiyun/zhiyun03/application/controller/ApplicationController.java +++ b/src/main/java/com/zhiyun/zhiyun03/application/controller/ApplicationController.java @@ -1,6 +1,7 @@ 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; @@ -60,8 +61,11 @@ public class ApplicationController { @RequestMapping("/selectByIdApplication") @ApiOperation("根据id查询应用") public JsonResult<ApplicationVo> selectByIdApplication(Integer id){ - ApplicationVo applicationVo = applicationService.selectByIdApplication(id); - return JsonResult.success(applicationVo); + if(id!=null){ + ApplicationVo applicationVo = applicationService.selectByIdApplication(id); + return JsonResult.success(applicationVo); + } + return JsonResult.error(); } @PostMapping("/updateApplication") diff --git a/src/main/java/com/zhiyun/zhiyun03/application/entity/Directory.java b/src/main/java/com/zhiyun/zhiyun03/application/entity/Directory.java index f361acc..08e2eb3 100644 --- a/src/main/java/com/zhiyun/zhiyun03/application/entity/Directory.java +++ b/src/main/java/com/zhiyun/zhiyun03/application/entity/Directory.java @@ -31,7 +31,7 @@ public class Directory { * 目录名称 */ @TableField(value = "dir_iden") - private String dirIden; + private Integer dirIden; /** * 目录图片 diff --git a/src/main/java/com/zhiyun/zhiyun03/application/service/impl/ApplicationServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/application/service/impl/ApplicationServiceImpl.java index 6908c70..185cf2b 100644 --- a/src/main/java/com/zhiyun/zhiyun03/application/service/impl/ApplicationServiceImpl.java +++ b/src/main/java/com/zhiyun/zhiyun03/application/service/impl/ApplicationServiceImpl.java @@ -46,7 +46,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli List<ApplicationVo> applicationVos = applicationMapper.queryApplication(); if (applicationVos.isEmpty()) { - throw new ServiceException("400","课程数据为空"); + throw new ServiceException("400","应用数据为空"); } PageInfo<ApplicationVo> pageInfo = new PageInfo<ApplicationVo>(applicationVos); PageVO<ApplicationVo> applicationVoPageVO = new PageVO<>(); @@ -66,7 +66,11 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli @Override public List<Directory> queryDir() { QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirIden,2); List<Directory> list = directoryMapper.selectList(qwd); + if(list.isEmpty()){ + throw new ServiceException("400","目录数据为空"); + } return list; } @@ -96,10 +100,22 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli */ @Override public int updateApplication(ApplicationVo applicationVo) { + if(applicationVo.getAppName().isEmpty()){ + throw new ServiceException("400","应用名称不能为空"); + } + if(applicationVo.getAppUrl().isEmpty()){ + throw new ServiceException("400","应用链接不能为空"); + } + if(applicationVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if(applicationVo.getAppIcon().isEmpty()){ + throw new ServiceException("400","应用图片不能为空"); + } ConvertUtil convertUtil=new ConvertUtil(); Application application = convertUtil.VoToEntity(applicationVo, Application.class); QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,applicationVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,applicationVo.getDirName()).eq(Directory::getDirIden,2); Directory directory = directoryMapper.selectOne(qwd); application.setDirId(directory.getId()); application.setAppUpdatetime(new Date()); @@ -126,11 +142,14 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli */ @Override public int addDirectory(Directory directory) { + if (directory.getDirName().isEmpty() && directory.getDirImg().isEmpty()){ + throw new ServiceException("400","目录名称和图片不能为空"); + } QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,directory.getDirName()); + qwd.lambda().eq(Directory::getDirName,directory.getDirName()).eq(Directory::getDirIden,2); Directory directory1 = directoryMapper.selectOne(qwd); if(directory1!=null){ - return 0; + throw new ServiceException("403","目录名称已存在"); } int uuid=UUID.randomUUID().hashCode(); if(uuid<0){ @@ -138,6 +157,7 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli } directory.setDirAddtime(new Date()); directory.setId(uuid); + directory.setDirIden(2); int insert = directoryMapper.insert(directory); return insert; } @@ -148,10 +168,28 @@ public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Appli */ @Override public int addApplication(ApplicationVo applicationVo) { + if(applicationVo.getAppName().isEmpty()){ + throw new ServiceException("400","应用名称不能为空"); + } + if (applicationVo.getAppUrl().isEmpty()){ + throw new ServiceException("400","应用链接不能为空"); + } + if(applicationVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if(applicationVo.getAppIcon().isEmpty()){ + throw new ServiceException("400","应用图片不能为空"); + } + QueryWrapper<Application> qwa=new QueryWrapper<>(); + qwa.lambda().eq(Application::getAppName,applicationVo.getAppName()).or().eq(Application::getAppUrl,applicationVo.getAppUrl()); + List<Application> applications = applicationMapper.selectList(qwa); + if(applications.size()!=0){ + throw new ServiceException("403","应用名称或链接已存在"); + } ConvertUtil convertUtil=new ConvertUtil(); Application application = convertUtil.VoToEntity(applicationVo, Application.class); QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,applicationVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,applicationVo.getDirName()).eq(Directory::getDirIden,2); Directory directory = directoryMapper.selectOne(qwd); application.setDirId(directory.getId()); application.setAppAddtime(new Date()); diff --git a/src/main/java/com/zhiyun/zhiyun03/filter/LoginFilter.java b/src/main/java/com/zhiyun/zhiyun03/filter/LoginFilter.java new file mode 100644 index 0000000..57b7a9f --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/filter/LoginFilter.java @@ -0,0 +1,50 @@ +package com.zhiyun.zhiyun03.filter; + +import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebFilter(urlPatterns = "*")//表示所有请求都走这个过滤器(可以用来设置编码) +public class LoginFilter implements Filter { + @Override + public void init(FilterConfig filterConfig) throws ServletException { + //服务器启动时执行init方法 + } + + @Override//有请求就执行,且无论是前端到后端还是后端到前端都会走过滤器,真的很形象(就像量有滤网的水杯,装水和倒水都会经过滤网,前提是你有滤网(过滤器)) + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + //filter是抽象类,所以要强转 + HttpServletRequest request = (HttpServletRequest) servletRequest; + HttpServletResponse response = (HttpServletResponse) servletResponse; + //统一资源标识符(Uniform Resource Identifier)得到一个uri + //URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。 + //只要能唯一标识资源的就是URI,在URI的基础上给出其资源的访问方式的就是URL + String requestURI = request.getRequestURI(); + System.out.println("requestURI=" + requestURI); + //这个user得先存才能取(作用范围是session,也就是其存值时是存于session中的) + Object user = request.getSession().getAttribute("USER"); + System.out.println(user);//只是打印在控制台,为了测试 + if (ignore(requestURI) || user != null)//满足其一就让其通过 + filterChain.doFilter(request, response); + else + response.sendRedirect("/login.html");//重定向到login.jsp页面 + } + + private boolean ignore(String requestURI) { + //login请求 和 login.jsp页面 要让行,不然永远无法登录 + String[] uris = {"login", "login.html"}; + for (String u : uris) { + if (requestURI.endsWith(u)) + //只能用上面的方式,不然会一直输出下面两行 + // requestURI=/login.jsp + //null + //if (u.endsWith(requestURI)) + return true; + } + return false; + } +} + + \ No newline at end of file diff --git a/src/main/java/com/zhiyun/zhiyun03/game/controller/GameController.java b/src/main/java/com/zhiyun/zhiyun03/game/controller/GameController.java index f4ba23f..1525989 100644 --- a/src/main/java/com/zhiyun/zhiyun03/game/controller/GameController.java +++ b/src/main/java/com/zhiyun/zhiyun03/game/controller/GameController.java @@ -58,8 +58,11 @@ public class GameController { @RequestMapping("/selectByIdGame") @ApiOperation("根据id查询大赛信息") public JsonResult<GameVo> selectByIdGame(Integer id){ - GameVo gameVo = gameService.selectByIdGame(id); - return JsonResult.success(gameVo); + if (id!=null){ + GameVo gameVo = gameService.selectByIdGame(id); + return JsonResult.success(gameVo); + } + return JsonResult.error(); } @PostMapping(value = "/updateGame") @@ -109,5 +112,20 @@ public class GameController { path = "https://zhiyun03.oss-cn-beijing.aliyuncs.com/"+ upload; return JsonResult.success(path); } + @GetMapping ("/queryDir") + @ApiOperation("查询目录") + public JsonResult<Directory> queryDir(){ + List<Directory> list = gameService.queryDir(); + return JsonResult.success(list); + } + @RequestMapping("/addDirectory") + @ApiOperation("新增目录") + public JsonResult addDirectory( Directory directory){ + int result = gameService.addDirectory(directory); + if(result>0){ + return JsonResult.success(ResultCode.SUCCESS); + } + return JsonResult.error(ResultCode.Fail,"失败"); + } } diff --git a/src/main/java/com/zhiyun/zhiyun03/game/service/GameService.java b/src/main/java/com/zhiyun/zhiyun03/game/service/GameService.java index 4727dd9..745b335 100644 --- a/src/main/java/com/zhiyun/zhiyun03/game/service/GameService.java +++ b/src/main/java/com/zhiyun/zhiyun03/game/service/GameService.java @@ -2,6 +2,7 @@ package com.zhiyun.zhiyun03.game.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.game.entity.Game; import com.zhiyun.zhiyun03.game.vo.GameVo; @@ -18,4 +19,8 @@ public interface GameService extends IService<Game> { int updateGame(GameVo gameVo); int deleteGame(Integer id); + + List<Directory> queryDir(); + + int addDirectory(Directory directory); } diff --git a/src/main/java/com/zhiyun/zhiyun03/game/service/impl/GameServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/game/service/impl/GameServiceImpl.java index 43695dd..e376b7c 100644 --- a/src/main/java/com/zhiyun/zhiyun03/game/service/impl/GameServiceImpl.java +++ b/src/main/java/com/zhiyun/zhiyun03/game/service/impl/GameServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.UUID; @Service public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements GameService { @@ -41,7 +42,7 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga List<GameVo> gameVoList = gameMapper.queryGame(); if (gameVoList.isEmpty()) { - throw new ServiceException("400","课程数据为空"); + throw new ServiceException("400","大赛数据为空"); } PageInfo<GameVo> pageInfo = new PageInfo<GameVo>(gameVoList); PageVO<GameVo> gameVoPageVO = new PageVO<>(); @@ -60,12 +61,30 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga */ @Override public int addApplication(GameVo gameVo) { + if(gameVo.getGameName().isEmpty()){ + throw new ServiceException("400","大赛名称不能为空"); + } + if(gameVo.getGameUrl().isEmpty()){ + throw new ServiceException("400","大赛链接不能为空"); + } + if (gameVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (gameVo.getGameImg().isEmpty()){ + throw new ServiceException("400","大赛图片不能为空"); + } + QueryWrapper<Game> qwg=new QueryWrapper<>(); + qwg.lambda().eq(Game::getGameName,gameVo.getGameName()).or().eq(Game::getGameUrl,gameVo.getGameUrl()); + List<Game> games = gameMapper.selectList(qwg); + if (games.size()!=0){ + throw new ServiceException("403","大赛名称或链接已存在"); + } //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Game game = convertUtil.VoToEntity(gameVo, Game.class); //根据目录名称查询目录id QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,gameVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,gameVo.getDirName()).eq(Directory::getDirIden,5); Directory directory = directoryMapper.selectOne(qwd); //将目录id封装到实体类 game.setDirId(directory.getId()); @@ -99,12 +118,24 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga */ @Override public int updateGame(GameVo gameVo) { + if(gameVo.getGameName().isEmpty()){ + throw new ServiceException("400","大赛名称不能为空"); + } + if(gameVo.getGameUrl().isEmpty()){ + throw new ServiceException("400","大赛链接不能为空"); + } + if (gameVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (gameVo.getGameImg().isEmpty()){ + throw new ServiceException("400","大赛图片不能为空"); + } //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Game game = convertUtil.VoToEntity(gameVo, Game.class); //根据目录名称查询目录id QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,gameVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,gameVo.getDirName()).eq(Directory::getDirIden,5); Directory directory = directoryMapper.selectOne(qwd); //将目录id封装到实体类 game.setDirId(directory.getId()); @@ -124,4 +155,37 @@ public class GameServiceImpl extends ServiceImpl<GameMapper, Game> implements Ga } return 0; } + + @Override + public List<Directory> queryDir() { + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirIden,5); + List<Directory> list = directoryMapper.selectList(qwd); + if(list.isEmpty()){ + throw new ServiceException("400","目录数据为空"); + } + return list; + } + + @Override + public int addDirectory(Directory directory) { + if (directory.getDirName().isEmpty() && directory.getDirImg().isEmpty()){ + throw new ServiceException("400","目录名称和图片不能为空"); + } + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirName,directory.getDirName()).eq(Directory::getDirIden,5); + Directory directory1 = directoryMapper.selectOne(qwd); + if(directory1!=null){ + throw new ServiceException("403","目录名称已存在"); + } + int uuid= UUID.randomUUID().hashCode(); + if(uuid<0){ + uuid=-uuid; + } + directory.setDirAddtime(new Date()); + directory.setId(uuid); + directory.setDirIden(5); + int insert = directoryMapper.insert(directory); + return insert; + } } diff --git a/src/main/java/com/zhiyun/zhiyun03/knowledge/controller/KnowledgeController.java b/src/main/java/com/zhiyun/zhiyun03/knowledge/controller/KnowledgeController.java index 1ec612e..4084b5d 100644 --- a/src/main/java/com/zhiyun/zhiyun03/knowledge/controller/KnowledgeController.java +++ b/src/main/java/com/zhiyun/zhiyun03/knowledge/controller/KnowledgeController.java @@ -1,6 +1,7 @@ package com.zhiyun.zhiyun03.knowledge.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.application.vo.ApplicationVo; import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.knowledge.service.KnowledgeService; @@ -18,6 +19,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.FileOutputStream; +import java.util.List; @RestController @RequestMapping("/knowledge") @@ -55,8 +57,11 @@ public class KnowledgeController { @RequestMapping("/selectByIdKnowledge") @ApiOperation("根据id查询大赛信息") public JsonResult<KnowledgeVo> selectByIdKnowledge(Integer id){ - KnowledgeVo knowledgeVo = knowledgeService.selectByIdKnowledge(id); - return JsonResult.success(knowledgeVo); + if(id!=null){ + KnowledgeVo knowledgeVo = knowledgeService.selectByIdKnowledge(id); + return JsonResult.success(knowledgeVo); + } + return JsonResult.error(); } @PostMapping("/updateKnowledge") @@ -109,4 +114,19 @@ public class KnowledgeController { return JsonResult.success(path); } + @RequestMapping("/addDirectory") + @ApiOperation("新增目录") + public JsonResult addDirectory( Directory directory){ + int result = knowledgeService.addDirectory(directory); + if(result>0){ + return JsonResult.success(ResultCode.SUCCESS); + } + return JsonResult.error(ResultCode.Fail,"失败"); + } + @GetMapping ("/queryDir") + @ApiOperation("查询目录") + public JsonResult<Directory> queryDir(){ + List<Directory> list = knowledgeService.queryDir(); + return JsonResult.success(list); + } } diff --git a/src/main/java/com/zhiyun/zhiyun03/knowledge/service/KnowledgeService.java b/src/main/java/com/zhiyun/zhiyun03/knowledge/service/KnowledgeService.java index 1b7c235..a706336 100644 --- a/src/main/java/com/zhiyun/zhiyun03/knowledge/service/KnowledgeService.java +++ b/src/main/java/com/zhiyun/zhiyun03/knowledge/service/KnowledgeService.java @@ -2,10 +2,13 @@ package com.zhiyun.zhiyun03.knowledge.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.knowledge.entity.Knowledge; import com.zhiyun.zhiyun03.knowledge.vo.KnowledgeVo; +import java.util.List; + public interface KnowledgeService extends IService<Knowledge> { PageVO<KnowledgeVo> queryKnowledge(Integer page, Integer limit); @@ -16,4 +19,8 @@ public interface KnowledgeService extends IService<Knowledge> { int updateKnowledge(KnowledgeVo knowledgeVo); int deleteKnowledge(Integer id); + + int addDirectory(Directory directory); + + List<Directory> queryDir(); } diff --git a/src/main/java/com/zhiyun/zhiyun03/knowledge/service/impl/KnowledgeServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/knowledge/service/impl/KnowledgeServiceImpl.java index 73b15e7..cf6fcc6 100644 --- a/src/main/java/com/zhiyun/zhiyun03/knowledge/service/impl/KnowledgeServiceImpl.java +++ b/src/main/java/com/zhiyun/zhiyun03/knowledge/service/impl/KnowledgeServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.UUID; @Service public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge> implements KnowledgeService { @@ -64,12 +65,33 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge> */ @Override public int addKnowledge(KnowledgeVo knowledgeVo) { + if(knowledgeVo.getKnowledgeName().isEmpty()){ + throw new ServiceException("400","知识名称不能为空"); + } + if(knowledgeVo.getKnowledgeUrl().isEmpty()){ + throw new ServiceException("400","知识链接不能为空"); + } + if (knowledgeVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (knowledgeVo.getKnowledgeImg().isEmpty()){ + throw new ServiceException("400","知识图片不能为空"); + } + + + QueryWrapper<Knowledge> qwk=new QueryWrapper<>(); + qwk.lambda().eq(Knowledge::getKnowledgeName,knowledgeVo.getKnowledgeName()).or().eq(Knowledge::getKnowledgeUrl,knowledgeVo.getKnowledgeUrl()); + List<Knowledge> knowledges = knowledgeMapper.selectList(qwk); + if(knowledges.size()!=0){ + throw new ServiceException("403","知识名称或链接已存在"); + } + //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Knowledge knowledge = convertUtil.VoToEntity(knowledgeVo, Knowledge.class); //根据目录名称查询目录id QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,knowledgeVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,knowledgeVo.getDirName()).eq(Directory::getDirIden,7); Directory directory = directoryMapper.selectOne(qwd); //将目录id封装到实体类 knowledge.setDirId(directory.getId()); @@ -103,12 +125,24 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge> */ @Override public int updateKnowledge(KnowledgeVo knowledgeVo) { + if(knowledgeVo.getKnowledgeName().isEmpty()){ + throw new ServiceException("400","知识名称不能为空"); + } + if(knowledgeVo.getKnowledgeUrl().isEmpty()){ + throw new ServiceException("400","知识链接不能为空"); + } + if (knowledgeVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (knowledgeVo.getKnowledgeImg().isEmpty()){ + throw new ServiceException("400","知识图片不能为空"); + } //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Knowledge knowledge = convertUtil.VoToEntity(knowledgeVo, Knowledge.class); //根据目录名称查询目录id QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,knowledgeVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,knowledgeVo.getDirName()).eq(Directory::getDirIden,7); Directory directory = directoryMapper.selectOne(qwd); //将目录id封装到实体类 knowledge.setDirId(directory.getId()); @@ -129,4 +163,42 @@ public class KnowledgeServiceImpl extends ServiceImpl<KnowledgeMapper,Knowledge> } return 0; } + + /** + * 添加目录 + * @param directory + * @return + */ + @Override + public int addDirectory(Directory directory) { + if (directory.getDirName().isEmpty() && directory.getDirImg().isEmpty()){ + throw new ServiceException("400","目录名称和图片不能为空"); + } + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirName,directory.getDirName()).eq(Directory::getDirIden,7); + Directory directory1 = directoryMapper.selectOne(qwd); + if(directory1!=null){ + throw new ServiceException("403","目录名称已存在"); + } + int uuid= UUID.randomUUID().hashCode(); + if(uuid<0){ + uuid=-uuid; + } + directory.setDirAddtime(new Date()); + directory.setId(uuid); + directory.setDirIden(7); + int insert = directoryMapper.insert(directory); + return insert; + } + + @Override + public List<Directory> queryDir() { + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirIden,7); + List<Directory> list = directoryMapper.selectList(qwd); + if(list.isEmpty()){ + throw new ServiceException("400","目录数据为空"); + } + return list; + } } diff --git a/src/main/java/com/zhiyun/zhiyun03/textual/controller/TextualController.java b/src/main/java/com/zhiyun/zhiyun03/textual/controller/TextualController.java index e3a19a2..c788839 100644 --- a/src/main/java/com/zhiyun/zhiyun03/textual/controller/TextualController.java +++ b/src/main/java/com/zhiyun/zhiyun03/textual/controller/TextualController.java @@ -1,6 +1,7 @@ package com.zhiyun.zhiyun03.textual.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.game.vo.GameVo; import com.zhiyun.zhiyun03.knowledge.vo.KnowledgeVo; @@ -13,6 +14,7 @@ import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; @RestController @RequestMapping("/textual") @@ -43,8 +45,11 @@ public class TextualController { @RequestMapping("/selectByIdTextual") @ApiOperation("根据id查询大赛信息") public JsonResult<TextualVo> selectByIdTextual(Integer id){ - TextualVo textualVo = textualService.selectByIdTextual(id); - return JsonResult.success(textualVo); + if(id!=null){ + TextualVo textualVo = textualService.selectByIdTextual(id); + return JsonResult.success(textualVo); + } + return JsonResult.error(); } @PostMapping(value = "/updateTextual") @@ -66,4 +71,19 @@ public class TextualController { } return JsonResult.success(ResultCode.Fail); } + @GetMapping ("/queryDir") + @ApiOperation("查询目录") + public JsonResult<Directory> queryDir(){ + List<Directory> list = textualService.queryDir(); + return JsonResult.success(list); + } + @RequestMapping("/addDirectory") + @ApiOperation("新增目录") + public JsonResult addDirectory( Directory directory){ + int result = textualService.addDirectory(directory); + if(result>0){ + return JsonResult.success(ResultCode.SUCCESS); + } + return JsonResult.error(ResultCode.Fail,"失败"); + } } diff --git a/src/main/java/com/zhiyun/zhiyun03/textual/service/TextualService.java b/src/main/java/com/zhiyun/zhiyun03/textual/service/TextualService.java index bfd0d77..c403798 100644 --- a/src/main/java/com/zhiyun/zhiyun03/textual/service/TextualService.java +++ b/src/main/java/com/zhiyun/zhiyun03/textual/service/TextualService.java @@ -2,10 +2,13 @@ package com.zhiyun.zhiyun03.textual.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhiyun.zhiyun03.application.entity.Directory; import com.zhiyun.zhiyun03.course.vo.PageVO; import com.zhiyun.zhiyun03.textual.entity.Textual; import com.zhiyun.zhiyun03.textual.vo.TextualVo; +import java.util.List; + public interface TextualService extends IService<Textual> { PageVO<TextualVo> queryTextual(Integer page, Integer limit); @@ -16,4 +19,10 @@ public interface TextualService extends IService<Textual> { int updateTextual(TextualVo textualVo); int deleteGame(Integer id); + + List<Directory> queryDir(); + + int addDirectory(Directory directory); + + } diff --git a/src/main/java/com/zhiyun/zhiyun03/textual/service/impl/TextualServiceImpl.java b/src/main/java/com/zhiyun/zhiyun03/textual/service/impl/TextualServiceImpl.java index 7a436a9..e33abaf 100644 --- a/src/main/java/com/zhiyun/zhiyun03/textual/service/impl/TextualServiceImpl.java +++ b/src/main/java/com/zhiyun/zhiyun03/textual/service/impl/TextualServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.UUID; @Service public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> implements TextualService { @@ -61,6 +62,25 @@ public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> impl */ @Override public int addTextual(TextualVo textualVo) { + if(textualVo.getTextualName().isEmpty()){ + throw new ServiceException("400","学术名称不能为空"); + } + if(textualVo.getTextualUrl().isEmpty()){ + throw new ServiceException("400","学术链接不能为空"); + } + if (textualVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (textualVo.getTextualImg().isEmpty()){ + throw new ServiceException("400","学术图片不能为空"); + } + + QueryWrapper<Textual> qwt=new QueryWrapper<>(); + qwt.lambda().eq(Textual::getTextualName,textualVo.getTextualName()).or().eq(Textual::getTextualUrl,textualVo.getTextualUrl()); + List<Textual> textuals = textualMapper.selectList(qwt); + if(textuals.size()!=0) { + throw new ServiceException("403","考证名称或链接已存在"); + } //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Textual textual = convertUtil.VoToEntity(textualVo, Textual.class); @@ -86,7 +106,7 @@ public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> impl Textual textual = textualMapper.selectOne(qwa); //查询目录 QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getId,textual.getDirId()); + qwd.lambda().eq(Directory::getId,textual.getDirId()).eq(Directory::getDirIden,4); Directory directory = directoryMapper.selectOne(qwd); ConvertUtil convertUtil=new ConvertUtil(); TextualVo textualVo = convertUtil.entityToVo(textual, TextualVo.class); @@ -100,12 +120,24 @@ public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> impl */ @Override public int updateTextual(TextualVo textualVo) { + if(textualVo.getTextualName().isEmpty()){ + throw new ServiceException("400","学术名称不能为空"); + } + if(textualVo.getTextualUrl().isEmpty()){ + throw new ServiceException("400","学术链接不能为空"); + } + if (textualVo.getDirName().isEmpty()){ + throw new ServiceException("400","归属目录不能为空"); + } + if (textualVo.getTextualImg().isEmpty()){ + throw new ServiceException("400","学术图片不能为空"); + } //将vo类转换为实体类 ConvertUtil convertUtil=new ConvertUtil(); Textual textual = convertUtil.VoToEntity(textualVo, Textual.class); //根据目录名称查询目录id QueryWrapper<Directory> qwd=new QueryWrapper<>(); - qwd.lambda().eq(Directory::getDirName,textualVo.getDirName()); + qwd.lambda().eq(Directory::getDirName,textualVo.getDirName()).eq(Directory::getDirIden,4); Directory directory = directoryMapper.selectOne(qwd); //将目录id封装到实体类 textual.setDirId(directory.getId()); @@ -125,4 +157,41 @@ public class TextualServiceImpl extends ServiceImpl<TextualMapper, Textual> impl } return 0; } + + /** + * 查询目录 + * @return + */ + @Override + public List<Directory> queryDir() { + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirIden,4); + List<Directory> list = directoryMapper.selectList(qwd); + if(list.isEmpty()){ + throw new ServiceException("400","目录数据为空"); + } + return list; + } + + @Override + public int addDirectory(Directory directory) { + if (directory.getDirName().isEmpty() && directory.getDirImg().isEmpty()){ + throw new ServiceException("400","目录名称和图片不能为空"); + } + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + qwd.lambda().eq(Directory::getDirName,directory.getDirName()).eq(Directory::getDirIden,4); + Directory directory1 = directoryMapper.selectOne(qwd); + if(directory1!=null){ + throw new ServiceException("403","目录名称已存在"); + } + int uuid= UUID.randomUUID().hashCode(); + if(uuid<0){ + uuid=-uuid; + } + directory.setDirAddtime(new Date()); + directory.setId(uuid); + directory.setDirIden(4); + int insert = directoryMapper.insert(directory); + return insert; + } } diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java b/src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java index 8be8e27..8c12acd 100644 --- a/src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java +++ b/src/main/java/com/zhiyun/zhiyun03/utils/common/ResultCode.java @@ -3,12 +3,13 @@ package com.zhiyun.zhiyun03.utils.common; public enum ResultCode { SUCCESS("200", "成功"), Fail("500","失败"), - ERROR("-1", "系统异常"), + + ERROR("-1", "NOTLOGIN"), PARAM_ERROR("1001", "参数异常"), USER_EXIST_ERROR("2001", "用户已存在"), USER_ACCOUNT_ERROR("2002", "账号或密码错误"), USER_NOT_EXIST_ERROR("2003", "未找到用户"), - ORDER_PAY_ERROR("3001", "库存不足,下单失败"), + NO_NULL_ERROR("3001", "账号或密码错误"), PARAM_LOST_ERROR("2004", "参数缺失"), PARAM_PASSWORD_ERROR("2005", "原密码输入错误"), ; diff --git a/src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java b/src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java index d892f9f..f9d2784 100644 --- a/src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/zhiyun/zhiyun03/utils/exception/GlobalExceptionHandler.java @@ -3,9 +3,13 @@ package com.zhiyun.zhiyun03.utils.exception; import com.zhiyun.zhiyun03.utils.common.JsonResult; import com.zhiyun.zhiyun03.utils.common.ResultCode; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import javax.servlet.http.HttpServletRequest; + // @RestController + @ResponseBody @RestControllerAdvice @Slf4j @@ -18,6 +22,7 @@ public class GlobalExceptionHandler { return JsonResult.error(ResultCode.Fail, e.getMsg()); } + @ExceptionHandler(Exception.class) public JsonResult exceptionHandler(Exception e) { log.error("未知异常", e); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 2c0ceed..0befe0c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -19,7 +19,13 @@ spring: druid: url: jdbc:mysql://localhost:3306/zhiyun?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai username: root - password: root + password: 123456 + thymeleaf: + cache: false + prefix: classpath:/templates + encoding: UTF-8 #编码 + suffix: .html # 模板后缀 + mode: HTML #模板 servlet: multipart: max-file-size: 50MB diff --git a/src/main/resources/templates/layui-v2.6.8/academicList.html b/src/main/resources/templates/layui-v2.6.8/academicList.html index 7c8ebba..3b56d27 100644 --- a/src/main/resources/templates/layui-v2.6.8/academicList.html +++ b/src/main/resources/templates/layui-v2.6.8/academicList.html @@ -188,7 +188,7 @@ layui.use(['form'], function () { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/academic/queryDir', type: "get", success: function (data) { if (data.msg === "success") { @@ -425,7 +425,7 @@ layui.use(['form'], function() { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/academic/queryDir', type:"get", success: function(data) { if(data.msg === "success"){ diff --git a/src/main/resources/templates/layui-v2.6.8/gameList.html b/src/main/resources/templates/layui-v2.6.8/gameList.html index 9050657..6ce7e84 100644 --- a/src/main/resources/templates/layui-v2.6.8/gameList.html +++ b/src/main/resources/templates/layui-v2.6.8/gameList.html @@ -183,7 +183,7 @@ layui.use(['form'], function () { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/game/queryDir', type: "get", success: function (data) { if (data.msg === "success") { @@ -418,7 +418,7 @@ layui.use(['form'], function() { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/game/queryDir', type:"get", success: function(data) { if(data.msg === "success"){ diff --git a/src/main/resources/templates/layui-v2.6.8/index.html b/src/main/resources/templates/layui-v2.6.8/index.html index 4001fa1..10d43f9 100644 --- a/src/main/resources/templates/layui-v2.6.8/index.html +++ b/src/main/resources/templates/layui-v2.6.8/index.html @@ -19,7 +19,7 @@ <dl class="layui-nav-child"> <dd><a href="">Your Profile</a></dd> <dd><a href="">Settings</a></dd> - <dd><a href="">Sign out</a></dd> + <dd><a href="lgoin.html">Sign out</a></dd> </dl> </li> <li class="layui-nav-item" lay-header-event="menuRight" lay-unselect> diff --git a/src/main/resources/templates/layui-v2.6.8/knowledgeList.html b/src/main/resources/templates/layui-v2.6.8/knowledgeList.html index 8eca2f1..cc12f69 100644 --- a/src/main/resources/templates/layui-v2.6.8/knowledgeList.html +++ b/src/main/resources/templates/layui-v2.6.8/knowledgeList.html @@ -187,7 +187,7 @@ layui.use(['form'], function () { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/knowledge/queryDir', type: "get", success: function (data) { if (data.msg === "success") { @@ -415,7 +415,7 @@ layui.use(['form'], function() { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/knowledge/queryDir', type:"get", success: function(data) { if(data.msg === "success"){ diff --git a/src/main/resources/templates/layui-v2.6.8/layui/css/admin.css b/src/main/resources/templates/layui-v2.6.8/layui/css/admin.css new file mode 100644 index 0000000..7708acf --- /dev/null +++ b/src/main/resources/templates/layui-v2.6.8/layui/css/admin.css @@ -0,0 +1,2 @@ +/** layuiAdmin.std-v1.2.1 LPPL License By http://www.layui.com/admin/ */ +html #layuicss-layuiAdmin{display:none;position:absolute;width:1989px}::-webkit-input-placeholder{color:#ccc}html{background-color:#f2f2f2;color:#666}.layadmin-tabsbody-item,[template]{display:none}[lay-href],[lay-tips],[layadmin-event]{cursor:pointer}.layui-layout-admin .layui-header{position:fixed;top:0;left:0;width:100%;height:50px}.layui-layout-admin .layui-header .layui-nav .layui-nav-child a{color:#333}.layui-layout-admin .layui-side{width:220px;top:0;z-index:1001}.layui-layout-admin .layui-header .layui-nav .layui-nav-item,.layui-layout-admin .layui-logo{height:50px;line-height:50px}.layui-layout-admin .layui-logo{position:fixed;left:0;top:0;z-index:1002;width:220px;height:49px;padding:0 15px;box-sizing:border-box;overflow:hidden;font-weight:300;background-repeat:no-repeat;background-position:center center}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-layout-left{left:220px}.layadmin-pagetabs{position:fixed;top:50px;right:0;z-index:999}.layadmin-pagetabs .layui-breadcrumb{padding:0 15px}.layui-layout-admin .layui-body{position:fixed;top:90px;bottom:0}.layui-layout-admin .layui-body .layadmin-tabsbody-item{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.layui-layout-admin .layui-header .layui-nav-img{width:26px;height:26px}.layui-layout-admin .layui-header .layui-nav-child{top:55px}.layui-layout-admin .layui-header .layui-layout-right .layui-nav-child{left:auto;right:0}.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this,.layui-layout-admin .layui-header .layui-nav .layui-nav-child dd.layui-this a{background:0 0}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-header .layui-layout-right,.layui-layout-admin .layui-header .layui-nav .layui-nav-item,.layui-layout-admin .layui-layout-left,.layui-layout-admin .layui-logo,.layui-layout-admin .layui-side{transition:all .3s;-webkit-transition:all .3s}.layui-icon-login-qq{color:#3492ED}.layui-icon-login-wechat{color:#4DAF29}.layui-icon-login-weibo{color:#CF1900}.layui-form[wid100] .layui-form-label{width:100px}.layui-form[wid100] .layui-input-block{margin-left:130px}@media screen and (max-width:450px){.layui-form[wid100] .layui-form-item .layui-input-inline{margin-left:132px}.layui-form[wid100] .layui-form-item .layui-input-inline+.layui-form-mid{margin-left:130px}}.layui-form-item .layui-input-company{width:auto;padding-right:10px;line-height:38px}.layui-bg-white{background-color:#fff}.layadmin-loading{position:absolute;left:50%;top:50%;margin:-16px -15px;font-size:30px;color:#c2c2c2}.layadmin-fixed{position:fixed;left:0;top:0;z-index:999}.layadmin-link{color:#029789!important}.layadmin-link:hover{opacity:.8}.layui-layer-admin .layui-layer-title{height:50px;line-height:50px;border:0;background-color:#20222A;color:#fff}.layui-layer-admin i[close]{position:absolute;padding:5px;right:10px;top:12px;color:#fff;cursor:pointer}.layui-layer-admin .layui-layer-content{padding:20px;line-height:22px}.layui-layer-admin .layui-layer-content cite{font-style:normal;color:#FF5722}.layui-layer-adminRight{top:50px!important;bottom:0;box-shadow:1px 1px 10px rgba(0,0,0,.1);border-radius:0;overflow:auto}.layadmin-note .layui-layer-content{padding:0}.layadmin-note textarea{display:block;width:300px;height:132px;min-width:300px;min-height:132px;line-height:20px;padding:10px 20px;border:none;box-sizing:border-box;color:#666;word-wrap:break-word}.layui-layout-admin .layui-layout-left{padding:0 10px}.layui-layout-admin .layui-layout-left .layui-nav-item{margin:0 20px}.layui-layout-admin .layui-input-search{display:inline-block;vertical-align:middle;height:32px;border:none;cursor:text}.layui-layout-admin .layui-layout-left a,.layui-layout-admin .layui-layout-right{padding:0}.layui-header .layui-nav-item .layui-icon{position:relative;top:1px;font-size:16px}.layui-header .layui-layout-right .layui-badge-dot{margin-left:11px}.layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{top:0!important;bottom:auto;height:3px;background-color:#fff;background-color:rgba(255,255,255,.3)}.layadmin-body-shade{position:fixed;display:none;left:0;right:0;top:0;bottom:0;background-color:rgba(0,0,0,.3);z-index:1000}.layui-side-menu .layui-side-scroll{width:240px}.layui-side-menu .layui-nav{width:220px;margin-top:50px;background:0 0}.layui-side-menu .layui-nav .layui-nav-item a{height:40px;line-height:40px;padding-left:45px;padding-right:30px}.layui-side-menu .layui-nav .layui-nav-item>a{padding-top:8px;padding-bottom:8px}.layui-side-menu .layui-nav .layui-nav-item a:hover{background:0 0}.layui-side-menu .layui-nav .layui-nav-itemed>.layui-nav-child{padding:5px 0}.layui-side-menu .layui-nav .layui-nav-item .layui-icon{position:absolute;top:50%;left:20px;margin-top:-19px}.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child{background:0 0!important}.layui-side-menu .layui-nav .layui-nav-child .layui-nav-child a{padding-left:60px}.layui-side-menu .layui-nav .layui-nav-more{right:15px}@media screen and (max-width:992px){.layui-layout-admin .layui-side{transform:translate3d(-220px,0,0);-webkit-transform:translate3d(-220px,0,0);width:220px}.layadmin-pagetabs,.layui-layout-admin .layui-body,.layui-layout-admin .layui-footer,.layui-layout-admin .layui-layout-left{left:0}}.layadmin-side-shrink .layui-layout-admin .layui-logo{width:60px;background-image:url(res/logo.png)}.layadmin-side-shrink .layui-layout-admin .layui-logo span{display:none}.layadmin-side-shrink .layui-side{left:0;width:60px}.layadmin-side-shrink .layadmin-pagetabs,.layadmin-side-shrink .layui-layout-admin .layui-body,.layadmin-side-shrink .layui-layout-admin .layui-footer,.layadmin-side-shrink .layui-layout-admin .layui-layout-left{left:60px}.layadmin-side-shrink .layui-side-menu .layui-nav{position:static;width:60px}.layadmin-side-shrink .layui-side-menu .layui-nav-item{position:static}.layadmin-side-shrink .layui-side-menu .layui-nav-item>a{padding-right:0}.layadmin-side-shrink .layui-side-menu .layui-nav-item cite,.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-item>.layui-nav-child,.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-item>a .layui-nav-more{display:none;padding:8px 0;width:200px}.layadmin-side-shrink .layui-side-menu .layui-nav>.layui-nav-itemed>a{background:rgba(0,0,0,.3)}.layadmin-side-spread-sm .layadmin-pagetabs,.layadmin-side-spread-sm .layui-layout-admin .layui-body,.layadmin-side-spread-sm .layui-layout-admin .layui-footer,.layadmin-side-spread-sm .layui-layout-admin .layui-layout-left{left:0;transform:translate3d(220px,0,0);-webkit-transform:translate3d(220px,0,0)}.layadmin-side-spread-sm .layui-layout-admin .layui-layout-right{transform:translate3d(220px,0,0);-webkit-transform:translate3d(220px,0,0)}.layadmin-side-spread-sm .layui-side{transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0)}.layadmin-side-spread-sm .layadmin-body-shade{display:block}.layadmin-pagetabs .layui-tab-title li:first-child .layui-tab-close,.layadmin-tabs-select.layui-nav .layui-nav-bar,.layadmin-tabs-select.layui-nav .layui-nav-more{display:none}.layadmin-pagetabs{height:40px;line-height:40px;padding:0 80px 0 40px;background-color:#fff;box-sizing:border-box;box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.layadmin-pagetabs .layadmin-tabs-control{position:absolute;top:0;width:40px;height:100%;text-align:center;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box;border-left:1px solid #f6f6f6}.layadmin-pagetabs .layadmin-tabs-control:hover{background-color:#f6f6f6}.layadmin-pagetabs .layui-icon-prev{left:0;border-left:none;border-right:1px solid #f6f6f6}.layadmin-pagetabs .layui-icon-next{right:40px}.layadmin-pagetabs .layui-icon-down{right:0}.layadmin-tabs-select.layui-nav{position:absolute;left:0;top:0;width:100%;height:100%;padding:0;background:0 0}.layadmin-tabs-select.layui-nav .layui-nav-item{line-height:40px}.layadmin-tabs-select.layui-nav .layui-nav-item>a{height:40px}.layadmin-tabs-select.layui-nav .layui-nav-item a{color:#666}.layadmin-tabs-select.layui-nav .layui-nav-child{top:40px;left:auto;right:0}.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this,.layadmin-tabs-select.layui-nav .layui-nav-child dd.layui-this a{background-color:#f2f2f2!important;color:#333}.layadmin-pagetabs .layui-tab{margin:0;overflow:hidden}.layadmin-pagetabs .layui-tab-title{height:40px;border:none}.layadmin-pagetabs .layui-tab-title li{min-width:0;line-height:40px;max-width:160px;text-overflow:ellipsis;padding-right:40px;overflow:hidden;border-right:1px solid #f6f6f6;vertical-align:top}.layadmin-pagetabs .layui-tab-title li:first-child{padding-right:15px}.layadmin-pagetabs .layui-tab-title li .layui-tab-close{position:absolute;right:8px;top:50%;margin:-7px 0 0;width:16px;height:16px;line-height:16px;border-radius:50%;font-size:12px}.layadmin-pagetabs .layui-tab-title li:after{content:'';position:absolute;top:0;left:0;width:0;height:2px;border-radius:0;background-color:#292B34;transition:all .3s;-webkit-transition:all .3s}.layadmin-pagetabs .layui-tab-title li:hover:after{width:100%}.layadmin-pagetabs .layui-tab-title li.layui-this,.layadmin-pagetabs .layui-tab-title li:hover{background-color:#f6f6f6}.layadmin-pagetabs .layui-tab-title li.layui-this:after{width:100%;border:none;height:2px;background-color:#292B34}.layadmin-tabspage-none .layui-layout-admin .layui-header{border-bottom:none;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layadmin-tabspage-none .layui-layout-admin .layui-body{top:50px}.layadmin-tabspage-none .layadmin-header{display:block}.layadmin-tabspage-none .layadmin-header .layui-breadcrumb{border-top:1px solid #f6f6f6}.layui-layout-admin .layui-header{border-bottom:1px solid #f6f6f6;box-sizing:border-box;background-color:#fff}.layui-layout-admin .layui-header a,.layui-layout-admin .layui-header a cite{color:#333}.layui-layout-admin .layui-header a:hover{color:#000}.layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-top-color:#666}.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #666}.layui-layout-admin .layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{height:2px;background-color:#20222A}.layui-layout-admin .layui-logo{background-color:#20222A;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.layui-layout-admin .layui-logo,.layui-layout-admin .layui-logo a{color:#fff;color:rgba(255,255,255,.8)}.layui-side-menu{box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layui-layout-admin .layui-footer{padding:10px 0;text-align:center;box-shadow:0 -1px 2px 0 rgba(0,0,0,.05)}.layadmin-setTheme-side,.layui-side-menu{background-color:#20222A;color:#fff}.layadmin-setTheme-header,.layui-layout-admin .layui-footer{background-color:#fff}.layui-tab-admin .layui-tab-title{background-color:#393D49;color:#fff}.layui-fluid{padding:15px}.layadmin-header{display:none;height:50px;line-height:50px;margin-bottom:0;border-radius:0}.layadmin-header .layui-breadcrumb{padding:0 15px}.layui-card-header{position:relative}.layui-card-header .layui-icon{line-height:initial;position:absolute;right:15px;top:50%;margin-top:-7px}.layadmin-iframe{position:absolute;width:100%;height:100%;left:0;top:0;right:0;bottom:0}.layadmin-carousel{height:185px!important;background-color:#fff}.layadmin-carousel .layui-carousel-ind li{background-color:#e2e2e2}.layadmin-carousel .layui-carousel-ind li:hover{background-color:#c2c2c2}.layadmin-carousel .layui-carousel-ind li.layui-this{background-color:#999}.layadmin-carousel .layui-carousel,.layadmin-carousel>[carousel-item]>*{background-color:#fff}.layadmin-carousel .layui-col-space10{margin:0}.layadmin-carousel .layui-carousel-ind{position:absolute;top:-41px;text-align:right}.layadmin-carousel .layui-carousel-ind ul{background:0 0}.layui-card .layui-tab-brief .layui-tab-title{height:42px;border-bottom-color:#f6f6f6}.layui-card .layui-tab-brief .layui-tab-title li{margin:0 15px;padding:0;line-height:42px}.layui-card .layui-tab-brief .layui-tab-title li.layui-this{color:#333}.layui-card .layui-tab-brief .layui-tab-title .layui-this:after{height:43px}.layui-card .layui-tab-brief .layui-tab-content{padding:15px}.layui-card .layui-table-view{margin:0}.layadmin-shortcut li{text-align:center}.layadmin-shortcut li .layui-icon{display:inline-block;width:100%;height:60px;line-height:60px;text-align:center;border-radius:2px;font-size:30px;background-color:#F8F8F8;color:#333;transition:all .3s;-webkit-transition:all .3s}.layadmin-shortcut li cite{position:relative;top:2px;display:block;color:#666;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:14px}.layadmin-shortcut li:hover .layui-icon{background-color:#f2f2f2}.layadmin-backlog .layadmin-backlog-body{display:block;padding:10px 15px;background-color:#f8f8f8;color:#999;border-radius:2px;transition:all .3s;-webkit-transition:all .3s}.layadmin-backlog-body h3{padding-bottom:10px;font-size:12px}.layadmin-backlog-body p cite{font-style:normal;font-size:30px;font-weight:300;color:#009688}.layadmin-backlog-body:hover{background-color:#f2f2f2;color:#888}.layadmin-dataview{height:332px!important}.layadmin-dataview>[carousel-item]:before{display:none}.layadmin-dataview>[carousel-item]>div{height:332px}.layadmin-takerates{padding-top:5px}.layadmin-takerates .layui-progress{margin:50px 0 60px}.layadmin-takerates .layui-progress:last-child{margin-bottom:10px}.layadmin-takerates .layui-progress h3{position:absolute;right:0;top:-35px;color:#999;font-size:14px}.layadmin-takerates .layui-progress-bar{text-align:left}.layadmin-takerates .layui-progress-text{top:-35px;line-height:26px;font-size:26px}.layadmin-news{height:60px!important;padding:5px 0}.layadmin-news a{display:block;line-height:60px;text-align:center}.layadmin-news .layui-carousel-ind{height:45px}.layadmin-list li{margin-bottom:6px;padding-bottom:6px;border-bottom-color:#f6f6f6;list-style-position:inside;list-style-type:disc;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layadmin-list li a{color:#666}.layadmin-list li a:hover{color:#009688}.layadmin-list li:last-child{border:none;padding:0;margin:0}.layadmin-text p{margin-bottom:10px;text-indent:2em}.layadmin-text p:last-child{margin:0}.layadmin-font-em{font-size:13px;color:#758697}.layui-card-header .layui-a-tips{position:absolute;right:15px;color:#01AAED}.layuiadmin-card-text{background-color:#f8f8f8;color:#777;padding:24px}.layuiadmin-card-text .layui-text-top{padding-bottom:10px}.layuiadmin-card-text .layui-text-top i{margin-right:10px;font-size:24px;color:#009688}.layuiadmin-card-text .layui-text-top a{line-height:24px;font-size:16px;vertical-align:top}.layuiadmin-card-text .layui-text-center{height:44px;line-height:22px;margin-bottom:10px;overflow:hidden}.layuiadmin-card-text .layui-text-bottom{position:relative}.layuiadmin-card-text .layui-text-bottom a{color:#777;font-size:12px;text-overflow:ellipsis;word-break:break-all}.layuiadmin-card-text .layui-text-bottom span{color:#CCC;font-size:12px;position:absolute;right:0}.layuiadmin-badge,.layuiadmin-btn-group,.layuiadmin-span-color{position:absolute;right:15px}.layuiadmin-card-link a:hover,.layuiadmin-card-team li a:hover,.layuiadmin-card-text a:hover{color:#01AAED;transition:all .3s}.layuiadmin-card-status{padding:0 10px 10px}.layuiadmin-card-status dd{padding:15px 0;border-bottom:1px solid #EEE;display:-webkit-flex;display:flex}.layuiadmin-card-status dd:last-child{border:none}.layuiadmin-card-status dd div.layui-status-img,.layuiadmin-card-team .layui-team-img{width:32px;height:32px;border-radius:50%;background-color:#009688;margin-right:15px}.layuiadmin-card-status dd div.layui-status-img a{width:100%;height:100%;display:inline-block;text-align:center;line-height:32px}.layuiadmin-card-status dd div.layui-status-img img,.layuiadmin-card-team .layui-team-img img{width:50%;height:50%}.layuiadmin-card-status dd div a{color:#01AAED}.layuiadmin-card-status dd div span{color:#BBB}.layuiadmin-card-link{padding-left:10px;font-size:0}.layuiadmin-card-link a{display:inline-block;width:25%;color:#666;font-size:14px;margin-bottom:12px}.layuiadmin-card-link button{vertical-align:top}.layuiadmin-card-link button:hover{color:#009688}.layuiadmin-card-team li{padding:10px 0 10px 10px}.layuiadmin-card-team .layui-team-img{display:inline-block;margin-right:8px;width:24px;height:24px;text-align:center;line-height:24px}.layuiadmin-card-team span{color:#777}.layuiadmin-badge{top:50%;margin-top:-9px;color:#01AAED}.layuiadmin-card-list{padding:15px}.layuiadmin-card-list p.layuiadmin-big-font{font-size:36px;color:#666;line-height:36px;padding:5px 0 10px;overflow:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap}.layuiadmin-card-list p.layuiadmin-normal-font{padding-bottom:10px;font-size:20px;color:#666;line-height:24px}.layuiadmin-span-color{font-size:14px}.layuiadmin-span-color i{padding-left:5px}.layuiadmin-card-status li{position:relative;padding:10px 0;border-bottom:1px solid #EEE}.layuiadmin-card-status li h3{padding-bottom:5px;font-weight:700}.layuiadmin-card-status li p{padding-bottom:10px}.layuiadmin-card-status li>span{color:#999}.layuiadmin-home2-usernote .layuiadmin-reply{display:none;position:absolute;right:0;bottom:12px}.layuiadmin-home2-usernote li:hover .layuiadmin-reply{display:block}.layuiadmin-page-table td span{color:#2F4056}.layuiadmin-page-table td span.first{color:#FF5722}.layuiadmin-page-table td span.second{color:#FFB800}.layuiadmin-page-table td span.third{color:#5FB878}.layuiAdmin-msg-detail h1{font-size:16px}.layuiAdmin-msg-detail .layui-card-header{height:auto;line-height:30px;padding:15px}.layuiAdmin-msg-detail .layui-card-header span{padding:0 5px;color:#999}.layuiAdmin-msg-detail .layui-card-header span:first-child{padding-left:0}.layuiAdmin-msg-detail .layui-card-body{padding:15px}.layuiadmin-content-bread{padding-bottom:20px}.layuiadmin-order-progress{position:relative;top:12px}.layui-card-header.layuiadmin-card-header-auto{padding-top:15px;padding-bottom:15px;height:auto}.layuiadmin-card-header-auto i.layuiadmin-button-btn{position:relative;right:0;top:0;vertical-align:middle}.layuiadmin-card-header-auto .layui-form-item:last-child{margin-bottom:0}.layadmin-setTheme{padding:15px;overflow-x:hidden}.layadmin-setTheme>h5{padding:20px 0 10px;color:#000}.layadmin-setTheme>h5:first-child{padding-top:0}.layadmin-setTheme-color{width:330px;font-size:0}.layadmin-setTheme-color li{position:relative;display:inline-block;vertical-align:top;width:80px;height:50px;margin:0 15px 15px 0;background-color:#f2f2f2;cursor:pointer;font-size:12px;color:#666}.layadmin-setTheme-color li:after{content:'';position:absolute;z-index:20;top:50%;left:50%;width:1px;height:0;border:1px solid #f2f2f2;transition:all .3s;-webkit-transition:all .3s;opacity:0}.layadmin-setTheme-color li.layui-this:after,.layadmin-setTheme-color li:hover:after{width:100%;height:100%;padding:4px;top:-5px;left:-5px;border-color:#5FB878;opacity:1}.layadmin-setTheme-header{position:relative;z-index:10;height:10px;border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2}.layadmin-setTheme-side{position:absolute;left:0;top:0;width:20px;height:100%;z-index:11;box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layadmin-setTheme-logo{position:absolute;left:0;top:0;width:100%;height:10px;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.layadmin-form-right{text-align:right}.layadmin-about p{margin-bottom:10px}.layadmin-menu-list .layui-card-header{height:50px;line-height:50px;font-size:16px}.layadmin-menu-list .layui-card-header:active{background-color:#f2f2f2}.layadmin-menu-list .layui-card-header .layui-icon{position:relative;top:1px;left:0;display:inline-block;margin:0 10px;font-size:18px}@-webkit-keyframes layui-rl{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@keyframes layui-rl{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}.layui-anim-rl{-webkit-animation-name:layui-rl;animation-name:layui-rl}@-webkit-keyframes layui-lr{from{-webkit-transform:translate3d(0 0,0);opacity:1}to{-webkit-transform:translate3d(100%,0,0);opacity:1}}@keyframes layui-lr{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}.layui-anim-lr,.layui-anim-rl.layer-anim-close{-webkit-animation-name:layui-lr;animation-name:layui-lr}.layadmin-tips{margin-top:30px;text-align:center}.layadmin-tips .layui-icon[face]{display:inline-block;font-size:300px;color:#393D49}.layadmin-tips .layui-text{width:500px;margin:30px auto;padding-top:20px;border-top:5px solid #009688;font-size:16px}.layadmin-tips h1{font-size:100px;line-height:100px;color:#009688}.layadmin-tips .layui-text .layui-anim{display:inline-block}@media screen and (max-width:768px){.layadmin-panel-selection{margin:0;width:auto}.layui-body .layui-nav .layui-nav-item{display:block}.layui-layout-admin .layui-body .layadmin-tabsbody-item{-webkit-overflow-scrolling:touch;overflow:auto}} diff --git a/src/main/resources/templates/layui-v2.6.8/layui/css/log.css b/src/main/resources/templates/layui-v2.6.8/layui/css/log.css new file mode 100644 index 0000000..789003b --- /dev/null +++ b/src/main/resources/templates/layui-v2.6.8/layui/css/log.css @@ -0,0 +1,2 @@ +/** layuiAdmin.std-v1.2.1 LPPL License By http://www.layui.com/admin/ */ +#LAY_app,body,html{height:100%}.layui-layout-body{overflow:auto}#LAY-user-login,.layadmin-user-display-show{display:block!important}.layadmin-user-login{position:relative;left:0;top:0;padding:110px 0;min-height:100%;box-sizing:border-box}.layadmin-user-login-main{width:375px;margin:0 auto;box-sizing:border-box}.layadmin-user-login-box{padding:20px}.layadmin-user-login-header{text-align:center}.layadmin-user-login-header h2{margin-bottom:10px;font-weight:300;font-size:30px;color:#000}.layadmin-user-login-header p{font-weight:300;color:#999}.layadmin-user-login-body .layui-form-item{position:relative}.layadmin-user-login-icon{position:absolute;left:1px;top:1px;width:38px;line-height:36px;text-align:center;color:#d2d2d2}.layadmin-user-login-body .layui-form-item .layui-input{padding-left:38px}.layadmin-user-login-codeimg{max-height:38px;width:100%;cursor:pointer;box-sizing:border-box}.layadmin-user-login-other{position:relative;font-size:0;line-height:38px;padding-top:20px}.layadmin-user-login-other>*{display:inline-block;vertical-align:middle;margin-right:10px;font-size:14px}.layadmin-user-login-other .layui-icon{position:relative;top:2px;font-size:26px}.layadmin-user-login-other a:hover{opacity:.8}.layadmin-user-jump-change{float:right}.layadmin-user-login-footer{position:absolute;left:0;bottom:0;width:100%;line-height:30px;padding:20px;text-align:center;box-sizing:border-box;color:rgba(0,0,0,.5)}.layadmin-user-login-footer span{padding:0 5px}.layadmin-user-login-footer a{padding:0 5px;color:rgba(0,0,0,.5)}.layadmin-user-login-footer a:hover{color:rgba(0,0,0,1)}.layadmin-user-login-main[bgimg]{background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.05)}.ladmin-user-login-theme{position:fixed;bottom:0;left:0;width:100%;text-align:center}.ladmin-user-login-theme ul{display:inline-block;padding:5px;background-color:#fff}.ladmin-user-login-theme ul li{display:inline-block;vertical-align:top;width:64px;height:43px;cursor:pointer;transition:all .3s;-webkit-transition:all .3s;background-color:#f2f2f2}.ladmin-user-login-theme ul li:hover{opacity:.9}@media screen and (max-width:768px){.layadmin-user-login{padding-top:60px}.layadmin-user-login-main{width:300px}.layadmin-user-login-box{padding:10px}} diff --git a/src/main/resources/templates/layui-v2.6.8/login.html b/src/main/resources/templates/layui-v2.6.8/login.html index 8a3958f..4a66899 100644 --- a/src/main/resources/templates/layui-v2.6.8/login.html +++ b/src/main/resources/templates/layui-v2.6.8/login.html @@ -1,92 +1,76 @@ <!DOCTYPE html> -<html lang="en"> +<html> <head> - <meta charset="UTF-8"> - <title>Title</title> - - <style> - * { - margin: 0; - padding: 0; - } - html { - height: 100%; - } - body { - height: 100%; - } - .container { - height: 100%; - background-image: linear-gradient(to right, #E0E0E0, #A3A3A3); - } - .login-wrapper { - background-color: white; - width: 358px; - height: 588px; - border-radius: 15px; - padding: 0 50px; - position: relative; - left: 50%; - top: 50%; - transform: translate(-50%,-50%); - } - .header { - font-size: 38px; - font-weight: bold; - text-align: center; - line-height: 200px; - } - .input-item { - display: block; - width: 100%; - margin-bottom: 20px; - border: 0; - padding: 10px; - border-bottom: 1px solid rgb(128,125,125); - font-size: 15px; - outline: none; - } - .input-item::placeholder { - text-transform: uppercase; - } - .btn { - text-align: center; - padding: 10px; - width: 100%; - margin-top: 40px; - background-image: linear-gradient(to right,#a6c1ee, #fbc2eb); - color: #fff; - cursor: pointer; - } - .msg { - text-align: center; - line-height: 88px; - } - a { - text-decoration-line: none; - color: #3580BB; - } - - </style> - - + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <title>登录</title> + <link rel="stylesheet" href="layui/css/layui.css"> + <link rel="stylesheet" href="layui/css/admin.css"> + <link rel="stylesheet" href="layui/css/log.css"> </head> <body> -<div class="container"> - <div class="login-wrapper"> - <div class="header">用户登录</div> - <div class="form-wrapper"> - <form action="http://localhost:8080/user/login" method="post"> - <input type="text" name="username" placeholder="username" class="input-item"> - <input type="password" name="password" placeholder="password" class="input-item"> - <div><input class="btn" style="border:none;" type="submit" value="登录"></div> - </form> +<div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login" style="display: none;"> + <div class="layadmin-user-login-main"> + <div class="layadmin-user-login-box layadmin-user-login-header"> + <h2>用户登录</h2> + <p>客户端后台管理</p> </div> - <div class="msg"> - Don't have account? - <a href="">Sign up</a> + <div class="layadmin-user-login-box layadmin-user-login-body layui-form"> + <div class="layui-form-item"> + <label class="layadmin-user-login-icon layui-icon layui-icon-username"></label> + <input type="text" id="userName" name="userName" lay-verify="required" placeholder="用户名" class="layui-input"> + </div> + <div class="layui-form-item"> + <label class="layadmin-user-login-icon layui-icon layui-icon-password"></label> + <input type="password" id="password" name="password" lay-verify="required" placeholder="密码" readonly onfocus="this.removeAttribute('readonly');" class="layui-input"> + </div> + <div class="layui-form-item"> + <button class="layui-btn layui-btn-fluid" lay-submit id="userlogin">登 入</button> + </div> </div> </div> </div> + +<script src="layui/layui.js" type="text/javascript"></script> +<script> + + //JavaScript代码区域 + layui.use(['layer','element','form','jquery'], function(){ + let layer = layui.layer; + let form = layui.form; + let element = layui.element; + let $ = layui.jquery; + + $("#userlogin").click(function(){ + let userName = $("#userName").val() + let password = $("#password").val() + $.ajax({ + url:"http://localhost:8080/user/login", + data:{ + userCode:userName, + password:password + }, + type:"post", + success:function(result){ + console.log(result); + if (result.msg==='success'){ + layer.msg(result.tip,{icon:1,time:100},function () { + location.href="http://localhost:63342/zhiyun/src/main/resources/templates/layui-v2.6.8/index.html" + }) + }else if (result.type==='error'){ + layer.msg(result.tip) + }else { + layer.msg('未知异常,请联系管理员') + } + }, + + }) + }); + + + + }); + +</script> </body> -</html> \ No newline at end of file +</html> diff --git a/src/main/resources/templates/layui-v2.6.8/textualList.html b/src/main/resources/templates/layui-v2.6.8/textualList.html index b6da7d6..a72b799 100644 --- a/src/main/resources/templates/layui-v2.6.8/textualList.html +++ b/src/main/resources/templates/layui-v2.6.8/textualList.html @@ -190,7 +190,7 @@ layui.use(['form'], function () { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/textual/queryDir', type: "get", success: function (data) { if (data.msg === "success") { @@ -391,7 +391,7 @@ layui.use(['form'], function () { var form = layui.form; $.ajax({ - url: 'http://localhost:8080/application/queryDir', + url: 'http://localhost:8080/textual/queryDir', type: "get", success: function (data) { if (data.msg === "success") {