From 2fb72d56082e2ee19aa187707751dd0dacd34f4b Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 16 Sep 2025 11:29:00 +0800
Subject: [PATCH] feat(ai): 增加公司列表接口并优化相关服务
---
src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java | 20 +
src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryAllDto.java | 13 +
src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java | 3
src/main/java/cc/mrbird/febs/ai/controller/company/ApiCompanyController.java | 39 ++++
src/main/java/cc/mrbird/febs/ai/controller/productPoint/ApiProductPointController.java | 14 +
src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleProductService.java | 2
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java | 6
src/main/resources/mapper/modules/AiProductPointMapper.xml | 22 ++
src/main/java/cc/mrbird/febs/ai/service/AiProductPointService.java | 3
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductPointServiceImpl.java | 24 ++
src/main/java/cc/mrbird/febs/ai/res/productPoint/ApiProductPointListVo.java | 46 +++++
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleProductServiceImpl.java | 9 +
src/main/java/cc/mrbird/febs/ai/controller/memberRole/ApiMemberRoleController.java | 11 +
src/main/java/cc/mrbird/febs/ai/res/product/ApiProductVo.java | 6
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java | 1
src/main/java/cc/mrbird/febs/ai/service/AiMemberService.java | 2
src/main/java/cc/mrbird/febs/ai/service/AiProductService.java | 3
src/main/java/cc/mrbird/febs/ai/req/productPoint/ApiProductPointPageDto.java | 27 +++
src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryHotDto.java | 13 +
src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java | 6
src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java | 2
src/main/java/cc/mrbird/febs/ai/req/memberRole/ApiMemberRoleDto.java | 13 +
src/main/java/cc/mrbird/febs/ai/req/product/ApiProductPageDto.java | 3
src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleService.java | 5
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 16 ++
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java | 47 +++++
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java | 41 +++++
src/main/java/cc/mrbird/febs/ai/entity/AiProductPoint.java | 5
src/main/resources/mapper/modules/AiProductMapper.xml | 6
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java | 6
src/main/java/cc/mrbird/febs/ai/mapper/AiProductPointMapper.java | 5
src/main/java/cc/mrbird/febs/ai/res/company/ApiCompanyVo.java | 13 +
32 files changed, 421 insertions(+), 11 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/company/ApiCompanyController.java b/src/main/java/cc/mrbird/febs/ai/controller/company/ApiCompanyController.java
new file mode 100644
index 0000000..d6b1535
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/controller/company/ApiCompanyController.java
@@ -0,0 +1,39 @@
+package cc.mrbird.febs.ai.controller.company;
+
+import cc.mrbird.febs.ai.req.memberRole.ApiMemberRoleDto;
+import cc.mrbird.febs.ai.res.company.ApiCompanyVo;
+import cc.mrbird.febs.ai.res.memberRole.ApiMemberRoleVo;
+import cc.mrbird.febs.ai.service.AiMemberRoleService;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author Administrator
+ */
+@Slf4j
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(value = "/api/ai/company")
+@Api(value = "ApiCompanyController", tags = "AI-公司")
+public class ApiCompanyController {
+
+ private final AiMemberRoleService aiMemberRoleService;
+
+ @ApiOperation(value = "公司列表", notes = "公司列表")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiCompanyVo.class)
+ })
+ @GetMapping(value = "/list")
+ public FebsResponse list() {
+ return aiMemberRoleService.companyList();
+ }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/memberRole/ApiMemberRoleController.java b/src/main/java/cc/mrbird/febs/ai/controller/memberRole/ApiMemberRoleController.java
index 079a0de..44c13da 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/memberRole/ApiMemberRoleController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/memberRole/ApiMemberRoleController.java
@@ -1,5 +1,7 @@
package cc.mrbird.febs.ai.controller.memberRole;
+import cc.mrbird.febs.ai.req.memberRole.ApiMemberRoleDto;
+import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto;
import cc.mrbird.febs.ai.res.memberRole.ApiMemberRoleVo;
import cc.mrbird.febs.ai.service.AiMemberRoleService;
import cc.mrbird.febs.common.entity.FebsResponse;
@@ -33,4 +35,13 @@
public FebsResponse list() {
return aiMemberRoleService.memberRoleList();
}
+
+ @ApiOperation(value = "角色列表(带公司ID)", notes = "角色列表(带公司ID)")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiMemberRoleVo.class)
+ })
+ @PostMapping(value = "/listV1")
+ public FebsResponse listV1(@RequestBody ApiMemberRoleDto dto) {
+ return aiMemberRoleService.memberRoleListV1(dto);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java
index 34a2457..dd25304 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/productCategory/ApiProductCategoryController.java
@@ -1,5 +1,7 @@
package cc.mrbird.febs.ai.controller.productCategory;
+import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryAllDto;
+import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryHotDto;
import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryPageDto;
import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo;
import cc.mrbird.febs.ai.service.AiProductCategoryService;
@@ -35,15 +37,23 @@
return aiProductCategoryService.hot();
}
-
- @ApiOperation(value = "全部父级分类", notes = "全部父级分类")
+ @ApiOperation(value = "首页推荐(带公司ID)", notes = "首页推荐(带公司ID)")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = ApiProductCategoryVo.class)
})
- @GetMapping(value = "/allList")
- public FebsResponse allList() {
+ @PostMapping(value = "/hotV1")
+ public FebsResponse hotV1(@RequestBody ApiProductCategoryHotDto dto) {
+ return aiProductCategoryService.hotV1(dto);
+ }
- return aiProductCategoryService.allList();
+ @ApiOperation(value = "全部父级分类(带公司ID)", notes = "全部父级分类(带公司ID)")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiProductCategoryVo.class)
+ })
+ @PostMapping(value = "/allList")
+ public FebsResponse allList(@RequestBody ApiProductCategoryAllDto dto) {
+
+ return aiProductCategoryService.allList(dto);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productPoint/ApiProductPointController.java b/src/main/java/cc/mrbird/febs/ai/controller/productPoint/ApiProductPointController.java
index 88ab37e..f79657f 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/productPoint/ApiProductPointController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/productPoint/ApiProductPointController.java
@@ -1,9 +1,13 @@
package cc.mrbird.febs.ai.controller.productPoint;
import cc.mrbird.febs.ai.req.product.ApiProductInfoDto;
+import cc.mrbird.febs.ai.req.product.ApiProductPageDto;
import cc.mrbird.febs.ai.req.productPoint.ApiProductPointInfoDto;
+import cc.mrbird.febs.ai.req.productPoint.ApiProductPointPageDto;
import cc.mrbird.febs.ai.res.product.ApiProductInfoVo;
+import cc.mrbird.febs.ai.res.product.ApiProductVo;
import cc.mrbird.febs.ai.res.productPoint.ApiProductPointInfoVo;
+import cc.mrbird.febs.ai.res.productPoint.ApiProductPointListVo;
import cc.mrbird.febs.ai.service.AiProductPointService;
import cc.mrbird.febs.common.entity.FebsResponse;
import io.swagger.annotations.Api;
@@ -31,6 +35,16 @@
private final AiProductPointService aiProductPointService;
+ @ApiOperation(value = "知识点列表", notes = "知识点列表")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "success", response = ApiProductPointListVo.class)
+ })
+ @PostMapping(value = "/list")
+ public FebsResponse list(@RequestBody @Validated ApiProductPointPageDto dto) {
+
+ return aiProductPointService.productPointList(dto);
+ }
+
@ApiOperation(value = "知识点详情", notes = "知识点详情")
@ApiResponses({
@ApiResponse(code = 200, message = "success", response = ApiProductPointInfoVo.class)
diff --git a/src/main/java/cc/mrbird/febs/ai/entity/AiProductPoint.java b/src/main/java/cc/mrbird/febs/ai/entity/AiProductPoint.java
index d094130..6d649ef 100644
--- a/src/main/java/cc/mrbird/febs/ai/entity/AiProductPoint.java
+++ b/src/main/java/cc/mrbird/febs/ai/entity/AiProductPoint.java
@@ -19,6 +19,11 @@
private String companyId;
/**
+ * 类型
+ */
+ private String productCategoryId;
+
+ /**
* 类型1:普通内容 2:视频号内容
*/
private Integer isNormal;
diff --git a/src/main/java/cc/mrbird/febs/ai/mapper/AiProductPointMapper.java b/src/main/java/cc/mrbird/febs/ai/mapper/AiProductPointMapper.java
index 7750703..591ad21 100644
--- a/src/main/java/cc/mrbird/febs/ai/mapper/AiProductPointMapper.java
+++ b/src/main/java/cc/mrbird/febs/ai/mapper/AiProductPointMapper.java
@@ -1,7 +1,11 @@
package cc.mrbird.febs.ai.mapper;
import cc.mrbird.febs.ai.entity.AiProductPoint;
+import cc.mrbird.febs.ai.req.productPoint.ApiProductPointPageDto;
+import cc.mrbird.febs.ai.res.productPoint.ApiProductPointListVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
/**
* AI产品知识点 Mapper接口
@@ -11,4 +15,5 @@
*/
public interface AiProductPointMapper extends BaseMapper<AiProductPoint> {
+ Page<ApiProductPointListVo> selectPageListByQuery(Page<ApiProductPointListVo> page, @Param("record")ApiProductPointPageDto dto);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/req/memberRole/ApiMemberRoleDto.java b/src/main/java/cc/mrbird/febs/ai/req/memberRole/ApiMemberRoleDto.java
new file mode 100644
index 0000000..ea247e8
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/req/memberRole/ApiMemberRoleDto.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.ai.req.memberRole;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiMemberRoleDto", description = "参数")
+public class ApiMemberRoleDto {
+
+ @ApiModelProperty(value = "公司ID", example = "1")
+ private String companyId;
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/req/product/ApiProductPageDto.java b/src/main/java/cc/mrbird/febs/ai/req/product/ApiProductPageDto.java
index ef63b7c..8c1bce6 100644
--- a/src/main/java/cc/mrbird/febs/ai/req/product/ApiProductPageDto.java
+++ b/src/main/java/cc/mrbird/febs/ai/req/product/ApiProductPageDto.java
@@ -24,6 +24,9 @@
@ApiModelProperty(value = "分类ID", example = "123")
private String categoryId;
+ @ApiModelProperty(value = "公司ID", example = "123")
+ private String companyId;
+
@ApiModelProperty(value = "角色ID", example = "123")
private String memberRoleId;
}
diff --git a/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryAllDto.java b/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryAllDto.java
new file mode 100644
index 0000000..ff68738
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryAllDto.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.ai.req.productCategory;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiProductCategoryAllDto", description = "参数")
+public class ApiProductCategoryAllDto {
+
+ @ApiModelProperty(value = "公司ID", example = "1")
+ private String companyId;
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryHotDto.java b/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryHotDto.java
new file mode 100644
index 0000000..281f760
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryHotDto.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.ai.req.productCategory;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiProductCategoryHotDto", description = "参数")
+public class ApiProductCategoryHotDto {
+
+ @ApiModelProperty(value = "公司ID", example = "1")
+ private String companyId;
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/req/productPoint/ApiProductPointPageDto.java b/src/main/java/cc/mrbird/febs/ai/req/productPoint/ApiProductPointPageDto.java
new file mode 100644
index 0000000..955bb4a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/req/productPoint/ApiProductPointPageDto.java
@@ -0,0 +1,27 @@
+package cc.mrbird.febs.ai.req.productPoint;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+@Data
+@ApiModel(value = "ApiProductPointPageDto", description = "参数")
+public class ApiProductPointPageDto {
+
+
+ @NotNull(message = "页码不能为空")
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer pageNow;
+
+ @NotNull(message = "每页数量不能为空")
+ @ApiModelProperty(value = "每页数量", example = "10")
+ private Integer pageSize;
+
+ @ApiModelProperty(value = "分类ID", example = "123")
+ private String categoryId;
+
+ @ApiModelProperty(value = "公司ID", example = "123")
+ private String companyId;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/res/company/ApiCompanyVo.java b/src/main/java/cc/mrbird/febs/ai/res/company/ApiCompanyVo.java
new file mode 100644
index 0000000..7339719
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/res/company/ApiCompanyVo.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.ai.res.company;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiCompanyVo", description = "参数")
+public class ApiCompanyVo {
+
+ private String name;
+
+ private String id;
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/res/product/ApiProductVo.java b/src/main/java/cc/mrbird/febs/ai/res/product/ApiProductVo.java
index bcb8aa1..2ee36d3 100644
--- a/src/main/java/cc/mrbird/febs/ai/res/product/ApiProductVo.java
+++ b/src/main/java/cc/mrbird/febs/ai/res/product/ApiProductVo.java
@@ -25,4 +25,10 @@
@ApiModelProperty(value = "ID")
private String target;
+ /**
+ * 小图标
+ */
+ @ApiModelProperty(value = "图片")
+ private String iconImg;
+
}
diff --git a/src/main/java/cc/mrbird/febs/ai/res/productPoint/ApiProductPointListVo.java b/src/main/java/cc/mrbird/febs/ai/res/productPoint/ApiProductPointListVo.java
new file mode 100644
index 0000000..02008b8
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/res/productPoint/ApiProductPointListVo.java
@@ -0,0 +1,46 @@
+package cc.mrbird.febs.ai.res.productPoint;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "ApiProductPointListVo", description = "参数")
+public class ApiProductPointListVo {
+
+
+
+ @ApiModelProperty(value = "知识点ID")
+ private String id;
+
+ /**
+ * 类型1:普通内容 2:视频号内容
+ */
+ @ApiModelProperty(value = "类型1:普通内容 2:视频号内容")
+ private Integer isNormal;
+
+ /**
+ * 视频号 id,以"sph"开头的id,可在视频号助手获取
+ */
+ @ApiModelProperty(value = "视频号 id")
+ private String finderUserName;
+
+ /**
+ * 视频 feedId
+ */
+ @ApiModelProperty(value = "视频 feedId")
+ private String feedId;
+
+ /**
+ * 视频封面
+ */
+ @ApiModelProperty(value = "视频封面")
+ private String feedImg;
+
+ /**
+ * 标题
+ */
+ @ApiModelProperty(value = "标题")
+ private String title;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleProductService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleProductService.java
index c18cad5..ab96452 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleProductService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleProductService.java
@@ -12,5 +12,7 @@
*/
public interface AiMemberRoleProductService extends IService<AiMemberRoleProduct> {
+ List<AiMemberRoleProduct> getProductListByMemberRoleId(String memberRoleId);
+
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleService.java
index 5ca434d..927cafb 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberRoleService.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.ai.service;
import cc.mrbird.febs.ai.entity.AiMemberRole;
+import cc.mrbird.febs.ai.req.memberRole.ApiMemberRoleDto;
import cc.mrbird.febs.common.entity.FebsResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -19,5 +20,9 @@
FebsResponse memberRoleList();
+ FebsResponse memberRoleListV1(ApiMemberRoleDto dto);
+
String getDefaultMemberRoleId();
+
+ FebsResponse companyList();
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberService.java
index 57c3a1d..5315209 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberService.java
@@ -4,4 +4,6 @@
import com.baomidou.mybatisplus.extension.service.IService;
public interface AiMemberService extends IService<AiMember> {
+
+ AiMember getById(String id);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java
index c5ee767..c29fd8d 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductCategoryService.java
@@ -1,6 +1,8 @@
package cc.mrbird.febs.ai.service;
import cc.mrbird.febs.ai.entity.AiProductCategory;
+import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryAllDto;
+import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryHotDto;
import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryPageDto;
import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo;
import cc.mrbird.febs.common.entity.FebsResponse;
@@ -25,9 +27,11 @@
FebsResponse hot();
+ FebsResponse hotV1(ApiProductCategoryHotDto dto);
+
FebsResponse categoryList(ApiProductCategoryPageDto dto);
String getDefaultProductCategoryId();
- FebsResponse allList();
+ FebsResponse allList(ApiProductCategoryAllDto dto);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductPointService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductPointService.java
index 04eb5e2..774609b 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductPointService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductPointService.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.ai.entity.AiProductPoint;
import cc.mrbird.febs.ai.req.productPoint.ApiProductPointInfoDto;
+import cc.mrbird.febs.ai.req.productPoint.ApiProductPointPageDto;
import cc.mrbird.febs.ai.res.productPoint.ApiProductPointVo;
import cc.mrbird.febs.common.entity.FebsResponse;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -21,5 +22,7 @@
List<ApiProductPointVo> listByProductId(String productId);
+ FebsResponse productPointList(ApiProductPointPageDto dto);
+
FebsResponse productPointInfo(ApiProductPointInfoDto dto);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java
index 70400e2..3801473 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java
@@ -7,6 +7,7 @@
import cc.mrbird.febs.ai.res.product.ApiProductVo;
import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo;
import cc.mrbird.febs.common.entity.FebsResponse;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -28,4 +29,6 @@
FebsResponse productInfo(ApiProductInfoDto dto);
FebsResponse pointInfoList(ApiProductInfoDto dto);
+
+ List<AiProduct> getProductListByQuery(LambdaQueryWrapper<AiProduct> productQuery);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleProductServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleProductServiceImpl.java
index 427dc37..49ebee2 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleProductServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleProductServiceImpl.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.ai.mapper.AiMemberRoleProductMapper;
import cc.mrbird.febs.ai.service.AiMemberRoleProductService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -26,4 +27,12 @@
private final AiMemberRoleProductMapper aiMemberRoleProductMapper;
+ @Override
+ public List<AiMemberRoleProduct> getProductListByMemberRoleId(String memberRoleId) {
+
+ return aiMemberRoleProductMapper.selectList(
+ Wrappers.lambdaQuery(AiMemberRoleProduct.class)
+ .eq(AiMemberRoleProduct::getRoleId, memberRoleId)
+ );
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java
index e4aad6e..f4027f5 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java
@@ -1,11 +1,16 @@
package cc.mrbird.febs.ai.service.impl;
+import cc.mrbird.febs.ai.entity.AiCompany;
import cc.mrbird.febs.ai.entity.AiMemberRole;
+import cc.mrbird.febs.ai.mapper.AiCompanyMapper;
import cc.mrbird.febs.ai.mapper.AiMemberRoleMapper;
+import cc.mrbird.febs.ai.req.memberRole.ApiMemberRoleDto;
+import cc.mrbird.febs.ai.res.company.ApiCompanyVo;
import cc.mrbird.febs.ai.res.memberRole.ApiMemberRoleVo;
import cc.mrbird.febs.ai.service.AiMemberRoleService;
import cc.mrbird.febs.common.entity.FebsResponse;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -29,6 +34,7 @@
public class AiMemberRoleServiceImpl extends ServiceImpl<AiMemberRoleMapper, AiMemberRole> implements AiMemberRoleService {
private final AiMemberRoleMapper aiMemberRoleMapper;
+ private final AiCompanyMapper aiCompanyMapper;
@Override
public List<AiMemberRole> getListByQuery(LambdaQueryWrapper<AiMemberRole> query) {
@@ -57,9 +63,34 @@
}
@Override
+ public FebsResponse memberRoleListV1(ApiMemberRoleDto dto) {
+ List<ApiMemberRoleVo> list = new ArrayList<>();
+
+ LambdaQueryWrapper<AiMemberRole> query = Wrappers.lambdaQuery(AiMemberRole.class);
+ if (StrUtil.isNotEmpty(dto.getCompanyId())){
+ query.eq(AiMemberRole::getCompanyId, dto.getCompanyId());
+ }else{
+ query.isNull(AiMemberRole::getCompanyId);
+ }
+ query.eq(AiMemberRole::getState, 1);
+ List<AiMemberRole> listByQuery = this.getListByQuery(query);
+ if (CollUtil.isNotEmpty(listByQuery)){
+ for (AiMemberRole aiMemberRole : listByQuery){
+ ApiMemberRoleVo apiMemberRoleVo = new ApiMemberRoleVo();
+ apiMemberRoleVo.setId(aiMemberRole.getId());
+ apiMemberRoleVo.setName(aiMemberRole.getName());
+ apiMemberRoleVo.setIconImg(aiMemberRole.getIconImg());
+ list.add(apiMemberRoleVo);
+ }
+ }
+ return new FebsResponse().success().data(list);
+ }
+
+ @Override
public String getDefaultMemberRoleId() {
LambdaQueryWrapper<AiMemberRole> queryWrapper = Wrappers.lambdaQuery(AiMemberRole.class);
queryWrapper.eq(AiMemberRole::getState, 1);
+ queryWrapper.isNull(AiMemberRole::getCompanyId);
queryWrapper.orderByAsc(AiMemberRole::getCreatedTime);
queryWrapper.last("limit 1");
List<AiMemberRole> listByQuery = this.getListByQuery(queryWrapper);
@@ -70,4 +101,20 @@
}
return null;
}
+
+ @Override
+ public FebsResponse companyList() {
+ List<ApiCompanyVo> list = new ArrayList<>();
+
+ List<AiCompany> aiCompanies = aiCompanyMapper.selectList(null);
+ if (CollUtil.isNotEmpty(aiCompanies)){
+ for (AiCompany aiCompany : aiCompanies){
+ ApiCompanyVo apiCompanyVo = new ApiCompanyVo();
+ apiCompanyVo.setId(aiCompany.getId());
+ apiCompanyVo.setName(aiCompany.getName());
+ list.add(apiCompanyVo);
+ }
+ }
+ return new FebsResponse().success().data(list);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
index 37f81eb..4ab010e 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
@@ -15,4 +15,10 @@
@Service
@RequiredArgsConstructor
public class AiMemberServiceImpl extends ServiceImpl<AiMemberMapper, AiMember> implements AiMemberService {
+
+ private final AiMemberMapper aiMemberMapper;
+ @Override
+ public AiMember getById(String id) {
+ return aiMemberMapper.selectById( id);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java
index 2f0697e..771f4ef 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductCategoryServiceImpl.java
@@ -1,14 +1,18 @@
package cc.mrbird.febs.ai.service.impl;
+import cc.mrbird.febs.ai.entity.AiMemberRole;
import cc.mrbird.febs.ai.entity.AiProductCategory;
import cc.mrbird.febs.ai.enumerates.ProductCategoryLevelEnum;
import cc.mrbird.febs.ai.mapper.AiProductCategoryMapper;
+import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryAllDto;
+import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryHotDto;
import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryPageDto;
import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo;
import cc.mrbird.febs.ai.service.AiProductCategoryService;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.vo.ApiActivityInfoVo;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -70,6 +74,35 @@
}
@Override
+ public FebsResponse hotV1(ApiProductCategoryHotDto dto) {
+
+ List<ApiProductCategoryVo> list = new ArrayList<>();
+
+ LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class);
+ if (StrUtil.isNotEmpty(dto.getCompanyId())){
+ query.eq(AiProductCategory::getCompanyId, dto.getCompanyId());
+ }else{
+ query.isNull(AiProductCategory::getCompanyId);
+ }
+ query.eq(AiProductCategory::getLevel, ProductCategoryLevelEnum.LEVEL_TWO.getLevel());
+ query.eq(AiProductCategory::getState, 1);
+ query.eq(AiProductCategory::getHotState, 1);
+ query.orderByAsc(AiProductCategory::getSort);
+ List<AiProductCategory> listByQuery = this.getListByQuery(query);
+ if (CollUtil.isNotEmpty(listByQuery)){
+ for (AiProductCategory aiProductCategory : listByQuery){
+ ApiProductCategoryVo apiProductCategoryVo = new ApiProductCategoryVo();
+ apiProductCategoryVo.setId(aiProductCategory.getId());
+ apiProductCategoryVo.setName(aiProductCategory.getName());
+ apiProductCategoryVo.setBackImg(aiProductCategory.getBackImg());
+ apiProductCategoryVo.setIconImg(aiProductCategory.getIconImg());
+ list.add(apiProductCategoryVo);
+ }
+ }
+ return new FebsResponse().success().data(list);
+ }
+
+ @Override
public FebsResponse categoryList(ApiProductCategoryPageDto dto) {
// 创建分页对象,传入当前页和每页大小
Page<ApiProductCategoryVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
@@ -81,6 +114,7 @@
public String getDefaultProductCategoryId() {
LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class);
query.eq(AiProductCategory::getState, 1);
+ query.isNull(AiProductCategory::getCompanyId);
query.eq(AiProductCategory::getHotState, 1);
query.orderByAsc(AiProductCategory::getSort);
query.last("limit 1");
@@ -92,9 +126,14 @@
}
@Override
- public FebsResponse allList() {
+ public FebsResponse allList(ApiProductCategoryAllDto dto) {
List<ApiProductCategoryVo> list = new ArrayList<>();
LambdaQueryWrapper<AiProductCategory> query = Wrappers.lambdaQuery(AiProductCategory.class);
+ if (StrUtil.isNotEmpty(dto.getCompanyId())){
+ query.eq(AiProductCategory::getCompanyId, dto.getCompanyId());
+ }else{
+ query.isNull(AiProductCategory::getCompanyId);
+ }
query.eq(AiProductCategory::getState, 1);
query.eq(AiProductCategory::getLevel, ProductCategoryLevelEnum.LEVEL_ONE.getLevel());
query.orderByAsc(AiProductCategory::getSort);
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductPointServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductPointServiceImpl.java
index 3800bfd..26895c7 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductPointServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductPointServiceImpl.java
@@ -1,23 +1,27 @@
package cc.mrbird.febs.ai.service.impl;
+import cc.mrbird.febs.ai.entity.AiMemberRoleProduct;
+import cc.mrbird.febs.ai.entity.AiProduct;
import cc.mrbird.febs.ai.entity.AiProductPoint;
import cc.mrbird.febs.ai.entity.AiProductPointLink;
import cc.mrbird.febs.ai.mapper.AiProductPointMapper;
import cc.mrbird.febs.ai.req.productPoint.ApiProductPointInfoDto;
+import cc.mrbird.febs.ai.req.productPoint.ApiProductPointPageDto;
import cc.mrbird.febs.ai.res.productPoint.ApiProductPointInfoVo;
+import cc.mrbird.febs.ai.res.productPoint.ApiProductPointListVo;
import cc.mrbird.febs.ai.res.productPoint.ApiProductPointVo;
-import cc.mrbird.febs.ai.service.AiProductPointLinkService;
-import cc.mrbird.febs.ai.service.AiProductPointService;
+import cc.mrbird.febs.ai.service.*;
import cc.mrbird.febs.common.entity.FebsResponse;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@@ -37,6 +41,7 @@
private final AiProductPointMapper aiProductPointMapper;
private final AiProductPointLinkService aiProductPointLinkService;
+ private final AiProductCategoryService aiProductCategoryService;
@Override
public AiProductPoint getById(String id) {
@@ -74,6 +79,19 @@
}
@Override
+ public FebsResponse productPointList(ApiProductPointPageDto dto) {
+
+ if(StrUtil.isEmpty(dto.getCategoryId())){
+ String categoryId = aiProductCategoryService.getDefaultProductCategoryId();
+ dto.setCategoryId(categoryId);
+ }
+ // 创建分页对象,传入当前页和每页大小
+ Page<ApiProductPointListVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
+ Page<ApiProductPointListVo> pageListByQuery = aiProductPointMapper.selectPageListByQuery(page, dto);
+ return new FebsResponse().success().data(pageListByQuery);
+ }
+
+ @Override
public FebsResponse productPointInfo(ApiProductPointInfoDto dto) {
ApiProductPointInfoVo apiProductPointInfoVo = new ApiProductPointInfoVo();
String id = dto.getId();
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
index 774df76..f0f78df 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
@@ -11,6 +11,7 @@
import cc.mrbird.febs.ai.service.*;
import cc.mrbird.febs.common.entity.FebsResponse;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
@@ -91,4 +92,9 @@
List<ApiProductPointVo> apiProductPointVos = aiProductPointService.listByProductId(id);
return new FebsResponse().success().data(apiProductPointVos);
}
+
+ @Override
+ public List<AiProduct> getProductListByQuery(LambdaQueryWrapper<AiProduct> productQuery) {
+ return aiProductMapper.selectList(productQuery);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
index 85c1728..748623e 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -64,5 +64,6 @@
registration.excludePathPatterns("/api/ai/test/**");
registration.excludePathPatterns("/api/ai/memberTalk/answer-stream");
registration.excludePathPatterns("/api/ai/talk/questionList");
+ registration.excludePathPatterns("/api/ai/company/list");
}
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java
index e6e26cc..6239bf1 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java
@@ -11,4 +11,6 @@
private String inviteId;
+ private String companyId;
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java
index 5f1dc66..6ba0044 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiXcxSaveInfoDto.java
@@ -27,6 +27,9 @@
@ApiModelProperty(value = "邀请码")
private String inviteId;
+ @ApiModelProperty(value = "公司ID")
+ private String companyId;
+
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty(value = "生日")
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index d5bfefa..e67b607 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.ai.entity.AiMember;
import cc.mrbird.febs.ai.mapper.AiMemberMapper;
+import cc.mrbird.febs.ai.service.AiMemberService;
import cc.mrbird.febs.ai.utils.UUID;
import cc.mrbird.febs.common.configure.FebsConfigure;
import cc.mrbird.febs.common.entity.FebsResponse;
@@ -104,6 +105,7 @@
private final HappyMemberLabelRecordMapper happyMemberLabelRecordMapper;
private final HappyMemberLabelMapper happyMemberLabelMapper;
private final FebsConfigure febsConfigure;
+ private final AiMemberService aiMemberService;
@Value("${spring.profiles.active}")
@@ -734,6 +736,9 @@
AiMember aiMember = new AiMember();
aiMember.setId(UUID.getSimpleUUIDString());
+ if (StrUtil.isNotEmpty(apiXcxLoginDto.getCompanyId())){
+ aiMember.setCompanyId(apiXcxLoginDto.getCompanyId());
+ }
aiMember.setCreatedTime(new Date());
aiMemberMapper.insert(aiMember);
@@ -843,6 +848,17 @@
}
this.baseMapper.updateById(mallMember);
+ String memberUuid = mallMember.getMemberUuid();
+ AiMember aiMember = aiMemberService.getById(memberUuid);
+ if (ObjectUtil.isNotEmpty(aiMember) && StrUtil.isNotEmpty(apiXcxSaveInfoDto.getCompanyId())){
+ aiMemberService.update(null,
+ Wrappers.lambdaUpdate(AiMember.class)
+ .set(AiMember::getCompanyId, aiMember.getCompanyId())
+ .eq(AiMember::getId, aiMember.getId())
+ );
+ }
+
+
// //完善信息赠送新人礼
// if (StrUtil.isNotBlank(mallMember.getPhone()) && mallMember.getNewGift() == 0) {
// DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
diff --git a/src/main/resources/mapper/modules/AiProductMapper.xml b/src/main/resources/mapper/modules/AiProductMapper.xml
index a5a099c..fc3b8eb 100644
--- a/src/main/resources/mapper/modules/AiProductMapper.xml
+++ b/src/main/resources/mapper/modules/AiProductMapper.xml
@@ -6,13 +6,17 @@
select
a.id as id,
a.name as name,
+ a.icon_img as iconImg,
a.target as target
from ai_product a
<where>
a.state = 1
<if test="record != null">
<if test="record.categoryId != null and record.categoryId != ''">
- and a.product_category_id=#{record.categoryId}
+ and a.product_category_id = #{record.categoryId}
+ </if>
+ <if test="record.companyId != null and record.companyId != ''">
+ and a.company_id = #{record.companyId}
</if>
<if test="record.memberRoleId != null and record.memberRoleId != ''">
and a.id in (
diff --git a/src/main/resources/mapper/modules/AiProductPointMapper.xml b/src/main/resources/mapper/modules/AiProductPointMapper.xml
index 6537d9a..48bd2cd 100644
--- a/src/main/resources/mapper/modules/AiProductPointMapper.xml
+++ b/src/main/resources/mapper/modules/AiProductPointMapper.xml
@@ -1,4 +1,26 @@
<?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.AiProductPointMapper">
+
+ <select id="selectPageListByQuery" resultType="cc.mrbird.febs.ai.res.productPoint.ApiProductPointListVo">
+ select
+ a.id as id,
+ a.is_normal as isNormal,
+ a.finder_user_name as finderUserName,
+ a.feed_img as feedImg,
+ a.title as title,
+ a.feed_id as feedId
+ from ai_product_point a
+ <where>
+ <if test="record != null">
+ <if test="record.categoryId != null and record.categoryId != ''">
+ and a.product_category_id = #{record.categoryId}
+ </if>
+ <if test="record.companyId != null and record.companyId != ''">
+ and a.company_id = #{record.companyId}
+ </if>
+ </if>
+ </where>
+ order by a.CREATED_TIME asc
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1