From fe70ca5db711b458714bfbe4a6eda6cf7d8a0421 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 16 Sep 2025 13:58:46 +0800 Subject: [PATCH] feat(member): 添加会员公司ID并更新相关服务 --- src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkItemService.java | 2 src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java | 2 src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkItemServiceImpl.java | 3 + src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java | 19 ++++++--- src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java | 12 ++++-- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 7 +++ src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java | 3 + src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java | 6 +++ src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java | 3 + src/main/java/cc/mrbird/febs/mall/entity/MallMember.java | 2 + src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java | 8 ++- src/main/java/cc/mrbird/febs/ai/service/AiTalkItemService.java | 2 src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java | 2 13 files changed, 51 insertions(+), 20 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkItemService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkItemService.java index 21dea9b..fe3dce3 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkItemService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkItemService.java @@ -22,7 +22,7 @@ public interface AiMemberTalkItemService extends IService<AiMemberTalkItem> { - AiMemberTalkItem add(String memberUuid, String id, int type, String resContext, Date createdTime); + AiMemberTalkItem add(String memberUuid, String id, String companyId, int type, String resContext, Date createdTime); AiMemberTalkItem getByQuery(LambdaQueryWrapper<AiMemberTalkItem> memberTalkItemQuery); diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java index 4b51641..e1ae7d0 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java @@ -34,7 +34,7 @@ FebsResponse answer(ApiMemberTalkAnswerDto dto); - AiMemberTalk add(String memberUuid, String productId, Date nowTime); + AiMemberTalk add(String memberUuid,String companyId, String productId, Date nowTime); FebsResponse historyPage(ApiMemberTalkItemPageDto dto); diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiTalkItemService.java b/src/main/java/cc/mrbird/febs/ai/service/AiTalkItemService.java index d62b11b..e3f81c7 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiTalkItemService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiTalkItemService.java @@ -10,7 +10,7 @@ public interface AiTalkItemService extends IService<AiTalkItem> { - void add(String id, int code, String context, String memberUuid, DateTime date); + void add(String id,String companyId, int code, String context, String memberUuid, DateTime date); FebsResponse historyPage(ApiTalkItemPageDto dto); diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java b/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java index 7f45d29..f8fb02b 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java +++ b/src/main/java/cc/mrbird/febs/ai/service/AiTalkService.java @@ -17,7 +17,7 @@ FebsResponse talkOpen(ApiTalkDto dto); - AiTalk add(String memberUuid, String question, Date date); + AiTalk add(String memberUuid,String companyId, String question, Date date); Flux<FebsResponse> answerStream(String question); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java index 5ba0dd9..56576c6 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java @@ -64,6 +64,7 @@ if(ObjectUtil.isNull(aiProduct)){ throw new FebsException("产品不存在"); } + String companyId = aiProduct.getCompanyId(); //验证产品分类下是否有题目 String productCategoryId = aiProduct.getProductCategoryId(); LambdaQueryWrapper<AiProductQuestion> questionLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestion.class); @@ -86,6 +87,7 @@ Integer questionCount = aiProduct.getQuestionCount(); aiMemberAnswer = new AiMemberAnswer(); aiMemberAnswer.setId(UUID.getSimpleUUIDString()); + aiMemberAnswer.setCompanyId(companyId); aiMemberAnswer.setCreatedTime(createdTime); aiMemberAnswer.setUpdatedTime(createdTime); aiMemberAnswer.setProductId(aiProduct.getId()); @@ -102,6 +104,7 @@ AiProductQuestion aiProductQuestion = aiProductQuestionService.createQuestion(aiProduct.getId()); AiMemberAnswerItem aiMemberAnswerItem = new AiMemberAnswerItem(); aiMemberAnswerItem.setId(UUID.getSimpleUUIDString()); + aiMemberAnswerItem.setCompanyId(companyId); aiMemberAnswerItem.setCreatedTime(createdTime); aiMemberAnswerItem.setAnswerId(aiMemberAnswer.getId()); aiMemberAnswerItem.setProductId(aiMemberAnswer.getProductId()); @@ -250,6 +253,8 @@ throw new FebsException("答题记录不存在"); } + String companyId = aiMemberAnswer.getCompanyId(); + Date createdTime = new Date(); AiMemberAnswerItem aiMemberAnswerItem = aiMemberAnswerItemService.getById(memberAnswerItemId); aiMemberAnswerItem.setUpdatedTime(createdTime); @@ -283,6 +288,7 @@ if (aiMemberAnswerItem.getMemberAnswerState() == 1){ aiMemberAnswer.setCorrectCnt(aiMemberAnswer.getCorrectCnt() + 1); } + aiMemberAnswerItem.setCompanyId(companyId); aiMemberAnswer.setUpdatedTime(createdTime); aiMemberAnswerMapper.updateById(aiMemberAnswer); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java index 2b93ccc..552f8ef 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java @@ -38,9 +38,10 @@ private final AiMemberTalkItemMapper aiMemberTalkItemMapper; @Override - public AiMemberTalkItem add(String memberUuid, String id, int type, String resContext,Date createdTime) { + public AiMemberTalkItem add(String memberUuid, String id, String companyId, int type, String resContext,Date createdTime) { AiMemberTalkItem aiMemberTalkItem = new AiMemberTalkItem(); aiMemberTalkItem.setId(UUID.getSimpleUUIDString()); + aiMemberTalkItem.setCompanyId(companyId); aiMemberTalkItem.setCreatedTime(createdTime); aiMemberTalkItem.setMemberId(memberUuid); aiMemberTalkItem.setMemberTalkId(id); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java index 4885a94..61c9102 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java @@ -71,6 +71,7 @@ if(ObjectUtil.isNull(aiProductRoleLink)){ throw new FebsException("产品AI陪练不存在"); } + String companyId = aiProductRoleLink.getCompanyId(); Date nowTime = new Date(); LambdaQueryWrapper<AiMemberTalk> query = Wrappers.lambdaQuery(AiMemberTalk.class); @@ -79,7 +80,7 @@ query.last("limit 1"); AiMemberTalk aiMemberTalk = this.getByQuery(query); if (ObjectUtil.isNull(aiMemberTalk)){ - aiMemberTalk = this.add(memberUuid,productId,nowTime); + aiMemberTalk = this.add(memberUuid,companyId,productId,nowTime); } List<AiMessage> aiMessageDtoList = aiMemberTalkItemService.getQuestionUpDownContext(aiMemberTalk.getId(),AiTypeEnum.QUESTION.getCode()); @@ -91,7 +92,7 @@ apiMemberTalkVo.setType(1); apiMemberTalkVo.setContext(aiResponse.getResContext()); if(aiResponse.getCode().equals("200")){ - AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(), 1, aiResponse.getResContext(), nowTime); + AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(),companyId, 1, aiResponse.getResContext(), nowTime); apiMemberTalkVo.setMemberTalkItemId(aiMemberTalkItem.getId()); this.updateTimeUpdate(nowTime,aiMemberTalk.getId()); }else{ @@ -137,6 +138,7 @@ callback.accept(aiResponse); return; } + String companyId = aiProductRoleLink.getCompanyId(); // 构造AI请求 AiRequest aiRequest = new AiRequest(); @@ -153,14 +155,14 @@ query.last("limit 1"); AiMemberTalk aiMemberTalk = this.getByQuery(query); if (ObjectUtil.isNull(aiMemberTalk)) { - aiMemberTalk = this.add(memberUuid, productId, nowTime); + aiMemberTalk = this.add(memberUuid,companyId, productId, nowTime); } try { if (aiResponse.getCode().equals("200")) { // 如果是最终结果(包含报告) if (aiResponse.getReport() != null) { // 保存完整响应到数据库 - aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(), 1, aiResponse.getResContext(), nowTime); + aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(),companyId, 1, aiResponse.getResContext(), nowTime); this.updateTimeUpdate(nowTime, aiMemberTalk.getId()); callback.accept(aiResponse); @@ -216,6 +218,8 @@ throw new FebsException("产品AI陪练对话不存在"); } + String companyId = aiMemberTalk.getCompanyId(); + LambdaQueryWrapper<AiProductRoleLink> productLinkQuery = Wrappers.lambdaQuery(AiProductRoleLink.class); productLinkQuery.eq(AiProductRoleLink::getProductId,aiMemberTalk.getProductId()); productLinkQuery.last("limit 1"); @@ -233,7 +237,7 @@ memberTalkItemQuery.orderByDesc(AiMemberTalkItem::getCreatedTime); memberTalkItemQuery.last("limit 1"); AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.getByQuery(memberTalkItemQuery); - aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),2,reqContext,new Date()); + aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),companyId,2,reqContext,new Date()); String format = StrUtil.format(ANSWER_FORMAT, aiMemberTalkItem.getContext(), reqContext); log.info("format:{}",format); @@ -252,7 +256,7 @@ if ("null".equals( context)){ context = aiResponse.getResContext(); } - AiMemberTalkItem talkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(), 3, context, nowTime); + AiMemberTalkItem talkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(),companyId, 3, context, nowTime); this.updateTimeUpdate(nowTime,aiMemberTalk.getId()); @@ -264,9 +268,10 @@ return new FebsResponse().success().data(apiMemberTalkVo); } @Override - public AiMemberTalk add(String memberUuid, String productId, Date nowTime) { + public AiMemberTalk add(String memberUuid,String companyId, String productId, Date nowTime) { AiMemberTalk aiMemberTalk = new AiMemberTalk(); aiMemberTalk.setId(UUID.getSimpleUUIDString()); + aiMemberTalk.setCompanyId(companyId); aiMemberTalk.setCreatedTime(nowTime); aiMemberTalk.setMemberId(memberUuid); aiMemberTalk.setProductId(productId); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkItemServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkItemServiceImpl.java index e4a6b73..a7c7531 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkItemServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkItemServiceImpl.java @@ -26,9 +26,10 @@ private final AiTalkItemMapper aiTalkItemMapper; @Override - public void add(String id, int code, String context, String memberUuid, DateTime date) { + public void add(String id,String companyId, int code, String context, String memberUuid, DateTime date) { AiTalkItem aiTalkItem = new AiTalkItem(); aiTalkItem.setId(UUID.getSimpleUUIDString()); + aiTalkItem.setCompanyId(companyId); aiTalkItem.setMemberId(memberUuid); aiTalkItem.setType(code); aiTalkItem.setTalkId(id); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java index cef8503..299d64c 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiTalkServiceImpl.java @@ -76,16 +76,17 @@ Integer type = dto.getType(); String reasoningContent = dto.getReasoningContent(); String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); + String companyId = LoginUserUtil.getLoginUser().getCompanyId(); AiTalk aiTalk = this.getById(talkId); DateTime date = DateUtil.date(); if (StrUtil.isEmpty(talkId)){ - aiTalk = this.add(memberUuid,context, date); + aiTalk = this.add(memberUuid,companyId,context, date); } HashMap<String, String> stringStringHashMap = new HashMap<>(); stringStringHashMap.put(LlmStrategyContextEnum.THINK.getName(),reasoningContent); stringStringHashMap.put(LlmStrategyContextEnum.CONTENT.getName(),context); - aiTalkItemService.add(aiTalk.getId(), type, JSONUtil.toJsonStr(stringStringHashMap), memberUuid, date); + aiTalkItemService.add(aiTalk.getId(), companyId,type, JSONUtil.toJsonStr(stringStringHashMap), memberUuid, date); ApiTalkVo apiTalkVo = new ApiTalkVo(); apiTalkVo.setTalkId(aiTalk.getId()); @@ -93,9 +94,10 @@ } @Override - public AiTalk add(String memberUuid, String question, Date date) { + public AiTalk add(String memberUuid,String companyId, String question, Date date) { AiTalk aiTalk = new AiTalk(); aiTalk.setId(UUID.getSimpleUUIDString()); + aiTalk.setCompanyId(companyId); aiTalk.setQuestion(question); aiTalk.setCreatedTime(date); aiTalk.setMemberId(memberUuid); diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java index ff0df55..3c1e6f8 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java @@ -66,6 +66,8 @@ throw new FebsException("产品AI陪练不存在"); } + String companyId = aiProductRoleLink.getCompanyId(); + Date nowTime = new Date(); LambdaQueryWrapper<AiMemberTalk> query = Wrappers.lambdaQuery(AiMemberTalk.class); query.eq(AiMemberTalk::getMemberId,memberUuid); @@ -73,7 +75,7 @@ query.last("limit 1"); AiMemberTalk aiMemberTalk = aiMemberTalkService.getByQuery(query); if (ObjectUtil.isNull(aiMemberTalk)){ - aiMemberTalk = aiMemberTalkService.add(memberUuid,productId,nowTime); + aiMemberTalk = aiMemberTalkService.add(memberUuid,companyId,productId,nowTime); } ApiMemberTalkStreamVo apiMemberTalkVo = new ApiMemberTalkStreamVo(); @@ -81,7 +83,7 @@ AiProductQuestion question = aiProductQuestionService.createQuestion(productId); if (ObjectUtil.isNotNull(question)){ title = question.getTitle(); - AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(), 1, title, nowTime); + AiMemberTalkItem aiMemberTalkItem = aiMemberTalkItemService.add(memberUuid, aiMemberTalk.getId(),companyId, 1, title, nowTime); apiMemberTalkVo.setMemberTalkItemId(aiMemberTalkItem.getId()); aiMemberTalkService.updateTimeUpdate(nowTime,aiMemberTalk.getId()); } @@ -128,7 +130,8 @@ if (ObjectUtil.isNull(aiMemberTalk)){ throw new FebsException("对话不存在"); } - aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),2,content,new Date()); + String companyId = aiMemberTalk.getCompanyId(); + aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),companyId,2,content,new Date()); return new FebsResponse().success(); } @@ -274,13 +277,14 @@ if (ObjectUtil.isNull(aiMemberTalk)){ throw new FebsException("对话不存在"); } + String companyId = aiMemberTalk.getCompanyId(); Integer type = dto.getType(); String memberTalkItemId; String contentByCode = AiTalkOutputEnum.HIGH_LIGHT.getCodeByType(type); if(StrUtil.isEmpty(dto.getMemberTalkItemId())){ HashMap<String, String> stringStringHashMap = new HashMap<>(); stringStringHashMap.put(contentByCode,content); - AiMemberTalkItem add = aiMemberTalkItemService.add(memberUuid, memberTalkId, 3, JSONUtil.toJsonStr(stringStringHashMap), new Date()); + AiMemberTalkItem add = aiMemberTalkItemService.add(memberUuid, memberTalkId,companyId, 3, JSONUtil.toJsonStr(stringStringHashMap), new Date()); memberTalkItemId = add.getId(); }else{ memberTalkItemId = dto.getMemberTalkItemId(); diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java index 5ece26c..44bb0a7 100644 --- a/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java +++ b/src/main/java/cc/mrbird/febs/mall/entity/MallMember.java @@ -24,6 +24,8 @@ */ private String name; + private String companyId; + /** * 手机号 */ 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 e67b607..d5c99c4 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 @@ -745,6 +745,9 @@ mallMember = this.baseMapper.selectMemberByOpenId(openId); String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId()); mallMember.setMemberUuid(aiMember.getId()); + if (StrUtil.isNotEmpty(aiMember.getCompanyId())){ + mallMember.setCompanyId(aiMember.getCompanyId()); + } mallMember.setInviteId(inviteId); this.baseMapper.updateById(mallMember); MallMemberWallet wallet = new MallMemberWallet(); @@ -846,6 +849,10 @@ if(ObjectUtil.isNotEmpty(apiXcxSaveInfoDto.getGender())){ mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男"); } + + if(ObjectUtil.isNotEmpty(apiXcxSaveInfoDto.getCompanyId())){ + mallMember.setCompanyId(apiXcxSaveInfoDto.getCompanyId()); + } this.baseMapper.updateById(mallMember); String memberUuid = mallMember.getMemberUuid(); diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java index ea4f405..54dd6af 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java @@ -22,6 +22,9 @@ @ApiModelProperty(value = "昵称") private String name; + @ApiModelProperty(value = "公司ID") + private String companyId; + @ApiModelProperty(value = "手机号") private String phone; -- Gitblit v1.9.1