Administrator
2025-10-23 ac4d9f32276cebd60050afd3ca96ad7417bc5861
feat(ai): 新增产品解锁和依赖关系功能模块

- 添加 AiMemberProductUnlock 实体类及对应 Mapper、Service 层实现
- 添加 AiProductDependency 实体类及对应 Mapper、Service 层实现
- 配置 MyBatis XML 映射文件支持新增的两个实体
- 实现基础的 CRUD 操作接口和服务实现
- 支持用户产品解锁分数管理和产品依赖关系管理
10 files added
96 ■■■■■ changed files
src/main/java/cc/mrbird/febs/ai/entity/AiMemberProductUnlock.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/entity/AiProductDependency.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/mapper/AiMemberProductUnlockMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/mapper/AiProductDependencyMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/AiMemberProductUnlockService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/AiProductDependencyService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberProductUnlockServiceImpl.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductDependencyServiceImpl.java 15 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/AiMemberProductUnlockMapper.xml 4 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/AiProductDependencyMapper.xml 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/entity/AiMemberProductUnlock.java
New file
@@ -0,0 +1,15 @@
package cc.mrbird.febs.ai.entity;
import cc.mrbird.febs.common.entity.AiBaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("ai_member_product_unlock")
public class AiMemberProductUnlock extends AiBaseEntity {
    private String memberId;           // 用户ID
    private String companyId;           // 公司ID
    private String productId;        // 产品ID
    private Integer unlockScore;   // 解锁分数
}
src/main/java/cc/mrbird/febs/ai/entity/AiProductDependency.java
New file
@@ -0,0 +1,15 @@
package cc.mrbird.febs.ai.entity;
import cc.mrbird.febs.common.entity.AiBaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("ai_product_dependency")
public class AiProductDependency  extends AiBaseEntity {
    private String companyId;           // 公司ID
    private String prerequisiteProductId;  // 前置产品ID
    private String targetProductId;        // 目标产品ID
    private Integer requiredScore;          //解锁分数
}
src/main/java/cc/mrbird/febs/ai/mapper/AiMemberProductUnlockMapper.java
New file
@@ -0,0 +1,7 @@
package cc.mrbird.febs.ai.mapper;
import cc.mrbird.febs.ai.entity.AiMemberProductUnlock;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface AiMemberProductUnlockMapper extends BaseMapper<AiMemberProductUnlock> {
}
src/main/java/cc/mrbird/febs/ai/mapper/AiProductDependencyMapper.java
New file
@@ -0,0 +1,7 @@
package cc.mrbird.febs.ai.mapper;
import cc.mrbird.febs.ai.entity.AiProductDependency;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface AiProductDependencyMapper extends BaseMapper<AiProductDependency> {
}
src/main/java/cc/mrbird/febs/ai/service/AiMemberProductUnlockService.java
New file
@@ -0,0 +1,7 @@
package cc.mrbird.febs.ai.service;
import cc.mrbird.febs.ai.entity.AiMemberProductUnlock;
import com.baomidou.mybatisplus.extension.service.IService;
public interface AiMemberProductUnlockService extends IService<AiMemberProductUnlock> {
}
src/main/java/cc/mrbird/febs/ai/service/AiProductDependencyService.java
New file
@@ -0,0 +1,7 @@
package cc.mrbird.febs.ai.service;
import cc.mrbird.febs.ai.entity.AiProductDependency;
import com.baomidou.mybatisplus.extension.service.IService;
public interface AiProductDependencyService extends IService<AiProductDependency> {
}
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberProductUnlockServiceImpl.java
New file
@@ -0,0 +1,15 @@
package cc.mrbird.febs.ai.service.impl;
import cc.mrbird.febs.ai.entity.AiMemberProductUnlock;
import cc.mrbird.febs.ai.mapper.AiMemberProductUnlockMapper;
import cc.mrbird.febs.ai.service.AiMemberProductUnlockService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RequiredArgsConstructor
public class AiMemberProductUnlockServiceImpl extends ServiceImpl<AiMemberProductUnlockMapper, AiMemberProductUnlock> implements AiMemberProductUnlockService {
}
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductDependencyServiceImpl.java
New file
@@ -0,0 +1,15 @@
package cc.mrbird.febs.ai.service.impl;
import cc.mrbird.febs.ai.entity.AiProductDependency;
import cc.mrbird.febs.ai.mapper.AiProductDependencyMapper;
import cc.mrbird.febs.ai.service.AiProductDependencyService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RequiredArgsConstructor
public class AiProductDependencyServiceImpl extends ServiceImpl<AiProductDependencyMapper, AiProductDependency> implements AiProductDependencyService {
}
src/main/resources/mapper/modules/AiMemberProductUnlockMapper.xml
New file
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cc.mrbird.febs.ai.mapper.AiMemberProductUnlockMapper">
</mapper>
src/main/resources/mapper/modules/AiProductDependencyMapper.xml
New file
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cc.mrbird.febs.ai.mapper.AiProductDependencyMapper">
</mapper>