5 files added
9 files modified
166 ■■■■■ changed files
pom.xml 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/interceptor/LoginInterceptor.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentCategoryLink.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/entity/YHAiAgentLink.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentCategoryLinkMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiAgentLinkMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/mapper/YHAiCompanyMapper.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/yinhe/service/impl/YhAiServiceImpl.java 77 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/YHAiCompanyMapper.xml 10 ●●●●● patch | view | raw | blame | history
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>