| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
| 3 days ago | Administrator | ![]() |
pom.xml
@@ -21,7 +21,7 @@ <mybatis.plus.version>3.3.1</mybatis.plus.version> <swagger.ui>2.9.2</swagger.ui> <tomcat.version>9.0.31</tomcat.version> <hutool.version>5.3.1</hutool.version> <hutool.version>5.8.26</hutool.version> <aliyun-oss.version>3.8.0</aliyun-oss.version> <ijapy.version>2.7.8</ijapy.version> <mapstruct.version>1.3.1.Final</mapstruct.version> src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -29,6 +29,7 @@ registration.addPathPatterns("/api/**"); // registration.excludePathPatterns("/api/login/**"); registration.excludePathPatterns("/api/login/xcxLogin"); registration.excludePathPatterns("/api/login/getCompanyCode"); registration.excludePathPatterns("/api/common/**"); registration.excludePathPatterns("/api/category/**"); registration.excludePathPatterns("/api/goods/**"); src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java
@@ -78,7 +78,7 @@ private String resolveToken(String token) { try { RSA rsa = new RSA(AppContants.PRIVATE_KEY, null); String[] tokens = StrUtil.split(rsa.decryptStr(token, KeyType.PrivateKey), "_"); String[] tokens = rsa.decryptStr(token, KeyType.PrivateKey).split( "_"); if (verifyTokenExpired(Long.parseLong(tokens[1]))) { return tokens[0]; } else { src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
@@ -78,6 +78,14 @@ return memberService.xcxLogin(apiXcxLoginDto); } @ApiOperation(value = "获取默认公司编码", notes = "获取默认公司编码") @GetMapping(value = "/getCompanyCode") public FebsResponse getCompanyCode(){ return memberService.getCompanyCode(); } /** * 小程序手机号登录 */ src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -134,4 +134,6 @@ FebsResponse addLabelMember(ApiMemberLabelAddDto dto); FebsResponse insureLabelMember(ApiMemberLabelInsureDto dto); FebsResponse getCompanyCode(); } src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -468,7 +468,7 @@ for(MallRefundEntity mallRefundEntityPic : records){ String refundPic = mallRefundEntityPic.getRefundPic(); if(StrUtil.isNotEmpty(refundPic)){ String[] split = StrUtil.split(refundPic, ","); String[] split = refundPic.split(","); mallRefundEntityPic.setRefundPicList(split); } } src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -805,7 +805,9 @@ authInfo.put("token", token); authInfo.put("appid", xcxProperties.getXcxAppid()); authInfo.put("member", yhAiMember); authInfo.put("rasToken", generateAsaToken(token)); String rasToken = generateAsaToken(token); authInfo.put("rasToken", rasToken); log.info("登录成功rasToken={}", rasToken); febsResponse.success().data(authInfo); } else { return febsResponse.fail().message("自动登录失败"); @@ -2097,6 +2099,13 @@ return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse getCompanyCode() { String companyCode = yhAiCompanyMapper.selectDictLabel("xcx_register_default","default"); return new FebsResponse().success().data(companyCode); } // public static void main(String[] args) { // Long userld = 16425L; // String shopAccount = "爱和美医疗"; src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentCategoryLink.java
New file @@ -0,0 +1,13 @@ package cc.mrbird.febs.yinhe.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("ai_agent_category_link") public class YHAiAgentCategoryLink extends YhBaseEntity { private String id; private String companyId; private String agentCategoryId; private String memberUuid; } src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentLink.java
New file @@ -0,0 +1,20 @@ package cc.mrbird.febs.yinhe.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data @TableName("ai_agent_link") public class YHAiAgentLink extends YhBaseEntity { /** 主键 */ private String id; /** 公司ID */ private String companyId; private String agentId; private String memberUuid; } src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentCategoryLinkMapper.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.yinhe.mapper; import cc.mrbird.febs.yinhe.entity.YHAiAgentCategoryLink; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YHAiAgentCategoryLinkMapper extends BaseMapper<YHAiAgentCategoryLink> { } src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentLinkMapper.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.yinhe.mapper; import cc.mrbird.febs.yinhe.entity.YHAiAgentLink; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YHAiAgentLinkMapper extends BaseMapper<YHAiAgentLink> { } src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiCompanyMapper.java
@@ -3,7 +3,11 @@ import cc.mrbird.febs.yinhe.entity.YHAiCompany; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @Mapper public interface YHAiCompanyMapper extends BaseMapper<YHAiCompany> { String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue); } src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java
@@ -48,6 +48,8 @@ private final YHAiAgentStartQuestionMapper yhAiAgentStartQuestionMapper; private final YHAiAgentKnowledgeMapper yhAiAgentKnowledgeMapper; private final YHAiKnowledgeMapper yhAiKnowledgeMapper; private final YHAiAgentLinkMapper yhAiAgentLinkMapper; private final YHAiAgentCategoryLinkMapper yhAiAgentCategoryLinkMapper; private final YhSysAgentCategoryMapper yhSysAgentCategoryMapper; private final YHSysAgentStartQuestionMapper yhSysAgentStartQuestionMapper; @@ -88,15 +90,47 @@ return new FebsResponse().success().data(yhMemberVo); } private boolean isDefaultCompany(String companyId){ String companyCode = yhAiCompanyMapper.selectDictLabel("xcx_register_default","default"); YHAiCompany yhAiCompany = yhAiCompanyMapper.selectOne( Wrappers.lambdaQuery(YHAiCompany.class) .eq(YHAiCompany::getId, companyId) ); if (ObjectUtil.isEmpty(yhAiCompany)){ return false; } return companyCode.equals(yhAiCompany.getCode()); } @Override public FebsResponse categoryList(YHCategoryDto dto) { String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid(); YhAiMember yhAiMember = yhAiMemberMapper.selectOne(Wrappers.lambdaQuery(YhAiMember.class).eq(YhAiMember::getMemberUuid, memberUuid)); String companyId = yhAiMember.getCompanyId(); List<YHCategoryVo> yhCategoryVos = new ArrayList<>(); boolean defaultCompany = isDefaultCompany(companyId); List<YHCategoryVo> vos = new ArrayList<>(); LambdaQueryWrapper<YHAiAgentCategory> query = Wrappers.lambdaQuery(YHAiAgentCategory.class); List<String> yhAiAgentCategoryLinksIds = new ArrayList<>(); log.info("开始查询智能体分类{}",defaultCompany); if (!defaultCompany){ List<YHAiAgentCategoryLink> yhAiAgentCategoryLinks = yhAiAgentCategoryLinkMapper.selectList( Wrappers.lambdaQuery(YHAiAgentCategoryLink.class) .eq(YHAiAgentCategoryLink::getCompanyId, companyId) .eq(YHAiAgentCategoryLink::getMemberUuid, memberUuid) ); if (CollUtil.isEmpty(yhAiAgentCategoryLinks)){ return new FebsResponse().success().data(vos); } for (YHAiAgentCategoryLink yhAiAgentCategoryLink : yhAiAgentCategoryLinks) { yhAiAgentCategoryLinksIds.add(yhAiAgentCategoryLink.getAgentCategoryId()); } query.in(YHAiAgentCategory::getId,yhAiAgentCategoryLinksIds); } query.eq(YHAiAgentCategory::getCompanyId,companyId); query.eq(YHAiAgentCategory::getState,1); if (ObjectUtil.isNotEmpty(dto.getHotState())){ @@ -110,11 +144,11 @@ YHCategoryVo yhCategoryVo = new YHCategoryVo(); yhCategoryVo.setName(yhAiAgentCategory.getName()); yhCategoryVo.setId(yhAiAgentCategory.getId()); yhCategoryVos.add(yhCategoryVo); vos.add(yhCategoryVo); } } return new FebsResponse().success().data(yhCategoryVos); return new FebsResponse().success().data(vos); } @Override @@ -124,7 +158,26 @@ String companyId = yhAiMember.getCompanyId(); ArrayList<YHAgentVo> yhAgentVos = new ArrayList<>(); LambdaQueryWrapper<YHAiAgent> query = Wrappers.lambdaQuery(YHAiAgent.class); boolean defaultCompany = isDefaultCompany(companyId); if (!defaultCompany){ List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList( Wrappers.lambdaQuery(YHAiAgentLink.class) .eq(YHAiAgentLink::getCompanyId, companyId) .eq(YHAiAgentLink::getMemberUuid, memberUuid) ); if (CollUtil.isEmpty(yhAiAgentLinks)){ return new FebsResponse().success().data(yhAgentVos); } List<String> yhAiAgentLinksIds = new ArrayList<>(); for (YHAiAgentLink yhAiAgentLink : yhAiAgentLinks) { yhAiAgentLinksIds.add(yhAiAgentLink.getAgentId()); } query.in(YHAiAgent::getId,yhAiAgentLinksIds); } query.eq(YHAiAgent::getCompanyId,companyId); query.eq(YHAiAgent::getState,1); if (ObjectUtil.isNotEmpty(dto.getAgentCategoryId())){ @@ -151,9 +204,25 @@ public FebsResponse agentInfo(YHAgentInitDto dto) { String memberUuid = YHLoginUserUtil.getLoginUser().getMemberUuid(); YHAgentInitVo yhAgentInitVo = new YHAgentInitVo(); String companyId = YHLoginUserUtil.getLoginUser().getCompanyId(); String id = dto.getId(); YHAgentInitVo yhAgentInitVo = new YHAgentInitVo(); boolean defaultCompany = isDefaultCompany(companyId); if (!defaultCompany){ List<YHAiAgentLink> yhAiAgentLinks = yhAiAgentLinkMapper.selectList( Wrappers.lambdaQuery(YHAiAgentLink.class) .eq(YHAiAgentLink::getAgentId, id) .eq(YHAiAgentLink::getMemberUuid, memberUuid) ); if (CollUtil.isEmpty(yhAiAgentLinks)){ throw new FebsException("无权限"); } } YHAiAgent yhAiAgent = yhAiAgentMapper.selectById(id); if (ObjectUtil.isNotEmpty(yhAiAgent)){ yhAgentInitVo.setId(yhAiAgent.getId()); src/main/resources/mapper/modules/YHAiCompanyMapper.xml
New file @@ -0,0 +1,10 @@ <?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.yinhe.mapper.YHAiCompanyMapper"> <select id="selectDictLabel" resultType="String"> select dict_label from sys_dict_data where dict_type = #{dictType} and dict_value = #{dictValue} </select> </mapper>