diff --git a/pom.xml b/pom.xml index d04fd0f..adbb0e8 100644 --- a/pom.xml +++ b/pom.xml @@ -44,10 +44,16 @@ <version>2.1.4</version> </dependency> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + <version>3.5.2</version> + </dependency> + <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> - <version>8.0.24</version> + <version>5.0.7</version> </dependency> </dependencies> diff --git a/src/main/java/com/zhiyun/zhiyun03/application/controller/ApplicationController.java b/src/main/java/com/zhiyun/zhiyun03/application/controller/ApplicationController.java new file mode 100644 index 0000000..a319737 --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/controller/ApplicationController.java @@ -0,0 +1,37 @@ +package com.zhiyun.zhiyun03.application.controller; + +import com.zhiyun.zhiyun03.application.entity.Application; +import com.zhiyun.zhiyun03.application.service.ApplicationService; +import com.zhiyun.zhiyun03.application.vo.ApplicationVo; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.annotation.ApplicationScope; + +import javax.annotation.Resource; +import java.util.List; + +@RestController +@RequestMapping("application") +public class ApplicationController { + @Resource + ApplicationService applicationService; + + @RequestMapping("query") + public List<ApplicationVo> queryApplication(){ + List<ApplicationVo> list = applicationService.queryApplication(); + return list; + } + + @RequestMapping("queryDir") + public String queryDir(){ +// int result = applicationService.addApplication(); + return ""; + } + + @RequestMapping("add") + public String addApplication(@RequestBody ApplicationVo applicationVo){ + int result = applicationService.addApplication(applicationVo); + return ""; + } +} diff --git a/src/main/java/com/zhiyun/zhiyun03/application/entity/Application.java b/src/main/java/com/zhiyun/zhiyun03/application/entity/Application.java new file mode 100644 index 0000000..4802f89 --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/entity/Application.java @@ -0,0 +1,32 @@ +package com.zhiyun.zhiyun03.application.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName(value = "application") +public class Application { + private static final long serialVersionUID = 1L; + + @TableId(type = IdType.AUTO) + private int id; + + @TableField(value = "app_name") + private String appName; + + @TableField(value = "app_biref") + private String appBiref; + + @TableField(value = "app_url") + private String appUrl; + + @TableField(value = "dir_id") + private int dirId; + + @TableField(value = "app_icon") + private String appIcon; + +} diff --git a/src/main/java/com/zhiyun/zhiyun03/application/entity/Directory.java b/src/main/java/com/zhiyun/zhiyun03/application/entity/Directory.java new file mode 100644 index 0000000..a175daa --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/entity/Directory.java @@ -0,0 +1,17 @@ +package com.zhiyun.zhiyun03.application.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@TableName(value = "directory") +@Data +public class Directory { + + @TableId + private int id; + + @TableField(value = "dir_name") + private String dirName; +} diff --git a/src/main/java/com/zhiyun/zhiyun03/application/mapper/ApplicationMapper.java b/src/main/java/com/zhiyun/zhiyun03/application/mapper/ApplicationMapper.java new file mode 100644 index 0000000..3408c5c --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/mapper/ApplicationMapper.java @@ -0,0 +1,9 @@ +package com.zhiyun.zhiyun03.application.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zhiyun.zhiyun03.application.entity.Application; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ApplicationMapper extends BaseMapper<Application> { +} diff --git a/src/main/java/com/zhiyun/zhiyun03/application/mapper/DirectoryMapper.java b/src/main/java/com/zhiyun/zhiyun03/application/mapper/DirectoryMapper.java new file mode 100644 index 0000000..2de95b0 --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/mapper/DirectoryMapper.java @@ -0,0 +1,9 @@ +package com.zhiyun.zhiyun03.application.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zhiyun.zhiyun03.application.entity.Directory; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DirectoryMapper extends BaseMapper<Directory> { +} diff --git a/src/main/java/com/zhiyun/zhiyun03/application/service/ApplicationService.java b/src/main/java/com/zhiyun/zhiyun03/application/service/ApplicationService.java new file mode 100644 index 0000000..8f537d9 --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/service/ApplicationService.java @@ -0,0 +1,13 @@ +package com.zhiyun.zhiyun03.application.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zhiyun.zhiyun03.application.entity.Application; +import com.zhiyun.zhiyun03.application.vo.ApplicationVo; + +import java.util.List; + +public interface ApplicationService extends IService<Application> { + List<ApplicationVo> queryApplication(); + + int addApplication(ApplicationVo applicationVo); +} 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 new file mode 100644 index 0000000..80ccf7b --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/service/impl/ApplicationServiceImpl.java @@ -0,0 +1,61 @@ +package com.zhiyun.zhiyun03.application.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhiyun.zhiyun03.application.entity.Application; +import com.zhiyun.zhiyun03.application.entity.Directory; +import com.zhiyun.zhiyun03.application.mapper.ApplicationMapper; +import com.zhiyun.zhiyun03.application.mapper.DirectoryMapper; +import com.zhiyun.zhiyun03.application.service.ApplicationService; +import com.zhiyun.zhiyun03.application.util.ConvertUtil; +import com.zhiyun.zhiyun03.application.vo.ApplicationVo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Service +public class ApplicationServiceImpl extends ServiceImpl<ApplicationMapper, Application> implements ApplicationService { + + @Resource + ApplicationMapper applicationMapper; + + @Resource + DirectoryMapper directoryMapper; + + + /** + * 应用中心查询 + */ + @Override + public List<ApplicationVo> queryApplication() { + QueryWrapper<Application> qwa=new QueryWrapper<>(); + List<Application> applications = applicationMapper.selectList(qwa); + QueryWrapper<Directory> qwd=new QueryWrapper<>(); + List<Directory> directories = directoryMapper.selectList(qwd); + ConvertUtil convertUtil=new ConvertUtil(); + List<ApplicationVo> applicationVos = convertUtil.entityToVoList(applications, ApplicationVo.class); + + for (int i = 0; i < applications.size(); i++) { + for (int j = 0; j <directories.size() ; j++) { + if(applications.get(i).getDirId()==directories.get(i).getId()){ + applicationVos.get(i).setDirName(directories.get(i).getDirName()); + } + } + } + return applicationVos; + } + + + + + /** + * 应用中心新增 + */ + @Override + public int addApplication(ApplicationVo applicationVo) { + + return 0; + } +} diff --git a/src/main/java/com/zhiyun/zhiyun03/application/util/ConvertUtil.java b/src/main/java/com/zhiyun/zhiyun03/application/util/ConvertUtil.java new file mode 100644 index 0000000..cf6a417 --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/util/ConvertUtil.java @@ -0,0 +1,115 @@ +package com.zhiyun.zhiyun03.application.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + + +/** + * @Author tanzheng + * @Description 类型转换: Entity - Vo互转 + * @Date 2023/8/9 + * @Param [params] + **/ +public class ConvertUtil { + public static final Logger logger = LoggerFactory.getLogger(ConvertUtil.class); + + + /** + * Entity转Vo + * @param source + * @param target + * @return + * @param <T> + */ + public <T> T entityToVo(Object source, Class<T> target) { + if (source == null) { + return null; + } + T targetObject = null; + try { + targetObject = target.newInstance(); + BeanUtils.copyProperties(source, targetObject); + } catch (Exception e) { + e.printStackTrace(); + } + return targetObject; + } + + /** + * Vo转Entity + * @param source + * @param target + * @return + * @param <T> + */ + public <T> T VoToEntity(Object source, Class<T> target) { + if (source == null) { + return null; + } + T targetObject = null; + try { + targetObject = target.newInstance(); + BeanUtils.copyProperties(source, targetObject); + } catch (Exception e) { + e.printStackTrace(); + } + return targetObject; + } + + /** + * 列表实体转VO + * @param sourceList + * @param target + * @return + * @param <T> + */ + public <T> List<T> entityToVoList(Collection<?> sourceList, Class<T> target) { + if (sourceList == null) { + return null; + } + List<T> targetList = new ArrayList<>(sourceList.size()); + + try { + for (Object source : sourceList) { + T targetObject = target.newInstance(); + BeanUtils.copyProperties(source, targetObject); + targetList.add(targetObject); + } + } catch (Exception e) { + logger.error("convert error ", e); + } + return targetList; + } + + /** + * VO转列表实体 + * @param sourceList + * @param target + * @return + * @param <T> + */ + public <T> List<T> VoListToEntity(Collection<?> sourceList, Class<T> target) { + if (sourceList == null) { + return null; + } + List<T> targetList = new ArrayList<>(sourceList.size()); + + try { + for (Object source : sourceList) { + T targetObject = target.newInstance(); + BeanUtils.copyProperties(source, targetObject); + targetList.add(targetObject); + } + } catch (Exception e) { + logger.error("convert error ", e); + } + return targetList; + } + + +} \ No newline at end of file diff --git a/src/main/java/com/zhiyun/zhiyun03/application/vo/ApplicationVo.java b/src/main/java/com/zhiyun/zhiyun03/application/vo/ApplicationVo.java new file mode 100644 index 0000000..fa2be24 --- /dev/null +++ b/src/main/java/com/zhiyun/zhiyun03/application/vo/ApplicationVo.java @@ -0,0 +1,21 @@ +package com.zhiyun.zhiyun03.application.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +@Data +public class ApplicationVo { + @TableId + private int id; + + private String appName; + + private String appBiref; + + private String appUrl; + + private String dirName; + + private String appIcon; +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 27bac68..0653c9e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -12,12 +12,9 @@ mybatis: spring: datasource: type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.mysql.cj.jdbc.Driver + driverClassName: com.mysql.jdbc.Driver druid: url: jdbc:mysql://localhost:3306/zhiyun?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai username: root - password: root + password: 123456 - -swagger: - enabled: true \ No newline at end of file diff --git a/src/main/resources/mapper/ApplicationMapper.xml b/src/main/resources/mapper/ApplicationMapper.xml new file mode 100644 index 0000000..36235d8 --- /dev/null +++ b/src/main/resources/mapper/ApplicationMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.zhiyun.zhiyun03.application.mapper.ApplicationMapper"> + +</mapper> \ No newline at end of file