瀏覽代碼

ipad发送

吴树波 2 天之前
父節點
當前提交
bf8b965a70

+ 1 - 1
fs-company/src/main/java/com/fs/company/controller/qw/QwUserController.java

@@ -519,7 +519,7 @@ public class QwUserController extends BaseController
             if (string.equals(corpId)){
                 qwUserService.syncQwUser(string);
                 qwDeptService.insertOrUpdateQwDept(string);
-                System.out.println("同步完成");
+                logger.info("同步完成");
             }
         }
         return R.ok();

+ 17 - 0
fs-service/src/main/java/com/fs/course/domain/FsUserCompanyUser.java

@@ -40,5 +40,22 @@ public class FsUserCompanyUser extends BaseEntity{
     @ApiModelProperty(value = "重粉所属销售,多个用逗号隔开")
     private String repeatCompanyUserName;
 
+    /**
+     * 项目ID
+     */
+    private Long projectId;
+    /**
+     * 企微用户ID
+     */
+    private Long qwUserId;
+    /**
+     * 企微外部联系人ID
+     */
+    private Long qwExternalContactId;
+    /**
+     * 企微主体ID
+     */
+    private Long qwCompanyId;
+
 
 }

+ 47 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCompanyUserService.java

@@ -59,4 +59,51 @@ public interface IFsUserCompanyUserService extends IService<FsUserCompanyUser>{
      * @return 结果
      */
     int deleteFsUserCompanyUserById(Long id);
+    /**
+     * 根据用户ID和项目ID查询微信用户与销售的关系
+     * @param userId            用户ID
+     * @param projectId   项目ID
+     * @return FsUserCompanyUser
+     */
+    FsUserCompanyUser selectByUserIdAndProjectId(Long userId, Long projectId);
+
+    /**
+     * 查询是否已绑定关系
+     * @param userId            用户ID
+     * @param companyUserId     销售ID
+     * @return  boolean
+     */
+    boolean hasBind(Long userId, Long companyUserId);
+
+    /**
+     * 获取当前销售的所有重粉会员
+     * @param userId 销售ID
+     * @return  list
+     */
+    List<FsUserCompanyUser> selectRepeatUser(Long userId);
+
+    /**
+     * 获取会员的重粉的所属销售
+     * @param userIds   会员ID集合
+     * @return  list
+     */
+    List<FsUserCompanyUser> selectRepeatCompanyUserName(List<Long> userIds);
+
+    /**
+     * 绑定会员-项目-销售关系
+     * @param userId        会员ID
+     * @param projectId     项目ID
+     * @param companyId     公司ID
+     * @param companyUserId 销售ID
+     */
+    void bindRelationship(Long userId, Long projectId, Long companyId, Long companyUserId);
+
+    /**
+     * 修改会员-项目-销售关系
+     * @param userId        会员ID
+     * @param projectId     项目ID
+     * @param companyId     公司ID
+     * @param companyUserId 销售ID
+     */
+    void changeRelationship(Long userId, Long projectId, Long companyId, Long companyUserId);
 }

+ 91 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCompanyUserServiceImpl.java

@@ -1,5 +1,7 @@
 package com.fs.course.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.course.domain.FsUserCompanyUser;
 import com.fs.course.mapper.FsUserCompanyUserMapper;
@@ -7,6 +9,7 @@ import com.fs.course.service.IFsUserCompanyUserService;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 微信用户和销售关系Service业务层处理
@@ -88,4 +91,92 @@ public class FsUserCompanyUserServiceImpl extends ServiceImpl<FsUserCompanyUserM
     {
         return baseMapper.deleteFsUserCompanyUserById(id);
     }
+
+    /**
+     * 根据用户ID和项目ID查询微信用户与销售的关系
+     * @param userId            用户ID
+     * @param projectId   项目ID
+     * @return FsUserCompanyUser
+     */
+    @Override
+    public FsUserCompanyUser selectByUserIdAndProjectId(Long userId, Long projectId) {
+        LambdaQueryWrapper<FsUserCompanyUser> queryWrapper = Wrappers.<FsUserCompanyUser>lambdaQuery()
+                .eq(FsUserCompanyUser::getUserId, userId)
+                .eq(FsUserCompanyUser::getProjectId, projectId);
+        return getOne(queryWrapper);
+    }
+
+    /**
+     * 查询是否已绑定关系
+     * @param userId            用户ID
+     * @param companyUserId     销售ID
+     * @return  boolean
+     */
+    @Override
+    public boolean hasBind(Long userId, Long companyUserId) {
+        LambdaQueryWrapper<FsUserCompanyUser> queryWrapper = Wrappers.<FsUserCompanyUser>lambdaQuery()
+                .eq(FsUserCompanyUser::getUserId, userId)
+                .eq(FsUserCompanyUser::getCompanyUserId, companyUserId);
+        return count(queryWrapper) > 0;
+    }
+
+    /**
+     * 获取当前销售的所有重粉会员
+     * @param userId 销售ID
+     * @return list
+     */
+    @Override
+    public List<FsUserCompanyUser> selectRepeatUser(Long userId) {
+        return baseMapper.selectRepeatUser(userId);
+    }
+
+    /**
+     * 获取会员的重粉的所属销售
+     * @param userIds   会员ID集合
+     * @return  list
+     */
+    @Override
+    public List<FsUserCompanyUser> selectRepeatCompanyUserName(List<Long> userIds) {
+        return baseMapper.selectRepeatCompanyUserName(userIds);
+    }
+
+    /**
+     * 绑定会员-项目-销售关系
+     * @param userId        会员ID
+     * @param projectId     项目ID
+     * @param companyId     公司ID
+     * @param companyUserId 销售ID
+     */
+    @Override
+    public void bindRelationship(Long userId, Long projectId, Long companyId, Long companyUserId) {
+        FsUserCompanyUser userCompanyUser = new FsUserCompanyUser();
+        userCompanyUser.setUserId(userId);
+        userCompanyUser.setProjectId(projectId);
+        userCompanyUser.setCompanyId(companyId);
+        userCompanyUser.setCompanyUserId(companyUserId);
+        boolean hasBind = hasBind(userId, companyUserId);
+        userCompanyUser.setIsRepeatFans(hasBind ? 1 : 0);
+        save(userCompanyUser);
+    }
+
+    /**
+     * 修改会员-项目-销售关系
+     * @param userId        会员ID
+     * @param projectId     项目ID
+     * @param companyId     公司ID
+     * @param companyUserId 销售ID
+     */
+    @Override
+    public void changeRelationship(Long userId, Long projectId, Long companyId, Long companyUserId) {
+        LambdaQueryWrapper<FsUserCompanyUser> queryWrapper = Wrappers.<FsUserCompanyUser>lambdaQuery()
+                .eq(FsUserCompanyUser::getUserId, userId)
+                .eq(FsUserCompanyUser::getProjectId, projectId)
+                .last("limit 1");
+        FsUserCompanyUser userCompanyUser = getOne(queryWrapper);
+        if (Objects.nonNull(userCompanyUser)) {
+            userCompanyUser.setCompanyId(companyId);
+            userCompanyUser.setCompanyUserId(companyUserId);
+            updateById(userCompanyUser);
+        }
+    }
 }

+ 1 - 1
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -537,7 +537,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             courseWatchLogMapper.updateFsCourseWatchLog(log);
         }
 
-        return R.ok().put("qwExternalId", qwExternalContact.getId());
+        return R.error(567,"群聊通用链接").put("qwExternalId", qwExternalContact.getId());
     }
 
     private void createWatchLog(FsUserCourseVideoAddKfUParam param) {

+ 28 - 8
fs-service/src/main/resources/mapper/course/FsUserCompanyUserMapper.xml

@@ -10,10 +10,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="companyUserId"    column="company_user_id"    />
         <result property="companyId"    column="company_id"    />
         <result property="isRepeatFans"    column="is_repeat_fans"    />
+        <result property="projectId"    column="project_id"    />
+        <result property="qwUserId"    column="qw_user_id"    />
+        <result property="qwExternalContactId"    column="qw_external_contact_id"    />
+        <result property="qwCompanyId"    column="qw_company_id"    />
     </resultMap>
 
     <sql id="selectFsUserCompanyUserVo">
-        select id, user_id, company_user_id, company_id, is_repeat_fans from fs_user_company_user
+        select * from fs_user_company_user
     </sql>
 
     <select id="selectFsUserCompanyUserList" parameterType="FsUserCompanyUser" resultMap="FsUserCompanyUserResult">
@@ -23,6 +27,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
             <if test="companyId != null "> and company_id = #{companyId}</if>
             <if test="isRepeatFans != null "> and is_repeat_fans = #{isRepeatFans}</if>
+            <if test="projectId != null "> and project_id = #{projectId}</if>
+            <if test="qwUserId != null "> and qw_user_id = #{qwUserId}</if>
+            <if test="qwExternalContactId != null "> and qw_external_contact_id = #{qwExternalContactId}</if>
+            <if test="qwCompanyId != null "> and qw_company_id = #{qwCompanyId}</if>
         </where>
     </select>
 
@@ -39,14 +47,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="companyUserId != null">company_user_id,</if>
             <if test="companyId != null">company_id,</if>
             <if test="isRepeatFans != null">is_repeat_fans,</if>
-         </trim>
+            <if test="projectId != null">project_id,</if>
+            <if test="qwUserId != null">qw_user_id,</if>
+            <if test="qwExternalContactId != null">qw_external_contact_id,</if>
+            <if test="qwCompanyId != null">qw_company_id,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
             <if test="userId != null">#{userId},</if>
             <if test="companyUserId != null">#{companyUserId},</if>
             <if test="companyId != null">#{companyId},</if>
             <if test="isRepeatFans != null">#{isRepeatFans},</if>
-         </trim>
+            <if test="projectId != null">#{projectId},</if>
+            <if test="qwUserId != null">#{qwUserId},</if>
+            <if test="qwExternalContactId != null">#{qwExternalContactId},</if>
+            <if test="qwCompanyId != null">#{qwCompanyId},</if>
+        </trim>
     </insert>
 
     <update id="updateFsUserCompanyUser" parameterType="FsUserCompanyUser">
@@ -56,6 +72,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
             <if test="companyId != null">company_id = #{companyId},</if>
             <if test="isRepeatFans != null">is_repeat_fans = #{isRepeatFans},</if>
+            <if test="projectId != null">project_id = #{projectId},</if>
+            <if test="qwUserId != null">qw_user_id = #{qwUserId},</if>
+            <if test="qwExternalContactId != null">qw_external_contaact_id = #{qwExternalContactId},</if>
+            <if test="qwCompanyId != null">qw_company_id = #{qwCompanyId},</if>
         </trim>
         where id = #{id}
     </update>
@@ -73,11 +93,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectRepeatCompanyUserName" resultType="FsUserCompanyUser">
         SELECT
-            GROUP_CONCAT( company_user.nick_name ) AS repeatCompanyUserName,
-            fs_user_company_user.user_id
+        GROUP_CONCAT( company_user.nick_name ) AS repeatCompanyUserName,
+        fs_user_company_user.user_id
         FROM
-            fs_user_company_user
-                LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
+        fs_user_company_user
+        LEFT JOIN company_user ON company_user.user_id = fs_user_company_user.company_user_id
         <where>
             fs_user_company_user.user_id IN
             <foreach item="userId" collection="userIds" open="(" separator="," close=")">
@@ -85,7 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </foreach>
         </where>
         GROUP BY
-            fs_user_company_user.user_id
+        fs_user_company_user.user_id
     </select>
 
     <update id="transfer">