Ver Fonte

feat(pearl): ConnectionType 枚举与互动/提醒实体 Mapper

Sisyphus Agent há 1 semana atrás
pai
commit
b3c608f817

+ 30 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/PearlInteractionLog.java

@@ -0,0 +1,30 @@
+package com.etotem.cfc.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("pearl_interaction_log")
+public class PearlInteractionLog implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Long userId;
+
+    private Long resourceItemId;
+
+    /** PHONE/WECHAT/MEETING/OTHER */
+    private String interactionType;
+
+    private String content;
+
+    private Date happenedAt;
+
+    private Date createdAt;
+}

+ 36 - 0
cfc-backend/src/main/java/com/etotem/cfc/entity/PearlInteractionReminder.java

@@ -0,0 +1,36 @@
+package com.etotem.cfc.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("pearl_interaction_reminder")
+public class PearlInteractionReminder implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private Long userId;
+
+    private Long resourceItemId;
+
+    private String connectionType;
+
+    private Integer suggestIntervalMonth;
+
+    private Date lastInteractionAt;
+
+    private Integer daysSinceLast;
+
+    /** PENDING/DONE/DISMISSED */
+    private String status;
+
+    private Date createdAt;
+
+    private Date updatedAt;
+}

+ 60 - 0
cfc-backend/src/main/java/com/etotem/cfc/enums/ConnectionType.java

@@ -0,0 +1,60 @@
+package com.etotem.cfc.enums;
+
+/**
+ * 珍珠图社会连接类型枚举
+ * category: ESSENTIAL(必备,内圈) / IDEAL(理想扩展,外圈)
+ */
+public enum ConnectionType {
+
+    // 必备社会连接(ESSENTIAL)— 内圈,12 类
+    MEDICAL("医疗", "ESSENTIAL", 3),
+    EDUCATION("教育", "ESSENTIAL", 6),
+    PUBLIC_SECURITY("公安", "ESSENTIAL", 12),
+    AUTO("汽车相关", "ESSENTIAL", 6),
+    REAL_ESTATE("房产服务", "ESSENTIAL", 12),
+    TICKETING("票务", "ESSENTIAL", 12),
+    HANDYMAN("多能工人", "ESSENTIAL", 6),
+    APPLIANCE("家电", "ESSENTIAL", 12),
+    CATERING("餐饮", "ESSENTIAL", 3),
+    FOOD("食品", "ESSENTIAL", 3),
+    LEGAL("法律", "ESSENTIAL", 12),
+    WEEKEND_EXPERT("周末达人", "ESSENTIAL", 1),
+
+    // 理想社会连接扩展(IDEAL)— 外圈,13 类
+    GOVERNMENT("政府综合", "IDEAL", 12),
+    TAX("税务", "IDEAL", 12),
+    BUSINESS_ADMIN("工商", "IDEAL", 12),
+    BANK("银行", "IDEAL", 6),
+    MEDIA("媒体", "IDEAL", 12),
+    TRAVEL("旅游", "IDEAL", 12),
+    LEADING_ENTERPRISE("领军企业", "IDEAL", 12),
+    INDUSTRY_BENCHMARK("行业标杆", "IDEAL", 12),
+    OVERSEAS("国外", "IDEAL", 12),
+    UNIVERSITY("高校", "IDEAL", 12),
+    FINANCE("金融", "IDEAL", 12),
+    SENIOR_LOCAL("资深土著", "IDEAL", 6),
+    KEY_CITY("北上广等关键城市", "IDEAL", 12);
+
+    private final String label;
+    private final String category;
+    private final int suggestIntervalMonth;
+
+    ConnectionType(String label, String category, int suggestIntervalMonth) {
+        this.label = label;
+        this.category = category;
+        this.suggestIntervalMonth = suggestIntervalMonth;
+    }
+
+    public String getLabel() { return label; }
+    public String getCategory() { return category; }
+    public int getSuggestIntervalMonth() { return suggestIntervalMonth; }
+
+    /** 是否为有效枚举名(addResourceItem 校验用) */
+    public static boolean isValid(String name) {
+        if (name == null || name.isEmpty()) return false;
+        for (ConnectionType t : values()) {
+            if (t.name().equals(name)) return true;
+        }
+        return false;
+    }
+}

+ 9 - 0
cfc-backend/src/main/java/com/etotem/cfc/mapper/PearlInteractionLogMapper.java

@@ -0,0 +1,9 @@
+package com.etotem.cfc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.etotem.cfc.entity.PearlInteractionLog;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface PearlInteractionLogMapper extends BaseMapper<PearlInteractionLog> {
+}

+ 9 - 0
cfc-backend/src/main/java/com/etotem/cfc/mapper/PearlInteractionReminderMapper.java

@@ -0,0 +1,9 @@
+package com.etotem.cfc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.etotem.cfc.entity.PearlInteractionReminder;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface PearlInteractionReminderMapper extends BaseMapper<PearlInteractionReminder> {
+}