Browse Source

创建房间添加参数

lyhzzz 2 years ago
parent
commit
5b8604cde7

+ 18 - 1
src/main/java/com/fdkankan/tk/entity/Room.java

@@ -1,5 +1,6 @@
 package com.fdkankan.tk.entity;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -10,6 +11,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import com.fdkankan.tk.typehandle.JsonArrayTypeHandler;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -26,7 +28,7 @@ import org.apache.commons.lang3.StringUtils;
 @Getter
 @Setter
 @ToString
-@TableName("t_room")
+@TableName(value = "t_room",autoResultMap = true)
 public class Room implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -131,6 +133,21 @@ public class Room implements Serializable {
     @TableField("host_status")
     private Integer hostStatus;
 
+    @TableField("head")
+    private String head;
+
+    @TableField("gps")
+    private String gps;
+
+    @TableField("introduction")
+    private String introduction;
+
+    @TableField(typeHandler = JsonArrayTypeHandler.class)
+    private JSONArray image;
+
+    @TableField(typeHandler = JsonArrayTypeHandler.class)
+    private JSONArray video;
+
     @TableField(exist = false)
     private Integer roomUserId;
 

+ 43 - 0
src/main/java/com/fdkankan/tk/typehandle/ArrayStringTypeHandler.java

@@ -0,0 +1,43 @@
+package com.fdkankan.tk.typehandle;
+
+import cn.hutool.json.JSONUtil;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ *  存储到数据库, 将String数组转换成字符串;
+ *  从数据库获取数据, 将字符串转为LONG数组.
+ */
+@MappedTypes({String[].class})
+@MappedJdbcTypes({JdbcType.VARCHAR})
+public class ArrayStringTypeHandler extends BaseTypeHandler<String[]> {
+    private static String[] l = new String[]{};
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i,
+                                    String[] parameter, JdbcType jdbcType) throws SQLException {
+        ps.setString(i, JSONUtil.toJsonStr(parameter));
+    }
+    @Override
+    public String[] getNullableResult(ResultSet rs, String columnName)
+            throws SQLException {
+        return JSONUtil.parseArray(rs.getString(columnName)).toArray(l);
+    }
+    @Override
+    public String[] getNullableResult(ResultSet rs, int columnIndex)
+            throws SQLException {
+        return JSONUtil.parseArray(rs.getString(columnIndex)).toArray(l);
+    }
+    @Override
+    public String[] getNullableResult(CallableStatement cs, int columnIndex)
+            throws SQLException {
+        return JSONUtil.parseArray(cs.getString(columnIndex)).toArray(l);
+    }
+}
+

+ 54 - 0
src/main/java/com/fdkankan/tk/typehandle/JsonArrayTypeHandler.java

@@ -0,0 +1,54 @@
+package com.fdkankan.tk.typehandle;
+
+import com.alibaba.fastjson.JSONArray;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ *  存储到数据库, 将JSON数组对象转换成字符串;
+ *  从数据库获取数据, 将字符串转为JSON数组对象.
+ */
+@MappedTypes({JSONArray.class})
+@MappedJdbcTypes({JdbcType.VARCHAR})
+public class JsonArrayTypeHandler extends BaseTypeHandler<JSONArray> {
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i, JSONArray parameter,
+                                    JdbcType jdbcType) throws SQLException {
+        ps.setString(i, JSONArray.toJSONString(parameter));
+    }
+    @Override
+    public JSONArray getNullableResult(ResultSet rs, String columnName)
+            throws SQLException {
+        return parseArray(rs.getString(columnName));
+    }
+    @Override
+    public JSONArray getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+        return parseArray(rs.getString(columnIndex));
+    }
+    @Override
+    public JSONArray getNullableResult(CallableStatement cs, int columnIndex)
+            throws SQLException {
+        return parseArray(cs.getString(columnIndex));
+    }
+
+    public static JSONArray parseArray(String content) {
+        if(StringUtils.isBlank(content)){
+            return new JSONArray();
+        }
+        try {
+            return JSONArray.parseArray(content);
+        } catch (Exception e) {
+            return new JSONArray();
+        }
+    }
+
+}
+