Răsfoiți Sursa

添加电销相关数据

hxl13994548489 2 ani în urmă
părinte
comite
6a56baa29d
51 a modificat fișierele cu 3159 adăugiri și 2 ștergeri
  1. 7 0
      pom.xml
  2. 7 2
      src/main/java/com/ydtech/config/DruidConfig.java
  3. 128 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkZgdUserIdController.java
  4. 125 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkZzbUserIdController.java
  5. 162 0
      src/main/java/com/ydtech/modules/admin/controller/khgl/KhglDataController.java
  6. 32 0
      src/main/java/com/ydtech/modules/admin/dao/KhglZgdDataMapper.java
  7. 27 0
      src/main/java/com/ydtech/modules/admin/dao/KhglZzbDataMapper.java
  8. 8 0
      src/main/java/com/ydtech/modules/admin/dao/SysDeptInternalAgentMapper.java
  9. 33 0
      src/main/java/com/ydtech/modules/admin/dao/SysTelemarketingWechatDataMapper.java
  10. 28 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkZgdUserIdMapper.java
  11. 28 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkZzbUserIdMapper.java
  12. 29 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserZgdMapper.java
  13. 29 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserZzbMapper.java
  14. 48 0
      src/main/java/com/ydtech/modules/admin/model/dto/DxDataDto.java
  15. 86 0
      src/main/java/com/ydtech/modules/admin/model/dto/DxReportDataDto.java
  16. 16 0
      src/main/java/com/ydtech/modules/admin/model/dto/GroupDto.java
  17. 29 0
      src/main/java/com/ydtech/modules/admin/model/dto/KhglDataDto.java
  18. 46 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkQueryUserDto.java
  19. 59 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkUserDto.java
  20. 36 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkZzbUserIdDto.java
  21. 104 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkZgdUserId.java
  22. 105 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkZzbUserId.java
  23. 386 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserZzbOrZgd.java
  24. 48 0
      src/main/java/com/ydtech/modules/admin/model/vo/DxDataVo.java
  25. 47 0
      src/main/java/com/ydtech/modules/admin/model/vo/DxQueryVo.java
  26. 52 0
      src/main/java/com/ydtech/modules/admin/model/vo/KhglDataVo.java
  27. 6 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysDeptInternalAgentAddVo.java
  28. 24 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkZzbUserIdVo.java
  29. 39 0
      src/main/java/com/ydtech/modules/admin/service/DxDataService.java
  30. 33 0
      src/main/java/com/ydtech/modules/admin/service/KhglZgdDataService.java
  31. 33 0
      src/main/java/com/ydtech/modules/admin/service/KhglZzbDataService.java
  32. 56 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkZgdUserIdService.java
  33. 53 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkZzbUserIdService.java
  34. 19 0
      src/main/java/com/ydtech/modules/admin/service/SysUserZgdService.java
  35. 19 0
      src/main/java/com/ydtech/modules/admin/service/SysUserZzbService.java
  36. 221 0
      src/main/java/com/ydtech/modules/admin/service/impl/DxDataServiceImpl.java
  37. 53 0
      src/main/java/com/ydtech/modules/admin/service/impl/KhglZgdDataServiceImpl.java
  38. 49 0
      src/main/java/com/ydtech/modules/admin/service/impl/KhglZzbDataServiceImpl.java
  39. 138 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkZgdUserIdServiceImpl.java
  40. 138 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkZzbUserIdServiceImpl.java
  41. 42 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserZgdServiceImpl.java
  42. 42 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserZzbServiceImpl.java
  43. 22 0
      src/main/java/com/ydtech/modules/admin/utils/DxApiConfigurationProperties.java
  44. 44 0
      src/main/resources/mapper/modules/admin/KhglZgdDataMapper.xml
  45. 42 0
      src/main/resources/mapper/modules/admin/KhglZzbDataMapper.xml
  46. 20 0
      src/main/resources/mapper/modules/admin/SysDeptInternalAgentMapper.xml
  47. 95 0
      src/main/resources/mapper/modules/admin/SysTelemarketingWechatDataMapper.xml
  48. 48 0
      src/main/resources/mapper/modules/admin/SysUserLinkZgdUserIdMapper.xml
  49. 48 0
      src/main/resources/mapper/modules/admin/SysUserLinkZzbUserIdMapper.xml
  50. 85 0
      src/main/resources/mapper/modules/admin/SysUserZgdMapper.xml
  51. 85 0
      src/main/resources/mapper/modules/admin/SysUserZzbMapper.xml

+ 7 - 0
pom.xml

@@ -641,6 +641,13 @@
             <version>2.1.7</version>
         </dependency>
 
+        <!--dynamic 多数据源配置 -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.4.0</version>
+        </dependency>
+
     </dependencies>
 
 

+ 7 - 2
src/main/java/com/ydtech/config/DruidConfig.java

@@ -1,3 +1,4 @@
+/*
 package com.ydtech.config;
 
 import com.alibaba.druid.pool.DruidDataSource;
@@ -12,12 +13,16 @@ import org.springframework.context.annotation.Configuration;
 
 import javax.sql.DataSource;
 
+*/
 /**
  * Druid数据源配置
  *
  * @author Yasepix
  * @date Oct 29, 2018
- */
+ *//*
+*/
+/**//*
+
 
 @Configuration  //标识该类被纳入spring容器中实例化并管理
 @ServletComponentScan //用于扫描所有的Servlet、filter、listener
@@ -28,4 +33,4 @@ public class DruidConfig {
     public DataSource druidDataSource() {
         return new DruidDataSource();
     }
-}
+}*/

+ 128 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkZgdUserIdController.java

@@ -0,0 +1,128 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.admin.model.po.SysUserLinkSys;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.SysSysIdsVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.admin.service.SysSysService;
+import com.ydtech.modules.admin.service.SysUserLinkSysService;
+import com.ydtech.modules.admin.service.SysUserLinkZgdUserIdService;
+import com.ydtech.modules.admin.service.SysUserLinkZzbUserIdService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/7/15 9:54
+ *  @Description: 系统关联用户表
+ */
+@Api(tags = "关联掌柜鼎数据")
+@RequestMapping("/sysUserLinkZgdUser")
+@RestController
+public class SysUserLinkZgdUserIdController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkZgdUserIdService sysUserLinkZgdUserIdService;
+
+
+
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("添加修改关联掌柜鼎数据")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getUserId())) {
+            return HttpResult.error("用户工号不能为空");
+        }
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getLinkUserId())) {
+            return HttpResult.error("关联系统用户id不能为空");
+        }
+        try{
+            sysUserLinkZgdUserIdService.addOrUpdate(sysUserLinkZzbUserIdVo);
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("系统关联掌柜鼎数据清空")
+    public HttpResult<Object> delete(@RequestBody SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getUserId())) {
+            return HttpResult.error("用户工号不能为空");
+        }
+        try{
+            sysUserLinkZgdUserIdService.deleteByUserId(sysUserLinkZzbUserIdVo);
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:50
+     *  @Description: 查询掌柜鼎的用户集合
+     */
+    @PostMapping("queryZgdUserPage")
+    @ApiOperation(value = "通过用户id查看掌柜鼎数据")
+    public HttpResult<SysUserLinkZzbUserIdDto> queryData(String userId) {
+
+        try{
+            SysUserLinkZzbUserIdDto data = sysUserLinkZgdUserIdService.queryData(userId);
+            return HttpResult.ok("查询数据成功", data);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:50
+     *  @Description: 查询掌柜鼎的用户关联掌中宝的用户id
+     */
+    @PostMapping("queryUserPage")
+    @ApiOperation(value = "查询用户关联数据集合")
+    public HttpResult<BasePageResult<SysUserLinkUserDto>> queryUserPage(@RequestBody  SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+
+        try{
+            BasePageResult<SysUserLinkUserDto> result = sysUserLinkZgdUserIdService.queryUserPage(sysUserLinkQueryUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 09:50
+     *  @Description: 查询掌中保的用户
+     */
+    @PostMapping("queryUserZgdPage")
+    @ApiOperation(value = "查询用户关联数据集合")
+    public HttpResult<BasePageResult<SysUserZzbOrZgd>> queryUserZgdPage(@RequestBody  SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+
+        try{
+            BasePageResult<SysUserZzbOrZgd> result = sysUserLinkZgdUserIdService.queryUserZgdPage(sysUserLinkQueryUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+}

+ 125 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkZzbUserIdController.java

@@ -0,0 +1,125 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.*;
+import com.ydtech.modules.admin.model.po.SysSys;
+import com.ydtech.modules.admin.model.po.SysUserLinkSys;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.SysSysIdsVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.admin.service.SysSysService;
+import com.ydtech.modules.admin.service.SysUserLinkSysService;
+import com.ydtech.modules.admin.service.SysUserLinkZzbUserIdService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 18:52
+ *  @Description: 掌中保用户关联
+ */
+@Api(tags = "系统关联用户表")
+@RequestMapping("/sysUserLinkZzbUser")
+@RestController
+public class SysUserLinkZzbUserIdController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkZzbUserIdService sysUserLinkZzbUserIdService;
+
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getUserId())) {
+            return HttpResult.error("用户工号不能为空");
+        }
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getLinkUserId())) {
+            return HttpResult.error("关联系统用户id不能为空");
+        }
+        try{
+            sysUserLinkZzbUserIdService.addOrUpdate(sysUserLinkZzbUserIdVo);
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("系统关联清空")
+    public HttpResult<Object> delete(@RequestBody SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        if(StringUtils.isBlank(sysUserLinkZzbUserIdVo.getUserId())) {
+            return HttpResult.error("用户工号不能为空");
+        }
+        try{
+            sysUserLinkZzbUserIdService.deleteByUserId(sysUserLinkZzbUserIdVo);
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 09:50
+     *  @Description: 查询掌中保的用户集合
+     */
+    @PostMapping("queryZgdUserPage")
+    @ApiOperation(value = "通过用户id查看掌柜鼎数据")
+    public HttpResult<SysUserLinkZzbUserIdDto> queryData(String userId) {
+
+        try{
+            SysUserLinkZzbUserIdDto data = sysUserLinkZzbUserIdService.queryData(userId);
+            return HttpResult.ok("查询数据成功", data);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 09:50
+     *  @Description: 查询掌中保的用户关联掌中宝的用户id
+     */
+    @PostMapping("queryUserPage")
+    @ApiOperation(value = "查询用户关联数据集合")
+    public HttpResult<BasePageResult<SysUserLinkUserDto>> queryUserPage(@RequestBody  SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+
+        try{
+            BasePageResult<SysUserLinkUserDto> result = sysUserLinkZzbUserIdService.queryUserPage(sysUserLinkQueryUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 09:50
+     *  @Description: 查询掌中保的用户
+     */
+    @PostMapping("queryUserZzbPage")
+    @ApiOperation(value = "查询用户关联数据集合")
+    public HttpResult<BasePageResult<SysUserZzbOrZgd>> queryUserZzbPage(@RequestBody  SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+
+        try{
+            BasePageResult<SysUserZzbOrZgd> result = sysUserLinkZzbUserIdService.queryUserZzbPage(sysUserLinkQueryUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+}

+ 162 - 0
src/main/java/com/ydtech/modules/admin/controller/khgl/KhglDataController.java

@@ -0,0 +1,162 @@
+package com.ydtech.modules.admin.controller.khgl;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.DxDataDto;
+import com.ydtech.modules.admin.model.dto.DxReportDataDto;
+import com.ydtech.modules.admin.model.dto.GroupDto;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.po.KztDataPermission;
+import com.ydtech.modules.admin.model.vo.DxDataVo;
+import com.ydtech.modules.admin.model.vo.DxQueryVo;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+import com.ydtech.modules.admin.model.vo.KztDataPermissionVo;
+import com.ydtech.modules.admin.service.DxDataService;
+import com.ydtech.modules.admin.service.KhglZgdDataService;
+import com.ydtech.modules.admin.service.KhglZzbDataService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Api(tags = "电销统计数据")
+@RequestMapping("/khglData")
+@RestController
+public class KhglDataController {
+
+    @Autowired
+    private KhglZzbDataService khglZzbDataService;
+
+
+    @Autowired
+    private KhglZgdDataService khglZgdDataService;
+
+    @Autowired
+    private DxDataService dxDataService;
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:03
+     *  @Description:  客户管理统计
+     */
+    @PostMapping("findByUserIdZgb")
+    @ApiOperation(value = "通过用户id查询统计数量掌中保")
+    public HttpResult<KhglDataDto> findByUserIdZgb(@RequestBody KhglDataVo khglDataVo) {
+        KhglDataDto dto =new KhglDataDto();
+        try{
+            if(StringUtils.isBlank(khglDataVo.getUserId())){
+                return HttpResult.error("用户id不能为空!!!");
+            }
+            dto = khglZzbDataService.findByUserId(khglDataVo);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return HttpResult.ok(dto);
+    }
+
+
+    @PostMapping("listByUserIdAndDateTimeZgb")
+    @ApiOperation(value = "通过用户id按天查询统计数量掌中保")
+    public HttpResult<KhglDataDto> listByUserIdAndDateTimeZgb(@RequestBody KhglDataVo khglDataVo) {
+        KhglDataDto  dto = new KhglDataDto();
+        try{
+            if(StringUtils.isBlank(khglDataVo.getUserId())){
+                return HttpResult.error("用户id不能为空!!!");
+            }
+            dto = khglZzbDataService.listByUserIdAndDateTime(khglDataVo);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return HttpResult.ok(dto);
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:03
+     *  @Description:  客户管理统计
+     */
+    @PostMapping("findByUserIdZgd")
+    @ApiOperation(value = "通过用户id查询统计数量掌柜鼎")
+    public HttpResult<KhglDataDto> findByUserIdZgd(@RequestBody KhglDataVo khglDataVo) {
+        KhglDataDto dto =new KhglDataDto();
+        try{
+            if(StringUtils.isBlank(khglDataVo.getUserId())){
+                return HttpResult.error("用户id不能为空!!!");
+            }
+            dto = khglZgdDataService.findByUserId(khglDataVo);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return HttpResult.ok(dto);
+    }
+
+
+    @PostMapping("listByUserIdAndDateTimeZgd")
+    @ApiOperation(value = "通过用户id按天查询统计数量掌柜鼎")
+    public HttpResult<KhglDataDto> listByUserIdAndDateTimeZgd(@RequestBody KhglDataVo khglDataVo) {
+        KhglDataDto  dto = new KhglDataDto();
+        try{
+            if(StringUtils.isBlank(khglDataVo.getUserId())){
+                return HttpResult.error("用户id不能为空!!!");
+            }
+            dto = khglZgdDataService.listByUserIdAndDateTime(khglDataVo);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return HttpResult.ok(dto);
+    }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 10:21
+     *  @Description:  查询电销统计数据 ===========
+     */
+    @PostMapping("/queryDxDataPage")
+    @ApiOperation(value = "查询用户所有的数据分页")
+    public HttpResult<BasePageResult<DxReportDataDto>> queryDxDataPage(@RequestBody DxQueryVo dxQueryVo){
+        return HttpResult.ok(dxDataService.queryPage(dxQueryVo));
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 10:21
+     *  @Description:  查询电销统计数据 ===========
+     */
+    @PostMapping("/queryDxDataDayPage")
+    @ApiOperation(value = "查询用户每天的统计数据")
+    public HttpResult<BasePageResult<DxReportDataDto>> queryDxDataDayPage(@RequestBody DxQueryVo dxQueryVo){
+        if(StringUtils.isBlank(dxQueryVo.getUserId())){
+            return HttpResult.error("用户id不能为空!!!");
+        }
+        if(StringUtils.isBlank(dxQueryVo.getBeginDate())  || StringUtils.isBlank(dxQueryVo.getEndDate())){
+            return HttpResult.error("开始时间和结束时间不能为空!!!");
+        }
+        return HttpResult.ok(dxDataService.queryDxDataDayPage(dxQueryVo));
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 19:31
+     *  @Description: 通过部门id查询分组数据
+     */
+    @GetMapping("/queryGroupListByDeptId")
+    @ApiOperation(value = "通过部门id查询组别集合")
+    public HttpResult<List<GroupDto>> queryGroupListByDeptId(String deptId){
+        if(StringUtils.isBlank(deptId)){
+            return HttpResult.error("部门id不能为空!!!");
+        }
+        return HttpResult.ok(dxDataService.queryGroupListByDeptId(deptId,"3"));
+    }
+}

+ 32 - 0
src/main/java/com/ydtech/modules/admin/dao/KhglZgdDataMapper.java

@@ -0,0 +1,32 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 17:34
+ *  @Description: 查询掌柜鼎数据
+ */
+@DS("khglzgd")
+public interface KhglZgdDataMapper extends BaseMapper<KhglDataDto> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:34
+     *  @Description:  通过用户id、按天统计数据
+     */
+    KhglDataDto listByUserIdAndDateTime(@Param("vo") KhglDataVo khglDataVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:34
+     *  @Description:  通过用户id查询统计数据
+     */
+    KhglDataDto findByUserId(@Param("vo") KhglDataVo khglDataVo);
+}

+ 27 - 0
src/main/java/com/ydtech/modules/admin/dao/KhglZzbDataMapper.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@DS("khglzgb")
+public interface KhglZzbDataMapper extends BaseMapper<KhglDataDto> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:34
+     *  @Description:  通过用户id、按天统计数据
+     */
+    KhglDataDto listByUserIdAndDateTime(@Param("vo") KhglDataVo khglDataVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:34
+     *  @Description:  通过用户id查询统计数据
+     */
+    KhglDataDto findByUserId(@Param("vo") KhglDataVo khglDataVo);
+}

+ 8 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptInternalAgentMapper.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.admin.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.dto.GroupDto;
 import com.ydtech.modules.admin.model.po.SysDeptInternalAgent;
 import org.apache.ibatis.annotations.Param;
 
@@ -21,6 +22,13 @@ public interface SysDeptInternalAgentMapper extends BaseMapper<SysDeptInternalAg
      *  @Description: 查询所有的机构
      */
     List<SysDeptInternalAgent> queryDeptList(@Param(value = "parentIds") String parentIds,@Param(value = "comtype") String comtype);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 9:11
+     *  @Description: 通过部门id和类型查询组的数据
+     */
+    List<GroupDto> queryGroupListByDeptId(@Param(value = "deptId") String deptId, @Param(value = "comtype") String comtype);
 }
 
 

+ 33 - 0
src/main/java/com/ydtech/modules/admin/dao/SysTelemarketingWechatDataMapper.java

@@ -1,7 +1,12 @@
 package com.ydtech.modules.admin.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.DxReportDataDto;
 import com.ydtech.modules.admin.model.po.SysTelemarketingWechatData;
+import com.ydtech.modules.admin.model.vo.DxDataVo;
+import com.ydtech.modules.admin.model.vo.DxQueryVo;
+import org.apache.ibatis.annotations.Param;
 
 /**
 * @author Administrator
@@ -10,7 +15,35 @@ import com.ydtech.modules.admin.model.po.SysTelemarketingWechatData;
 * @Entity generator.domain.SysTelemarketingWechatData
 */
 public interface SysTelemarketingWechatDataMapper extends BaseMapper<SysTelemarketingWechatData> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 11:35
+     *  @Description:  查询用户数据
+     */
+    Page<DxReportDataDto> queryUserDataPage(@Param("page") Page<DxReportDataDto> page, @Param("vo") DxQueryVo dxQueryVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 14:23
+     *  @Description: 通过用户id按天查询数据
+     */
+    Page<DxReportDataDto> queryDataPage(@Param("page") Page<DxReportDataDto> page, @Param("vo") DxQueryVo dxQueryVo);
 
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 16:15
+     *  @Description: 通过用户id查询用户数据
+     */
+    Integer queryCountByUserId(@Param("vo") DxDataVo dxDataVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 17:42
+     *  @Description: 通过用户id查询用户关联数据
+     */
+    DxReportDataDto findDataByUserId(@Param("userId")  String userId);
 }
 
 

+ 28 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkZgdUserIdMapper.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkZgdUserId;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_zgd_user_id(掌柜用户关联客户管理掌中宝用户关联表)】的数据库操作Mapper
+* @createDate 2024-09-06 18:01:22
+* @Entity generator.domain.SysUserLinkZgdUserId
+*/
+public interface SysUserLinkZgdUserIdMapper extends BaseMapper<SysUserLinkZgdUserId> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:35
+     *  @Description:  用户数据分页查询
+     */
+    Page<SysUserLinkUserDto> queryPage(@Param("page") Page<SysUserLinkUserDto> page, @Param("vo") SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}
+
+
+
+

+ 28 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkZzbUserIdMapper.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkZzbUserId;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_zgb_user_id(掌柜用户关联客户管理掌中宝用户关联表)】的数据库操作Mapper
+* @createDate 2024-09-06 18:01:18
+* @Entity generator.domain.SysUserLinkZgbUserId
+*/
+public interface SysUserLinkZzbUserIdMapper extends BaseMapper<SysUserLinkZzbUserId> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 17:42
+     *  @Description: 查询关联数据
+     */
+    Page<SysUserLinkUserDto> queryPage(@Param("page")  Page<SysUserLinkUserDto> page,@Param("vo")  SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}
+
+
+
+

+ 29 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserZgdMapper.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Mapper
+* @createDate 2024-09-06 18:13:19
+* @Entity generator.domain.SysUser
+*/
+@DS("khglzgd")
+public interface SysUserZgdMapper extends BaseMapper<SysUserZzbOrZgd> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 14:39
+     *  @Description: 查询数据
+     */
+    Page<SysUserZzbOrZgd> queryPage(@Param("page") Page<SysUserZzbOrZgd> page, @Param("vo") SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}
+
+
+
+

+ 29 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserZzbMapper.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Mapper
+* @createDate 2024-09-06 18:13:19
+* @Entity generator.domain.SysUser
+*/
+@DS("khglzzb")
+public interface SysUserZzbMapper extends BaseMapper<SysUserZzbOrZgd> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 14:39
+     *  @Description: 查询数据
+     */
+    Page<SysUserZzbOrZgd> queryPage(@Param("page") Page<SysUserZzbOrZgd> page, @Param("vo") SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}
+
+
+
+

+ 48 - 0
src/main/java/com/ydtech/modules/admin/model/dto/DxDataDto.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.admin.model.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 11:38
+ *  @Description:
+ */
+@Data
+public class DxDataDto implements Serializable {
+    /***
+     * 时间
+     */
+    private String  dateTime;
+    /***
+     *  呼出时长
+     */
+    private String  exhaleDuration;
+
+    /***
+     *  呼出数量
+     */
+    private String  outgoingCallsNumber;
+    /***
+     *  接通数量
+     */
+    private String  connectionsNumber;
+    /***
+     * 呼出成功率
+     */
+    private String  callSuccessRate;
+
+
+    public DxDataDto() {
+    }
+
+    public DxDataDto(String dateTime, String exhaleDuration, String outgoingCallsNumber, String connectionsNumber, String callSuccessRate) {
+        this.dateTime = dateTime;
+        this.exhaleDuration = exhaleDuration;
+        this.outgoingCallsNumber = outgoingCallsNumber;
+        this.connectionsNumber = connectionsNumber;
+        this.callSuccessRate = callSuccessRate;
+    }
+}

+ 86 - 0
src/main/java/com/ydtech/modules/admin/model/dto/DxReportDataDto.java

@@ -0,0 +1,86 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/9 10:26
+ *  @Description: 电销列表数据
+ */
+@Data
+@ApiModel("电销统计数据")
+public class DxReportDataDto  implements Serializable {
+
+
+    @ApiModelProperty(value = "部门id")
+    private  String   deptId;
+
+    @ApiModelProperty(value = "部门名称")
+    private  String    deptName;
+
+    @ApiModelProperty(value = "用户组id")
+    private  String   groupId;
+
+    @ApiModelProperty(value = "用户组名称")
+    private  String    groupName;
+
+    @ApiModelProperty(value = "工号")
+    private  String    userId;
+
+
+    @ApiModelProperty(value = "用户名称")
+    private  String    userName;
+
+    /***
+     * 时间
+     */
+    @ApiModelProperty(value = "时间")
+    private String  dateTime;
+    /***
+     *  呼出时长
+     */
+    @ApiModelProperty(value = "呼出时长")
+    private String  exhaleDuration;
+
+    /***
+     *  呼出数量
+     */
+    @ApiModelProperty(value = "呼出数量")
+    private String  outgoingCallsNumber;
+    /***
+     *  接通数量
+     */
+    @ApiModelProperty(value = "接通数量")
+    private String  connectionsNumber;
+    /***
+     * 呼出成功率
+     */
+    @ApiModelProperty(value = "呼出成功率")
+    private String  callSuccessRate;
+
+    @ApiModelProperty(value = "微信人数")
+    private  Integer wxCount;
+    /***
+     * 企业微信数据
+     */
+    @ApiModelProperty(value = "企业微信人数")
+    private  Integer qywxCount;
+
+    /***
+     * 掌柜鼎用户id
+     */
+    @ApiModelProperty(value = "")
+    private  String zgdUserId;
+    /***
+     *  掌中保用户id
+     */
+    @ApiModelProperty(value = "")
+    private  String zzdUserId;
+
+
+}

+ 16 - 0
src/main/java/com/ydtech/modules/admin/model/dto/GroupDto.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("电销组别数据")
+public class GroupDto {
+
+    @ApiModelProperty(value = "部门id")
+    private String deptId;
+
+    @ApiModelProperty(value = "部门名称")
+    private String deptName;
+}

+ 29 - 0
src/main/java/com/ydtech/modules/admin/model/dto/KhglDataDto.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.admin.model.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 16:04
+ *  @Description:  客户管理统计
+ */
+@Data
+@ApiModel("客户管理统计")
+public class KhglDataDto {
+
+
+    /***
+     * 添加时间
+     */
+    @ApiModelProperty(value = "添加时间")
+    private  String  dateTime;
+    /***
+     * 微信数量
+     */
+    @ApiModelProperty(value = "微信人数")
+    private  Integer wxCount;
+}

+ 46 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkQueryUserDto.java

@@ -0,0 +1,46 @@
+package com.ydtech.modules.admin.model.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/9 8:48
+ *  @Description:  用户关联掌柜系统
+ */
+@Data
+public class SysUserLinkQueryUserDto {
+    /***
+     * 用户工号
+     */
+    private String userId;
+
+    /***
+     * 部门id
+     */
+    private  String  deptId;
+
+    /***
+     * 电话
+     */
+    private String  mobile;
+
+    /***
+     *  用户名称
+     */
+    private String  userName;
+
+    /***
+     * 关联用户id
+     */
+    private  String  linkUserId;
+
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+}

+ 59 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkUserDto.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.admin.model.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/9 8:48
+ *  @Description:  用户关联掌柜系统
+ */
+@Data
+public class SysUserLinkUserDto {
+
+
+    /***
+     * 用户工号
+     */
+    private String userId;
+
+    /***
+     * 用户名称
+     */
+    private  String  userName;
+
+    /***
+     * 部门id
+     */
+    private  String  deptId;
+
+    /***
+     * 电话
+     */
+    private  String  mobile;
+
+    /***
+     * 部门名称
+     */
+    private String   deptName;
+
+    /***
+     * 关联用户id
+     */
+    private  String  linkUserId;
+
+    /***
+     * 关联用户名称
+     */
+    private  String   linkUserName;
+
+
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    private int pageNum;
+}

+ 36 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkZzbUserIdDto.java

@@ -0,0 +1,36 @@
+package com.ydtech.modules.admin.model.dto;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/9 8:42
+ *  @Description:  用户关联数据
+ */
+public class SysUserLinkZzbUserIdDto {
+
+    /***
+     * 用户id
+     */
+    private  String  userId;
+
+    /***
+     *  关联用户id
+     */
+    private  String  linkUserId;
+
+    /***
+     * 关联用户名称
+     */
+    private String   linkUserName;
+
+
+    public SysUserLinkZzbUserIdDto() {
+    }
+
+
+    public SysUserLinkZzbUserIdDto(String userId, String linkUserId, String linkUserName) {
+        this.userId = userId;
+        this.linkUserId = linkUserId;
+        this.linkUserName = linkUserName;
+    }
+}

+ 104 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkZgdUserId.java

@@ -0,0 +1,104 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 掌柜用户关联客户管理掌中宝用户关联表
+ * @TableName sys_user_link_zgd_user_id
+ */
+@TableName(value ="sys_user_link_zgd_user_id")
+@Data
+public class SysUserLinkZgdUserId implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 掌柜系统id
+     */
+    private String userId;
+
+    /**
+     * 掌柜鼎系统用户id
+     */
+    private String zgdUserId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createUserId;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        SysUserLinkZgdUserId other = (SysUserLinkZgdUserId) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
+            && (this.getZgdUserId() == null ? other.getZgdUserId() == null : this.getZgdUserId().equals(other.getZgdUserId()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
+        result = prime * result + ((getZgdUserId() == null) ? 0 : getZgdUserId().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", userId=").append(userId);
+        sb.append(", zgdUserId=").append(zgdUserId);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createUserId=").append(createUserId);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public SysUserLinkZgdUserId() {
+    }
+
+    public SysUserLinkZgdUserId(Long id, String userId, String zgdUserId, Date createTime, String createUserId) {
+        this.id = id;
+        this.userId = userId;
+        this.zgdUserId = zgdUserId;
+        this.createTime = createTime;
+        this.createUserId = createUserId;
+    }
+}

+ 105 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkZzbUserId.java

@@ -0,0 +1,105 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 掌柜用户关联客户管理掌中宝用户关联表
+ * @TableName sys_user_link_zgb_user_id
+ */
+@TableName(value ="sys_user_link_zzb_user_id")
+@Data
+public class SysUserLinkZzbUserId implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 掌柜系统id
+     */
+    private String userId;
+
+    /**
+     * 掌中保系统用户id
+     */
+    private String zzbUserId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createUserId;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        SysUserLinkZzbUserId other = (SysUserLinkZzbUserId) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
+            && (this.getZzbUserId() == null ? other.getZzbUserId() == null : this.getZzbUserId().equals(other.getZzbUserId()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getCreateUserId() == null ? other.getCreateUserId() == null : this.getCreateUserId().equals(other.getCreateUserId()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
+        result = prime * result + ((getZzbUserId() == null) ? 0 : getZzbUserId().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getCreateUserId() == null) ? 0 : getCreateUserId().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", userId=").append(userId);
+        sb.append(", zgbUserId=").append(zzbUserId);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", createUserId=").append(createUserId);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+
+    public SysUserLinkZzbUserId() {
+    }
+
+    public SysUserLinkZzbUserId(Long id, String userId, String zzbUserId, Date createTime, String createUserId) {
+        this.id = id;
+        this.userId = userId;
+        this.zzbUserId = zzbUserId;
+        this.createTime = createTime;
+        this.createUserId = createUserId;
+    }
+}

+ 386 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserZzbOrZgd.java

@@ -0,0 +1,386 @@
+package com.ydtech.modules.admin.model.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 用户信息表
+ * @TableName sys_user
+ */
+@TableName(value ="sys_user")
+@Data
+public class SysUserZzbOrZgd implements Serializable {
+    /**
+     * 用户ID
+     */
+    @TableId(type = IdType.AUTO)
+    private Long userId;
+
+
+    @TableField(exist=false)
+    private String id;
+
+    /**
+     * 部门ID
+     */
+    private Long deptId;
+
+    /**
+     * 用户账号
+     */
+    private String userName;
+
+    /**
+     * 用户类型(00:超级管理员)(01:分级普通用户)(02:普通成员)(03:自建角色成员)
+     */
+    private String userType;
+
+    /**
+     * 工号
+     */
+    private String jobNumber;
+
+    /**
+     * 数据范围(1:全部数据权限 2:自定义数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:本人数据)
+     */
+    private Integer dataScope;
+
+    /**
+     * 用户昵称
+     */
+    private String nickName;
+
+    /**
+     * 用户邮箱
+     */
+    private String email;
+
+    /**
+     * 手机号码
+     */
+    private String phoneNumber;
+
+    /**
+     * 用户性别(0男 1女 2未知)
+     */
+    private String sex;
+
+    /**
+     * 头像地址
+     */
+    private String avatar;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    private String status;
+
+    /**
+     * 最后登陆IP
+     */
+    private String loginIp;
+
+    /**
+     * 最后登陆时间
+     */
+    private Date loginDate;
+
+    /**
+     * 企业微信返回的员工id
+     */
+    private String weUserId;
+
+    /**
+     * 职位
+     */
+    private String position;
+
+    /**
+     * 头像缩略图
+     */
+    private String thumbAvatar;
+
+    /**
+     * 企业邮箱
+     */
+    private String bizMail;
+
+    /**
+     * 直属上级
+     */
+    private String leader;
+
+    /**
+     * 座机
+     */
+    private String telephone;
+
+    /**
+     * 扩展属性
+     */
+    private String extAttr;
+
+    /**
+     * 1=已激活,2=已禁用,4=未激活,5=退出企业
+     */
+    private String weUserStatus;
+
+    /**
+     * 员工二维码链接
+     */
+    private String qrCode;
+
+    /**
+     * 成员对外属性
+     */
+    private String externalProfile;
+
+    /**
+     * 对外职务
+     */
+    private String externalPosition;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * openUserId
+     */
+    private String openUserid;
+
+    /**
+     * 离职状态员工,数据分配状态:0:未分配;1:已分配
+     */
+    private Integer isAllocate;
+
+    /**
+     * 员工离职时间
+     */
+    private Date dimissionTime;
+
+    /**
+     * 是否离职1:是;0:否
+     */
+    private Integer isUserLeave;
+
+    /**
+     * 是否开启会话存档 0-未开启 1-开启
+     */
+    private Integer isOpenChat;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建人id
+     */
+    private Long createById;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 更新人id
+     */
+    private Long updateById;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 删除标志(0代表存在 1代表删除)
+     */
+    private Integer delFlag;
+
+    /**
+     * 客服接待状态。1:接待中,2:停止接待
+     */
+    private Integer kfStatus;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        SysUserZzbOrZgd other = (SysUserZzbOrZgd) that;
+        return (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
+            && (this.getDeptId() == null ? other.getDeptId() == null : this.getDeptId().equals(other.getDeptId()))
+            && (this.getUserName() == null ? other.getUserName() == null : this.getUserName().equals(other.getUserName()))
+            && (this.getUserType() == null ? other.getUserType() == null : this.getUserType().equals(other.getUserType()))
+            && (this.getJobNumber() == null ? other.getJobNumber() == null : this.getJobNumber().equals(other.getJobNumber()))
+            && (this.getDataScope() == null ? other.getDataScope() == null : this.getDataScope().equals(other.getDataScope()))
+            && (this.getNickName() == null ? other.getNickName() == null : this.getNickName().equals(other.getNickName()))
+            && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail()))
+            && (this.getPhoneNumber() == null ? other.getPhoneNumber() == null : this.getPhoneNumber().equals(other.getPhoneNumber()))
+            && (this.getSex() == null ? other.getSex() == null : this.getSex().equals(other.getSex()))
+            && (this.getAvatar() == null ? other.getAvatar() == null : this.getAvatar().equals(other.getAvatar()))
+            && (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getLoginIp() == null ? other.getLoginIp() == null : this.getLoginIp().equals(other.getLoginIp()))
+            && (this.getLoginDate() == null ? other.getLoginDate() == null : this.getLoginDate().equals(other.getLoginDate()))
+            && (this.getWeUserId() == null ? other.getWeUserId() == null : this.getWeUserId().equals(other.getWeUserId()))
+            && (this.getPosition() == null ? other.getPosition() == null : this.getPosition().equals(other.getPosition()))
+            && (this.getThumbAvatar() == null ? other.getThumbAvatar() == null : this.getThumbAvatar().equals(other.getThumbAvatar()))
+            && (this.getBizMail() == null ? other.getBizMail() == null : this.getBizMail().equals(other.getBizMail()))
+            && (this.getLeader() == null ? other.getLeader() == null : this.getLeader().equals(other.getLeader()))
+            && (this.getTelephone() == null ? other.getTelephone() == null : this.getTelephone().equals(other.getTelephone()))
+            && (this.getExtAttr() == null ? other.getExtAttr() == null : this.getExtAttr().equals(other.getExtAttr()))
+            && (this.getWeUserStatus() == null ? other.getWeUserStatus() == null : this.getWeUserStatus().equals(other.getWeUserStatus()))
+            && (this.getQrCode() == null ? other.getQrCode() == null : this.getQrCode().equals(other.getQrCode()))
+            && (this.getExternalProfile() == null ? other.getExternalProfile() == null : this.getExternalProfile().equals(other.getExternalProfile()))
+            && (this.getExternalPosition() == null ? other.getExternalPosition() == null : this.getExternalPosition().equals(other.getExternalPosition()))
+            && (this.getAddress() == null ? other.getAddress() == null : this.getAddress().equals(other.getAddress()))
+            && (this.getOpenUserid() == null ? other.getOpenUserid() == null : this.getOpenUserid().equals(other.getOpenUserid()))
+            && (this.getIsAllocate() == null ? other.getIsAllocate() == null : this.getIsAllocate().equals(other.getIsAllocate()))
+            && (this.getDimissionTime() == null ? other.getDimissionTime() == null : this.getDimissionTime().equals(other.getDimissionTime()))
+            && (this.getIsUserLeave() == null ? other.getIsUserLeave() == null : this.getIsUserLeave().equals(other.getIsUserLeave()))
+            && (this.getIsOpenChat() == null ? other.getIsOpenChat() == null : this.getIsOpenChat().equals(other.getIsOpenChat()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateById() == null ? other.getCreateById() == null : this.getCreateById().equals(other.getCreateById()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
+            && (this.getUpdateById() == null ? other.getUpdateById() == null : this.getUpdateById().equals(other.getUpdateById()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
+            && (this.getKfStatus() == null ? other.getKfStatus() == null : this.getKfStatus().equals(other.getKfStatus()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
+        result = prime * result + ((getDeptId() == null) ? 0 : getDeptId().hashCode());
+        result = prime * result + ((getUserName() == null) ? 0 : getUserName().hashCode());
+        result = prime * result + ((getUserType() == null) ? 0 : getUserType().hashCode());
+        result = prime * result + ((getJobNumber() == null) ? 0 : getJobNumber().hashCode());
+        result = prime * result + ((getDataScope() == null) ? 0 : getDataScope().hashCode());
+        result = prime * result + ((getNickName() == null) ? 0 : getNickName().hashCode());
+        result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode());
+        result = prime * result + ((getPhoneNumber() == null) ? 0 : getPhoneNumber().hashCode());
+        result = prime * result + ((getSex() == null) ? 0 : getSex().hashCode());
+        result = prime * result + ((getAvatar() == null) ? 0 : getAvatar().hashCode());
+        result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getLoginIp() == null) ? 0 : getLoginIp().hashCode());
+        result = prime * result + ((getLoginDate() == null) ? 0 : getLoginDate().hashCode());
+        result = prime * result + ((getWeUserId() == null) ? 0 : getWeUserId().hashCode());
+        result = prime * result + ((getPosition() == null) ? 0 : getPosition().hashCode());
+        result = prime * result + ((getThumbAvatar() == null) ? 0 : getThumbAvatar().hashCode());
+        result = prime * result + ((getBizMail() == null) ? 0 : getBizMail().hashCode());
+        result = prime * result + ((getLeader() == null) ? 0 : getLeader().hashCode());
+        result = prime * result + ((getTelephone() == null) ? 0 : getTelephone().hashCode());
+        result = prime * result + ((getExtAttr() == null) ? 0 : getExtAttr().hashCode());
+        result = prime * result + ((getWeUserStatus() == null) ? 0 : getWeUserStatus().hashCode());
+        result = prime * result + ((getQrCode() == null) ? 0 : getQrCode().hashCode());
+        result = prime * result + ((getExternalProfile() == null) ? 0 : getExternalProfile().hashCode());
+        result = prime * result + ((getExternalPosition() == null) ? 0 : getExternalPosition().hashCode());
+        result = prime * result + ((getAddress() == null) ? 0 : getAddress().hashCode());
+        result = prime * result + ((getOpenUserid() == null) ? 0 : getOpenUserid().hashCode());
+        result = prime * result + ((getIsAllocate() == null) ? 0 : getIsAllocate().hashCode());
+        result = prime * result + ((getDimissionTime() == null) ? 0 : getDimissionTime().hashCode());
+        result = prime * result + ((getIsUserLeave() == null) ? 0 : getIsUserLeave().hashCode());
+        result = prime * result + ((getIsOpenChat() == null) ? 0 : getIsOpenChat().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateById() == null) ? 0 : getCreateById().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
+        result = prime * result + ((getUpdateById() == null) ? 0 : getUpdateById().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        result = prime * result + ((getKfStatus() == null) ? 0 : getKfStatus().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", userId=").append(userId);
+        sb.append(", deptId=").append(deptId);
+        sb.append(", userName=").append(userName);
+        sb.append(", userType=").append(userType);
+        sb.append(", jobNumber=").append(jobNumber);
+        sb.append(", dataScope=").append(dataScope);
+        sb.append(", nickName=").append(nickName);
+        sb.append(", email=").append(email);
+        sb.append(", phoneNumber=").append(phoneNumber);
+        sb.append(", sex=").append(sex);
+        sb.append(", avatar=").append(avatar);
+        sb.append(", password=").append(password);
+        sb.append(", status=").append(status);
+        sb.append(", loginIp=").append(loginIp);
+        sb.append(", loginDate=").append(loginDate);
+        sb.append(", weUserId=").append(weUserId);
+        sb.append(", position=").append(position);
+        sb.append(", thumbAvatar=").append(thumbAvatar);
+        sb.append(", bizMail=").append(bizMail);
+        sb.append(", leader=").append(leader);
+        sb.append(", telephone=").append(telephone);
+        sb.append(", extAttr=").append(extAttr);
+        sb.append(", weUserStatus=").append(weUserStatus);
+        sb.append(", qrCode=").append(qrCode);
+        sb.append(", externalProfile=").append(externalProfile);
+        sb.append(", externalPosition=").append(externalPosition);
+        sb.append(", address=").append(address);
+        sb.append(", openUserid=").append(openUserid);
+        sb.append(", isAllocate=").append(isAllocate);
+        sb.append(", dimissionTime=").append(dimissionTime);
+        sb.append(", isUserLeave=").append(isUserLeave);
+        sb.append(", isOpenChat=").append(isOpenChat);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createById=").append(createById);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateBy=").append(updateBy);
+        sb.append(", updateById=").append(updateById);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", remark=").append(remark);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", kfStatus=").append(kfStatus);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 48 - 0
src/main/java/com/ydtech/modules/admin/model/vo/DxDataVo.java

@@ -0,0 +1,48 @@
+package com.ydtech.modules.admin.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 11:51
+ *  @Description:
+ */
+@Data
+public class DxDataVo implements Serializable {
+    /***
+     * 开始时间
+     */
+    private String  beginDate;
+    /***
+     *  结束时间
+     */
+    private String  endDate;
+
+    /***
+     *  用户id
+     */
+    private String  userId;
+
+    /***
+     * 查询时间
+     */
+    private String dateTime;
+
+
+    public DxDataVo(String beginDate, String endDate, String userId) {
+        this.beginDate = beginDate;
+        this.endDate = endDate;
+        this.userId = userId;
+    }
+
+    public DxDataVo() {
+    }
+
+    public DxDataVo(String userId, String dateTime) {
+        this.userId = userId;
+        this.dateTime = dateTime;
+    }
+}

+ 47 - 0
src/main/java/com/ydtech/modules/admin/model/vo/DxQueryVo.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/9 10:06
+ *  @Description:  电销查询数据
+ */
+@Data
+public class DxQueryVo {
+
+    @ApiModelProperty(value = "部门id")
+    private   String  deptId;
+
+    @ApiModelProperty(value = "组id")
+    private   String  groupId;
+
+    @ApiModelProperty(value = "工号")
+    private   String  userId;
+
+    @ApiModelProperty(value = "用户姓名")
+    private   String  userName;
+
+    @ApiModelProperty(value = "电话")
+    private  String mobile;
+
+    @ApiModelProperty(value = "开始时间")
+    private   String  beginDate;
+
+    @ApiModelProperty(value = "结束时间")
+    private   String  endDate;
+
+    @ApiModelProperty(value = "查询时间  1. 当天 2. 近7天  3. 近30天")
+    private   String  type;
+
+    @ApiModelProperty(value = "每页页数")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+}

+ 52 - 0
src/main/java/com/ydtech/modules/admin/model/vo/KhglDataVo.java

@@ -0,0 +1,52 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 16:08
+ *  @Description: 客户管理查询
+ */
+@Data
+@ApiModel("客户管理查询数据")
+public class KhglDataVo {
+
+    /***
+     *  用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private  String  userId;
+    /***
+     *  开始时间
+     */
+    @ApiModelProperty(value = "开始时间")
+    private  String  beginDate;
+
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty(value = "结束时间")
+    private  String  endDate;
+    /***
+     * 查询时间
+     */
+    @ApiModelProperty(value = "查询时间")
+    private String dateTime;
+
+    public KhglDataVo() {
+    }
+
+    public KhglDataVo(String userId, String beginDate, String endDate) {
+        this.userId = userId;
+        this.beginDate = beginDate;
+        this.endDate = endDate;
+    }
+
+    public KhglDataVo(String userId, String dateTime) {
+        this.userId = userId;
+        this.dateTime = dateTime;
+    }
+}

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysDeptInternalAgentAddVo.java

@@ -57,5 +57,11 @@ public class SysDeptInternalAgentAddVo implements Serializable {
     @ApiModelProperty("机构编码")
     private String deptCode;
 
+    /**
+     * 绑定机构
+     */
+    @ApiModelProperty("绑定机构")
+    private String bindDeptId;
+
 
 }

+ 24 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkZzbUserIdVo.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.model.vo;
+
+
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 19:00
+ *  @Description: 添加或者修改
+ */
+@Data
+public class SysUserLinkZzbUserIdVo {
+
+
+    /***
+     * 用户id
+     */
+    private String  userId;
+    /***
+     * 关联系统用户id
+     */
+    private String   linkUserId;
+}

+ 39 - 0
src/main/java/com/ydtech/modules/admin/service/DxDataService.java

@@ -0,0 +1,39 @@
+package com.ydtech.modules.admin.service;
+
+import com.ydtech.modules.admin.model.dto.DxReportDataDto;
+import com.ydtech.modules.admin.model.dto.GroupDto;
+import com.ydtech.modules.admin.model.vo.DxQueryVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.List;
+
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 16:16
+ *  @Description:  客戶管理服務
+ */
+public interface DxDataService  {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 10:58
+     *  @Description: 查询用户统计的数据
+     */
+    BasePageResult<DxReportDataDto> queryPage(DxQueryVo dxQueryVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 10:59
+     *  @Description: 查询用户每天的数据
+     */
+    BasePageResult<DxReportDataDto> queryDxDataDayPage(DxQueryVo dxQueryVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 19:34
+     *  @Description: 通过部门id查询分组
+     */
+    List<GroupDto> queryGroupListByDeptId(String deptId,String type);
+}

+ 33 - 0
src/main/java/com/ydtech/modules/admin/service/KhglZgdDataService.java

@@ -0,0 +1,33 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+
+import java.util.List;
+
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 16:16
+ *  @Description:  客戶管理服務
+ */
+public interface KhglZgdDataService extends IService<KhglDataDto> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 17:31
+     *  @Description: 通过用户id查询统计数
+     */
+    KhglDataDto findByUserId(KhglDataVo khglDataVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 17:31
+     *  @Description: 通过用户id按天分组统计数据
+     */
+    KhglDataDto listByUserIdAndDateTime(KhglDataVo khglDataVo);
+}

+ 33 - 0
src/main/java/com/ydtech/modules/admin/service/KhglZzbDataService.java

@@ -0,0 +1,33 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+
+import java.util.List;
+
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/9/6 16:16
+ *  @Description:  客戶管理服務
+ */
+public interface KhglZzbDataService extends IService<KhglDataDto> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:25
+     *  @Description:  通过用户id、按天分组查询数据
+     */
+    KhglDataDto listByUserIdAndDateTime(KhglDataVo khglDataVo);
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:25
+     *  @Description: 通过用户id查询用户数据
+     */
+    KhglDataDto findByUserId(KhglDataVo khglDataVo);
+}

+ 56 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserLinkZgdUserIdService.java

@@ -0,0 +1,56 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkZzbUserIdDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkZgdUserId;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.SysUserLinkPtlAgreementVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_zgd_user_id(掌柜用户关联客户管理掌中宝用户关联表)】的数据库操作Service
+* @createDate 2024-09-06 18:01:22
+*/
+public interface SysUserLinkZgdUserIdService extends IService<SysUserLinkZgdUserId> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:05
+     *  @Description: 添加或者修改系統用戶id
+     */
+    void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:07
+     *  @Description: 清空
+     */
+    void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 8:39
+     *  @Description:  通过用户id查询用户关联数据
+     */
+    SysUserLinkZzbUserIdDto queryData(String  userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 8:52
+     *  @Description:  通过用户id查询用户关联数据
+     */
+    BasePageResult<SysUserLinkUserDto> queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 14:50
+     *  @Description:  查询掌柜鼎数据
+     */
+    BasePageResult<SysUserZzbOrZgd> queryUserZgdPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}

+ 53 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserLinkZzbUserIdService.java

@@ -0,0 +1,53 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkZzbUserIdDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkZzbUserId;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user_link_zgb_user_id(掌柜用户关联客户管理掌中宝用户关联表)】的数据库操作Service
+* @createDate 2024-09-06 18:01:18
+*/
+public interface SysUserLinkZzbUserIdService extends IService<SysUserLinkZzbUserId> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:05
+     *  @Description: 添加或者修改系統用戶id
+     */
+    void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:07
+     *  @Description: 清空
+     */
+    void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:59
+     *  @Description:  通过用户id查询用户数据
+     */
+    SysUserLinkZzbUserIdDto queryData(String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:59
+     *  @Description: 通过用户数据相关数据查询用户集合
+     */
+    BasePageResult<SysUserLinkUserDto> queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+     /**
+      *  @version
+      *  @author: hxl
+      *  @Date: 2024/9/10 14:35
+      *  @Description:  查询掌中保用户数据
+      */
+    BasePageResult<SysUserZzbOrZgd> queryUserZzbPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto);
+}

+ 19 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserZgdService.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Service
+* @createDate 2024-09-06 18:13:19
+*/
+public interface SysUserZgdService extends IService<SysUserZzbOrZgd> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:22
+     *  @Description:  通过用户id查询用户数据
+     */
+    SysUserZzbOrZgd queryDataByUserId(String zgbUserId);
+}

+ 19 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserZzbService.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Service
+* @createDate 2024-09-06 18:13:19
+*/
+public interface SysUserZzbService extends IService<SysUserZzbOrZgd> {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:22
+     *  @Description:  通过用户id查询用户数据
+     */
+    SysUserZzbOrZgd queryDataByUserId(String zgbUserId);
+}

+ 221 - 0
src/main/java/com/ydtech/modules/admin/service/impl/DxDataServiceImpl.java

@@ -0,0 +1,221 @@
+package com.ydtech.modules.admin.service.impl;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.dao.SysDeptInternalAgentMapper;
+import com.ydtech.modules.admin.dao.SysTelemarketingWechatDataMapper;
+import com.ydtech.modules.admin.model.dto.DxDataDto;
+import com.ydtech.modules.admin.model.dto.DxReportDataDto;
+import com.ydtech.modules.admin.model.dto.GroupDto;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.vo.DxDataVo;
+import com.ydtech.modules.admin.model.vo.DxQueryVo;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+import com.ydtech.modules.admin.service.DxDataService;
+import com.ydtech.modules.admin.service.KhglZgdDataService;
+import com.ydtech.modules.admin.service.KhglZzbDataService;
+import com.ydtech.modules.admin.utils.DxApiConfigurationProperties;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.order.entity.api.pingan.response.TokenResponse;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.http.*;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/28 9:27
+ *  @Description:  战略合作单位报表
+ */
+@Service
+public class DxDataServiceImpl implements DxDataService {
+
+    @Autowired
+    private SysTelemarketingWechatDataMapper sysTelemarketingWechatDataMapper;
+
+    @Autowired
+    private  RestTemplate restTemplate;
+
+    @Autowired
+    private DxApiConfigurationProperties dxApiConfigurationProperties;
+
+    @Autowired
+    private KhglZzbDataService khglZzbDataService;
+
+    @Autowired
+    private  KhglZgdDataService  khglZgdDataService;
+
+    @Autowired
+    private SysDeptInternalAgentMapper sysDeptInternalAgentMapper;
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 11:02
+     *  @Description: 查询用户所有的数据
+     */
+    @Override
+    public BasePageResult<DxReportDataDto> queryPage(DxQueryVo dxQueryVo) {
+        Page<DxReportDataDto> page = new Page<>(dxQueryVo.getPageNum(), dxQueryVo.getPageSize());
+        Page<DxReportDataDto> result = sysTelemarketingWechatDataMapper.queryUserDataPage(page, dxQueryVo);
+        List<DxReportDataDto> records = result.getRecords();
+        List<DxReportDataDto> newRecords =new ArrayList<DxReportDataDto>();
+        if (records != null && records.size() > 0) {
+            for (DxReportDataDto dxReportDataDto : records) {
+                //通过用户id查询电销数据
+                DxDataVo dxDataVo = new DxDataVo(dxQueryVo.getBeginDate(), dxQueryVo.getEndDate(), dxReportDataDto.getUserId());
+                DxDataDto dxData = getDataByPost(dxDataVo, dxApiConfigurationProperties.getFindDataUserIdUrl());
+                if (dxData != null) {
+                    dxReportDataDto.setExhaleDuration(dxData.getExhaleDuration());
+                    dxReportDataDto.setOutgoingCallsNumber(dxData.getOutgoingCallsNumber());
+                    dxReportDataDto.setConnectionsNumber(dxData.getConnectionsNumber());
+                    dxReportDataDto.setCallSuccessRate(dxData.getCallSuccessRate());
+                } else {
+                    dxReportDataDto.setExhaleDuration("0");
+                    dxReportDataDto.setOutgoingCallsNumber("0");
+                    dxReportDataDto.setConnectionsNumber("0");
+                    dxReportDataDto.setCallSuccessRate("-");
+                }
+                int qywx_zgd = 0;
+                int qywx_zzb = 0;
+                //查询掌柜鼎 + 掌中保的数据的企业微信数据
+                String zgdUserId = dxReportDataDto.getZgdUserId();
+                String zzdUserId = dxReportDataDto.getZzdUserId();
+                if (StringUtils.isNotBlank(zgdUserId)) {
+                    KhglDataDto zzbDto = khglZzbDataService.findByUserId(new KhglDataVo(zgdUserId, dxQueryVo.getBeginDate(), dxQueryVo.getEndDate()));
+                    if (zzbDto != null && zzbDto.getWxCount() != null) {
+                        qywx_zzb += zzbDto.getWxCount();
+                    }
+                }
+                if (StringUtils.isNotBlank(zgdUserId)) {
+                    KhglDataDto zgdDto = khglZgdDataService.findByUserId(new KhglDataVo(zzdUserId, dxQueryVo.getBeginDate(), dxQueryVo.getEndDate()));
+                    if (zgdDto != null && zgdDto.getWxCount() != null) {
+                        qywx_zgd += zgdDto.getWxCount();
+
+                        dxReportDataDto.setQywxCount(qywx_zgd + qywx_zzb);
+
+                    }
+                }
+                //查询微信添加数量
+                Integer count = sysTelemarketingWechatDataMapper.queryCountByUserId(new DxDataVo(dxQueryVo.getBeginDate(), dxQueryVo.getEndDate(), dxReportDataDto.getUserId()));
+                dxReportDataDto.setWxCount(count == null ? 0 : count);
+                newRecords.add(dxReportDataDto);
+
+                result.setRecords(newRecords);
+            }
+        }
+        return new BasePageResult<>(dxQueryVo.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                result.getRecords());
+    }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 11:01
+     *  @Description:  查询每天的数据
+     */
+    public BasePageResult<DxReportDataDto> queryDxDataDayPage(DxQueryVo dxQueryVo) {
+        Page<DxReportDataDto> page = new Page<>(dxQueryVo.getPageNum(), dxQueryVo.getPageSize());
+        Page<DxReportDataDto> result = sysTelemarketingWechatDataMapper.queryDataPage(page,dxQueryVo);
+        List<DxReportDataDto> newRecords =new ArrayList<DxReportDataDto>();
+        List<DxReportDataDto> records = result.getRecords();
+        DxReportDataDto user =  sysTelemarketingWechatDataMapper.findDataByUserId(dxQueryVo.getUserId());
+        if (records != null && records.size() > 0) {
+            for (DxReportDataDto dxReportDataDto : records) {
+                dxReportDataDto.setQywxCount(dxReportDataDto.getQywxCount() ==null? 0:dxReportDataDto.getQywxCount());
+                dxReportDataDto.setDeptId(user.getDeptId());
+                dxReportDataDto.setDeptName(user.getDeptName());
+                dxReportDataDto.setGroupId(user.getGroupId());
+                dxReportDataDto.setGroupName(user.getGroupName());
+                dxReportDataDto.setUserId(user.getUserId());
+                dxReportDataDto.setUserName(user.getUserName());
+
+                //通过用户id查询电销数据
+                DxDataDto dxData = getDataByPost(new DxDataVo(dxReportDataDto.getUserId(),dxReportDataDto.getDateTime()), dxApiConfigurationProperties.getFindDataUserIdAndDayUrl());
+                if (dxData != null) {
+                    dxReportDataDto.setExhaleDuration(dxData.getExhaleDuration());
+                    dxReportDataDto.setOutgoingCallsNumber(dxData.getOutgoingCallsNumber());
+                    dxReportDataDto.setConnectionsNumber(dxData.getConnectionsNumber());
+                    dxReportDataDto.setCallSuccessRate(dxData.getCallSuccessRate());
+                } else {
+                    dxReportDataDto.setExhaleDuration("0");
+                    dxReportDataDto.setOutgoingCallsNumber("0");
+                    dxReportDataDto.setConnectionsNumber("0");
+                    dxReportDataDto.setCallSuccessRate("-");
+                }
+                int qywx_zgd = 0;
+                int qywx_zzb = 0;
+                //查询掌柜鼎 + 掌中保的数据的企业微信数据
+                String zgdUserId = dxReportDataDto.getZgdUserId();
+                String zzdUserId = dxReportDataDto.getZzdUserId();
+                if (StringUtils.isNotBlank(zgdUserId)) {
+                    KhglDataDto zzbDto = khglZzbDataService.findByUserId(new KhglDataVo(zgdUserId, dxReportDataDto.getDateTime()));
+                    if (zzbDto != null && zzbDto.getWxCount() != null) {
+                        qywx_zzb += zzbDto.getWxCount();
+                    }
+                }
+                if (StringUtils.isNotBlank(zgdUserId)) {
+                    KhglDataDto zgdDto = khglZgdDataService.findByUserId(new KhglDataVo(zzdUserId, dxReportDataDto.getDateTime()));
+                    if (zgdDto != null && zgdDto.getWxCount() != null) {
+                        qywx_zgd += zgdDto.getWxCount();
+                        dxReportDataDto.setQywxCount(qywx_zgd + qywx_zzb);
+                    }
+                }
+                //查询微信添加数量
+                newRecords.add(dxReportDataDto);
+            }
+            result.setRecords(newRecords);
+        }
+        return new BasePageResult<>(dxQueryVo.getPageNum(), page.getSize(), result.getTotal(), page.getPages(),
+                result.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 14:43
+     *  @Description:  获取电销数据
+     */
+    public DxDataDto getDataByPost(DxDataVo dxDataVo,String  url){
+        HttpHeaders httpHeaders = new HttpHeaders();
+        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+        HttpEntity<DxDataVo> requestEntity = new HttpEntity<>(dxDataVo,httpHeaders);
+        ResponseEntity<HttpResult<DxDataDto>> response =null;
+        ParameterizedTypeReference<HttpResult<DxDataDto>> typeRef = new ParameterizedTypeReference<HttpResult<DxDataDto>>() {};
+        try{
+            response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, typeRef);
+        }catch(Exception e){
+
+        }
+        if(response!=null) {
+           HttpResult<DxDataDto> body =  response.getBody();
+            if (body.getCode() == 200) {
+                DxDataDto data = body.getData();
+                return new DxDataDto(dxDataVo.getDateTime(),data.getExhaleDuration(), data.getOutgoingCallsNumber(), data.getConnectionsNumber(), data.getCallSuccessRate());
+            }
+        }
+        return  new DxDataDto(dxDataVo.getDateTime(),"-", "-", "-", "-");
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 19:35
+     *  @Description: 通过用户id查询组别数据
+     */
+    @Override
+    public List<GroupDto> queryGroupListByDeptId(String deptId,String comtype) {
+        return sysDeptInternalAgentMapper.queryGroupListByDeptId(deptId,comtype);
+    }
+}

+ 53 - 0
src/main/java/com/ydtech/modules/admin/service/impl/KhglZgdDataServiceImpl.java

@@ -0,0 +1,53 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.KhglZgdDataMapper;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+import com.ydtech.modules.admin.service.KhglZgdDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/28 9:27
+ *  @Description:  战略合作单位报表
+ */
+@Service
+@DS("khglzgd")
+public class KhglZgdDataServiceImpl extends ServiceImpl<KhglZgdDataMapper, KhglDataDto>
+        implements KhglZgdDataService {
+
+    @Autowired
+    private KhglZgdDataMapper khglZgdDataMapper;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:32
+     *  @Description: 通过用户id、按天统计数据
+     */
+    @Override
+    public KhglDataDto listByUserIdAndDateTime(KhglDataVo khglDataVo) {
+        return khglZgdDataMapper.listByUserIdAndDateTime(khglDataVo);
+    }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:33
+     *  @Description: 通过用户id查询统计数据
+     *
+     */
+    @Override
+    public KhglDataDto findByUserId(KhglDataVo khglDataVo) {
+        return khglZgdDataMapper.findByUserId(khglDataVo);
+    }
+
+}

+ 49 - 0
src/main/java/com/ydtech/modules/admin/service/impl/KhglZzbDataServiceImpl.java

@@ -0,0 +1,49 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.KhglZzbDataMapper;
+import com.ydtech.modules.admin.model.dto.KhglDataDto;
+import com.ydtech.modules.admin.model.vo.KhglDataVo;
+import com.ydtech.modules.admin.service.KhglZzbDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/6/28 9:27
+ *  @Description:  战略合作单位报表
+ */
+@Service
+@DS("khglzzb")
+public class KhglZzbDataServiceImpl extends ServiceImpl<KhglZzbDataMapper, KhglDataDto>
+        implements KhglZzbDataService {
+
+    @Autowired
+    private  KhglZzbDataMapper  khglZzbDataMapper;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:32
+     *  @Description: 通过用户id、按天统计数据
+     */
+    @Override
+    public KhglDataDto listByUserIdAndDateTime(KhglDataVo khglDataVo) {
+        return khglZzbDataMapper.listByUserIdAndDateTime(khglDataVo);
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 16:33
+     *  @Description: 通过用户id查询统计数据
+     */
+    @Override
+    public KhglDataDto findByUserId(KhglDataVo khglDataVo) {
+        return khglZzbDataMapper.findByUserId(khglDataVo);
+    }
+}

+ 138 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkZgdUserIdServiceImpl.java

@@ -0,0 +1,138 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysUserZgdMapper;
+import com.ydtech.modules.admin.dao.SysUserZzbMapper;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkZzbUserIdDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkZgdUserId;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.admin.service.SysUserLinkZgdUserIdService;
+import com.ydtech.modules.admin.dao.SysUserLinkZgdUserIdMapper;
+import com.ydtech.modules.admin.service.SysUserZgdService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Service实现
+* @createDate 2024-09-06 18:13:19
+*/
+@Service
+public class SysUserLinkZgdUserIdServiceImpl   extends ServiceImpl<SysUserLinkZgdUserIdMapper, SysUserLinkZgdUserId>
+        implements SysUserLinkZgdUserIdService {
+
+
+    @Autowired
+    private SysUserZgdService sysUserZgdService;
+
+    @Autowired
+    private  SysUserLinkZgdUserIdMapper  sysUserLinkZgdUserIdMapper;
+
+    @Autowired
+    private SysUserZgdMapper sysUserZgdMapper;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:47
+     *  @Description:  添加掌柜鼎的绑定的用户id
+     */
+    @Override
+    public void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        LambdaQueryWrapper<SysUserLinkZgdUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserLinkZgdUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
+        SysUserLinkZgdUserId one = this.getOne(lqw);
+        if(one!=null){
+            one.setZgdUserId(sysUserLinkZzbUserIdVo.getLinkUserId());
+            one.setCreateTime(new Date());
+            one.setCreateUserId(new BaseController().getUserId());
+            this.updateById(one);
+        }else{
+            SysUserLinkZgdUserId sysUserLinkZgdUserId =new SysUserLinkZgdUserId(null,sysUserLinkZzbUserIdVo.getUserId(), sysUserLinkZzbUserIdVo.getLinkUserId(), new Date(), new BaseController().getUserId());
+            this.save(sysUserLinkZgdUserId);
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:46
+     *  @Description: 通过用户id删除数据
+     */
+    @Override
+    public void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        LambdaQueryWrapper<SysUserLinkZgdUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserLinkZgdUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
+        int rows = this.baseMapper.delete(lqw);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 8:53
+     *  @Description:  通过用户id查询用户数据
+     */
+    @Override
+    public SysUserLinkZzbUserIdDto queryData(String userId) {
+
+        LambdaQueryWrapper<SysUserLinkZgdUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserLinkZgdUserId::getUserId, userId);
+        SysUserLinkZgdUserId one = this.getOne(lqw);
+        //通过用户id查询用户数据
+        SysUserZzbOrZgd sysUserZzbOrZgd =  sysUserZgdService.queryDataByUserId(one.getZgdUserId());
+        SysUserLinkZzbUserIdDto   dto  = new SysUserLinkZzbUserIdDto(one.getUserId(),one.getZgdUserId(),sysUserZzbOrZgd.getUserName());
+        return dto;
+    }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 8:54
+     *  @Description:  通过用户关联数据查询返回用户集合
+     */
+    @Override
+    public BasePageResult<SysUserLinkUserDto> queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+        Page<SysUserLinkUserDto> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize());
+        Page<SysUserLinkUserDto> sysUserLinkUserDtoBasePageResult = sysUserLinkZgdUserIdMapper.queryPage(page, sysUserLinkQueryUserDto);
+        List<SysUserLinkUserDto> records = sysUserLinkUserDtoBasePageResult.getRecords();
+        List<SysUserLinkUserDto> newRecords =  new ArrayList<>();
+        if(records!=null && records.size()>0){
+            for(SysUserLinkUserDto  sysUserLinkUserDto : records){
+               //查询外部用户id
+                SysUserZzbOrZgd sysUserZzbOrZgd =  sysUserZgdService.queryDataByUserId(sysUserLinkUserDto.getLinkUserId());
+                sysUserLinkUserDto.setLinkUserName(sysUserZzbOrZgd ==null? "":sysUserZzbOrZgd.getUserName());
+                newRecords.add(sysUserLinkUserDto);
+            }
+        }
+        sysUserLinkUserDtoBasePageResult.setRecords(newRecords);
+        return  new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), sysUserLinkUserDtoBasePageResult.getTotal(), page.getPages(),
+                sysUserLinkUserDtoBasePageResult.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 14:53
+     *  @Description: 查询掌柜鼎数据
+     */
+    @Override
+    public BasePageResult<SysUserZzbOrZgd> queryUserZgdPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+        Page<SysUserZzbOrZgd> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize());
+        Page<SysUserZzbOrZgd> sysUserLinkUserDtoBasePageResult = sysUserZgdMapper.queryPage(page, sysUserLinkQueryUserDto);
+        return  new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), sysUserLinkUserDtoBasePageResult.getTotal(), page.getPages(),
+                sysUserLinkUserDtoBasePageResult.getRecords());
+    }
+}
+
+
+
+

+ 138 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkZzbUserIdServiceImpl.java

@@ -0,0 +1,138 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysUserLinkZgdUserIdMapper;
+import com.ydtech.modules.admin.dao.SysUserLinkZzbUserIdMapper;
+import com.ydtech.modules.admin.dao.SysUserZzbMapper;
+import com.ydtech.modules.admin.model.dto.SysUserLinkQueryUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkZzbUserIdDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkZzbUserId;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.model.vo.SysUserLinkZzbUserIdVo;
+import com.ydtech.modules.admin.service.SysUserLinkZzbUserIdService;
+import com.ydtech.modules.admin.service.SysUserZgdService;
+import com.ydtech.modules.admin.service.SysUserZzbService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【sys_user(用户信息表)】的数据库操作Service实现
+ * @createDate 2024-09-06 18:13:19
+ */
+@Service
+public class SysUserLinkZzbUserIdServiceImpl extends ServiceImpl<SysUserLinkZzbUserIdMapper, SysUserLinkZzbUserId>
+        implements SysUserLinkZzbUserIdService {
+
+
+    @Autowired
+    private SysUserZzbService sysUserZzbService;
+
+    @Autowired
+    private SysUserLinkZzbUserIdMapper sysUserLinkZzbUserIdMapper;
+
+    @Autowired
+    private SysUserZzbMapper sysUserZzbMapper;
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:47
+     *  @Description: 绑定掌中保用户id
+     */
+    @Override
+    public void addOrUpdate(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        LambdaQueryWrapper<SysUserLinkZzbUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserLinkZzbUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
+        SysUserLinkZzbUserId one = this.getOne(lqw);
+        if(one!=null){
+            one.setZzbUserId(sysUserLinkZzbUserIdVo.getLinkUserId());
+            one.setCreateTime(new Date());
+            one.setCreateUserId(new BaseController().getUserId());
+            this.updateById(one);
+        }else{
+            SysUserLinkZzbUserId sysUserLinkZzbUserId =new SysUserLinkZzbUserId(null,sysUserLinkZzbUserIdVo.getUserId(), sysUserLinkZzbUserIdVo.getLinkUserId(), new Date(), new BaseController().getUserId());
+            this.save(sysUserLinkZzbUserId);
+        }
+
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/6 19:48
+     *  @Description: 清空掌柜宝的关联用户id
+     */
+    @Override
+    public void deleteByUserId(SysUserLinkZzbUserIdVo sysUserLinkZzbUserIdVo) {
+        LambdaQueryWrapper<SysUserLinkZzbUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserLinkZzbUserId::getUserId, sysUserLinkZzbUserIdVo.getUserId());
+        int rows = this.baseMapper.delete(lqw);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 10:00
+     *  @Description:  通过用户id查询用户相关数据
+     */
+    @Override
+    public SysUserLinkZzbUserIdDto queryData(String userId) {
+        LambdaQueryWrapper<SysUserLinkZzbUserId> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserLinkZzbUserId::getUserId, userId);
+        SysUserLinkZzbUserId one = this.getOne(lqw);
+        //通过用户id查询用户数据
+        SysUserZzbOrZgd sysUserZzbOrZgd =  sysUserZzbService.queryDataByUserId(one.getZzbUserId());
+        SysUserLinkZzbUserIdDto   dto  = new SysUserLinkZzbUserIdDto(one.getUserId(),one.getZzbUserId(),sysUserZzbOrZgd.getUserName());
+        return dto;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 10:00
+     *  @Description:  通过用户参数查询用户数据
+     */
+    @Override
+    public BasePageResult<SysUserLinkUserDto> queryUserPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+        Page<SysUserLinkUserDto> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize());
+        Page<SysUserLinkUserDto> sysUserLinkUserDtoBasePageResult = sysUserLinkZzbUserIdMapper.queryPage(page, sysUserLinkQueryUserDto);
+        List<SysUserLinkUserDto> records = sysUserLinkUserDtoBasePageResult.getRecords();
+        List<SysUserLinkUserDto> newRecords =  new ArrayList<>();
+        if(records!=null && records.size()>0){
+            for(SysUserLinkUserDto  sysUserLinkUserDto : records){
+                //查询外部用户id
+                SysUserZzbOrZgd sysUserZzbOrZgd =  sysUserZzbService.queryDataByUserId(sysUserLinkUserDto.getLinkUserId());
+                sysUserLinkUserDto.setLinkUserName(sysUserZzbOrZgd==null?"":sysUserZzbOrZgd.getUserName());
+                newRecords.add(sysUserLinkUserDto);
+            }
+        }
+        sysUserLinkUserDtoBasePageResult.setRecords(newRecords);
+        return  new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), sysUserLinkUserDtoBasePageResult.getTotal(), page.getPages(),
+                sysUserLinkUserDtoBasePageResult.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/10 14:53
+     *  @Description: 查询掌中保数据
+     */
+    @Override
+    public BasePageResult<SysUserZzbOrZgd> queryUserZzbPage(SysUserLinkQueryUserDto sysUserLinkQueryUserDto) {
+        Page<SysUserZzbOrZgd> page = new Page<>(sysUserLinkQueryUserDto.getPageNum(), sysUserLinkQueryUserDto.getPageSize());
+        Page<SysUserZzbOrZgd> sysUserLinkUserDtoBasePageResult = sysUserZzbMapper.queryPage(page, sysUserLinkQueryUserDto);
+        return  new BasePageResult<>(sysUserLinkQueryUserDto.getPageNum(), page.getSize(), sysUserLinkUserDtoBasePageResult.getTotal(), page.getPages(),
+                sysUserLinkUserDtoBasePageResult.getRecords());
+    }
+}
+
+
+
+

+ 42 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserZgdServiceImpl.java

@@ -0,0 +1,42 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysUserZgdMapper;
+import com.ydtech.modules.admin.dao.SysUserZzbMapper;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.service.SysUserZgdService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Service实现
+* @createDate 2024-09-06 18:13:19
+*/
+@DS("khglzgd")
+@Service
+public class SysUserZgdServiceImpl extends ServiceImpl<SysUserZgdMapper, SysUserZzbOrZgd>
+    implements SysUserZgdService {
+
+    @Autowired
+    private SysUserZgdMapper sysUserZgdMapper;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:23
+     *  @Description: 通过用户id查询用户数据
+     */
+    @Override
+    public SysUserZzbOrZgd queryDataByUserId(String zgbUserId) {
+        LambdaQueryWrapper<SysUserZzbOrZgd> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserZzbOrZgd::getUserId, zgbUserId);
+        return this.getOne(lqw);
+    }
+}
+
+
+
+

+ 42 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserZzbServiceImpl.java

@@ -0,0 +1,42 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysUserZzbMapper;
+import com.ydtech.modules.admin.model.po.SysUserZzbOrZgd;
+import com.ydtech.modules.admin.service.SysUserZgdService;
+import com.ydtech.modules.admin.service.SysUserZzbService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 针对表【sys_user(用户信息表)】的数据库操作Service实现
+* @createDate 2024-09-06 18:13:19
+*/
+@DS("khglzzb")
+@Service
+public class SysUserZzbServiceImpl extends ServiceImpl<SysUserZzbMapper, SysUserZzbOrZgd>
+    implements SysUserZzbService {
+
+    @Autowired
+    private SysUserZzbMapper sysUserZzbMapper;
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/9 9:23
+     *  @Description: 通过用户id查询用户数据
+     */
+    @Override
+    public SysUserZzbOrZgd queryDataByUserId(String zgbUserId) {
+        LambdaQueryWrapper<SysUserZzbOrZgd> lqw = new LambdaQueryWrapper<>();
+        lqw.eq( SysUserZzbOrZgd::getUserId, zgbUserId);
+        return this.getOne(lqw);
+    }
+}
+
+
+
+

+ 22 - 0
src/main/java/com/ydtech/modules/admin/utils/DxApiConfigurationProperties.java

@@ -0,0 +1,22 @@
+package com.ydtech.modules.admin.utils;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @description: 平安财险 配置文件
+ * @author: wenks
+ * @date: 2024/3/25 9:47
+ **/
+@Data
+@Component
+@ConfigurationProperties(prefix = "dx.api")
+public class DxApiConfigurationProperties {
+
+    //通过用户id和时间查询数据
+    private String findDataUserIdUrl;
+
+    //通过用户id和当天日期查询数据
+    private String findDataUserIdAndDayUrl;
+}

+ 44 - 0
src/main/resources/mapper/modules/admin/KhglZgdDataMapper.xml

@@ -0,0 +1,44 @@
+<?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="com.ydtech.modules.admin.dao.KhglZgdDataMapper">
+
+
+    <select id="listByUserIdAndDateTime" resultType="com.ydtech.modules.admin.model.dto.KhglDataDto">
+        SELECT
+            DATE( wc.add_time ) AS dateTime,
+            SUM( CASE WHEN wc.customer_type = 1 THEN 1 ELSE 0 END ) AS wxCount,
+            SUM( CASE WHEN wc.customer_type = 2 THEN 1 ELSE 0 END ) AS qywxCount
+        FROM
+          we_customer wc
+         LEFT JOIN sys_user su ON wc.add_user_id = su.we_user_id
+        <where>
+            wc.del_flag = 0
+            AND su.user_id = #{vo.userId}
+            <if test="vo.beginDate != null and vo.beginDate != ''  and vo.endDate != null and vo.endDate != '' ">
+                AND  wc.add_time  BETWEEN  #{vo.beginDate}  AND  #{vo.endDate}
+            </if>
+        </where>
+        GROUP BY
+        DATE( wc.add_time )
+        ORDER BY
+        DATE(
+        wc.add_time)
+    </select>
+
+
+    <select id="findByUserId" resultType="com.ydtech.modules.admin.model.dto.KhglDataDto">
+        SELECT
+            SUM( CASE WHEN wc.customer_type = 1 THEN 1 ELSE 0 END ) AS wxCount,
+            SUM( CASE WHEN wc.customer_type = 2 THEN 1 ELSE 0 END ) AS qywxCount
+        FROM
+            we_customer wc
+                LEFT JOIN sys_user su ON wc.add_user_id = su.we_user_id
+        <where>
+            wc.del_flag = 0
+            AND su.user_id = #{vo.userId}
+            <if test="vo.beginDate != null and vo.beginDate != ''  and vo.endDate != null and vo.endDate != '' ">
+                AND  wc.add_time  BETWEEN  #{vo.beginDate}  AND  #{vo.endDate}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 42 - 0
src/main/resources/mapper/modules/admin/KhglZzbDataMapper.xml

@@ -0,0 +1,42 @@
+<?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="com.ydtech.modules.admin.dao.KhglZzbDataMapper">
+
+
+    <select id="listByUserIdAndDateTime" resultType="com.ydtech.modules.admin.model.dto.KhglDataDto">
+        SELECT
+            DATE( wc.add_time ) AS dateTime,
+            ifNULL(count(0),0)  AS qywxCount
+        FROM
+          we_customer wc
+         LEFT JOIN sys_user su ON wc.add_user_id = su.we_user_id
+        <where>
+            wc.del_flag = 0
+            AND su.user_id = #{vo.userId}
+            <if test="vo.beginDate != null and vo.beginDate != ''  and vo.endDate != null and vo.endDate != '' ">
+                AND  wc.add_time  BETWEEN  #{vo.beginDate}  AND  #{vo.endDate}
+            </if>
+        </where>
+        GROUP BY
+        DATE( wc.add_time )
+        ORDER BY
+        DATE(
+        wc.add_time)
+    </select>
+
+
+    <select id="findByUserId" resultType="com.ydtech.modules.admin.model.dto.KhglDataDto">
+        SELECT
+           ifNULL(count(0),0) AS qywxCount
+        FROM
+            we_customer wc
+                LEFT JOIN sys_user su ON wc.add_user_id = su.we_user_id
+        <where>
+            wc.del_flag = 0
+            AND su.user_id = #{vo.userId}
+            <if test="vo.beginDate != null and vo.beginDate != ''  and vo.endDate != null and vo.endDate != '' ">
+                AND  wc.add_time  BETWEEN  #{vo.beginDate}  AND  #{vo.endDate}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 20 - 0
src/main/resources/mapper/modules/admin/SysDeptInternalAgentMapper.xml

@@ -36,4 +36,24 @@
              </if>
          </where>
     </select>
+
+    <select id="queryGroupListByDeptId" resultType="com.ydtech.modules.admin.model.dto.GroupDto">
+        select
+            p.id AS deptId,
+            CONCAT( dept.NAME, "-", ppp.NAME, "-", p.NAME ) AS deptName
+       from
+           sys_dept_internal_agent p
+           LEFT JOIN sys_dept_internal_agent pp ON p.parent_id = pp.id
+           LEFT JOIN sys_dept_internal_agent ppp ON pp.parent_id = ppp.id
+           LEFT JOIN sys_dept dept ON ppp.bind_dept_id = dept.id
+        <where>
+             dept.id  is not null
+            <if test="comtype != null and comtype != ''">
+                AND p.comtype = #{comtype}
+            </if>
+            <if test="deptId != null and deptId != ''">
+                AND dept.id  like concat(#{deptId},'%')
+            </if>
+        </where>
+    </select>
 </mapper>

+ 95 - 0
src/main/resources/mapper/modules/admin/SysTelemarketingWechatDataMapper.xml

@@ -16,4 +16,99 @@
         id,user_id,number,
         create_time, update_time
     </sql>
+
+    <select id="queryUserDataPage" resultType="com.ydtech.modules.admin.model.dto.DxReportDataDto">
+        SELECT
+            t1.id AS userId,
+            t1.NAME AS userName,
+            t1.mobile AS mobile,
+            t2.id AS deptId,
+            t2.`name` AS deptName,
+            t3.NAME AS groupName,
+            t3.id AS groupId,
+            zgd.zgd_user_id AS zgdUserId,
+            zzb.zzb_user_id AS zzdUserId
+        FROM
+        sys_user t1
+        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+        LEFT JOIN sys_user_link_dept_internal_agent t4 ON t4.user_id = t1.id
+        LEFT JOIN sys_dept_internal_agent t3 ON t2.id = t3.bind_dept_id
+        LEFT JOIN sys_user_link_zgd_user_id zgd ON t2.id = zgd.user_id
+        LEFT JOIN sys_user_link_zzb_user_id zzb ON t2.id = zzb.user_id
+        WHERE
+        t1.`status` = 1
+        <if test='vo !=null  '>
+            <if test='vo.userName !=null and vo.userName!="" '>
+                and t1.name like CONCAT('%', #{vo.userName}, '%')
+            </if>
+            <if test='vo.userId !=null and vo.userId!="" '>
+                and t1.id = #{vo.userId}
+            </if>
+            <if test='vo.deptId !=null and vo.deptId!=""  '>
+                and t2.id like CONCAT('', #{vo.deptId}, '%')
+            </if>
+            <if test='vo.mobile !=null and vo.mobile!=""  '>
+                and t1.mobile = #{vo.mobile}
+            </if>
+            <if test='vo.groupId !=null and vo.groupId!=""  '>
+                and t3.id like CONCAT('', #{vo.groupId}, '%')
+            </if>
+        </if>
+        order by t1.id
+    </select>
+    <select id="queryDataPage" resultType="com.ydtech.modules.admin.model.dto.DxReportDataDto">
+        select
+           a.dateStr as dateTime,
+           ifnull(b.number,0) as wxCount
+        from
+        (   SELECT
+        DATE_ADD(#{vo.beginDate}, INTERVAL seq.seq DAY) AS dateStr
+        FROM (
+        SELECT (t3.num*100 + t2.num*10 + t1.num) AS seq
+        FROM (SELECT 0 AS num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) AS t1,
+        (SELECT 0 AS num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) AS t2,
+        (SELECT 0 AS num UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) AS t3
+        ) AS seq
+        WHERE DATE_ADD(#{vo.beginDate}, INTERVAL seq.seq DAY) &lt;=  #{vo.endDate}  order  BY  DATE_ADD(#{vo.beginDate}, INTERVAL seq.seq DAY)
+        )  a
+        left  join  ( select  create_time,user_id,number  from sys_telemarketing_wechat_data  where   user_id =#{vo.userId})   b    ON
+        a.dateStr = date(b.create_time)
+        order by  a.dateStr
+    </select>
+
+    <select id="queryCountByUserId" resultType="java.lang.Integer">
+        SELECT
+            sum(number)
+        FROM
+            sys_telemarketing_wechat_data
+        <where>
+            user_id =#{vo.userId}
+            <if test="vo.beginDate != null and vo.beginDate != ''  and vo.endDate != null and vo.endDate != '' ">
+                AND  calldate  BETWEEN  #{vo.beginDate}  AND  #{vo.endDate}
+            </if>
+        </where>
+    </select>
+
+    <select id="findDataByUserId" resultType="com.ydtech.modules.admin.model.dto.DxReportDataDto">
+        SELECT
+        t1.id AS userId,
+        t1.NAME AS userName,
+        t1.mobile AS mobile,
+        t2.id AS deptId,
+        t2.`name` AS deptName,
+        t3.NAME AS groupName,
+        t3.id AS groupId,
+        zgd.zgd_user_id AS zgdUserId,
+        zzb.zzb_user_id AS zzdUserId
+        FROM
+        sys_user t1
+        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+        LEFT JOIN sys_user_link_dept_internal_agent t4 ON t4.user_id = t1.id
+        LEFT JOIN sys_dept_internal_agent t3 ON t2.id = t3.bind_dept_id
+        LEFT JOIN sys_user_link_zgd_user_id zgd ON t2.id = zgd.user_id
+        LEFT JOIN sys_user_link_zzb_user_id zzb ON t2.id = zzb.user_id
+        WHERE
+        t1.`status` = 1
+        and t1.id = #{userId}
+    </select>
 </mapper>

+ 48 - 0
src/main/resources/mapper/modules/admin/SysUserLinkZgdUserIdMapper.xml

@@ -0,0 +1,48 @@
+<?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="com.ydtech.modules.admin.dao.SysUserLinkZgdUserIdMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysUserLinkZgdUserId">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="zgdUserId" column="zgd_user_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,user_id,zgd_user_id,
+        create_time,create_user_id
+    </sql>
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.dto.SysUserLinkUserDto">
+        SELECT
+            su.id as userId,
+            su.NAME as userName,
+            su.dept_id as  deptId,
+            dept.NAME AS deptName,
+            zgd.zgd_user_id AS linkUserId,
+            su.mobile  as  mobile
+        FROM
+            sys_user su
+                LEFT JOIN sys_dept dept ON su.dept_id = dept.id
+                LEFT JOIN sys_user_link_zgd_user_id  zgd ON zgd.user_id = su.id
+        <where>
+            su.`status`=1
+            <if test="vo.userName != null and vo.userName != ''">
+                AND su.NAME like CONCAT('%', #{vo.userName}, '%')
+            </if>
+            <if test="vo.mobile != null and vo.mobile != ''">
+                AND su.mobile  = #{vo.mobile }
+            </if>
+            <if test="vo.userId != null and vo.userId != ''">
+                AND su.id = #{vo.userId}
+            </if>
+            <if test="vo.deptId != null and vo.deptId != ''">
+                AND su.dept_id like CONCAT('%', #{deptId}, '%')
+            </if>
+        </where>
+          order by su.id
+    </select>
+</mapper>

+ 48 - 0
src/main/resources/mapper/modules/admin/SysUserLinkZzbUserIdMapper.xml

@@ -0,0 +1,48 @@
+<?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="com.ydtech.modules.admin.dao.SysUserLinkZzbUserIdMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysUserLinkZzbUserId">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="zzbUserId" column="zzb_user_id" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,user_id,zzb_user_id,
+        create_time,create_user_id
+    </sql>
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.dto.SysUserLinkUserDto">
+        SELECT
+        su.id as userId,
+        su.NAME as userName,
+        su.dept_id as  deptId,
+        dept.NAME AS deptName,
+        zzb.zzb_user_id AS linkUserId,
+        su.mobile  as  mobile
+        FROM
+        sys_user su
+        LEFT JOIN sys_dept dept ON su.dept_id = dept.id
+        LEFT JOIN sys_user_link_zzb_user_id  zzb ON zzb.user_id = su.id
+        <where>
+            su.`status`=1
+            <if test="vo.userName != null and vo.userName != ''">
+                AND su.NAME like CONCAT('%', #{vo.userName}, '%')
+            </if>
+            <if test="vo.mobile != null and vo.mobile != ''">
+                AND su.mobile  = #{vo.mobile }
+            </if>
+            <if test="vo.userId != null and vo.userId != ''">
+                AND su.id = #{vo.userId}
+            </if>
+            <if test="vo.deptId != null and vo.deptId != ''">
+                AND su.dept_id like CONCAT('%', #{deptId}, '%')
+            </if>
+        </where>
+        order by su.id
+    </select>
+</mapper>

+ 85 - 0
src/main/resources/mapper/modules/admin/SysUserZgdMapper.xml

@@ -0,0 +1,85 @@
+<?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="com.ydtech.modules.admin.dao.SysUserZgdMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysUserZzbOrZgd">
+            <id property="userId" column="user_id" jdbcType="BIGINT"/>
+            <result property="deptId" column="dept_id" jdbcType="BIGINT"/>
+            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+            <result property="userType" column="user_type" jdbcType="CHAR"/>
+            <result property="jobNumber" column="job_number" jdbcType="VARCHAR"/>
+            <result property="dataScope" column="data_scope" jdbcType="TINYINT"/>
+            <result property="nickName" column="nick_name" jdbcType="VARCHAR"/>
+            <result property="email" column="email" jdbcType="VARCHAR"/>
+            <result property="phoneNumber" column="phone_number" jdbcType="VARCHAR"/>
+            <result property="sex" column="sex" jdbcType="CHAR"/>
+            <result property="avatar" column="avatar" jdbcType="VARCHAR"/>
+            <result property="password" column="password" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="CHAR"/>
+            <result property="loginIp" column="login_ip" jdbcType="VARCHAR"/>
+            <result property="loginDate" column="login_date" jdbcType="TIMESTAMP"/>
+            <result property="weUserId" column="we_user_id" jdbcType="VARCHAR"/>
+            <result property="position" column="position" jdbcType="VARCHAR"/>
+            <result property="thumbAvatar" column="thumb_avatar" jdbcType="VARCHAR"/>
+            <result property="bizMail" column="biz_mail" jdbcType="VARCHAR"/>
+            <result property="leader" column="leader" jdbcType="VARCHAR"/>
+            <result property="telephone" column="telephone" jdbcType="VARCHAR"/>
+            <result property="extAttr" column="ext_attr" jdbcType="VARCHAR"/>
+            <result property="weUserStatus" column="we_user_status" jdbcType="CHAR"/>
+            <result property="qrCode" column="qr_code" jdbcType="VARCHAR"/>
+            <result property="externalProfile" column="external_profile" jdbcType="VARCHAR"/>
+            <result property="externalPosition" column="external_position" jdbcType="VARCHAR"/>
+            <result property="address" column="address" jdbcType="VARCHAR"/>
+            <result property="openUserid" column="open_userid" jdbcType="VARCHAR"/>
+            <result property="isAllocate" column="is_allocate" jdbcType="TINYINT"/>
+            <result property="dimissionTime" column="dimission_time" jdbcType="TIMESTAMP"/>
+            <result property="isUserLeave" column="is_user_leave" jdbcType="TINYINT"/>
+            <result property="isOpenChat" column="is_open_chat" jdbcType="TINYINT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createById" column="create_by_id" jdbcType="BIGINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateById" column="update_by_id" jdbcType="BIGINT"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="TINYINT"/>
+            <result property="kfStatus" column="kf_status" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        user_id,dept_id,user_name,
+        user_type,job_number,data_scope,
+        nick_name,email,phone_number,
+        sex,avatar,password,
+        status,login_ip,login_date,
+        we_user_id,position,thumb_avatar,
+        biz_mail,leader,telephone,
+        ext_attr,we_user_status,qr_code,
+        external_profile,external_position,address,
+        open_userid,is_allocate,dimission_time,
+        is_user_leave,is_open_chat,create_by,
+        create_by_id,create_time,update_by,
+        update_by_id,update_time,remark,
+        del_flag,kf_status
+    </sql>
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.po.SysUserZzbOrZgd">
+       select
+          user_id  as userId,
+          user_id  as id,
+          user_name  as userName,
+          nick_name  as  nickName,
+          phone_number  as  phoneNumber
+        from
+            sys_user
+       <where>
+           <if test="vo.userName != null and vo.userName != ''">
+               AND  user_name like CONCAT('%', #{vo.userName}, '%')
+           </if>
+           <if test="vo.mobile != null and vo.mobile != ''">
+               AND phone_number  = #{vo.mobile }
+           </if>
+       </where>
+    </select>
+</mapper>

+ 85 - 0
src/main/resources/mapper/modules/admin/SysUserZzbMapper.xml

@@ -0,0 +1,85 @@
+<?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="com.ydtech.modules.admin.dao.SysUserZzbMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysUserZzbOrZgd">
+            <id property="userId" column="user_id" jdbcType="BIGINT"/>
+            <result property="deptId" column="dept_id" jdbcType="BIGINT"/>
+            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+            <result property="userType" column="user_type" jdbcType="CHAR"/>
+            <result property="jobNumber" column="job_number" jdbcType="VARCHAR"/>
+            <result property="dataScope" column="data_scope" jdbcType="TINYINT"/>
+            <result property="nickName" column="nick_name" jdbcType="VARCHAR"/>
+            <result property="email" column="email" jdbcType="VARCHAR"/>
+            <result property="phoneNumber" column="phone_number" jdbcType="VARCHAR"/>
+            <result property="sex" column="sex" jdbcType="CHAR"/>
+            <result property="avatar" column="avatar" jdbcType="VARCHAR"/>
+            <result property="password" column="password" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="CHAR"/>
+            <result property="loginIp" column="login_ip" jdbcType="VARCHAR"/>
+            <result property="loginDate" column="login_date" jdbcType="TIMESTAMP"/>
+            <result property="weUserId" column="we_user_id" jdbcType="VARCHAR"/>
+            <result property="position" column="position" jdbcType="VARCHAR"/>
+            <result property="thumbAvatar" column="thumb_avatar" jdbcType="VARCHAR"/>
+            <result property="bizMail" column="biz_mail" jdbcType="VARCHAR"/>
+            <result property="leader" column="leader" jdbcType="VARCHAR"/>
+            <result property="telephone" column="telephone" jdbcType="VARCHAR"/>
+            <result property="extAttr" column="ext_attr" jdbcType="VARCHAR"/>
+            <result property="weUserStatus" column="we_user_status" jdbcType="CHAR"/>
+            <result property="qrCode" column="qr_code" jdbcType="VARCHAR"/>
+            <result property="externalProfile" column="external_profile" jdbcType="VARCHAR"/>
+            <result property="externalPosition" column="external_position" jdbcType="VARCHAR"/>
+            <result property="address" column="address" jdbcType="VARCHAR"/>
+            <result property="openUserid" column="open_userid" jdbcType="VARCHAR"/>
+            <result property="isAllocate" column="is_allocate" jdbcType="TINYINT"/>
+            <result property="dimissionTime" column="dimission_time" jdbcType="TIMESTAMP"/>
+            <result property="isUserLeave" column="is_user_leave" jdbcType="TINYINT"/>
+            <result property="isOpenChat" column="is_open_chat" jdbcType="TINYINT"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createById" column="create_by_id" jdbcType="BIGINT"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateById" column="update_by_id" jdbcType="BIGINT"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="remark" column="remark" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="TINYINT"/>
+            <result property="kfStatus" column="kf_status" jdbcType="TINYINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        user_id,dept_id,user_name,
+        user_type,job_number,data_scope,
+        nick_name,email,phone_number,
+        sex,avatar,password,
+        status,login_ip,login_date,
+        we_user_id,position,thumb_avatar,
+        biz_mail,leader,telephone,
+        ext_attr,we_user_status,qr_code,
+        external_profile,external_position,address,
+        open_userid,is_allocate,dimission_time,
+        is_user_leave,is_open_chat,create_by,
+        create_by_id,create_time,update_by,
+        update_by_id,update_time,remark,
+        del_flag,kf_status
+    </sql>
+    <select id="queryPage" resultType="com.ydtech.modules.admin.model.po.SysUserZzbOrZgd">
+       select
+            user_id  as userId,
+            user_id  as id,
+            user_name  as userName,
+            nick_name  as  nickName,
+            phone_number  as  phoneNumber
+        from
+            sys_user
+       <where>
+           <if test="vo.userName != null and vo.userName != ''">
+               AND  user_name like CONCAT('%', #{vo.userName}, '%')
+           </if>
+           <if test="vo.mobile != null and vo.mobile != ''">
+               AND phone_number  = #{vo.mobile }
+           </if>
+       </where>
+    </select>
+</mapper>