diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/controller/MyTestController.java b/archives/src/main/java/com/storeroom/modules/dictionary/controller/MyTestController.java new file mode 100644 index 0000000..ccb9ec9 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/controller/MyTestController.java @@ -0,0 +1,20 @@ +package com.storeroom.modules.dictionary.controller; + + +import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.utils.ApiResponse; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/test") +public class MyTestController { + + + + @AnonymousGetMapping(value = "/ok") + public ApiResponse Ok(){ + return ApiResponse.success("请求成功"); + } +} diff --git a/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesType.java b/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesType.java new file mode 100644 index 0000000..b300d37 --- /dev/null +++ b/archives/src/main/java/com/storeroom/modules/dictionary/domain/ArchivesType.java @@ -0,0 +1,67 @@ +package com.storeroom.modules.dictionary.domain; + + +import com.storeroom.base.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.Objects; + +@Entity +@Getter +@Setter +@Table(name = "archives_type") +public class ArchivesType extends BaseEntity implements Serializable { + + @Id + @Column(name = "id") + @NotNull(groups = Update.class) + @GeneratedValue(strategy = GenerationType.IDENTITY) + @ApiModelProperty(value = "id", hidden = true) + private String id; + + @Column(name = "cn_name") + @ApiModelProperty(value = "门类名称") + private String cnName; + + @Column(name = "en_name") + @ApiModelProperty(value = "表名") + private String enName; + + @Column(name = "pid") + @ApiModelProperty(value = "父类id") + private String pid; + + @Column(name = "is_type") + @ApiModelProperty(value = "门类级别") + private long isType; + + @Column(name = "is_type_metic") + @ApiModelProperty(value = "是否为模板档案") + private long isTypeMetic; + + @Column(name = "category_seq") + @ApiModelProperty(value = "排序") + private long categorySeq; + + @Column(name = "remark") + @ApiModelProperty(value = "备注") + private String remark; + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ArchivesType that = (ArchivesType) o; + return isType == that.isType && isTypeMetic == that.isTypeMetic && categorySeq == that.categorySeq && Objects.equals(id, that.id) && Objects.equals(cnName, that.cnName) && Objects.equals(enName, that.enName) && Objects.equals(pid, that.pid) && Objects.equals(remark, that.remark); + } + + @Override + public int hashCode() { + return Objects.hash(id, cnName, enName, pid, isType, isTypeMetic, categorySeq, remark); + } +} diff --git a/common/src/main/java/com/storeroom/utils/ListUtils.java b/common/src/main/java/com/storeroom/utils/ListUtils.java new file mode 100644 index 0000000..946de36 --- /dev/null +++ b/common/src/main/java/com/storeroom/utils/ListUtils.java @@ -0,0 +1,43 @@ +package com.storeroom.utils; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * List 工具类 + */ +public class ListUtils { + + public static List> converListMap(List list) { + List> maps = new ArrayList>(); + + for (Object obj : list) { + Class c = obj.getClass(); + Field[] f = c.getDeclaredFields(); + Map map = new HashMap(); + for (Field fie : f) { + try { + fie.setAccessible(true); + map.put(fie.getName(),fie.get(obj)); + } catch (Exception e) { + e.printStackTrace(); + } + + } + //获取父类的私有属性 + for(Field fie : c.getSuperclass().getDeclaredFields()){ + try { + fie.setAccessible(true);//取消语言访问检查 + map.put(fie.getName(), fie.get(obj));//获取私有变量值 + } catch (Exception e) { + e.printStackTrace(); + } + } + maps.add(map); + } + return maps; + } +} diff --git a/common/src/main/java/com/storeroom/utils/NanoIdUtils.java b/common/src/main/java/com/storeroom/utils/NanoIdUtils.java index 26523bc..ed49e61 100644 --- a/common/src/main/java/com/storeroom/utils/NanoIdUtils.java +++ b/common/src/main/java/com/storeroom/utils/NanoIdUtils.java @@ -18,7 +18,7 @@ public final class NanoIdUtils { public static final char[] DEFAULT_ALPHABET = "0123456789ABCDEF".toCharArray(); - public static final int DEFAULT_SIZE = 21; + public static final int DEFAULT_SIZE = 22; public static String randomNanoId() { return NanoId.randomNanoId(DEFAULT_NUMBER_GENERATOR, DEFAULT_ALPHABET, DEFAULT_SIZE); diff --git a/system/pom.xml b/system/pom.xml index b074482..08ff23c 100644 --- a/system/pom.xml +++ b/system/pom.xml @@ -79,6 +79,12 @@ org.quartz-scheduler quartz + + + com.storeroom + archives + 1.0 + diff --git a/system/src/main/java/com/storeroom/modules/system/controller/TestController.java b/system/src/main/java/com/storeroom/modules/system/controller/TestController.java index cbfdb46..5abc282 100644 --- a/system/src/main/java/com/storeroom/modules/system/controller/TestController.java +++ b/system/src/main/java/com/storeroom/modules/system/controller/TestController.java @@ -2,15 +2,28 @@ package com.storeroom.modules.system.controller; import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.annotaion.rest.AnonymousPostMapping; import com.storeroom.exception.BaseException; import com.storeroom.exception.constant.ResponseStatus; +import com.storeroom.modules.system.domain.vo.CreateTableVo; import com.storeroom.utils.ApiResponse; +import com.storeroom.utils.NanoIdUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + @Api(tags = "测试接口") @RestController @RequestMapping("/api/test") @@ -18,10 +31,60 @@ import org.springframework.web.bind.annotation.RestController; public class TestController { + private final JdbcTemplate jdbcTemplate; + + @ApiOperation("测试接口") - @AnonymousGetMapping(value = "/miss") - public ApiResponse me() { - //return ApiResponse.error(ResponseStatus.SUCCESS.getCode(),ResponseStatus.SUCCESS.getMessage()); - throw new BaseException("返回异常信息"); + @AnonymousPostMapping(value = "/miss") + public ApiResponse me(@RequestBody CreateTableVo createTableVo) { + String tableName = createTableVo.getTableName(); + StringBuilder stringBuilder = new StringBuilder("create table " + tableName + "(id varchar(100) primary key,"); + + List> maps = new ArrayList>(); + + for (Object obj : createTableVo.getList()) { + Class c = obj.getClass(); + Field[] f = c.getDeclaredFields(); + Map map = new HashMap(); + for (Field fie : f) { + try { + fie.setAccessible(true); + map.put(fie.getName(), fie.get(obj)); + } catch (Exception e) { + e.printStackTrace(); + } + + } + //获取父类的私有属性 + for (Field fie : c.getSuperclass().getDeclaredFields()) { + try { + fie.setAccessible(true);//取消语言访问检查 + map.put(fie.getName(), fie.get(obj));//获取私有变量值 + } catch (Exception e) { + e.printStackTrace(); + } + } + maps.add(map); + } + List> list = maps; + + for (int i = 0; i < list.size(); i++) { + stringBuilder.append(list.get(i).get("fieldName")); + stringBuilder.append(" "); + stringBuilder.append(list.get(i).get("fieldType")); + stringBuilder.append("("); + stringBuilder.append(list.get(i).get("fieldExtent")); + stringBuilder.append(")"); + if (list.size() - 1 != i) { + stringBuilder.append(","); + } + if (list.size() - 1 == i) { + stringBuilder.append(")"); + } + + } + System.out.println("sql语句:" + stringBuilder); + jdbcTemplate.execute(stringBuilder.toString()); + return ApiResponse.success(""); } } diff --git a/system/src/main/java/com/storeroom/modules/system/domain/vo/CreateTableVo.java b/system/src/main/java/com/storeroom/modules/system/domain/vo/CreateTableVo.java new file mode 100644 index 0000000..44f0b9b --- /dev/null +++ b/system/src/main/java/com/storeroom/modules/system/domain/vo/CreateTableVo.java @@ -0,0 +1,26 @@ +package com.storeroom.modules.system.domain.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class CreateTableVo implements Serializable { + public CreateTableVo(){ + + } + + private String tableName; + private List list; + + @Data + static class Vo{ + //字段名称 + private String fieldName; + //字段类型 + private String fieldType; + //数据长度 + private Integer fieldExtent; + } +}