浏览代码

添加字段映射模块,使用字段注解查询对应的值

wanggaokun 1 年之前
父节点
当前提交
388c8d2faf

+ 7 - 0
eco-common/common-bom/pom.xml

@@ -117,6 +117,13 @@
                 <version>${revision}</version>
             </dependency>
 
+            <!-- 字段映射服务 -->
+            <dependency>
+                <groupId>org.eco</groupId>
+                <artifactId>common-mapper</artifactId>
+                <version>${revision}</version>
+            </dependency>
+
             <!-- WebSocket模块 -->
             <dependency>
                 <groupId>org.eco</groupId>

+ 0 - 19
eco-common/common-mapper/.mvn/wrapper/maven-wrapper.properties

@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-wrapperVersion=3.3.2
-distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.7/apache-maven-3.9.7-bin.zip

+ 2 - 2
eco-common/common-mapper/src/main/java/com/phm/common/mapper/config/FieldMapperConfig.java

@@ -37,10 +37,10 @@ public class FieldMapperConfig {
                 FieldMapperType annotation = trans.getClass().getAnnotation(FieldMapperType.class);
                 map.put(annotation.type(), trans);
             } else {
-                log.warn(trans.getClass().getName() + " 翻译实现类未标注 TranslationType 注解!");
+                log.warn(trans.getClass().getName() + " 翻译实现类未标注 FieldMapperType 注解!");
             }
         }
-        FieldMapperHandler.TRANSLATION_MAPPER.putAll(map);
+        FieldMapperHandler.FIELD_MAPPER.putAll(map);
         // 设置 Bean 序列化修改器
         objectMapper.setSerializerFactory(
             objectMapper.getSerializerFactory()

+ 1 - 1
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/FieldMapperInterface.java

@@ -6,7 +6,7 @@ package com.phm.common.mapper.core;
  * @Author: GaoKun Wang
  * @Date: 2024/7/1
  */
-public interface FieldMapperInterface <T> {
+public interface FieldMapperInterface<T> {
 
     /**
      * 映射

+ 1 - 1
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/handler/FieldMapperBeanSerializerModifier.java

@@ -18,7 +18,7 @@ public class FieldMapperBeanSerializerModifier extends BeanSerializerModifier {
     public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc,
                                                      List<BeanPropertyWriter> beanProperties) {
         for (BeanPropertyWriter writer : beanProperties) {
-            // 如果序列化器为 TranslationHandler 的话 将 Null 值也交给他处理
+            // 如果序列化器为 FieldMapperHandler 的话 将 Null 值也交给他处理
             if (writer.getSerializer() instanceof FieldMapperHandler serializer) {
                 writer.assignNullSerializer(serializer);
             }

+ 3 - 3
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/handler/FieldMapperHandler.java

@@ -8,7 +8,6 @@ import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.ser.ContextualSerializer;
 import com.phm.common.mapper.annotation.FieldMapper;
-import com.phm.common.mapper.config.FieldMapperConfig;
 import com.phm.common.mapper.core.FieldMapperInterface;
 import org.eco.common.core.utils.StringUtils;
 import org.eco.common.core.utils.reflect.ReflectUtils;
@@ -28,12 +27,13 @@ public class FieldMapperHandler extends JsonSerializer<Object> implements Contex
     /**
      * 全局实现类映射器
      */
-    public static final Map<String, FieldMapperInterface<?>> TRANSLATION_MAPPER = new ConcurrentHashMap<>();
+    public static final Map<String, FieldMapperInterface<?>> FIELD_MAPPER = new ConcurrentHashMap<>();
 
     private FieldMapper fieldMapper;
+
     @Override
     public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
-        FieldMapperInterface<?> trans = TRANSLATION_MAPPER.get(fieldMapper.type());
+        FieldMapperInterface<?> trans = FIELD_MAPPER.get(fieldMapper.type());
         if (ObjectUtil.isNotNull(trans)) {
             // 如果映射字段不为空 则取映射字段的值
             if (StringUtils.isNotBlank(fieldMapper.mapper())) {

+ 1 - 0
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/DeptNameMapperImpl.java

@@ -15,6 +15,7 @@ import org.eco.common.core.service.DeptService;
 @FieldMapperType(type = MapperConstant.DEPT_ID_TO_NAME)
 public class DeptNameMapperImpl implements FieldMapperInterface<String> {
     private final DeptService deptService;
+
     @Override
     public String fieldMapper(Object key, String other) {
         if (key instanceof String ids) {

+ 1 - 0
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/NicknameMapperImpl.java

@@ -16,6 +16,7 @@ import org.eco.common.core.service.UserService;
 public class NicknameMapperImpl implements FieldMapperInterface<String> {
 
     private final UserService userService;
+
     @Override
     public String fieldMapper(Object key, String other) {
         if (key instanceof Long id) {

+ 1 - 0
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/OssUrlMapperImpl.java

@@ -16,6 +16,7 @@ import org.eco.common.core.service.OssService;
 public class OssUrlMapperImpl implements FieldMapperInterface<String> {
 
     private final OssService ossService;
+
     @Override
     public String fieldMapper(Object key, String other) {
         if (key instanceof String ids) {

+ 1 - 0
eco-common/common-mapper/src/main/java/com/phm/common/mapper/core/impl/UserNameMapperImpl.java

@@ -16,6 +16,7 @@ import org.eco.common.core.service.UserService;
 public class UserNameMapperImpl implements FieldMapperInterface<String> {
 
     private final UserService userService;
+
     @Override
     public String fieldMapper(Object key, String other) {
         if (key instanceof Long id) {

+ 1 - 0
eco-common/common-mapper/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,3 +1,4 @@
+com.phm.common.mapper.config.FieldMapperConfig
 com.phm.common.mapper.core.impl.DeptNameMapperImpl
 com.phm.common.mapper.core.impl.DictTypeMapperImpl
 com.phm.common.mapper.core.impl.NicknameMapperImpl

+ 5 - 0
eco-modules/system/pom.xml

@@ -85,6 +85,11 @@
             <artifactId>common-web</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.eco</groupId>
+            <artifactId>common-mapper</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.eco</groupId>
             <artifactId>common-websocket</artifactId>

+ 22 - 6
eco-modules/system/src/main/java/org/eco/system/domain/vo/ImportExportVo.java

@@ -1,14 +1,15 @@
 package org.eco.system.domain.vo;
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.phm.common.mapper.annotation.FieldMapper;
+import com.phm.common.mapper.constant.MapperConstant;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
-import org.eco.common.orm.core.domain.BaseEntity;
 import org.eco.system.domain.ImportExport;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * 导入导出日志视图对象 sys_import_export_t
@@ -17,10 +18,8 @@ import java.io.Serializable;
  * @date 2024-06-24
  */
 @Data
-@ExcelIgnoreUnannotated
-@EqualsAndHashCode(callSuper = true)
 @AutoMapper(target = ImportExport.class)
-public class ImportExportVo extends BaseEntity implements Serializable {
+public class ImportExportVo implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1L;
@@ -59,4 +58,21 @@ public class ImportExportVo extends BaseEntity implements Serializable {
      * 状态
      */
     private String status;
+
+    /**
+     * 创建人名称
+     */
+    @FieldMapper(type = MapperConstant.USER_ID_TO_NAME, mapper = "createBy")
+    private String createByName;
+
+    /**
+     * 上传人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
 }