src/main/java/cc/mrbird/febs/ai/controller/company/ApiCompanyController.java
New file @@ -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(); } } 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); } } 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); } 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) 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; 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); } src/main/java/cc/mrbird/febs/ai/req/memberRole/ApiMemberRoleDto.java
New file @@ -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; } 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; } src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryAllDto.java
New file @@ -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; } src/main/java/cc/mrbird/febs/ai/req/productCategory/ApiProductCategoryHotDto.java
New file @@ -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; } src/main/java/cc/mrbird/febs/ai/req/productPoint/ApiProductPointPageDto.java
New file @@ -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; } src/main/java/cc/mrbird/febs/ai/res/company/ApiCompanyVo.java
New file @@ -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; } 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; } src/main/java/cc/mrbird/febs/ai/res/productPoint/ApiProductPointListVo.java
New file @@ -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; } 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); } 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(); } 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); } 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); } 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); } 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); } 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) ); } } 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); } } 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); } } 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); 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(); 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); } } 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"); } } src/main/java/cc/mrbird/febs/mall/dto/ApiXcxLoginDto.java
@@ -11,4 +11,6 @@ private String inviteId; private String companyId; } 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 = "生日") 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( 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 ( 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>