소스 검색

feat: 获取重粉数据

dongdong.xiang 4 주 전
부모
커밋
8ec55d4332

+ 11 - 0
fs-company/src/main/java/com/fs/qw/QwExternalContactController.java

@@ -17,6 +17,8 @@ import com.fs.crm.service.ICrmCustomerService;
 import com.fs.crm.vo.CrmMyCustomerListQueryVO;
 import com.fs.core.security.LoginUser;
 import com.fs.core.web.service.TokenService;
+import com.fs.qw.dto.GetQwRepeatDataDTO;
+import com.fs.qw.vo.GetQwRepeatDataVO;
 import com.fs.store.service.IFsUserService;
 import com.fs.qw.domain.QwExternalContact;
 import com.fs.qw.param.*;
@@ -73,6 +75,15 @@ public class QwExternalContactController extends BaseController
         List<QwExternalContactVO> list = qwExternalContactService.selectQwExternalContactListVO(qwExternalContact);
         return getDataTable(list);
     }
+
+    /**
+     * 企微获取重粉数据
+     */
+    @PostMapping("/qwRepeatData")
+    public R getQwRepeatData(@RequestBody GetQwRepeatDataDTO dto){
+        List<GetQwRepeatDataVO> qwRepeatData = qwExternalContactService.getQwRepeatData(dto);
+        return R.ok().put("data",qwRepeatData);
+    }
     /**
      * 同步企业微信客户
      */

+ 19 - 0
fs-service-system/src/main/java/com/fs/qw/converter/QwExternalContactConverter.java

@@ -0,0 +1,19 @@
+package com.fs.qw.converter;
+
+import com.fs.qw.domain.QwExternalContact;
+import com.fs.qw.vo.GetQwRepeatDataVO;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
+import org.mapstruct.factory.Mappers;
+
+@Mapper
+public interface QwExternalContactConverter {
+
+    QwExternalContactConverter INSTANT = Mappers.getMapper(QwExternalContactConverter.class);
+    @Mappings({
+            @Mapping(source = "companyId",target = "companyId"),
+            @Mapping(source = "companyUserId",target = "companyUserId")
+    })
+    GetQwRepeatDataVO convert(QwExternalContact contact);
+}

+ 20 - 0
fs-service-system/src/main/java/com/fs/qw/dto/GetQwRepeatDataDTO.java

@@ -0,0 +1,20 @@
+package com.fs.qw.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 获取重粉数据
+ */
+@Data
+public class GetQwRepeatDataDTO implements Serializable {
+    /**
+     * 外部联系人ID
+     */
+    private Long externalUserID;
+    /**
+     * 企微id
+     */
+    private Long corpId;
+}

+ 5 - 3
fs-service-system/src/main/java/com/fs/qw/service/IQwExternalContactService.java

@@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.qw.domain.QwExternalContact;
+import com.fs.qw.dto.GetQwRepeatDataDTO;
 import com.fs.qw.param.*;
 import com.fs.qw.param.newparam.ExternalContactPageListParam;
 import com.fs.qw.result.QwExternalContactLogVo;
 import com.fs.qw.result.QwExternalContactVo;
+import com.fs.qw.vo.GetQwRepeatDataVO;
 import com.fs.qw.vo.QwExternalContactVO;
 import com.fs.qw.vo.QwSopRuleTimeVO;
 import com.fs.qw.vo.newvo.ExternalContactDetailsVO;
@@ -200,9 +202,9 @@ public interface IQwExternalContactService extends IService<QwExternalContact> {
     List<QwExternalContactVOTime> selectQwExternalContactListVOByUserIds(List<String> externalIdList);
 
     /**
-     * 查询企微是否宠粉
-     * @param id
+     * 获取企微重粉数据
+     * @param dto
      * @return
      */
-    Integer selectQwIsRepeat(Long id);
+    List<GetQwRepeatDataVO> getQwRepeatData(GetQwRepeatDataDTO dto);
 }

+ 51 - 0
fs-service-system/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -3,6 +3,7 @@ package com.fs.qw.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.ad.enums.AdUploadType;
@@ -11,6 +12,8 @@ import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.utils.PubFun;
 import com.fs.common.utils.StringUtils;
+import com.fs.company.cache.ICompanyCacheService;
+import com.fs.company.cache.ICompanyUserCacheService;
 import com.fs.company.service.ICompanyConfigService;
 import com.fs.course.config.CourseConfig;
 import com.fs.course.domain.FsCourseSop;
@@ -24,7 +27,9 @@ import com.fs.course.param.FsCourseLinkCreateParam;
 import com.fs.course.service.IFsCourseLinkService;
 import com.fs.crm.domain.CrmCustomer;
 import com.fs.crm.mapper.CrmCustomerMapper;
+import com.fs.qw.converter.QwExternalContactConverter;
 import com.fs.qw.domain.*;
+import com.fs.qw.dto.GetQwRepeatDataDTO;
 import com.fs.qw.mapper.*;
 import com.fs.qw.param.*;
 import com.fs.qw.param.newparam.ExternalContactPageListParam;
@@ -4499,6 +4504,52 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
         return qwExternalContactMapper.selectQwExternalContactListVOByUserIds(ids);
     }
 
+
+    @Autowired
+    private ICompanyCacheService companyCacheService;
+    @Autowired
+    private ICompanyUserCacheService companyUserCacheService;
+    @Override
+    public List<GetQwRepeatDataVO> getQwRepeatData(GetQwRepeatDataDTO dto) {
+
+        List<QwExternalContact> externalContactList = qwExternalContactMapper
+                .selectList(buildQuery(dto));
+        List<GetQwRepeatDataVO> result = new ArrayList<>();
+        for (QwExternalContact qwExternalContact : externalContactList) {
+            GetQwRepeatDataVO getQwRepeatDataVO = new GetQwRepeatDataVO();
+            getQwRepeatDataVO.setCompanyId(qwExternalContact.getCompanyId());
+            if(qwExternalContact.getCompanyId() != null) {
+                String companyName = companyCacheService.selectCompanyNameById(qwExternalContact.getCompanyId());
+                getQwRepeatDataVO.setCompanyName(companyName);
+            }
+            getQwRepeatDataVO.setCompanyUserId(qwExternalContact.getCompanyUserId());
+            if(qwExternalContact.getCompanyUserId() != null) {
+                String companyUserName = companyUserCacheService.selectCompanyUserNameUserById(qwExternalContact.getCompanyUserId());
+                getQwRepeatDataVO.setCompanyUserName(companyUserName);
+            }
+            getQwRepeatDataVO.setSaleerWx(qwExternalContact.getQwUserId());
+            result.add(getQwRepeatDataVO);
+        }
+
+        return result;
+    }
+
+    public LambdaQueryWrapper<QwExternalContact> buildQuery(GetQwRepeatDataDTO dto){
+        Long corpId = dto.getCorpId();
+        Long externalUserID = dto.getExternalUserID();
+        LambdaQueryWrapper<QwExternalContact> eq = new LambdaQueryWrapper<QwExternalContact>()
+                .select(QwExternalContact::getFsUserId,
+                        QwExternalContact::getCompanyId,
+                        QwExternalContact::getCompanyUserId,
+                        QwExternalContact::getName,
+                        QwExternalContact::getQwUserId
+                )
+                .eq(QwExternalContact::getExternalUserId, externalUserID)
+                .eq(QwExternalContact::getCorpId, corpId);
+
+        return eq;
+    }
+
     @Override
     public Integer selectQwIsRepeat(Long id) {
         return qwExternalContactMapper.selectQwIsRepeat(id);

+ 33 - 0
fs-service-system/src/main/java/com/fs/qw/vo/GetQwRepeatDataVO.java

@@ -0,0 +1,33 @@
+package com.fs.qw.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 获取重粉数据VO
+ */
+@Data
+public class GetQwRepeatDataVO implements Serializable {
+    /**
+     * 所属公司
+     */
+    private Long companyId;
+    /**
+     * 公司名称
+     */
+    private String companyName;
+    /**
+     * 销售ID
+     */
+    private Long companyUserId;
+    /**
+     * 销售
+     */
+    private String companyUserName;
+    /**
+     * 销售-微信号
+     */
+    private Long saleerWx;
+
+}