Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

lfy 1 viikko sitten
vanhempi
commit
3006a9edc1

+ 52 - 0
delivery-framework/delivery-spring-boot-starter-mybatis/src/main/java/com/unis/framework/mybatis/core/type/JsonToListTypeHandler.java

@@ -0,0 +1,52 @@
1
+package com.unis.framework.mybatis.core.type;
2
+
3
+import com.fasterxml.jackson.core.JsonProcessingException;
4
+import com.fasterxml.jackson.core.type.TypeReference;
5
+import com.fasterxml.jackson.databind.ObjectMapper;
6
+import org.apache.ibatis.type.BaseTypeHandler;
7
+import org.apache.ibatis.type.JdbcType;
8
+import java.sql.CallableStatement;
9
+import java.sql.PreparedStatement;
10
+import java.sql.ResultSet;
11
+import java.sql.SQLException;
12
+import java.util.Collections;
13
+import java.util.List;
14
+
15
+public class JsonToListTypeHandler extends BaseTypeHandler<List<String>> {
16
+    private static final ObjectMapper mapper = new ObjectMapper();
17
+
18
+    @Override
19
+    public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
20
+        try {
21
+            ps.setString(i, mapper.writeValueAsString(parameter));
22
+        } catch (JsonProcessingException e) {
23
+            throw new SQLException("JSON序列化失败", e);
24
+        }
25
+    }
26
+
27
+    @Override
28
+    public List<String> getNullableResult(ResultSet rs, String columnName) throws SQLException {
29
+        return parseJsonToList(rs.getString(columnName));
30
+    }
31
+
32
+    @Override
33
+    public List<String> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
34
+        return parseJsonToList(rs.getString(columnIndex));
35
+    }
36
+
37
+    @Override
38
+    public List<String> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
39
+        return parseJsonToList(cs.getString(columnIndex));
40
+    }
41
+
42
+    private List<String> parseJsonToList(String json) {
43
+        if (json == null || json.isEmpty()) {
44
+            return Collections.emptyList();
45
+        }
46
+        try {
47
+            return mapper.readValue(json, new TypeReference<List<String>>() {});
48
+        } catch (JsonProcessingException e) {
49
+            throw new RuntimeException("JSON解析失败", e);
50
+        }
51
+    }
52
+}

+ 46 - 0
delivery-framework/delivery-spring-boot-starter-mybatis/src/main/java/com/unis/framework/mybatis/core/type/ListToStringTypeHandler.java

@@ -0,0 +1,46 @@
1
+package com.unis.framework.mybatis.core.type;
2
+
3
+import org.apache.ibatis.type.BaseTypeHandler;
4
+import org.apache.ibatis.type.JdbcType;
5
+import java.sql.CallableStatement;
6
+import java.sql.PreparedStatement;
7
+import java.sql.ResultSet;
8
+import java.sql.SQLException;
9
+import java.util.Arrays;
10
+import java.util.Collections;
11
+import java.util.List;
12
+
13
+public class ListToStringTypeHandler extends BaseTypeHandler<List<String>> {
14
+    private static final String DELIMITER = ","; // 分隔符
15
+
16
+    @Override
17
+    public void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType) throws SQLException {
18
+        // 将 List 转为字符串存入数据库
19
+        ps.setString(i, String.join(DELIMITER, parameter));
20
+    }
21
+
22
+    @Override
23
+    public List<String> getNullableResult(ResultSet rs, String columnName) throws SQLException {
24
+        String value = rs.getString(columnName);
25
+        return parseStringToList(value);
26
+    }
27
+
28
+    @Override
29
+    public List<String> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
30
+        String value = rs.getString(columnIndex);
31
+        return parseStringToList(value);
32
+    }
33
+
34
+    @Override
35
+    public List<String> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
36
+        String value = cs.getString(columnIndex);
37
+        return parseStringToList(value);
38
+    }
39
+
40
+    private List<String> parseStringToList(String value) {
41
+        if (value == null || value.isEmpty()) {
42
+            return Collections.emptyList();
43
+        }
44
+        return Arrays.asList(value.split(DELIMITER));
45
+    }
46
+}

+ 5 - 1
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/dal/dataobject/caxx/CaxxDO.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence;
4 4
 import com.baomidou.mybatisplus.annotation.TableId;
5 5
 import com.baomidou.mybatisplus.annotation.TableName;
6 6
 import com.unis.framework.mybatis.core.dataobject.BaseDO;
7
+import io.swagger.v3.oas.annotations.media.Schema;
7 8
 import lombok.*;
8 9
 
9 10
 import java.math.BigDecimal;
@@ -114,6 +115,7 @@ public class CaxxDO extends BaseDO {
114 115
      * 客户名称(单位名称)
115 116
      */
116 117
     private String khmc;
118
+
117 119
     /**
118 120
      * 客户联系电话
119 121
      */
@@ -124,6 +126,8 @@ public class CaxxDO extends BaseDO {
124 126
      */
125 127
     private String khbh;
126 128
 
127
-    /** 备选状态 */
129
+    /**
130
+     * 备选状态
131
+     */
128 132
     private Integer bxzt;
129 133
 }

+ 1 - 0
delivery-module-core/delivery-module-core-biz/src/main/java/com/unis/module/coding/service/caxx/CaxxServiceImpl.java

@@ -82,6 +82,7 @@ public class CaxxServiceImpl implements CaxxService {
82 82
         validateCaxxExists(updateReqVO.getId());
83 83
         // 更新
84 84
         CaxxDO updateObj = BeanUtils.toBean(updateReqVO, CaxxDO.class);
85
+        updateObj.setKhbh(updateReqVO.getKhbm());
85 86
         caxxMapper.updateById(updateObj);
86 87
     }
87 88