Parcourir la source

添加 我的/部门的######

三七 il y a 1 mois
Parent
commit
0bcb98ba1b
26 fichiers modifiés avec 540 ajouts et 73 suppressions
  1. 52 22
      fs-company/src/main/java/com/fs/company/controller/course/FsCourseWatchLogController.java
  2. 53 0
      fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactController.java
  3. 35 0
      fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactTransferLogController.java
  4. 37 4
      fs-company/src/main/java/com/fs/company/controller/qw/QwFriendWelcomeController.java
  5. 59 1
      fs-company/src/main/java/com/fs/company/controller/qw/QwGroupChatController.java
  6. 71 14
      fs-company/src/main/java/com/fs/company/controller/qw/QwSopController.java
  7. 35 4
      fs-company/src/main/java/com/fs/company/controller/qw/QwUserController.java
  8. 1 0
      fs-service/src/main/java/com/fs/company/mapper/CompanyDeptMapper.java
  9. 17 0
      fs-service/src/main/java/com/fs/course/param/FsCourseWatchLogListParam.java
  10. 6 1
      fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java
  11. 6 0
      fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactTransferLogMapper.java
  12. 6 0
      fs-service/src/main/java/com/fs/qw/mapper/QwFriendWelcomeMapper.java
  13. 6 0
      fs-service/src/main/java/com/fs/qw/mapper/QwGroupChatMapper.java
  14. 25 0
      fs-service/src/main/java/com/fs/qw/mapper/QwUserMapper.java
  15. 11 0
      fs-service/src/main/java/com/fs/qw/param/QwExternalContactParam.java
  16. 12 0
      fs-service/src/main/java/com/fs/qw/param/QwExternalContactTransferLogParam.java
  17. 11 0
      fs-service/src/main/java/com/fs/qw/param/QwFriendWelcomeParam.java
  18. 10 0
      fs-service/src/main/java/com/fs/qw/param/QwGroupChatParam.java
  19. 15 0
      fs-service/src/main/java/com/fs/qw/param/QwUserListParam.java
  20. 1 2
      fs-service/src/main/java/com/fs/qw/service/IQwGroupChatService.java
  21. 5 0
      fs-service/src/main/java/com/fs/qw/service/IQwUserService.java
  22. 21 21
      fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java
  23. 8 4
      fs-service/src/main/java/com/fs/qw/service/impl/QwGroupChatServiceImpl.java
  24. 12 0
      fs-service/src/main/java/com/fs/qw/service/impl/QwUserServiceImpl.java
  25. 1 0
      fs-service/src/main/java/com/fs/qw/vo/QwUserVO.java
  26. 24 0
      fs-service/src/main/java/com/fs/sop/domain/QwSop.java

+ 52 - 22
fs-company/src/main/java/com/fs/company/controller/course/FsCourseWatchLogController.java

@@ -7,6 +7,7 @@ import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.service.impl.CompanyDeptServiceImpl;
 import com.fs.course.domain.FsCourseWatchLog;
 import com.fs.course.param.FsCourseOverParam;
 import com.fs.course.param.FsCourseUserStatisticsListParam;
@@ -49,6 +50,10 @@ public class FsCourseWatchLogController extends BaseController
     private SopUserLogsMapper sopUserLogsMapper;
     @Autowired
     private IQwWatchLogService qwWatchLogService;
+
+    @Autowired
+    private CompanyDeptServiceImpl companyDeptService;
+
     /**
      * 查询短链课程看课记录列表
      */
@@ -56,14 +61,6 @@ public class FsCourseWatchLogController extends BaseController
     @GetMapping("/list")
     public TableDataInfo list(FsCourseWatchLogListParam param)
     {
-
-//        if (param.getScheduleStartTime() != null && param.getScheduleEndTime() != null){
-//            List<String> sopUserLogsVOS = sopUserLogsMapper.selectSopUserLogsByDate(param.getScheduleStartTime(), param.getScheduleEndTime());
-//            param.setSopIds(sopUserLogsVOS);
-//            if (sopUserLogsVOS==null||sopUserLogsVOS.size()==0){
-//                return getDataTable(new ArrayList<>());
-//            }
-//        }
         startPage();
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         param.setCompanyId( loginUser.getCompany().getCompanyId());
@@ -71,6 +68,53 @@ public class FsCourseWatchLogController extends BaseController
         return getDataTable(list);
     }
 
+
+    /**
+     * 查询短链课程 我的部门 看课记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:deptList')")
+    @GetMapping("/deptList")
+    public TableDataInfo deptList(FsCourseWatchLogListParam param) {
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+
+        param.setCuDeptIdList(combinedList);
+        param.setUserType(loginUser.getUser().getUserType());
+        param.setCompanyId(loginUser.getCompany().getCompanyId());
+
+        startPage();
+        List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param);
+
+        return getDataTable(list);
+    }
+    /**
+     * 查询短链课程看课记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:myList')")
+    @GetMapping("/myList")
+    public TableDataInfo myList(FsCourseWatchLogListParam param)
+    {
+        startPage();
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyUserId( loginUser.getUser().getUserId());
+        List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param);
+        return getDataTable(list);
+    }
+
+
     @PreAuthorize("@ss.hasPermi('course:courseWatchLog:statisticsList')")
     @GetMapping("/statisticsList")
     public TableDataInfo statisticsList(FsCourseWatchLogStatisticsListParam param)
@@ -171,20 +215,6 @@ public class FsCourseWatchLogController extends BaseController
 
 
 
-    /**
-     * 查询短链课程看课记录列表
-     */
-    @PreAuthorize("@ss.hasPermi('course:courseWatchLog:myList')")
-    @GetMapping("/myList")
-    public TableDataInfo myList(FsCourseWatchLogListParam param)
-    {
-        startPage();
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        param.setCompanyUserId( loginUser.getUser().getUserId());
-        List<FsCourseWatchLogListVO> list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param);
-        return getDataTable(list);
-    }
-
     /**
      * 导出短链课程看课记录列表
      */

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

@@ -10,6 +10,7 @@ import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.service.impl.CompanyDeptServiceImpl;
 import com.fs.course.param.FsUserCourseListUParam;
 import com.fs.course.service.IFsUserCourseStudyService;
 import com.fs.course.vo.FsUserCourseStudyListUVO;
@@ -38,6 +39,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
@@ -72,6 +74,10 @@ public class QwExternalContactController extends BaseController
 
     @Autowired
     private IQwExternalContactInfoService qwExternalContactInfoService;
+
+    @Autowired
+    private CompanyDeptServiceImpl companyDeptService;
+
     /**
      * 查询企业微信客户列表
      */
@@ -122,6 +128,53 @@ public class QwExternalContactController extends BaseController
         return qwExternalContactService.syncQwExternalContact(qwExternalContact.getCorpId());
     }
 
+    /**
+     * 我的部门客户
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:myDeptExtList')")
+    @GetMapping("/myDeptExtList")
+    public TableDataInfo myDeptExtList(QwExternalContactParam qwExternalContact)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+
+        qwExternalContact.setCuDeptIdList(combinedList);
+        qwExternalContact.setUserType(loginUser.getUser().getUserType());
+        qwExternalContact.setCompanyId(loginUser.getCompany().getCompanyId());
+
+        startPage();
+        List<QwExternalContactVO> list = qwExternalContactService.selectQwExternalContactListVO(qwExternalContact);
+        list.forEach(item->{
+
+            if (!Objects.equals(item.getTagIds(), "[]") && item.getTagIds()!=null) {
+                QwTagSearchParam param = new QwTagSearchParam();
+                Gson gson = new Gson();
+                List<String> tagIds = gson.fromJson(
+                        item.getTagIds(),
+                        new TypeToken<List<String>>() {
+                        }.getType()
+                );
+
+                param.setTagIds(tagIds);
+
+                item.setTagIdsName(iQwTagService.selectQwTagListByTagIds(param));
+            }
+        });
+
+        return getDataTable(list);
+    }
+
     @PreAuthorize("@ss.hasPermi('qw:externalContact:myList')")
     @GetMapping("/myList")
     public TableDataInfo myList(QwExternalContactParam qwExternalContact)

+ 35 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactTransferLogController.java

@@ -8,6 +8,7 @@ import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.service.impl.CompanyDeptServiceImpl;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.qw.domain.QwExternalContactTransferLog;
@@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,8 +34,13 @@ public class QwExternalContactTransferLogController extends BaseController
 {
     @Autowired
     private IQwExternalContactTransferLogService qwExternalContactTransferLogService;
+
     @Autowired
     private TokenService tokenService;
+
+    @Autowired
+    private CompanyDeptServiceImpl companyDeptService;
+
     /**
      * 查询转接记录列表
      */
@@ -50,6 +57,34 @@ public class QwExternalContactTransferLogController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 查询部门转接记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('qw:externalContactTransferLog:deptList')")
+    @GetMapping("/deptList")
+    public TableDataInfo deptList(QwExternalContactTransferLogParam qwExternalContactTransferLog)
+    {
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+        qwExternalContactTransferLog.setCuDeptIdList(combinedList);
+        qwExternalContactTransferLog.setUserType(loginUser.getUser().getUserType());
+
+        startPage();
+        List<QwExternalContactTransferLogListVO> list = qwExternalContactTransferLogService.selectQwExternalContactTransferLogListVO(qwExternalContactTransferLog);
+        return getDataTable(list);
+    }
+
     @PreAuthorize("@ss.hasPermi('qw:externalContactTransferLog:myList')")
     @GetMapping("/myList")
     public TableDataInfo myList(QwExternalContactTransferLogParam qwExternalContactTransferLog)

+ 37 - 4
fs-company/src/main/java/com/fs/company/controller/qw/QwFriendWelcomeController.java

@@ -10,6 +10,7 @@ import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
+import com.fs.company.service.impl.CompanyDeptServiceImpl;
 import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.qw.domain.QwFriendWelcome;
@@ -22,10 +23,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -46,6 +44,10 @@ public class QwFriendWelcomeController extends BaseController
 
     @Autowired
     private IQwUserService qwUserService;
+
+    @Autowired
+    private CompanyDeptServiceImpl companyDeptService;
+
     /**
      * 查询好友欢迎语列表
      */
@@ -61,6 +63,37 @@ public class QwFriendWelcomeController extends BaseController
         return getDataTable(list);
     }
 
+
+    /**
+     * 查询部门好友欢迎语列表
+     */
+    @PreAuthorize("@ss.hasPermi('qw:friendWelcome:deptList')")
+    @GetMapping("/deptList")
+    public TableDataInfo deptList(QwFriendWelcomeParam qwFriendWelcomeParam)
+    {
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        qwFriendWelcomeParam.setCompanyId(loginUser.getCompany().getCompanyId());
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+        qwFriendWelcomeParam.setCuDeptIdList(combinedList);
+        qwFriendWelcomeParam.setUserType(loginUser.getUser().getUserType());
+
+        startPage();
+        List<QwFriendWelcome> list = qwFriendWelcomeService.selectQwFriendWelcomeListMyVO(qwFriendWelcomeParam);
+        return getDataTable(list);
+    }
+
+
     /**
      * 查询好友欢迎语列表
      */

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

@@ -4,9 +4,13 @@ import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.utils.ServletUtils;
+import com.fs.company.service.impl.CompanyDeptServiceImpl;
+import com.fs.framework.security.LoginUser;
 import com.fs.framework.service.TokenService;
 import com.fs.qw.param.QwGroupChatParam;
 import com.fs.qw.service.IQwGroupChatService;
+import com.fs.qw.service.IQwUserService;
 import com.fs.qw.vo.QwGroupChatOptionsVO;
 import com.fs.qw.vo.QwGroupChatVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +20,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -33,6 +38,14 @@ public class QwGroupChatController extends BaseController
 
     @Autowired
     private TokenService tokenService;
+
+    @Autowired
+    private CompanyDeptServiceImpl companyDeptService;
+
+
+    @Autowired
+    private IQwUserService iQwUserService;
+
     /**
      * 查询客户群详情列表
      */
@@ -45,6 +58,35 @@ public class QwGroupChatController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 查询我的部门客户群详情列表
+     */
+    @PreAuthorize("@ss.hasPermi('qw:groupChat:deptList')")
+    @GetMapping("/deptList")
+    public TableDataInfo deptList(QwGroupChatParam qwGroupChat)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+        qwGroupChat.setCuDeptIdList(combinedList);
+        qwGroupChat.setUserType(loginUser.getUser().getUserType());
+
+
+        startPage();
+        List<QwGroupChatVO> list = qwGroupChatService.selectQwGroupChatList(qwGroupChat);
+        return getDataTable(list);
+    }
+
 
     /**
      * 我的-查询客户群详情列表
@@ -53,6 +95,9 @@ public class QwGroupChatController extends BaseController
     @GetMapping("/myList")
     public TableDataInfo myList(QwGroupChatParam qwGroupChat)
     {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        qwGroupChat.setCompanyId(loginUser.getCompany().getCompanyId());
+        qwGroupChat.setCompanyUserId(loginUser.getUser().getUserId());
         startPage();
         List<QwGroupChatVO> list = qwGroupChatService.selectQwGroupChatList(qwGroupChat);
         return getDataTable(list);
@@ -77,8 +122,21 @@ public class QwGroupChatController extends BaseController
 
 //        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
 //        Long companyId = loginUser.getCompany().getCompanyId();
+        List<String> qwUserIdList=new ArrayList<>();
+        return qwGroupChatService.cogradientGroupChat(corpId,qwUserIdList);
+    }
+
+    /**
+     *  同步 我的客户群信息
+     */
+    @GetMapping("/cogradientMyGroupChat/{corpId}")
+    public R cogradientMyGroupChat(@PathVariable("corpId") String corpId) throws Exception {
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+        List<String> qwUserIdList = iQwUserService.selectQwUserListByCompanyUserId(loginUser.getUser().getUserId(), corpId);
 
-        return qwGroupChatService.cogradientGroupChat(corpId);
+        return qwGroupChatService.cogradientGroupChat(corpId,qwUserIdList);
     }
 
     @GetMapping("/allList/{corpId}")

+ 71 - 14
fs-company/src/main/java/com/fs/company/controller/qw/QwSopController.java

@@ -9,6 +9,7 @@ import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.service.impl.CompanyDeptServiceImpl;
 import com.fs.course.mapper.FsUserCourseMapper;
 import com.fs.course.mapper.FsUserCourseVideoMapper;
 import com.fs.framework.security.LoginUser;
@@ -28,6 +29,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -55,6 +57,13 @@ public class QwSopController extends BaseController
     private FsUserCourseVideoMapper fsUserCourseVideoMapper;
     @Autowired
     private ICompanySopRoleService companySopRoleService;
+
+    @Autowired
+    private CompanyDeptServiceImpl companyDeptService;
+
+    @Autowired
+    private IQwUserService iQwUserService;
+
     /**
      * 查询企微sop列表
      */
@@ -70,6 +79,67 @@ public class QwSopController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 查询部门企微sop列表
+     */
+    @PreAuthorize("@ss.hasPermi('qw:sop:deptList')")
+    @GetMapping("/deptList")
+    public TableDataInfo deptList(QwSop qwSop)
+    {
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        qwSop.setCompanyId(loginUser.getCompany().getCompanyId());
+
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+        qwSop.setCuDeptIdList(combinedList);
+        qwSop.setUserType(loginUser.getUser().getUserType());
+
+        List<Long> userIds = iQwUserService.selectQwUserListByCuDeptIdList(qwSop);
+
+        qwSop.setQwUserIdList(userIds);
+
+        startPage();
+        List<QwSop> list = qwSopService.selectQwSopMyList(qwSop);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 查询企微sop列表-我的
+     */
+    @PreAuthorize("@ss.hasPermi('qw:sop:myList')")
+    @GetMapping("/myList")
+    public TableDataInfo myList(QwSop qwSop)
+    {
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        qwSop.setCompanyId( loginUser.getCompany().getCompanyId());
+        qwSop.setUserId(loginUser.getUser().getUserId());
+        List<Long> userIds = iQwUserService.selectQwUserListByCuDeptIdList(qwSop);
+        qwSop.setQwUserIdList(userIds);
+
+        List<QwSop> list=new ArrayList<>();
+
+        if (userIds.isEmpty()){
+            return  getDataTable(list);
+        }
+
+        startPage();
+        list = qwSopService.selectQwSopMyList(qwSop);
+        return getDataTable(list);
+    }
+
     /**
      * 查询aiChatsop列表
      */
@@ -97,20 +167,7 @@ public class QwSopController extends BaseController
         List<OptionsVO> optionsVOS = fsUserCourseVideoMapper.selectFsUserCourseVodeAllList(id);
         return R.ok().put("list", optionsVOS);
     }
-    /**
-     * 查询企微sop列表-我的
-     */
-    @PreAuthorize("@ss.hasPermi('qw:sop:myList')")
-    @GetMapping("/myList")
-    public TableDataInfo myList(QwSop qwSop)
-    {
-        startPage();
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        qwSop.setCompanyId( loginUser.getCompany().getCompanyId());
-        qwSop.setQwUserIds(String.valueOf(loginUser.getUser().getQwUserId()));
-        List<QwSop> list = qwSopService.selectQwSopMyList(qwSop);
-        return getDataTable(list);
-    }
+
     /**
      * 导出企微sop列表
      */

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

@@ -18,6 +18,7 @@ import com.fs.company.domain.Company;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.service.ICompanyUserService;
+import com.fs.company.service.impl.CompanyDeptServiceImpl;
 import com.fs.fastGpt.domain.FastGptRole;
 import com.fs.fastGpt.mapper.FastGptRoleMapper;
 import com.fs.framework.manager.AsyncManager;
@@ -51,10 +52,7 @@ import org.springframework.security.core.Authentication;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -96,6 +94,9 @@ public class QwUserController extends BaseController
     @Resource
     private AuthenticationManager authenticationManager;
 
+    @Autowired
+    private CompanyDeptServiceImpl companyDeptService;
+
     /**
      * 查询企微员工列表
      */
@@ -111,6 +112,36 @@ public class QwUserController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 查询我的部门 企业微信员工列表
+     */
+    @PreAuthorize("@ss.hasPermi('qw:user:myDepartList')")
+    @GetMapping("/myDepartList")
+    public TableDataInfo myDepartList(QwUserListParam qwUser)
+    {
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        qwUser.setCompanyId(loginUser.getCompany().getCompanyId());
+        qwUser.setUserType(loginUser.getUser().getUserType());
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+        qwUser.setCuDeptIdList(combinedList);
+        qwUser.setUserType(loginUser.getUser().getUserType());
+
+        startPage();
+        List<QwUserVO> list = qwUserService.selectQwUserListStaffVO(qwUser);
+        return getDataTable(list);
+    }
+
     @PreAuthorize("@ss.hasPermi('qw:user:login')")
     @PostMapping("/loginQwIpad")
     public R loginQwIpad(@RequestBody QwLoginHookParam loginParam){

+ 1 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyDeptMapper.java

@@ -67,6 +67,7 @@ public interface CompanyDeptMapper
      */
     public int deleteCompanyDeptById(Long deptId);
 
+
     /**
      * 批量删除部门
      *

+ 17 - 0
fs-service/src/main/java/com/fs/course/param/FsCourseWatchLogListParam.java

@@ -54,4 +54,21 @@ public class FsCourseWatchLogListParam implements Serializable {
     private String scheduleEndTime;
 
     private List<String> sopIds;
+
+
+    private Long taskId;//任务ID
+
+    private String customPageStr;
+
+    private Long lastId;
+
+    /**
+     * 销售部门
+     */
+    private List<Long> cuDeptIdList;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    private String userType;
 }

+ 6 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -256,7 +256,12 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
             "            <if test=\"sTime != null \">  and DATE(ec.create_time) &gt;= DATE(#{sTime})</if>\n" +
             "            <if test=\"eTime != null \">  and DATE(ec.create_time) &lt;= DATE(#{eTime})</if>\n" +
             "            <if test=\"companyUserName != null  and companyUserName != ''\"> and cu.user_name = #{companyUserName}</if>\n" +
-
+            "            <if test=\"cuDeptIdList != null and !cuDeptIdList.isEmpty() and  userType != '00' \">" +
+            "               AND cur.dept_id IN " +
+            "                   <foreach collection='cuDeptIdList' item='item' open='(' separator=',' close=')'> " +
+            "                       #{item} " +
+            "                   </foreach> " +
+            "            </if>" +
             "<if test ='companyUser!=null'> " +
                 "and (cu.nick_name like concat('%', #{companyUser}, '%') or cu.phonenumber= #{companyUser})"+
             "</if> " +

+ 6 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactTransferLogMapper.java

@@ -100,6 +100,12 @@ public interface QwExternalContactTransferLogMapper
             "            <if test=\"customerId != null \"> and l.customer_id = #{customerId}</if>\n" +
             "            <if test=\"externalContactId != null \"> and l.external_contact_id = #{externalContactId}</if>\n" +
             "            <if test=\"status != null  and status != ''\"> and l.status = #{status}</if>\n" +
+            "            <if test=\"cuDeptIdList != null and !cuDeptIdList.isEmpty() and  userType != '00' \">" +
+            "               AND cu.dept_id IN " +
+            "                   <foreach collection='cuDeptIdList' item='item' open='(' separator=',' close=')'> " +
+            "                       #{item} " +
+            "                   </foreach> " +
+            "            </if>" +
             "        </where> " +
             "order by l.create_time desc "+
             "</script>"})

+ 6 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwFriendWelcomeMapper.java

@@ -67,6 +67,12 @@ public interface QwFriendWelcomeMapper
             "            <if test=\"createTime != null \"> and qfw.create_time = #{createTime}</if>\n" +
             "            <if test=\"updateTime != null \"> and qfw.update_time = #{updateTime}</if>\n" +
             "            <if test=\"companyUserId != null \"> and qu.company_user_id = #{companyUserId}</if>\n" +
+            "            <if test=\"cuDeptIdList != null and !cuDeptIdList.isEmpty() and  userType != '00' \">" +
+            "               AND cu.dept_id IN " +
+            "                   <foreach collection='cuDeptIdList' item='item' open='(' separator=',' close=')'> " +
+            "                       #{item} " +
+            "                   </foreach> " +
+            "            </if>" +
             "        </where>" +
             "</script>")
     public List<QwFriendWelcome> selectQwFriendWelcomeListMyVO(QwFriendWelcomeParam qwFriendWelcomeParam);

+ 6 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwGroupChatMapper.java

@@ -66,6 +66,12 @@ public interface QwGroupChatMapper
             "           and gc.owner in " +
             "                   <foreach  item='item' index='index' collection='qwUserIds' open='(' separator=',' close=')'> #{item}   </foreach> " +
             "           </if>" +
+            "            <if test=\"map.cuDeptIdList != null and !map.cuDeptIdList.isEmpty() and  map.userType != '00' \">" +
+            "               AND cu.dept_id IN " +
+            "                   <foreach collection='map.cuDeptIdList' item='item' open='(' separator=',' close=')'> " +
+            "                       #{item} " +
+            "                   </foreach> " +
+            "            </if>" +
             "        </where>" +
             "GROUP BY " +
             "    gc.chat_id, cu.nick_name,qu.qw_user_name   " +

+ 25 - 0
fs-service/src/main/java/com/fs/qw/mapper/QwUserMapper.java

@@ -9,6 +9,7 @@ import com.fs.qw.dto.QwUserDTO;
 import com.fs.qw.dto.QwUserKeyDTO;
 import com.fs.qw.param.*;
 import com.fs.qw.vo.*;
+import com.fs.sop.domain.QwSop;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
@@ -151,6 +152,12 @@ public interface QwUserMapper extends BaseMapper<QwUser>
             "            <if test=\"qwUserName != null  and qwUserName != ''\"> and qu.qw_user_name like concat( #{qwUserName}, '%') </if> " +
             "            <if test=\"corpId != null \"> and qu.corp_id = #{corpId}</if>\n" +
             "            <if test=\"companyId != null \"> and qu.company_id = #{companyId}</if>\n " +
+            "            <if test=\"cuDeptIdList != null and !cuDeptIdList.isEmpty() and  userType != '00' \">" +
+            "               AND cu.dept_id IN " +
+            "                   <foreach collection='cuDeptIdList' item='item' open='(' separator=',' close=')'> " +
+            "                       #{item} " +
+            "                   </foreach> " +
+            "            </if>" +
             "ORDER BY  qu.login_status asc,qu.tool_status desc " +
             "</script>"})
     List<QwUserVO> selectQwUserListStaffVO(QwUserListParam qwUser);
@@ -390,4 +397,22 @@ public interface QwUserMapper extends BaseMapper<QwUser>
     @Select("select qw_user_id from qw_user where company_user_id = ${companyUserId}")
     List<String> findQwUserIdListByCompanyUserId(@Param("companyUserId") Long companyUserId);
 
+    @Select("select qw_user_id from qw_user where company_user_id = #{userId} and corp_id = #{corpId}")
+    List<String> selectQwUserListByCompanyUserId(@Param("userId") Long userId,@Param("corpId") String corpId);
+
+    @Select("<script>" +
+            "select qu.id from qw_user qu " +
+            "left join company_user cu on cu.user_id=qu.company_user_id " +
+            "where 1=1 " +
+            "            <if test=\"map.corpId != null \"> and qu.corp_id = #{map.corpId}</if>\n" +
+            "            <if test=\"map.userId != null \"> and qu.company_user_id = #{map.userId}</if>\n " +
+            "            <if test=\"map.cuDeptIdList != null and !map.cuDeptIdList.isEmpty() and  map.userType != '00' \">" +
+            "               AND cu.dept_id IN " +
+            "                   <foreach collection='map.cuDeptIdList' item='item' open='(' separator=',' close=')'> " +
+            "                       #{item} " +
+            "                   </foreach> " +
+            "            </if>" +
+            "</script>")
+    List<Long> selectQwUserListByCuDeptIdList(@Param("map") QwSop qwSop);
+
 }

+ 11 - 0
fs-service/src/main/java/com/fs/qw/param/QwExternalContactParam.java

@@ -111,4 +111,15 @@ public class QwExternalContactParam {
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date sTime;
+
+    /**
+     * 销售部门
+     */
+    private List<Long> cuDeptIdList;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    private String userType;
+
 }

+ 12 - 0
fs-service/src/main/java/com/fs/qw/param/QwExternalContactTransferLogParam.java

@@ -5,6 +5,7 @@ import com.fs.common.annotation.Excel;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class QwExternalContactTransferLogParam {
@@ -44,4 +45,15 @@ public class QwExternalContactTransferLogParam {
     private Integer status;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
+
+
+    /**
+     * 销售部门
+     */
+    private List<Long> cuDeptIdList;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    private String userType;
 }

+ 11 - 0
fs-service/src/main/java/com/fs/qw/param/QwFriendWelcomeParam.java

@@ -6,6 +6,7 @@ import com.fs.common.core.domain.BaseEntity;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class QwFriendWelcomeParam extends BaseEntity {
@@ -61,4 +62,14 @@ public class QwFriendWelcomeParam extends BaseEntity {
     /** 部门ID */
     private Long deptId;
 
+    /**
+     * 销售部门
+     */
+    private List<Long> cuDeptIdList;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    private String userType;
+
 }

+ 10 - 0
fs-service/src/main/java/com/fs/qw/param/QwGroupChatParam.java

@@ -50,4 +50,14 @@ public class QwGroupChatParam {
     /** 状态集合 */
     private List<String> statusList;
 
+    /**
+     * 销售部门
+     */
+    private List<Long> cuDeptIdList;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    private String userType;
+
 }

+ 15 - 0
fs-service/src/main/java/com/fs/qw/param/QwUserListParam.java

@@ -47,4 +47,19 @@ public class QwUserListParam {
 
     private Integer sendType;
 
+    /**
+     * 企业微信李的部门
+     */
+    private Long deptId;
+
+    /**
+     * 销售部门
+     */
+    private List<Long> cuDeptIdList;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    private String userType;
+
 }

+ 1 - 2
fs-service/src/main/java/com/fs/qw/service/IQwGroupChatService.java

@@ -10,7 +10,6 @@ import com.fs.qw.vo.QwGroupChatOptionsVO;
 import com.fs.qw.vo.QwGroupChatTransferVO;
 import com.fs.qw.vo.QwGroupChatVO;
 
-import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -40,7 +39,7 @@ public interface IQwGroupChatService
     /**
      *  同步客户群列表
      */
-    public R cogradientGroupChat(String corpId) throws Exception;
+    public R cogradientGroupChat(String corpId,List<String> qwUserIdList ) throws Exception;
     /**
      * 新增客户群
      *

+ 5 - 0
fs-service/src/main/java/com/fs/qw/service/IQwUserService.java

@@ -9,6 +9,7 @@ import com.fs.qw.vo.QwHookAuthVO;
 import com.fs.qw.vo.QwOptionsVO;
 import com.fs.qw.vo.QwUserVO;
 import com.fs.qw.vo.UserVOs;
+import com.fs.sop.domain.QwSop;
 import org.apache.commons.lang3.tuple.Pair;
 
 import java.util.ArrayList;
@@ -166,6 +167,10 @@ public interface IQwUserService
 
     List<QwWorkTask> selectQwWorkTaskList(SelectQwWorkTaskListParam param);
 
+    List<String> selectQwUserListByCompanyUserId(Long userId,String corpId );
+    List<Long> selectQwUserListByCuDeptIdList(QwSop qwSop);
+
+
     /**
      * 重启云主机
      * @param IP 服务器ip

+ 21 - 21
fs-service/src/main/java/com/fs/qw/service/impl/QwExternalContactServiceImpl.java

@@ -1700,27 +1700,27 @@ public class QwExternalContactServiceImpl extends ServiceImpl<QwExternalContactM
         qwExternalContact.setExternalUserId(externalUserID); // 设置外部联系人ID
         qwExternalContact.setCorpId(corpId);
         qwExternalContact.setCreateTime(new Date());
-        if(StringUtils.isNotEmpty(state)){
-            try {
-                AdUploadVo vo = AdUploadVo.builder().state(state).type(AdUploadType.ADD_WX).build();
-                logger.info("上传mq:{}", vo);
-                rocketMQTemplate.syncSend("ad-upload", JSON.toJSONString(vo));
-            }catch (Exception e){
-                logger.error("广告回调上传",e);
-            }
-        }
-        try {
-            new Thread(() -> {
-                try {
-                    Thread.sleep(3000);
-                    rocketMQTemplate.syncSend("repeat-upload", JSON.toJSONString(RepeatUploadVo.builder().type(0).externalUserId(externalUserID).build()));
-                } catch (InterruptedException e) {
-                    logger.error("添加等待时长错误", e);
-                }
-            }).start();
-        }catch (Exception e){
-            logger.error("重粉提交mq失败", e);
-        }
+//        if(StringUtils.isNotEmpty(state)){
+//            try {
+//                AdUploadVo vo = AdUploadVo.builder().state(state).type(AdUploadType.ADD_WX).build();
+//                logger.info("上传mq:{}", vo);
+//                rocketMQTemplate.syncSend("ad-upload", JSON.toJSONString(vo));
+//            }catch (Exception e){
+//                logger.error("广告回调上传",e);
+//            }
+//        }
+//        try {
+//            new Thread(() -> {
+//                try {
+//                    Thread.sleep(3000);
+//                    rocketMQTemplate.syncSend("repeat-upload", JSON.toJSONString(RepeatUploadVo.builder().type(0).externalUserId(externalUserID).build()));
+//                } catch (InterruptedException e) {
+//                    logger.error("添加等待时长错误", e);
+//                }
+//            }).start();
+//        }catch (Exception e){
+//            logger.error("重粉提交mq失败", e);
+//        }
 //        iAdHtmlClickLogService.upload(state, AdUploadType.ADD_WX, e -> finalQwExternalContact.setUploadAddWxStatus(1));
 
         //先入一次库

+ 8 - 4
fs-service/src/main/java/com/fs/qw/service/impl/QwGroupChatServiceImpl.java

@@ -249,21 +249,25 @@ public class QwGroupChatServiceImpl implements IQwGroupChatService
      *  同步客户群列表
      */
     @Override
-    public R cogradientGroupChat(String corpId) throws Exception {
+    public R cogradientGroupChat(String corpId,List<String> qwUserIdList) throws Exception {
 
 //        过滤群主的id集合
-        ArrayList<String> ownerFilterList=new ArrayList<>();
-
+        ArrayList<String> ownerFilterList = new ArrayList<>(qwUserIdList);
         try {
             QwGroupChatListResult qwGroupChatListResult = qwApiService.groupChatList(ownerFilterList, null, corpId);
 
+            if (qwGroupChatListResult.getErrcode()!=0){
+                return R.error(qwGroupChatListResult.getErrmsg());
+            }
             insertGroupChatList(qwGroupChatListResult,corpId,ownerFilterList);
 
         }catch (Exception e){
+            e.printStackTrace();
+            System.out.println("同步客户群列表失败");
             return R.error(e.getMessage());
         }
 
-
+        System.out.println("同步客户群列表成功");
         return R.ok();
 
     }

+ 12 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwUserServiceImpl.java

@@ -37,6 +37,7 @@ import com.fs.qwApi.domain.QwUserIdResult;
 import com.fs.qwApi.domain.inner.DeptUser;
 import com.fs.qwApi.param.QwOpenidByUserParams;
 import com.fs.qwApi.service.QwApiService;
+import com.fs.sop.domain.QwSop;
 import com.fs.voice.utils.StringUtil;
 import com.fs.wxwork.dto.*;
 import com.fs.wxwork.service.WxWorkService;
@@ -238,6 +239,17 @@ public class QwUserServiceImpl implements IQwUserService
         return qwWorkTasks;
     }
 
+    @Override
+    public List<String> selectQwUserListByCompanyUserId(Long userId, String corpId) {
+        return qwUserMapper.selectQwUserListByCompanyUserId(userId,corpId);
+
+    }
+
+    @Override
+    public List<Long> selectQwUserListByCuDeptIdList(QwSop qwSop) {
+        return qwUserMapper.selectQwUserListByCuDeptIdList(qwSop);
+    }
+
 
     /**
      * 查询企微用户

+ 1 - 0
fs-service/src/main/java/com/fs/qw/vo/QwUserVO.java

@@ -40,6 +40,7 @@ public class QwUserVO {
     private String nickName;
     private String userName;
     private String welcomeText;
+    private Integer isSendMsg;
     /**
     * 活码id
     */

+ 24 - 0
fs-service/src/main/java/com/fs/sop/domain/QwSop.java

@@ -1,12 +1,14 @@
 package com.fs.sop.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fs.common.annotation.Excel;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 企微sop对象 qw_sop
@@ -113,6 +115,28 @@ public class QwSop implements Serializable
     // 群聊ID
     private String chatId;
 
+
+    /**
+     * 销售id
+     */
+    @TableField(exist = false)
+    private Long userId;
+
+    /**
+     * 销售部门
+     */
+    @TableField(exist = false)
+    private List<Long> cuDeptIdList;
+
+    /**
+     * 部门类型 00 管理员 01 员工
+     */
+    @TableField(exist = false)
+    private String userType;
+
+    @TableField(exist = false)
+    private List<Long> qwUserIdList;
+
     @Excel(name = "开启评论或者弹幕,1-开启评论;2-开启弹幕;3-都关闭")
     private Integer openCommentStatus;