From f0dfe3619b3a4a5843cef3edb9948f96fa778572 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 26 Sep 2022 11:41:00 +0800
Subject: [PATCH] 上传字段picUrls进行字段处理

---
 src/main/java/org/springblade/common/handler/JsonStringArrayTypeHandler.java      |   58 +++++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/eventgm/mapper/EventgmMapper.xml            |    1 
 src/main/java/org/springblade/modules/repairsorder/mapper/RepairsorderMapper.xml  |    1 
 src/main/java/org/springblade/modules/eventgm/entity/EventgmEntity.java           |   11 +++++
 src/main/java/org/springblade/modules/repairsorder/entity/RepairsorderEntity.java |    7 +++
 src/main/java/org/springblade/modules/taskinfo/mapper/TaskInfoMapper.xml          |    2 
 6 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/springblade/common/handler/JsonStringArrayTypeHandler.java b/src/main/java/org/springblade/common/handler/JsonStringArrayTypeHandler.java
new file mode 100644
index 0000000..67c0e79
--- /dev/null
+++ b/src/main/java/org/springblade/common/handler/JsonStringArrayTypeHandler.java
@@ -0,0 +1,58 @@
+package org.springblade.common.handler;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+
+@MappedJdbcTypes({JdbcType.VARCHAR})
+public class JsonStringArrayTypeHandler extends BaseTypeHandler<Object[]> {
+	private static final ObjectMapper mapper = new ObjectMapper();
+	@Override
+	public void setNonNullParameter(PreparedStatement ps, int i, Object[] parameter, JdbcType jdbcType)
+		throws SQLException {
+		ps.setObject(i, toJson(parameter));
+	}
+
+	@Override
+	public Object[] getNullableResult(ResultSet rs, String columnName) throws SQLException {
+		return this.toObject(rs.getString(columnName));
+	}
+
+	@Override
+	public Object[] getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+		return this.toObject(rs.getString(columnIndex));
+	}
+
+	@Override
+	public Object[] getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
+		return this.toObject(cs.getString(columnIndex));
+	}
+
+	private String toJson(Object[] params) {
+		try {
+			return mapper.writeValueAsString(params);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return "[]";
+	}
+
+	private Object[] toObject(String content) {
+		if (content != null && !content.isEmpty()) {
+			try {
+				return (Object[]) mapper.readValue(content, Object[].class);
+			} catch (Exception e) {
+				throw new RuntimeException(e);
+			}
+		} else {
+			return null;
+		}
+	}
+}
diff --git a/src/main/java/org/springblade/modules/eventgm/entity/EventgmEntity.java b/src/main/java/org/springblade/modules/eventgm/entity/EventgmEntity.java
index eea9544..f42137c 100644
--- a/src/main/java/org/springblade/modules/eventgm/entity/EventgmEntity.java
+++ b/src/main/java/org/springblade/modules/eventgm/entity/EventgmEntity.java
@@ -16,12 +16,15 @@
  */
 package org.springblade.modules.eventgm.entity;
 
+import com.alibaba.fastjson.annotation.JSONType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.util.Date;
 import lombok.EqualsAndHashCode;
+import org.springblade.common.handler.JsonStringArrayTypeHandler;
 import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
@@ -31,7 +34,7 @@
  * @since 2022-09-13
  */
 @Data
-@TableName("ins_eventgm")
+@TableName(value = "ins_eventgm",autoResultMap = true)
 @ApiModel(value = "Eventgm对象", description = "事件管理")
 @EqualsAndHashCode(callSuper = true)
 public class EventgmEntity extends TenantEntity {
@@ -77,5 +80,11 @@
 	 */
 	@ApiModelProperty(value = "备注")
 	private String remark;
+	/**
+	 * 图片数组
+	 */
+	@TableField(value = "pic_urls",typeHandler = JsonStringArrayTypeHandler.class)
+	@ApiModelProperty(value = "图片数组")
+	private Object[] picUrls;
 
 }
diff --git a/src/main/java/org/springblade/modules/eventgm/mapper/EventgmMapper.xml b/src/main/java/org/springblade/modules/eventgm/mapper/EventgmMapper.xml
index 3e46590..570d578 100644
--- a/src/main/java/org/springblade/modules/eventgm/mapper/EventgmMapper.xml
+++ b/src/main/java/org/springblade/modules/eventgm/mapper/EventgmMapper.xml
@@ -20,6 +20,7 @@
         <result column="is_deleted" property="isDeleted"/>
         <result column="tenant_id" property="tenantId"/>
         <result column="create_dept" property="createDept"/>
+        <result column="pic_urls" property="picUrls" typeHandler="org.springblade.common.handler.JsonStringArrayTypeHandler"/>
     </resultMap>
 
 
diff --git a/src/main/java/org/springblade/modules/repairsorder/entity/RepairsorderEntity.java b/src/main/java/org/springblade/modules/repairsorder/entity/RepairsorderEntity.java
index b329799..bd409fe 100644
--- a/src/main/java/org/springblade/modules/repairsorder/entity/RepairsorderEntity.java
+++ b/src/main/java/org/springblade/modules/repairsorder/entity/RepairsorderEntity.java
@@ -17,6 +17,7 @@
 package org.springblade.modules.repairsorder.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;
@@ -24,6 +25,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import java.util.Date;
 import lombok.EqualsAndHashCode;
+import org.springblade.common.handler.JsonStringArrayTypeHandler;
 import org.springblade.core.tenant.mp.TenantEntity;
 
 /**
@@ -33,7 +35,7 @@
  * @since 2022-09-14
  */
 @Data
-@TableName("ins_repairsorder")
+@TableName(value = "ins_repairsorder",autoResultMap = true)
 @ApiModel(value = "Repairsorder对象", description = "维修工单")
 @EqualsAndHashCode(callSuper = true)
 public class RepairsorderEntity extends TenantEntity {
@@ -74,4 +76,7 @@
 	@ApiModelProperty(value = "维修人员")
 	private Long toUserId;
 
+	@TableField(value = "pic_urls",typeHandler = JsonStringArrayTypeHandler.class)
+	@ApiModelProperty(value = "图片数组")
+	private Object[] picUrls;
 }
diff --git a/src/main/java/org/springblade/modules/repairsorder/mapper/RepairsorderMapper.xml b/src/main/java/org/springblade/modules/repairsorder/mapper/RepairsorderMapper.xml
index 5215ab5..a8814cc 100644
--- a/src/main/java/org/springblade/modules/repairsorder/mapper/RepairsorderMapper.xml
+++ b/src/main/java/org/springblade/modules/repairsorder/mapper/RepairsorderMapper.xml
@@ -20,6 +20,7 @@
         <result column="is_deleted" property="isDeleted"/>
         <result column="tenant_id" property="tenantId"/>
         <result column="create_dept" property="createDept"/>
+        <result column="pic_urls" property="picUrls" typeHandler="org.springblade.common.handler.JsonStringArrayTypeHandler"/>
     </resultMap>
 
 
diff --git a/src/main/java/org/springblade/modules/taskinfo/mapper/TaskInfoMapper.xml b/src/main/java/org/springblade/modules/taskinfo/mapper/TaskInfoMapper.xml
index ccb0022..9a4a9d1 100644
--- a/src/main/java/org/springblade/modules/taskinfo/mapper/TaskInfoMapper.xml
+++ b/src/main/java/org/springblade/modules/taskinfo/mapper/TaskInfoMapper.xml
@@ -40,7 +40,7 @@
         </if>
     </select>
 
-    <!--自定义新增农场围栏数据-->
+    <!--自定义新增数据-->
     <insert id="saveTask">
         INSERT INTO ins_taskinfo (id, title, start_time, end_time, content,to_user_id,
         <if test="taskInfo.routeRange!=null and taskInfo.routeRange!=''">

--
Gitblit v1.9.3