diff --git a/README.md b/README.md
index 188de53182663e827de441429dc0e084b1de8235..75d9079c220cfb7f5a03f43f5b7a8bb733d72004 100644
--- a/README.md
+++ b/README.md
@@ -8,16 +8,12 @@
-[](https://gitee.com/LinkWeChat/link-wechat/stargazers)
-[](https://gitee.com/LinkWeChat/link-wechat/members)
-[](https://gitee.com/LinkWeChat/link-wechat/blob/master/LICENSE)
+
+
+
-
-
-
-
@@ -25,15 +21,6 @@

----
-
- **如果您觉得我们的开源项目很有帮助,请帮忙点击右上方的 :star: Star ,您的认可就是我们最大的动力,谢谢支持!:heart:**
-
----
-
-[LinkWeChat 官方帮助文档——语雀](https://www.yuque.com/linkwechat/help)
-
-
### 平台简介
> LinkWeChat, Link to WeChat
@@ -226,13 +213,13 @@ com.linkwechat
#### 在线体验
-演示地址:http://demo.linkwechat.cn
+演示地址:http://106.13.201.219/
-演示账号/密码:Wecome/123456
+演示账号/密码:test/123456
#### 开发进度
-
+
### 联系作者加入群
@@ -321,4 +308,4 @@ LinkWeChat 开源版遵循 [GPL-3.0](https://gitee.com/LinkWeChat/link-wechat/bl
---
- **如果您觉得我们的开源项目很有帮助,请帮忙点击右上方的 :star: Star ,您的认可就是我们最大的动力,谢谢支持!:heart:**
\ No newline at end of file
+ **如果您觉得我们的开源项目很有帮助,请帮忙点击右上方的 :star: Star ,您的认可就是我们最大的动力,谢谢支持!:heart:**
diff --git a/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java b/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java
index 721558f7824be4a2b342f15e0cd55dc24efc93a0..760220aead86479ae9da0c2c6068749745e0e679 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java
@@ -16,7 +16,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, PageHelperAutoConfiguration.class})
@MapperScan("com.linkwechat.*.mapper")
-@ForestScan(basePackages = "com.linkwechat.wecom.client")
+@ForestScan(basePackages = {"com.linkwechat.wecom.client","com.linkwechat.wecom.wxclient"})
@EnableAsync
@EnableDiscoveryClient
public class LinkWeChatApplication {
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/system/SysLoginController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/system/SysLoginController.java
index 7c1d3428b8210dfe02c41a6ae0225bacadb309c2..ed5e2a3fe8cb983fa02c0a3db9c9c53edd71a681 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/system/SysLoginController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/system/SysLoginController.java
@@ -12,7 +12,7 @@ import com.linkwechat.framework.web.service.SysPermissionService;
import com.linkwechat.framework.web.service.TokenService;
import com.linkwechat.system.service.ISysMenuService;
import com.linkwechat.wecom.client.WeAccessTokenClient;
-import com.linkwechat.wecom.domain.WeCorpAccount;
+import com.linkwechat.common.core.domain.entity.WeCorpAccount;
import com.linkwechat.wecom.domain.dto.WeLoginUserInfoDto;
import com.linkwechat.wecom.service.IWeCorpAccountService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -52,9 +52,6 @@ public class SysLoginController
@Autowired
private WeAccessTokenClient weAccessTokenClient;
-// @Autowired
-// private IWeGroupCodeService weGroupCodeService;
-
/**
* 登录方法
@@ -152,11 +149,24 @@ public class SysLoginController
String token = loginService.noPwdLogin(loginInfo.getUser_info().getUserid());
ajax.put(Constants.TOKEN, token);
-
}
-
return ajax;
+ }
+
+ /**
+ * 租户登录
+ * @param corpId
+ * @param corpSecret
+ * @return
+ */
+ @GetMapping("/tenantLogin")
+ public AjaxResult tenantLogin(String corpId,String corpSecret){
+ AjaxResult ajax = AjaxResult.success();
+
+
+
+ return ajax;
}
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeAppController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeAppController.java
new file mode 100644
index 0000000000000000000000000000000000000000..e911068eb3e2cbf61e03bb297d02ef9f41d08218
--- /dev/null
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeAppController.java
@@ -0,0 +1,50 @@
+package com.linkwechat.web.controller.wecom;
+
+import com.linkwechat.common.core.controller.BaseController;
+import com.linkwechat.common.core.domain.AjaxResult;
+import com.linkwechat.wecom.domain.WeApp;
+import com.linkwechat.wecom.service.IWeAppService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/wecom/weapp")
+public class WeAppController extends BaseController {
+
+ @Autowired
+ IWeAppService iWeAppService;
+
+
+ @GetMapping("/list")
+ public AjaxResult list() {
+ return AjaxResult.success(
+ iWeAppService.list()
+ );
+ }
+
+
+
+ @PostMapping("/addWeapp")
+ public AjaxResult addWeApp(@RequestBody WeApp weApp){
+
+ iWeAppService.addWeApp(weApp);
+
+ return AjaxResult.success();
+ }
+
+
+
+ @PostMapping("/updateWeApp")
+ public AjaxResult updateWeApp(@RequestBody WeApp weApp){
+ iWeAppService.updateWeApp(weApp);
+ return AjaxResult.success();
+ }
+
+
+
+
+
+
+
+
+}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatContactMappingController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatContactMappingController.java
index f802b3824776b37e89be98771a6628e5dd40955a..24166dfb7df818074b9da95c48be754b1fd07956 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatContactMappingController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatContactMappingController.java
@@ -10,6 +10,8 @@ import com.linkwechat.common.utils.poi.ExcelUtil;
import com.linkwechat.wecom.domain.WeChatContactMapping;
import com.linkwechat.wecom.domain.WeCustomer;
import com.linkwechat.wecom.service.IWeChatContactMappingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -29,6 +31,7 @@ import java.util.List;
* @author ruoyi
* @date 2020-12-27
*/
+@Api("聊天关系映射Controller")
@RestController
@RequestMapping("/chat/mapping")
public class WeChatContactMappingController extends BaseController
@@ -40,8 +43,9 @@ public class WeChatContactMappingController extends BaseController
* 查询聊天关系映射列表
*/
// @PreAuthorize("@ss.hasPermi('chat:mapping:list')")
+ @ApiOperation(value = "查询聊天关系映射列表",httpMethod = "GET")
@GetMapping("/list")
- public TableDataInfo list(WeChatContactMapping weChatContactMapping)
+ public TableDataInfo> list(WeChatContactMapping weChatContactMapping)
{
startPage();
List list = weChatContactMappingService.selectWeChatContactMappingList(weChatContactMapping);
@@ -52,8 +56,9 @@ public class WeChatContactMappingController extends BaseController
* 按客户查询关系映射列表
*/
// @PreAuthorize("@ss.hasPermi('chat:mapping:listByCustomer')")
+ @ApiOperation(value = "按客户查询关系映射列表",httpMethod = "GET")
@GetMapping("/listByCustomer")
- public TableDataInfo listByCustomer()
+ public TableDataInfo> listByCustomer()
{
startPage();
PageInfo weCustomerPageInfo = weChatContactMappingService.listByCustomer();
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityGroupSopController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityGroupSopController.java
index fd01bd2774d5a3d9353702445c1351cefe743e1a..8b87b5727305700141b3633064771bee26931a05 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityGroupSopController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityGroupSopController.java
@@ -76,7 +76,12 @@ public class WeCommunityGroupSopController extends BaseController {
List materialIdList = groupSopDto.getMaterialIdList();
// 上传的图片的URl列表
List picList = groupSopDto.getPicList();
- return toAjax(groupSopService.addGroupSop(weGroupSop, groupIdList, materialIdList, picList));
+ int affectedRows = groupSopService.addGroupSop(weGroupSop, groupIdList, materialIdList, picList);
+ if (affectedRows > 0) {
+ // 添加成功后进行异步消息推送
+ groupSopService.sendMessage(groupIdList);
+ }
+ return toAjax(affectedRows);
}
/**
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityH5Controller.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityH5Controller.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f0967343ebc1a6018f5c3dc01af757250fa9efb
--- /dev/null
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityH5Controller.java
@@ -0,0 +1,122 @@
+package com.linkwechat.web.controller.wecom;
+
+import com.linkwechat.common.core.controller.BaseController;
+import com.linkwechat.common.core.domain.AjaxResult;
+import com.linkwechat.common.core.domain.entity.SysUser;
+import com.linkwechat.common.core.page.TableDataInfo;
+import com.linkwechat.common.enums.CommunityTaskType;
+import com.linkwechat.system.service.ISysUserService;
+import com.linkwechat.wecom.domain.vo.WeKeywordGroupTaskVo;
+import com.linkwechat.wecom.service.IWeCommunityKeywordToGroupService;
+import com.linkwechat.wecom.service.IWeGroupSopService;
+import com.linkwechat.wecom.service.IWePresTagGroupTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 社区运营H5接口
+ *
+ * @Author Hang
+ * @Date 2021/3/24 10:54
+ */
+@RestController
+@RequestMapping(value = "/wecom/community/h5")
+public class WeCommunityH5Controller extends BaseController {
+
+ @Autowired
+ private IWePresTagGroupTaskService tagGroupTaskService;
+
+ @Autowired
+ private IWeGroupSopService sopService;
+
+ @Autowired
+ private IWeCommunityKeywordToGroupService keywordToGroupService;
+
+ @Autowired
+ private ISysUserService userService;
+
+ /**
+ * 获取任务对应的执行人列表
+ * @param taskId 任务id
+ * @param type 任务类型 1:标签建群任务 2:sop任务
+ * @return
+ */
+ @GetMapping("/scope/{taskId}")
+ public AjaxResult getTaskScopeList(@PathVariable("taskId") Long taskId, @RequestParam(value = "type") Integer type) {
+ if (type.equals(CommunityTaskType.TAG.getType())) {
+ return AjaxResult.success(tagGroupTaskService.getScopeListByTaskId(taskId));
+ } else {
+ return AjaxResult.success(sopService.getScopeListByRuleId(taskId));
+ }
+ }
+
+ /**
+ * h5页面根据员工id获取老客标签建群和群sop任务信息
+ *
+ * @param emplId 员工id
+ * @param type 数据类型,0:全部数据 1:老客标签建群数据 2:群SOP数据
+ * @return
+ */
+ @GetMapping("/{emplId}")
+ public AjaxResult getEmplTask(@PathVariable("emplId") String emplId, @RequestParam(value = "type") Integer type) {
+ AjaxResult res = AjaxResult.success();
+ if (type.equals(CommunityTaskType.TAG.getType())) {
+ // 老客标签建群数据
+ res.put("todo", tagGroupTaskService.getEmplTaskList(emplId, false));
+ res.put("done", tagGroupTaskService.getEmplTaskList(emplId, true));
+ } else if (type.equals(CommunityTaskType.SOP.getType())) {
+ // 群SOP数据
+ res.put("todo", sopService.getEmplTaskList(emplId, false));
+ res.put("done", sopService.getEmplTaskList(emplId, true));
+ } else {
+ // 全部数据
+ List todoList = new ArrayList();
+ List doneList = new ArrayList();
+ todoList.addAll(tagGroupTaskService.getEmplTaskList(emplId, false));
+ todoList.addAll(sopService.getEmplTaskList(emplId, false));
+ res.put("todo", todoList);
+ doneList.addAll(tagGroupTaskService.getEmplTaskList(emplId, true));
+ doneList.addAll(sopService.getEmplTaskList(emplId, true));
+ res.put("done", doneList);
+ }
+ SysUser user = userService.selectUserByUserName(emplId);
+ boolean isAdmin = user != null && user.isAdmin();
+ res.put("isAdmin", isAdmin);
+ return res;
+ }
+
+ /**
+ * 员工发送老客标签建群任务信息或者发送sop到其客户群之后,变更其任务状态
+ *
+ * @param taskId 老客标签建群时代表任务id,sop时,代表规则id
+ * @param emplId 老客标签建群时代表员工id,sop时,代表群主
+ * @param type 类型 0:老客标签建群 1:sop
+ * @return 结果
+ */
+ @GetMapping("/changeStatus")
+ public AjaxResult changeStatus(@RequestParam("taskId") Long taskId, @RequestParam("emplId") String emplId, @RequestParam("type") Integer type) {
+ if (type.equals(0)) {
+ return toAjax(tagGroupTaskService.updateEmplTaskStatus(taskId, emplId));
+ } else {
+ return toAjax(sopService.updateChatSopStatus(taskId, emplId));
+ }
+
+ }
+
+
+ /**
+ * 用于支持H5页面的名称和关键字检索
+ *
+ * @param word 过滤字符
+ * @return 结果
+ */
+ @GetMapping(path = "/filter")
+ public TableDataInfo filter(@RequestParam("word") String word) {
+ startPage();
+ List taskList = keywordToGroupService.filterByNameOrKeyword(word);
+ return getDataTable(taskList);
+ }
+}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityKeywordGroupController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityKeywordGroupController.java
index 1bac77bec022160befbf7dee8d2ceb621345f201..6a42e96430af168dbbd7c1eccf91e6432d68c972 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityKeywordGroupController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityKeywordGroupController.java
@@ -12,7 +12,6 @@ import com.linkwechat.wecom.domain.vo.WeKeywordGroupTaskVo;
import com.linkwechat.wecom.service.IWeCommunityKeywordToGroupService;
import com.linkwechat.wecom.service.IWeGroupCodeService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -49,8 +48,7 @@ public class WeCommunityKeywordGroupController extends BaseController {
@RequestParam(value = "keyword", required = false) String keyword,
@RequestParam(value = "beginTime", required = false) String beginTime,
@RequestParam(value = "endTime", required = false) String endTime
- )
- {
+ ) {
startPage();
List taskList = keywordToGroupService
.getTaskList(taskName, createBy, keyword, beginTime, endTime);
@@ -66,10 +64,7 @@ public class WeCommunityKeywordGroupController extends BaseController {
// @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:query')")
@GetMapping(path = "/{taskId}")
public AjaxResult getTask(@PathVariable("taskId") Long taskId) {
- WeKeywordGroupTaskVo keywordsGroupVo = keywordToGroupService.getTaskById(taskId);
- // 获取群活码
- keywordsGroupVo.setGroupCodeInfo(groupCodeService.selectWeGroupCodeById(keywordsGroupVo.getGroupCodeId()));
- return AjaxResult.success(keywordsGroupVo);
+ return AjaxResult.success(keywordToGroupService.getTaskById(taskId));
}
/**
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityNewGroupController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityNewGroupController.java
index a33dd50c4e5035242f9a31bb942eca49c57ac93c..ea6c1e9410d62cdf68d9d6491a49ed39bdc75cb6 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityNewGroupController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityNewGroupController.java
@@ -2,6 +2,7 @@ package com.linkwechat.web.controller.wecom;
import cn.hutool.core.collection.CollectionUtil;
import com.linkwechat.common.annotation.Log;
+import com.linkwechat.common.constant.HttpStatus;
import com.linkwechat.common.core.controller.BaseController;
import com.linkwechat.common.core.domain.AjaxResult;
import com.linkwechat.common.core.page.TableDataInfo;
@@ -9,17 +10,16 @@ import com.linkwechat.common.enums.BusinessType;
import com.linkwechat.common.exception.wecom.WeComException;
import com.linkwechat.common.utils.StringUtils;
import com.linkwechat.common.utils.file.FileUtils;
-import com.linkwechat.wecom.domain.WeCommunityNewGroup;
import com.linkwechat.wecom.domain.WeEmpleCode;
import com.linkwechat.wecom.domain.dto.WeCommunityNewGroupDto;
import com.linkwechat.wecom.domain.vo.WeCommunityNewGroupVo;
import com.linkwechat.wecom.service.IWeCommunityNewGroupService;
+import com.linkwechat.wecom.service.IWeEmpleCodeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -31,7 +31,6 @@ import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
-import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
@@ -49,56 +48,8 @@ public class WeCommunityNewGroupController extends BaseController {
@Autowired
private IWeCommunityNewGroupService weCommunityNewGroupService;
- /**
- * 查询新客自动拉群列表
- */
- @ApiOperation(value = "查询新客自动拉群列表", httpMethod = "GET")
- // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:list')")
- @GetMapping("/list")
- public TableDataInfo> list(@RequestParam(value = "empleCodeName", required = false) String empleCodeName
- , @RequestParam(value = "createBy", required = false) String createBy
- , @RequestParam(value = "beginTime", required = false) String beginTime
- , @RequestParam(value = "endTime", required = false) String endTime) {
- startPage();
- List communityNewGroupVos = weCommunityNewGroupService.selectWeCommunityNewGroupList(empleCodeName, createBy, beginTime, endTime);
- return getDataTable(communityNewGroupVos);
- }
-
- /**
- * 获取新客自动拉群详细信息
- */
- @ApiOperation(value = "获取新客自动拉群详细信息", httpMethod = "GET")
- // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:query')")
- @GetMapping(value = "/{newGroupId}")
- public AjaxResult getInfo(@PathVariable("newGroupId") @ApiParam("主键ID") String newGroupId) {
- return AjaxResult.success(weCommunityNewGroupService.selectWeCommunityNewGroupById(new Long(newGroupId)));
- }
-
- /**
- * 修改新客自动拉群
- */
- @ApiOperation(value = "修改新客自动拉群", httpMethod = "PUT")
- // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:edit')")
- @Log(title = "新客自动拉群", businessType = BusinessType.UPDATE)
- @PutMapping("/update")
- public AjaxResult edit(@RequestBody @Validated WeCommunityNewGroupDto communityNewGroupDto) {
- weCommunityNewGroupService.updateWeCommunityNewGroup(communityNewGroupDto);
-
- return AjaxResult.success();
- }
-
- /**
- * 删除新客自动拉群
- */
- @ApiOperation(value = "删除新客自动拉群", httpMethod = "DELETE")
- // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:remove')")
- @Log(title = "新客自动拉群", businessType = BusinessType.DELETE)
- @DeleteMapping("/delete/{ids}")
- public AjaxResult remove(@PathVariable String ids) {
- List idList = Arrays.stream(StringUtils.split(ids, ",")).collect(Collectors.toList());
- return toAjax(weCommunityNewGroupService.batchRemoveWeCommunityNewGroupIds(idList));
- }
-
+ @Autowired
+ private IWeEmpleCodeService weEmpleCodeService;
/**
* 新增新客自动拉群
@@ -106,22 +57,34 @@ public class WeCommunityNewGroupController extends BaseController {
@ApiOperation(value = "新增新客自动拉群", httpMethod = "POST")
// @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:add')")
@Log(title = "新客自动拉群", businessType = BusinessType.INSERT)
- @PostMapping("/add")
+ @PostMapping("/")
public AjaxResult add(@RequestBody @Validated WeCommunityNewGroupDto communityNewGroupDto) {
- try {
- weCommunityNewGroupService.add(communityNewGroupDto);
- return AjaxResult.success();
- } catch (Exception e) {
- e.printStackTrace();
- if (e instanceof WeComException) {
- return AjaxResult.error(e.getMessage());
- } else {
- return AjaxResult.error("请求接口异常!");
- }
- }
-
+ return toAjax(weCommunityNewGroupService.add(communityNewGroupDto));
}
+ /**
+ * 单个下载
+ *
+ * @param id 待下载员工活码
+ * @param request 请求
+ * @param response 响应
+ */
+ @ApiOperation(value = "员工活码下载", httpMethod = "GET")
+ // @PreAuthorize("@ss.hasPermi('wecom:code:download')")
+ @Log(title = "员工活码下载", businessType = BusinessType.OTHER)
+ @GetMapping("/download")
+ public void download(String id, HttpServletRequest request, HttpServletResponse response) {
+ Optional communityNewGroupVo = weCommunityNewGroupService.selectWeCommunityNewGroupById(Long.valueOf(id));
+ communityNewGroupVo.ifPresent(e -> {
+ try {
+ WeEmpleCode empleCode = weEmpleCodeService.selectWeEmpleCodeById(e.getEmplCodeId());
+ FileUtils.downloadFile(empleCode.getQrCode(), response.getOutputStream());
+ } catch (IOException exc) {
+ exc.printStackTrace();
+ }
+ });
+ return;
+ }
/**
* 员工活码批量下载
@@ -129,30 +92,27 @@ public class WeCommunityNewGroupController extends BaseController {
* @param ids 新客自动拉群ids
* @param request 请求
* @param response 输出
- * @throws Exception
*/
@ApiOperation(value = "员工活码批量下载", httpMethod = "GET")
// @PreAuthorize("@ss.hasPermi('wecom:code:downloadBatch')")
@Log(title = "员工活码批量下载", businessType = BusinessType.OTHER)
@GetMapping("/downloadBatch")
- public void downloadBatch(String ids, HttpServletRequest request, HttpServletResponse response) {
- List idList = Arrays.stream(Optional.ofNullable(ids).orElse("").split(","))
- .filter(StringUtils::isNotEmpty).collect(Collectors.toList());
+ public void downloadBatch(Long[] ids, HttpServletRequest request, HttpServletResponse response) {
try {
-
- List weCommunityNewGroupVos = weCommunityNewGroupService.selectWeCommunityNewGroupByIds(idList);
-
+ List weCommunityNewGroupVos = weCommunityNewGroupService.selectWeCommunityNewGroupByIds(Arrays.asList(ids));
//zip输出流
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
if (CollectionUtil.isNotEmpty(weCommunityNewGroupVos)) {
for (WeCommunityNewGroupVo communityNewGroupVo : weCommunityNewGroupVos) {
- String qrCode = communityNewGroupVo.getQrCode();
+ // 获取改新客拉群对应员工活码的二维码
+ WeEmpleCode empleCode = weEmpleCodeService.selectWeEmpleCodeById(communityNewGroupVo.getEmplCodeId());
+ String qrCode = empleCode.getQrCode();
if (StringUtils.isEmpty(qrCode)) {
continue;
}
URL url = new URL(qrCode);
- //每个二维码名称
- String fileName = communityNewGroupVo.getEmpleCodeName() + communityNewGroupVo.getActivityScene() + ".jpg";
+ // 二维码名称使用场景
+ String fileName = empleCode.getScenario() + ".png";
zos.putNextEntry(new ZipEntry(fileName));
InputStream fis = url.openConnection().getInputStream();
byte[] buffer = new byte[1024];
@@ -168,27 +128,60 @@ public class WeCommunityNewGroupController extends BaseController {
zos.close();
} catch (IOException e) {
e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
}
}
- @ApiOperation(value = "员工活码下载", httpMethod = "GET")
- // @PreAuthorize("@ss.hasPermi('wecom:code:download')")
- @Log(title = "员工活码下载", businessType = BusinessType.OTHER)
- @GetMapping("/download")
- public void download(String id, HttpServletRequest request, HttpServletResponse response) {
- WeCommunityNewGroupVo communityNewGroupVo = weCommunityNewGroupService.selectWeCommunityNewGroupById(Long.valueOf(id));
- if (StringUtils.isEmpty(communityNewGroupVo.getQrCode())) {
- return;
- } else {
- try {
- FileUtils.downloadFile(communityNewGroupVo.getQrCode(), response.getOutputStream());
- } catch (IOException e) {
- e.printStackTrace();
- }
+ /**
+ * 查询新客自动拉群列表
+ */
+ @ApiOperation(value = "查询新客自动拉群列表", httpMethod = "GET")
+ // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:list')")
+ @GetMapping("/list")
+ public TableDataInfo> list(
+ @RequestParam(value = "emplCodeName", required = false) String emplCodeName,
+ @RequestParam(value = "createBy", required = false) String createBy,
+ @RequestParam(value = "beginTime", required = false) String beginTime,
+ @RequestParam(value = "endTime", required = false) String endTime) {
+ startPage();
+ List communityNewGroupVos = weCommunityNewGroupService.selectWeCommunityNewGroupList(emplCodeName, createBy, beginTime, endTime);
+ return getDataTable(communityNewGroupVos);
+ }
+
+ /**
+ * 获取新客自动拉群详细信息
+ */
+ @ApiOperation(value = "获取新客自动拉群详细信息", httpMethod = "GET")
+ // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:query')")
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") @ApiParam("主键ID") String id) {
+ Optional communityNewGroupVo = weCommunityNewGroupService.selectWeCommunityNewGroupById(Long.valueOf(id));
+ if (communityNewGroupVo.isPresent()) {
+ return AjaxResult.success(communityNewGroupVo);
}
+ return AjaxResult.error(HttpStatus.NOT_FOUND, "新客拉群信息不存在");
}
+ /**
+ * 修改新客自动拉群
+ */
+ @ApiOperation(value = "修改新客自动拉群", httpMethod = "PUT")
+ // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:edit')")
+ @Log(title = "新客自动拉群", businessType = BusinessType.UPDATE)
+ @PutMapping("/{id}")
+ public AjaxResult edit(@PathVariable("id") String id, @RequestBody @Validated WeCommunityNewGroupDto communityNewGroupDto) {
+ return toAjax(weCommunityNewGroupService.updateWeCommunityNewGroup(Long.valueOf(id), communityNewGroupDto));
+ }
+
+ /**
+ * 删除新客自动拉群
+ */
+ @ApiOperation(value = "删除新客自动拉群", httpMethod = "DELETE")
+ // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:remove')")
+ @Log(title = "新客自动拉群", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids) {
+ return toAjax(weCommunityNewGroupService.batchRemoveWeCommunityNewGroupByIds(Arrays.asList(ids)));
+ }
}
+
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java
index 30b18ba966158e14b415d5a7739bc698ca6c30a9..6ab2df6c6cc4b9838918dd992cdabe4675ac051a 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCommunityPresTagGroupController.java
@@ -5,12 +5,13 @@ import com.linkwechat.common.constant.HttpStatus;
import com.linkwechat.common.core.controller.BaseController;
import com.linkwechat.common.core.domain.AjaxResult;
import com.linkwechat.common.core.page.TableDataInfo;
-import com.linkwechat.wecom.domain.WeGroupCode;
-import com.linkwechat.wecom.domain.WeTag;
+import com.linkwechat.common.utils.SecurityUtils;
+import com.linkwechat.common.utils.StringUtils;
+import com.linkwechat.common.utils.bean.BeanUtils;
+import com.linkwechat.wecom.domain.WePresTagGroupTask;
import com.linkwechat.wecom.domain.dto.WePresTagGroupTaskDto;
import com.linkwechat.wecom.domain.vo.WePresTagGroupTaskStatVo;
import com.linkwechat.wecom.domain.vo.WePresTagGroupTaskVo;
-import com.linkwechat.wecom.domain.vo.WeEmplVo;
import com.linkwechat.wecom.service.IWePresTagGroupTaskService;
import com.linkwechat.wecom.service.IWeGroupCodeService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -42,7 +43,7 @@ public class WeCommunityPresTagGroupController extends BaseController {
@RequestParam(value = "beginTime", required = false) String beginTime,
@RequestParam(value = "endTime", required = false) String endTime) {
startPage();
- List wePresTagGroupTaskVoList = taskService.selectTaskListList(taskName, sendType, createBy, beginTime, endTime);
+ List wePresTagGroupTaskVoList = taskService.selectTaskList(taskName, sendType, createBy, beginTime, endTime);
return getDataTable(wePresTagGroupTaskVoList);
}
@@ -57,9 +58,20 @@ public class WeCommunityPresTagGroupController extends BaseController {
return AjaxResult.error("任务名已存在");
}
if (null == groupCodeService.selectWeGroupCodeById(wePresTagGroupTaskDto.getGroupCodeId())) {
- return AjaxResult.error(HttpStatus.NOT_FOUND,"群活码不存在");
+ return AjaxResult.error(HttpStatus.NOT_FOUND, "群活码不存在");
}
- return toAjax(taskService.add(wePresTagGroupTaskDto));
+ // 创建新任务并保存
+ WePresTagGroupTask task = new WePresTagGroupTask();
+ BeanUtils.copyProperties(wePresTagGroupTaskDto, task);
+ task.setCreateBy(SecurityUtils.getUsername());
+ List tagList = wePresTagGroupTaskDto.getTagList();
+ List scopeList = wePresTagGroupTaskDto.getScopeList();
+ int affectedRows = taskService.add(task, tagList, scopeList);
+ if (affectedRows > 0) {
+ // 若保存成功,则进行异步消息推送
+ taskService.sendMessage(task);
+ }
+ return toAjax(affectedRows);
}
/**
@@ -69,14 +81,10 @@ public class WeCommunityPresTagGroupController extends BaseController {
@GetMapping(path = "/{id}")
public AjaxResult getTask(@PathVariable("id") Long id) {
WePresTagGroupTaskVo taskVo = taskService.getTaskById(id);
- // 获取标签和使用人员
- List tagList = taskService.getTagListByTaskId(id);
- List emplVoList = taskService.getEmplListByTaskId(id);
- WeGroupCode weGroupCode = groupCodeService.selectWeGroupCodeById(taskVo.getGroupCodeId());
- taskVo.setGroupCodeInfo(weGroupCode);
- taskVo.setTagList(tagList);
- taskVo.setScopeList(emplVoList);
- return AjaxResult.success(taskVo);
+ if (StringUtils.isNull(taskVo)) {
+ return AjaxResult.error(HttpStatus.NOT_FOUND, "群活码不存在");
+ }
+ return AjaxResult.success();
}
/**
@@ -94,7 +102,7 @@ public class WeCommunityPresTagGroupController extends BaseController {
return AjaxResult.error("任务名已存在");
}
if (null == groupCodeService.selectWeGroupCodeById(wePresTagGroupTaskDto.getGroupCodeId())) {
- return AjaxResult.error(HttpStatus.NOT_FOUND,"群活码不存在");
+ return AjaxResult.error(HttpStatus.NOT_FOUND, "群活码不存在");
}
return toAjax(taskService.updateTask(id, wePresTagGroupTaskDto));
}
@@ -118,10 +126,12 @@ public class WeCommunityPresTagGroupController extends BaseController {
@RequestParam(value = "customerName", required = false) String customerName,
@RequestParam(value = "isInGroup", required = false) Integer isInGroup,
@RequestParam(value = "isSent", required = false) Integer isSent
- ) {
+ ) {
+
startPage();
- List statVoList = taskService.getStatByTaskId(id, customerName, isInGroup, isSent);
+ List statVoList = taskService.getStatByTaskId(id);
return getDataTable(statVoList);
}
+
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeConversationArchiveController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeConversationArchiveController.java
index 21a1610ecaa91513dd2ac7e522c1e8cf12381b99..fa47b970d12e66c4ef2a94d9a8abe581fe2fcd4f 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeConversationArchiveController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeConversationArchiveController.java
@@ -1,9 +1,13 @@
package com.linkwechat.web.controller.wecom;
+import com.alibaba.fastjson.JSONObject;
+import com.github.pagehelper.PageInfo;
import com.linkwechat.common.core.controller.BaseController;
import com.linkwechat.common.core.domain.ConversationArchiveQuery;
import com.linkwechat.common.core.page.TableDataInfo;
import com.linkwechat.wecom.service.IWeConversationArchiveService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -16,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
* @description 会话存档controller
* @date 2020/12/19 13:51
**/
+@Api("会话存档controller")
@Slf4j
@RestController
@RequestMapping("/wecom/finance")
@@ -32,8 +37,9 @@ public class WeConversationArchiveController extends BaseController {
* @return
*/
// @PreAuthorize("@ss.hasPermi('conversationArchive:chatContact:list')")
+ @ApiOperation(value = "获取单聊会话数据接口",httpMethod = "GET")
@GetMapping("/getChatContactList")
- public TableDataInfo getChatContactList(ConversationArchiveQuery query) {
+ public TableDataInfo> getChatContactList(ConversationArchiveQuery query) {
return getDataTable(weConversationArchiveService.getChatContactList(query));
}
@@ -47,8 +53,9 @@ public class WeConversationArchiveController extends BaseController {
* @return
*/
// @PreAuthorize("@ss.hasPermi('conversationArchive:chatRoomContact:list')")
+ @ApiOperation(value = "获取群聊会话数据接口",httpMethod = "GET")
@GetMapping("/getChatRoomContactList")
- public TableDataInfo getChatRoomContactList(ConversationArchiveQuery query) {
+ public TableDataInfo> getChatRoomContactList(ConversationArchiveQuery query) {
return getDataTable(weConversationArchiveService.getChatRoomContactList(query));
}
@@ -60,8 +67,9 @@ public class WeConversationArchiveController extends BaseController {
* @return
*/
// @PreAuthorize("@ss.hasPermi('conversationArchive:chatAllContact:list')")
+ @ApiOperation(value = "获取全局会话数据接口",httpMethod = "GET")
@GetMapping("/getChatAllList")
- public TableDataInfo getChatAllList(ConversationArchiveQuery query) {
+ public TableDataInfo> getChatAllList(ConversationArchiveQuery query) {
return getDataTable(weConversationArchiveService.getChatAllList(query));
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCorpAccountController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCorpAccountController.java
index 9d37d021be674d94d748b28226e10a23af45e07e..8925928e9e7496c15b3896574d11cdd3b07b6c07 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCorpAccountController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCorpAccountController.java
@@ -1,15 +1,13 @@
package com.linkwechat.web.controller.wecom;
import com.linkwechat.common.annotation.Log;
-import com.linkwechat.common.constant.HttpStatus;
import com.linkwechat.common.core.controller.BaseController;
import com.linkwechat.common.core.domain.AjaxResult;
import com.linkwechat.common.core.page.TableDataInfo;
import com.linkwechat.common.enums.BusinessType;
-import com.linkwechat.wecom.domain.WeCorpAccount;
+import com.linkwechat.common.core.domain.entity.WeCorpAccount;
import com.linkwechat.wecom.service.IWeCorpAccountService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerController.java
index 5781473f397b19d2b673cc0608c36b208c3d933f..a8e9729b15254526ac8139805dd5824b985b7bf3 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerController.java
@@ -1,5 +1,6 @@
package com.linkwechat.web.controller.wecom;
+import cn.hutool.core.collection.CollectionUtil;
import com.linkwechat.common.annotation.Log;
import com.linkwechat.common.constant.WeConstans;
import com.linkwechat.common.core.controller.BaseController;
@@ -18,6 +19,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -151,4 +153,25 @@ public class WeCustomerController extends BaseController
}
+
+
+ /**
+ * 查询企业微信客户列表(六感)
+ */
+ // @PreAuthorize("@ss.hasPermi('customerManage:customer:list')")
+ @GetMapping("/listConcise")
+ public TableDataInfo listConcise(WeCustomer weCustomer)
+ {
+ startPage();
+
+ List list = weCustomerService.selectWeCustomerList(weCustomer);
+ if(CollectionUtil.isNotEmpty(list)){
+
+ list.stream().forEach(k->{
+ k.setWeFlowerCustomerRels(new ArrayList<>());
+ });
+ }
+ return getDataTable(list);
+ }
+
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerPortraitController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerPortraitController.java
index db12525712205d4ef34246794f72fae43236c694..eec508c443fd20124cdec9a4eb69927a0473dbc7 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerPortraitController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerPortraitController.java
@@ -153,11 +153,18 @@ public class WeCustomerPortraitController extends BaseController {
@GetMapping(value = "/findTrajectory")
public TableDataInfo findTrajectory(Integer trajectoryType){
startPage();
+ LambdaQueryWrapper ne = new LambdaQueryWrapper()
+ .ne(WeCustomerTrajectory::getStatus, Constants.DELETE_CODE);
+
+ if(trajectoryType != null){
+ ne.eq(WeCustomerTrajectory::getTrajectoryType, trajectoryType);
+ }
+
+
return getDataTable(
- iWeCustomerTrajectoryService.list(new LambdaQueryWrapper()
- .eq(WeCustomerTrajectory::getTrajectoryType,trajectoryType)
- .ne(WeCustomerTrajectory::getStatus,Constants.DELETE_CODE))
+ iWeCustomerTrajectoryService.list(ne)
);
+
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeEmpleCodeController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeEmpleCodeController.java
index 49f79ecb147483b42fae5912268868a6314d7a31..1b0461a9856dce22bd7541229c7c58af6dc65779 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeEmpleCodeController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeEmpleCodeController.java
@@ -169,7 +169,7 @@ public class WeEmpleCodeController extends BaseController {
}
URL url = new URL(qrCode);
//每个二维码名称
- String fileName = weEmpleCode.getUseUserName()+"-"+weEmpleCode.getActivityScene()+".jpg";
+ String fileName = weEmpleCode.getUseUserName()+"-"+weEmpleCode.getScenario()+".jpg";
zos.putNextEntry(new ZipEntry(fileName));
InputStream fis = url.openConnection().getInputStream();
byte[] buffer = new byte[1024];
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeController.java
index 41efe6b72b036aa5940ddfaede13a57d61e1607b..b912d9288c01d31b93af6c7ca9061923066de7c4 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeController.java
@@ -3,6 +3,7 @@ package com.linkwechat.web.controller.wecom;
import cn.hutool.core.collection.CollectionUtil;
import com.linkwechat.common.annotation.Log;
import com.linkwechat.common.constant.HttpStatus;
+import com.linkwechat.common.constant.WeConstans;
import com.linkwechat.common.core.controller.BaseController;
import com.linkwechat.common.core.domain.AjaxResult;
import com.linkwechat.common.core.page.TableDataInfo;
@@ -24,6 +25,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -41,7 +43,7 @@ import java.util.zip.ZipOutputStream;
@RequestMapping("/wecom/groupCode")
public class WeGroupCodeController extends BaseController {
@Autowired
- private IWeGroupCodeService weGroupCodeService;
+ private IWeGroupCodeService groupCodeService;
/**
* 查询客户群活码列表
@@ -50,7 +52,7 @@ public class WeGroupCodeController extends BaseController {
@GetMapping("/list")
public TableDataInfo list(WeGroupCode weGroupCode) {
startPage();
- List list = weGroupCodeService.selectWeGroupCodeList(weGroupCode);
+ List list = groupCodeService.selectWeGroupCodeList(weGroupCode);
return getDataTable(list);
}
@@ -64,7 +66,7 @@ public class WeGroupCodeController extends BaseController {
List idList = Arrays.stream(Optional.ofNullable(ids).orElse("").split(","))
.filter(StringUtils::isNotEmpty).collect(Collectors.toList());
try {
- List weGroupCodeList = weGroupCodeService.selectWeGroupCodeListByIds(idList);
+ List weGroupCodeList = groupCodeService.selectWeGroupCodeListByIds(idList);
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
if (CollectionUtil.isNotEmpty(weGroupCodeList)) {
for (WeGroupCode weGroupCode : weGroupCodeList) {
@@ -96,7 +98,7 @@ public class WeGroupCodeController extends BaseController {
@Log(title = "群活码下载", businessType = BusinessType.OTHER)
@GetMapping("/download")
public void download(String id, HttpServletRequest request, HttpServletResponse response) {
- WeGroupCode weGroupCode = weGroupCodeService.selectWeGroupCodeById(Long.valueOf(id));
+ WeGroupCode weGroupCode = groupCodeService.selectWeGroupCodeById(Long.valueOf(id));
try {
FileUtils.downloadFile(weGroupCode.getCodeUrl(), response.getOutputStream());
} catch (IOException e) {
@@ -104,30 +106,17 @@ public class WeGroupCodeController extends BaseController {
}
}
-// /**
-// * 导出客户群活码列表
-// */
-// @PreAuthorize("@ss.hasPermi('wecom:code:export')")
-// @Log(title = "客户群活码", businessType = BusinessType.EXPORT)
-// @GetMapping("/export")
-// public AjaxResult export(WeGroupCode weGroupCode)
-// {
-// List list = weGroupCodeService.selectWeGroupCodeList(weGroupCode);
-// ExcelUtil util = new ExcelUtil(WeGroupCode.class);
-// return util.exportExcel(list, "code");
-// }
-
/**
* 获取客户群活码详细信息
*/
// @PreAuthorize("@ss.hasPermi('drainageCode:group:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
- WeGroupCode weGroupCode = weGroupCodeService.selectWeGroupCodeById(id);
+ WeGroupCode weGroupCode = groupCodeService.selectWeGroupCodeById(id);
if (StringUtils.isNull(weGroupCode)) {
return AjaxResult.error(HttpStatus.NOT_FOUND, "数据不存在");
}
- List weGroupCodeActualList = weGroupCodeService.selectActualListByGroupCodeId(weGroupCode.getId());
+ List weGroupCodeActualList = groupCodeService.selectActualListByGroupCodeId(weGroupCode.getId());
weGroupCode.setActualList(weGroupCodeActualList);
return AjaxResult.success(weGroupCode);
}
@@ -140,12 +129,12 @@ public class WeGroupCodeController extends BaseController {
@PostMapping
public AjaxResult add(@Validated @RequestBody WeGroupCode weGroupCode) {
// 唯一性检查
- if (!weGroupCodeService.checkActivityNameUnique(weGroupCode)) {
+ if (!groupCodeService.checkActivityNameUnique(weGroupCode)) {
return AjaxResult.error("添加群活码失败,活码名称 " + weGroupCode.getActivityName() + " 已存在");
}
AjaxResult ajax = AjaxResult.success();
weGroupCode.setCreateBy(SecurityUtils.getUsername());
- weGroupCodeService.insertWeGroupCode(weGroupCode);
+ groupCodeService.insertWeGroupCode(weGroupCode);
ajax.put("id", weGroupCode.getId());
return ajax;
}
@@ -157,18 +146,18 @@ public class WeGroupCodeController extends BaseController {
@Log(title = "客户群活码", businessType = BusinessType.UPDATE)
@PutMapping(value = "/{id}")
public AjaxResult edit(@PathVariable("id") Long id, @RequestBody WeGroupCode weGroupCode) {
- WeGroupCode originalCode = weGroupCodeService.selectWeGroupCodeById(id);
+ WeGroupCode originalCode = groupCodeService.selectWeGroupCodeById(id);
if (StringUtils.isNull(originalCode)) {
return AjaxResult.error(HttpStatus.NOT_FOUND, "数据不存在");
}
// 唯一性检查
if (!originalCode.getActivityName().equals(weGroupCode.getActivityName()) &&
- !weGroupCodeService.checkActivityNameUnique(weGroupCode)) {
+ !groupCodeService.checkActivityNameUnique(weGroupCode)) {
return AjaxResult.error("修改群活码失败,活码名称 " + weGroupCode.getActivityName() + " 已存在");
}
weGroupCode.setId(id);
weGroupCode.setUpdateBy(SecurityUtils.getUsername());
- return toAjax(weGroupCodeService.updateWeGroupCode(weGroupCode));
+ return toAjax(groupCodeService.updateWeGroupCode(weGroupCode));
}
/**
@@ -178,19 +167,42 @@ public class WeGroupCodeController extends BaseController {
@Log(title = "客户群活码", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult batchRemove(@PathVariable Long[] ids) {
- return toAjax(weGroupCodeService.deleteWeGroupCodeByIds(ids));
+ return toAjax(groupCodeService.deleteWeGroupCodeByIds(ids));
}
-// /**
-// * 删除客户群活码
-// */
-// @PreAuthorize("@ss.hasPermi('wecom:code:remove')")
-// @Log(title = "客户群活码", businessType = BusinessType.DELETE)
-// @DeleteMapping("/{ids}")
-// public AjaxResult remove(@PathVariable Long[] ids)
-// {
-// return toAjax(weGroupCodeService.deleteWeGroupCodeByIds(ids));
-// }
+ /**
+ * 从群活码获取第一个可用的实际码
+ */
+ @GetMapping("/getActualCode/{groupCodeId}")
+ public AjaxResult getActual(@PathVariable("groupCodeId") String groupCodeUuid) {
+ WeGroupCode groupCode = groupCodeService.getWeGroupByUuid(groupCodeUuid);
+ List actualCodeList = groupCodeService.selectActualListByGroupCodeId(groupCode.getId());
+ WeGroupCodeActual groupCodeActual = null;
+ for (WeGroupCodeActual item : actualCodeList) {
+ // 获取第一个可用的实际码
+ if (item.getStatus().intValue() == WeConstans.WE_GROUP_CODE_ENABLE) {
+ groupCodeActual = item;
+ break;
+ }
+ }
+ if (StringUtils.isNotNull(groupCodeActual)) {
+ AjaxResult ajax = AjaxResult.success();
+
+ HashMap data = new HashMap<>();
+ data.put("activityName", groupCode.getActivityName());
+ data.put("tipMsg", groupCode.getTipMsg());
+ data.put("guide", groupCode.getGuide());
+ data.put("actualQRCode", groupCodeActual.getActualGroupQrCode());
+ data.put("isOpenTip", groupCode.getJoinGroupIsTip().toString());
+ data.put("serviceQrCode", groupCode.getCustomerServerQrCode());
+ data.put("groupName", groupCodeActual.getChatGroupName());
+ ajax.put("data", data);
+ return ajax;
+ } else {
+ // 找不到可用的实际群活码也不要抛出错误,否则前端H5页面不好处理。
+ return AjaxResult.success("没有可用的实际群活码!");
+ }
+ }
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMaterialController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMaterialController.java
index 85bfdf2e39253fe95c54d7c153d89bf90fd3796e..443666a0b0630f4e8cfb111531e697533ebb1dc1 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMaterialController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMaterialController.java
@@ -8,6 +8,7 @@ import com.linkwechat.common.enums.BusinessType;
import com.linkwechat.common.enums.MediaType;
import com.linkwechat.wecom.domain.WeMaterial;
import com.linkwechat.wecom.domain.dto.ResetCategoryDto;
+import com.linkwechat.wecom.domain.dto.TemporaryMaterialDto;
import com.linkwechat.wecom.domain.dto.WeMediaDto;
import com.linkwechat.wecom.domain.vo.WeMaterialFileVO;
import com.linkwechat.wecom.service.IWeMaterialService;
@@ -135,10 +136,12 @@ public class WeMaterialController extends BaseController {
//@PreAuthorize("@ss.hasPermi('wechat:material:temporaryMaterialMediaId')")
@Log(title = "获取素材media_id", businessType = BusinessType.OTHER)
- @GetMapping("/temporaryMaterialMediaId")
+ @PostMapping("/temporaryMaterialMediaId")
@ApiOperation("获取素材media_id")
- public AjaxResult temporaryMaterialMediaId(@RequestParam(value = "url") String url, @RequestParam(value = "type") String type,@RequestParam(value = "name") String name){
- WeMediaDto weMediaDto = materialService.uploadTemporaryMaterial(url, type,name);
+ public AjaxResult temporaryMaterialMediaId(@RequestBody TemporaryMaterialDto temporaryMaterialDto){
+ WeMediaDto weMediaDto = materialService.uploadTemporaryMaterial(temporaryMaterialDto.getUrl(),
+ temporaryMaterialDto.getType()
+ ,temporaryMaterialDto.getName());
return AjaxResult.success(weMediaDto);
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionController.java
index 08ffd6ae0f221723225f568c02fc6cf9d0af9fc5..cef8aa5885791353374b4b4eb5c123c862d85798 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionController.java
@@ -3,7 +3,7 @@ package com.linkwechat.web.controller.wecom;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSONObject;
-import com.alibaba.nacos.common.utils.CollectionUtils;
+//import com.alibaba.nacos.common.utils.CollectionUtils;
import com.google.common.collect.Lists;
import com.linkwechat.common.annotation.Log;
import com.linkwechat.common.config.CosConfig;
@@ -245,12 +245,12 @@ public class WeTaskFissionController extends BaseController {
@ApiOperation(value = "获取客户邀请列表和任务进度", httpMethod = "GET")
// @PreAuthorize("@ss.hasPermi('wecom:fission:getCustomerProgress')")
@Log(title = "获取客户邀请列表和任务进度", businessType = BusinessType.OTHER)
- @GetMapping("/{id}/progress/{eid}")
+ @GetMapping("/{id}/progress/{unionId}")
public AjaxResult getCustomerProgress(@ApiParam("任务id") @PathVariable("id") Long id
- , @PathVariable("eid") @ApiParam("客户id") String eid) {
+ , @PathVariable("unionId") @ApiParam("客户id") String unionId) {
WeTaskFission weTaskFission = weTaskFissionService.selectWeTaskFissionById(id);
if (weTaskFission != null) {
- return AjaxResult.success(weTaskFissionService.getCustomerTaskProgress(weTaskFission, eid));
+ return AjaxResult.success(weTaskFissionService.getCustomerTaskProgress(weTaskFission, unionId));
} else {
throw new WeComException("任务不存在");
}
@@ -268,7 +268,7 @@ public class WeTaskFissionController extends BaseController {
List list = Lists.newArrayList();
if (weTaskFission != null) {
List customers = weTaskFissionService.getCustomerListById(null, String.valueOf(id));
- if (CollectionUtils.isNotEmpty(customers)) {
+ if (StringUtils.isNotEmpty(customers)) {
customers.stream().filter(Objects::nonNull).forEach(customer -> {
WeTaskFissionTotalProgressVO vo = new WeTaskFissionTotalProgressVO();
vo.setCustomer(customer);
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeUserController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeUserController.java
index 543e526d90c7b77f145b72e80d315c986eeb5ec0..1d34cd2bfe563e0f64f96f344509931358f4702f 100644
--- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeUserController.java
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeUserController.java
@@ -7,16 +7,12 @@ import com.linkwechat.common.core.domain.AjaxResult;
import com.linkwechat.common.core.page.TableDataInfo;
import com.linkwechat.common.enums.BusinessType;
import com.linkwechat.wecom.domain.WeUser;
-import com.linkwechat.wecom.domain.vo.WeAllocateCustomersVo;
-import com.linkwechat.wecom.domain.vo.WeAllocateGroupsVo;
-import com.linkwechat.wecom.domain.vo.WeLeaveUserInfoAllocateVo;
-import com.linkwechat.wecom.domain.vo.WeLeaveUserVo;
-import com.linkwechat.wecom.service.IWeCustomerService;
+import com.linkwechat.wecom.domain.vo.*;
import com.linkwechat.wecom.service.IWeUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -25,13 +21,14 @@ import java.util.List;
/**
* 通讯录相关客户Controller
- *
+ *
* @author ruoyi
* @date 2020-08-31
*/
@RestController
@RequestMapping("/wecom/user")
@Api("通讯录人员接口")
+@Slf4j
public class WeUserController extends BaseController {
@Autowired
@@ -44,23 +41,19 @@ public class WeUserController extends BaseController {
// @PreAuthorize("@ss.hasPermi('contacts:organization:query')")
@GetMapping("/list")
@ApiOperation("获取通讯录人员列表")
- public TableDataInfo list(WeUser weUser)
- {
+ public TableDataInfo list(WeUser weUser) {
startPage();
-
List list = weUserService.selectWeUserList(weUser);
return getDataTable(list);
}
-
/**
* 获取通讯录相关客户详细信息
*/
// @PreAuthorize("@ss.hasPermi('contacts:organization:view')")
@GetMapping(value = "/{userId}")
- public AjaxResult getInfo(@PathVariable("userId") String userId)
- {
+ public AjaxResult getInfo(@PathVariable("userId") String userId) {
return AjaxResult.success(weUserService.selectWeUserById(userId));
}
@@ -71,8 +64,7 @@ public class WeUserController extends BaseController {
@Log(title = "通讯录相关客户", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("新增通讯录客户")
- public AjaxResult add(@Validated @RequestBody WeUser weUser)
- {
+ public AjaxResult add(@Validated @RequestBody WeUser weUser) {
weUserService.insertWeUser(weUser);
return AjaxResult.success();
}
@@ -84,8 +76,7 @@ public class WeUserController extends BaseController {
@Log(title = "更新通讯录客户", businessType = BusinessType.UPDATE)
@PutMapping
@ApiOperation("更新通讯录客户")
- public AjaxResult edit(@RequestBody WeUser weUser)
- {
+ public AjaxResult edit(@RequestBody WeUser weUser) {
weUserService.updateWeUser(weUser);
return AjaxResult.success();
}
@@ -93,6 +84,7 @@ public class WeUserController extends BaseController {
/**
* 启用或者禁止
+ *
* @param weUser
* @return
*/
@@ -100,7 +92,7 @@ public class WeUserController extends BaseController {
@Log(title = "启用禁用用户", businessType = BusinessType.UPDATE)
@PutMapping("/startOrStop")
@ApiOperation("是否启用(1表示启用成员,0表示禁用成员)")
- public AjaxResult startOrStop(@RequestBody WeUser weUser){
+ public AjaxResult startOrStop(@RequestBody WeUser weUser) {
weUserService.startOrStop(weUser);
@@ -110,73 +102,78 @@ public class WeUserController extends BaseController {
/**
* 离职已分配
+ *
* @param weLeaveUserVo
* @return
*/
// @PreAuthorize("@ss.hasPermi('customerManage:dimission:filter')")
- @GetMapping({"/leaveUserAllocateList"})
- public TableDataInfo leaveUserAllocateList(WeLeaveUserVo weLeaveUserVo) {
- startPage();
- weLeaveUserVo.setIsActivate(WeConstans.WE_USER_IS_LEAVE);
- weLeaveUserVo.setIsAllocate(WeConstans.LEAVE_ALLOCATE_STATE);
- List list = this.weUserService.leaveAllocateUserList(weLeaveUserVo);
- return getDataTable(list);
- }
+ @GetMapping({"/leaveUserAllocateList"})
+ public TableDataInfo leaveUserAllocateList(WeLeaveUserVo weLeaveUserVo) {
+ startPage();
+ weLeaveUserVo.setIsActivate(WeConstans.WE_USER_IS_LEAVE);
+ weLeaveUserVo.setIsAllocate(WeConstans.LEAVE_ALLOCATE_STATE);
+ List list = this.weUserService.leaveAllocateUserList(weLeaveUserVo);
+ return getDataTable(list);
+ }
/**
* 离职未分配
+ *
* @param weLeaveUserVo
* @return
*/
// @PreAuthorize("@ss.hasPermi('customerManage:dimission:query')")
- @GetMapping({"/leaveUserNoAllocateList"})
- public TableDataInfo leaveUserNoAllocateList(WeLeaveUserVo weLeaveUserVo) {
+ @GetMapping({"/leaveUserNoAllocateList"})
+ public TableDataInfo leaveUserNoAllocateList(WeLeaveUserVo weLeaveUserVo) {
startPage();
weLeaveUserVo.setIsActivate(WeConstans.WE_USER_IS_LEAVE);
weLeaveUserVo.setIsAllocate(WeConstans.LEAVE_NO_ALLOCATE_STATE);
List list = weUserService.leaveNoAllocateUserList(weLeaveUserVo);
return getDataTable(list);
- }
+ }
/**
* 离职分配
+ *
* @param weLeaveUserInfoAllocateVo
* @return
*/
// @PreAuthorize("@ss.hasPermi('customerManage:dimission:allocate')")
- @PutMapping({"/allocateLeaveUserAboutData"})
- public AjaxResult allocateLeaveUserAboutData(@RequestBody WeLeaveUserInfoAllocateVo weLeaveUserInfoAllocateVo) {
+ @PutMapping({"/allocateLeaveUserAboutData"})
+ public AjaxResult allocateLeaveUserAboutData(@RequestBody WeLeaveUserInfoAllocateVo weLeaveUserInfoAllocateVo) {
- weUserService.allocateLeaveUserAboutData(weLeaveUserInfoAllocateVo);
+ weUserService.allocateLeaveUserAboutData(weLeaveUserInfoAllocateVo);
- return AjaxResult.success("离职分配成功");
+ return AjaxResult.success("离职分配成功");
}
/**
- * 同步成员
+ * 同步成员
+ *
* @return
*/
// @PreAuthorize("@ss.hasPermi('contacts:organization:sync')")
@GetMapping({"/synchWeUser"})
- public AjaxResult synchWeUser(){
+ public AjaxResult synchWeUser() {
weUserService.synchWeUser();
- return AjaxResult.success(WeConstans.SYNCH_TIP);
+ return AjaxResult.success(WeConstans.SYNCH_TIP);
}
/**
* 删除用户
+ *
* @return
*/
// @PreAuthorize("@ss.hasPermi('contacts:organization:removeMember')")
@DeleteMapping({"/{ids}"})
- public AjaxResult deleteUser(@PathVariable String[] ids){
+ public AjaxResult deleteUser(@PathVariable String[] ids) {
weUserService.deleteUser(ids);
@@ -188,27 +185,28 @@ public class WeUserController extends BaseController {
/**
* 获取历史分配记录的成员
+ *
* @param weAllocateCustomersVo
* @return
*/
// @PreAuthorize("@ss.hasPermi('wecom:user:getAllocateCustomers')")
@GetMapping({"/getAllocateCustomers"})
- public TableDataInfo getAllocateCustomers(WeAllocateCustomersVo weAllocateCustomersVo){
+ public TableDataInfo getAllocateCustomers(WeAllocateCustomersVo weAllocateCustomersVo) {
startPage();
List list = weUserService.getAllocateCustomers(weAllocateCustomersVo);
return getDataTable(list);
}
-
/**
* 获取历史分配记录的群
+ *
* @param weAllocateGroupsVo
* @return
*/
// @PreAuthorize("@ss.hasPermi('wecom:user:getAllocateGroups')")
@GetMapping({"/getAllocateGroups"})
- public TableDataInfo getAllocateGroups(WeAllocateGroupsVo weAllocateGroupsVo){
+ public TableDataInfo getAllocateGroups(WeAllocateGroupsVo weAllocateGroupsVo) {
startPage();
List list = weUserService.getAllocateGroups(weAllocateGroupsVo);
return getDataTable(list);
@@ -217,20 +215,13 @@ public class WeUserController extends BaseController {
/**
* 内部应用获取用户userId
+ *
* @param code
* @return
*/
@GetMapping("/getUserInfo")
- public AjaxResult getUserInfo(String code,String agentId)
- {
-
- return AjaxResult.success(
- weUserService.getUserInfo(code,agentId)
- );
+ public AjaxResult getUserInfo(String code, String agentId) {
+ WeUserInfoVo userInfo = weUserService.getUserInfo(code, agentId);
+ return AjaxResult.success(userInfo);
}
-
-
-
-
-
}
diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/weixin/WxAuthController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/weixin/WxAuthController.java
new file mode 100644
index 0000000000000000000000000000000000000000..560bc67d1064fbecefe288fecfdba1b7ac4a1440
--- /dev/null
+++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/weixin/WxAuthController.java
@@ -0,0 +1,48 @@
+package com.linkwechat.web.controller.weixin;
+
+import com.linkwechat.common.core.domain.AjaxResult;
+import com.linkwechat.web.controller.common.CommonController;
+import com.linkwechat.wecom.domain.weixin.dto.WxAuthUserInfoDto;
+import com.linkwechat.wecom.domain.weixin.dto.WxTokenDto;
+import com.linkwechat.wecom.service.IWxAuthService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author danmo
+ * @description 微信授权controller
+ * @date 2021/4/5 18:37
+ **/
+@Api("微信授权controller")
+@Slf4j
+@RestController
+@RequestMapping("/weixin/auth")
+public class WxAuthController extends CommonController {
+
+ @Autowired
+ private IWxAuthService wxAuthService;
+
+ /**
+ * 通过code获取网页授权token
+ */
+ @ApiOperation(value = "通过code获取网页授权token",httpMethod = "GET")
+ @GetMapping("/getToken")
+ public AjaxResult getToken(@ApiParam(value = "URL上的code参数",required = true) String code, @ApiParam(value = "用户的唯一标识",required = false) String openId) {
+ return AjaxResult.success(wxAuthService.getToken(code,openId));
+ }
+
+ /**
+ * 拉取用户信息(需scope为 snsapi_userinfo)
+ */
+ @ApiOperation(value = "拉取用户信息(需scope为 snsapi_userinfo)",httpMethod = "GET")
+ @GetMapping("/getUserInfo")
+ public AjaxResult getUserInfo(@ApiParam(value = "用户的唯一标识",required = true) String openId, @ApiParam(value = "语言版本",required = true) String lang) {
+ return AjaxResult.success(wxAuthService.getUserInfo(openId,lang));
+ }
+}
diff --git a/linkwe-admin/src/main/resources/application.yml b/linkwe-admin/src/main/resources/application.yml
index f69eb0b637f5dd770b748559efebbae864f36a0e..680d8fe98b9537d0fe9f1a4dd16173ee6f4c0a91 100644
--- a/linkwe-admin/src/main/resources/application.yml
+++ b/linkwe-admin/src/main/resources/application.yml
@@ -221,6 +221,10 @@ wecome:
appIdOrCorpId: ww24262ce93851488f
token: jtQ1aGHgSmH2UHNBIndUtUe6B6EwfR
encodingAesKey: Vga4HWv7nFbRDYK8iAaQbxmkuecpo2BAfmXAyWwcXMO
+ # JS SDK 身份校验url
+ authorizeUrl: https://open.weixin.qq.com/connect/oauth2/authorize
+ # JS SDK身份校验成功后的redirect url
+ authorizeRedirectUrl: http://www.linkwechat.cn/mobile/#/task
#腾讯云对象存储
cos:
secretId: AKIDQRCizIeUGl13vakkDQMH0VkjhPr1rBBv
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/constant/Constants.java b/linkwe-common/src/main/java/com/linkwechat/common/constant/Constants.java
index ee3d6c95445a79a0174d96b065a31b67f7f40e9b..621e4667553ea7d55efc6d66263a2c857c6a6d0f 100644
--- a/linkwe-common/src/main/java/com/linkwechat/common/constant/Constants.java
+++ b/linkwe-common/src/main/java/com/linkwechat/common/constant/Constants.java
@@ -151,10 +151,16 @@ public class Constants
public static final String USER_TYPE_WECOME="11";
+ /** 企业管理 */
+ public static final String USER_TYOE_CORP_ADMIN="22";
+
+
/** 企业微信用户系统中默认用户 */
public static final String DEFAULT_WECOME_ROLE_KEY="WeCome";
+ /** 企业微信用户系统中默认用户 */
+ public static final String DEFAULT_WECOME_CORP_ADMIN="CROP_ADMIN_ROLE";
/**完成待办*/
public static final String HANDLE_SUCCESS="1";
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/constant/WeConstans.java b/linkwe-common/src/main/java/com/linkwechat/common/constant/WeConstans.java
index 9ab793bf7adb8a1a1fc43a245164c8271e0a6707..d51c77cfc0d30c47ccb8b71917989cbc766c4fa9 100644
--- a/linkwe-common/src/main/java/com/linkwechat/common/constant/WeConstans.java
+++ b/linkwe-common/src/main/java/com/linkwechat/common/constant/WeConstans.java
@@ -13,6 +13,17 @@ import java.util.Map;
**/
public class WeConstans {
+ /**
+ * 微信授权token
+ */
+ public static final String WX_AUTH_ACCESS_TOKEN = "wx_auth_access_token";
+ public static final String WX_AUTH_REFRESH_ACCESS_TOKEN = "wx_auth_refresh_access_token";
+
+ /**
+ * 微信通用token
+ */
+ public static final String WX_ACCESS_TOKEN = "wx_access_token";
+
/**
* 企业微信相关token
*/
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/core/domain/ConversationArchiveQuery.java b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/ConversationArchiveQuery.java
index af9e1d6c72a338ac7aaa3ae37bd06924b6039b4e..d2b51eebc6fc1096b308a9ebd238fe619592d4e0 100644
--- a/linkwe-common/src/main/java/com/linkwechat/common/core/domain/ConversationArchiveQuery.java
+++ b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/ConversationArchiveQuery.java
@@ -1,5 +1,7 @@
package com.linkwechat.common.core.domain;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@@ -7,29 +9,38 @@ import lombok.Data;
* @description 会话存档接口入参实体
* @date 2020/12/29 14:23
**/
+@ApiModel
@Data
public class ConversationArchiveQuery extends BaseEntity {
/** 发送人Id */
- private String fromId;
+ @ApiModelProperty("发送人Id")
+ private String fromId="";
/** 成员名称 */
- private String userName;
+ @ApiModelProperty("成员名称")
+ private String userName="";
/** 接收人Id */
- private String receiveId;
+ @ApiModelProperty("接收人Id")
+ private String receiveId="";
/** 客户姓名 */
- private String customerName;
+ @ApiModelProperty("客户姓名")
+ private String customerName="";
/** 群聊Id */
- private String roomId;
+ @ApiModelProperty("群聊Id")
+ private String roomId="";
- /** 类型 */
- private String msgType;
+ /** 消息类型(同企微api文档消息类型) */
+ @ApiModelProperty("消息类型(同企微api文档消息类型)")
+ private String msgType="";
/** 关键词 **/
- private String keyWord;
+ @ApiModelProperty("关键词")
+ private String keyWord="";
/** 消息动作 */
- private String action;
+ @ApiModelProperty("消息动作")
+ private String action="";
}
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/core/domain/entity/SysUser.java b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/entity/SysUser.java
index b67cfce9a6616f66d7274a2bdc4749f68afa89de..b0dd5cc35734c977b265f306191958a2a711562e 100644
--- a/linkwe-common/src/main/java/com/linkwechat/common/core/domain/entity/SysUser.java
+++ b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/entity/SysUser.java
@@ -105,6 +105,9 @@ public class SysUser extends BaseEntity
/** 是否具有有效得cropId */
private boolean validCropId=false;
+
+ private WeCorpAccount weCorpAccount;
+
public SysUser()
{
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCorpAccount.java b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/entity/WeCorpAccount.java
similarity index 94%
rename from linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCorpAccount.java
rename to linkwe-common/src/main/java/com/linkwechat/common/core/domain/entity/WeCorpAccount.java
index dbc65083227a097f9935751304298127f22c889b..58e077c3739d19abe97684c7b69ca08f77269959 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCorpAccount.java
+++ b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/entity/WeCorpAccount.java
@@ -1,4 +1,4 @@
-package com.linkwechat.wecom.domain;
+package com.linkwechat.common.core.domain.entity;
import com.linkwechat.common.core.domain.BaseEntity;
import com.linkwechat.common.utils.SnowFlakeUtil;
@@ -76,4 +76,8 @@ public class WeCorpAccount extends BaseEntity
@ApiModelProperty("客户流失通知开关 0:关闭 1:开启")
private String customerChurnNoticeSwitch = new String("0");
+
+
+ @ApiModelProperty("企业管理员账号")
+ private String cropAccount;
}
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/enums/CallbackEventUpdateDetail.java b/linkwe-common/src/main/java/com/linkwechat/common/enums/CallbackEventUpdateDetail.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1eedafe0a6f6b70145130e461cb05d75683127f
--- /dev/null
+++ b/linkwe-common/src/main/java/com/linkwechat/common/enums/CallbackEventUpdateDetail.java
@@ -0,0 +1,27 @@
+package com.linkwechat.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 客户群变更时间的回调参数 UpdateDetail
+ * 变更详情。目前有以下几种:
+ * add_member : 成员入群
+ * del_member : 成员退群
+ * change_owner : 群主变更
+ * change_name : 群名变更
+ * change_notice : 群公告变更
+ */
+@Getter
+public enum CallbackEventUpdateDetail {
+ ADD_MEMBER("add_member"),
+ DEL_MEMBER("del_member"),
+ CHANGE_OWNER("change_owner"),
+ CHANGE_NAME("change_name"),
+ CHANGE_NOTICE("change_notice");
+
+ private final String type;
+
+ CallbackEventUpdateDetail(String type) {
+ this.type = type;
+ }
+}
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/enums/CommunityTaskType.java b/linkwe-common/src/main/java/com/linkwechat/common/enums/CommunityTaskType.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a4a809c434098004ecae26ee72006b0e0ea33e3
--- /dev/null
+++ b/linkwe-common/src/main/java/com/linkwechat/common/enums/CommunityTaskType.java
@@ -0,0 +1,26 @@
+package com.linkwechat.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 社群运营H5列表页数据类型
+ * @Author Hang
+ * @Date 2021/3/24 11:02
+ */
+@Getter
+public enum CommunityTaskType {
+
+ TAG(1, "老客标签建群"),
+
+ SOP(2, "群sop");
+
+
+ private final String name;
+
+ private final Integer type;
+
+ CommunityTaskType(Integer type, String name) {
+ this.name = name;
+ this.type = type;
+ }
+}
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/enums/TaskSendType.java b/linkwe-common/src/main/java/com/linkwechat/common/enums/TaskSendType.java
new file mode 100644
index 0000000000000000000000000000000000000000..f0ae063305a0a09c59ec74528f76f1a037b2eb2e
--- /dev/null
+++ b/linkwe-common/src/main/java/com/linkwechat/common/enums/TaskSendType.java
@@ -0,0 +1,30 @@
+package com.linkwechat.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 老客标签建群任务群发类型
+ * @Author Hang
+ * @Date 2021/3/24 9:56
+ */
+@Getter
+public enum TaskSendType {
+ /**
+ * 个人群发
+ */
+ CROP(0, "企业群发"),
+
+ /**
+ * 企业群发
+ */
+ SINGLE(1, "个人群发");
+
+ private final String name;
+
+ private final Integer type;
+
+ TaskSendType(Integer type, String name) {
+ this.name = name;
+ this.type = type;
+ }
+}
diff --git a/linkwe-common/src/main/java/com/linkwechat/common/enums/WeEmpleCodeType.java b/linkwe-common/src/main/java/com/linkwechat/common/enums/WeEmpleCodeType.java
new file mode 100644
index 0000000000000000000000000000000000000000..979f3b5aee55f00c5496fcaf68b527a4b81365ba
--- /dev/null
+++ b/linkwe-common/src/main/java/com/linkwechat/common/enums/WeEmpleCodeType.java
@@ -0,0 +1,29 @@
+package com.linkwechat.common.enums;
+
+
+/**
+ * 群活码运用场景: 单人、多人、批量
+ */
+public enum WeEmpleCodeType {
+
+ // 员工活码类型:1:单人;2:多人;3:批量;
+ SINGLE(1, "单人"),
+ MULTI(2, "多人"),
+ BATCH(3, "批量");
+
+ private final Integer type;
+ private final String info;
+
+ WeEmpleCodeType(Integer type, String info) {
+ this.type = type;
+ this.info = info;
+ }
+
+ public Integer getType() {
+ return type;
+ }
+
+ public String getInfo() {
+ return info;
+ }
+}
diff --git a/linkwe-framework/src/main/java/com/linkwechat/framework/config/SecurityConfig.java b/linkwe-framework/src/main/java/com/linkwechat/framework/config/SecurityConfig.java
index f339d9aa3e5717e78aaa8167c6eaaf0472e70278..42448b76ffe24274fc99e253ec5f15d221f20ea9 100644
--- a/linkwe-framework/src/main/java/com/linkwechat/framework/config/SecurityConfig.java
+++ b/linkwe-framework/src/main/java/com/linkwechat/framework/config/SecurityConfig.java
@@ -121,9 +121,16 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers("/wecom/ticket/**").anonymous()
.antMatchers("/wecom/user/getUserInfo").anonymous()
- // .antMatchers("/common/uploadFile2Cos").anonymous()
- .antMatchers("/wecom/material/temporaryMaterialMediaId").anonymous()
+ // .antMatchers("/common/uploadFile2Cos").anonymous()
+// .antMatchers("/wecom/material/temporaryMaterialMediaId").anonymous()
.antMatchers("/wecom/portrait/**").anonymous()
+ .antMatchers("/wecom/fission/poster", "/wecom/fission/*/progress/*", "/wecom/reward/getRewardByFissionId/**").anonymous()
+ // 获取实际群活码和社群运营H5页面不需要登录
+ .antMatchers("/wecom/groupCode/getActualCode/**").anonymous()
+ .antMatchers("/wecom/community/h5/**").anonymous()
+ //微信授权接口
+ .antMatchers("/weixin/auth/**").anonymous()
+
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated()
.and()
diff --git a/linkwe-framework/src/main/java/com/linkwechat/framework/web/service/UserDetailsServiceImpl.java b/linkwe-framework/src/main/java/com/linkwechat/framework/web/service/UserDetailsServiceImpl.java
index 424a3fcc9384760c304cbcb59fd601d855f66887..95bc8d7ee83eb0f1acaa292e40f2224957d25167 100644
--- a/linkwe-framework/src/main/java/com/linkwechat/framework/web/service/UserDetailsServiceImpl.java
+++ b/linkwe-framework/src/main/java/com/linkwechat/framework/web/service/UserDetailsServiceImpl.java
@@ -12,7 +12,8 @@ import com.linkwechat.common.utils.SecurityUtils;
import com.linkwechat.common.utils.StringUtils;
import com.linkwechat.system.mapper.SysRoleMapper;
import com.linkwechat.system.service.ISysUserService;
-import com.linkwechat.wecom.domain.WeUser;
+import com.linkwechat.common.core.domain.entity.WeCorpAccount;
+import com.linkwechat.wecom.service.IWeCorpAccountService;
import com.linkwechat.wecom.service.IWeUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,35 +52,57 @@ public class UserDetailsServiceImpl implements UserDetailsService
private SysRoleMapper roleMapper;
+ @Autowired
+ private IWeCorpAccountService iWeCorpAccountService;
+
+
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
{
SysUser user = userService.selectUserByUserName(username);
if (StringUtils.isNull(user))
{
- //we_user表中去查询,如果该表为空则提示用户不存在,如果不为空,则将用户记录注册到系统用户表中
- WeUser weUser
- = iWeUserService.getById(username);
- if(null == weUser){
- log.info("登录用户:{} 不存在.", username);
- throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
- }
-
- //注册到we_user表中
- user=SysUser.builder()
- .userName(weUser.getUserId())
- .nickName(weUser.getName())
- .userType(Constants.USER_TYPE_WECOME)
- .email(weUser.getEmail())
- .phonenumber(weUser.getMobile())
- .sex(weUser.getGender() ==0 ? "1": weUser.getGender() .toString())
- .avatar(weUser.getAvatarMediaid())
- .roleIds(ArrayUtil.toArray(roleMapper.selectRoleList(SysRole.builder()
- .roleKey(Constants.DEFAULT_WECOME_ROLE_KEY)
- .build()).stream().map(SysRole::getRoleId).collect(Collectors.toList()), Long.class))
- .password(SecurityUtils.encryptPassword(ruoYiConfig.getWeUserDefaultPwd()))
- .build();
-
+// //企业管理登录
+// //查询企业管理相关账号
+// WeCorpAccount weCorpByAccount = iWeCorpAccountService.findWeCorpByAccount(username);
+// if(null != weCorpByAccount){
+// //注册到we_user表中
+// user=SysUser.builder()
+// .userName(weCorpByAccount.getCropAccount())
+// .nickName(weCorpByAccount.getCompanyName())
+// .userType(Constants.USER_TYOE_CORP_ADMIN)
+// .roleIds(ArrayUtil.toArray(roleMapper.selectRoleList(SysRole.builder()
+// .roleKey(Constants.DEFAULT_WECOME_CORP_ADMIN)
+// .build()).stream().map(SysRole::getRoleId).collect(Collectors.toList()), Long.class))
+// .password(SecurityUtils.encryptPassword(ruoYiConfig.getWeUserDefaultPwd()))
+// .build();
+// }
+
+// else{
+//
+// //we_user表中去查询,如果该表为空则提示用户不存在,如果不为空,则将用户记录注册到系统用户表中
+// WeUser weUser
+// = iWeUserService.getById(username);
+// if(null == weUser){
+// log.info("登录用户:{} 不存在.", username);
+// throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
+// }
+//
+// //注册到we_user表中
+// user=SysUser.builder()
+// .userName(weUser.getUserId())
+// .nickName(weUser.getName())
+// .userType(Constants.USER_TYPE_WECOME)
+// .email(weUser.getEmail())
+// .phonenumber(weUser.getMobile())
+// .sex(weUser.getGender() ==0 ? "1": weUser.getGender() .toString())
+// .avatar(weUser.getAvatarMediaid())
+// .roleIds(ArrayUtil.toArray(roleMapper.selectRoleList(SysRole.builder()
+// .roleKey(Constants.DEFAULT_WECOME_ROLE_KEY)
+// .build()).stream().map(SysRole::getRoleId).collect(Collectors.toList()), Long.class))
+// .password(SecurityUtils.encryptPassword(ruoYiConfig.getWeUserDefaultPwd()))
+// .build();
+// }
userService.insertUser(
user
);
@@ -95,6 +118,13 @@ public class UserDetailsServiceImpl implements UserDetailsService
throw new BaseException("对不起,您的账号:" + username + " 已停用");
}
+ //当前登录用户为企业管理,设置corpId和密钥相关
+// if(user.getUserType().equals(Constants.USER_TYOE_CORP_ADMIN)){
+// user.setWeCorpAccount(
+// iWeCorpAccountService.findWeCorpByAccount(username)
+// );
+// }
+
return createLoginUser(user);
}
diff --git a/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/PageHomeDataTask.java b/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/PageHomeDataTask.java
index 9b6ff39cb4343f3a0b0e2fc864068c64b0316dc3..8f8366cf738ce76cb74bb636f64fe18848be9913 100644
--- a/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/PageHomeDataTask.java
+++ b/linkwe-quartz/src/main/java/com/linkwechat/quartz/task/PageHomeDataTask.java
@@ -95,14 +95,36 @@ public class PageHomeDataTask {
String today = DateUtil.today();
String yesterday = DateUtil.yesterday().toDateStr();
//客户统计
- WePageCountDto newTime = weUserBehaviorDataService.getCountDataByDay(today,"day");
+ WePageCountDto nowData = weUserBehaviorDataService.getCountDataByDay(today,"day");
+ //客户群统计
+ WePageCountDto nowTimeGroupChatData = weGroupStatisticService.getCountDataByDay(today, "day");
+ if(nowTimeGroupChatData != null){
+ nowData.setChatCnt(nowTimeGroupChatData.getChatCnt());
+ nowData.setChatTotal(nowTimeGroupChatData.getChatTotal());
+ nowData.setChatHasMsg(nowTimeGroupChatData.getChatHasMsg());
+ nowData.setNewChatCnt(nowTimeGroupChatData.getNewChatCnt());
+ nowData.setNewMemberCnt(nowTimeGroupChatData.getNewMemberCnt());
+ nowData.setMemberTotal(nowTimeGroupChatData.getMemberTotal());
+ nowData.setMsgTotal(nowTimeGroupChatData.getMsgTotal());
+ }
/**
* 昨日
*/
//客户统计
WePageCountDto lastTime = weUserBehaviorDataService.getCountDataByDay(yesterday,"day");
-
- WePageStaticDataDto.PageStaticData pageStaticData = setPageStaticData(newTime, lastTime);
+ //客户群统计
+ WePageCountDto lastGroupChatTime = weGroupStatisticService.getCountDataByDay(yesterday,"day");
+ if(lastGroupChatTime != null){
+ lastTime.setChatCnt(lastGroupChatTime.getChatCnt());
+ lastTime.setChatTotal(lastGroupChatTime.getChatTotal());
+ lastTime.setChatHasMsg(lastGroupChatTime.getChatHasMsg());
+ lastTime.setNewChatCnt(lastGroupChatTime.getNewChatCnt());
+ lastTime.setNewMemberCnt(lastGroupChatTime.getNewMemberCnt());
+ lastTime.setMemberTotal(lastGroupChatTime.getMemberTotal());
+ lastTime.setMsgTotal(lastGroupChatTime.getMsgTotal());
+ }
+
+ WePageStaticDataDto.PageStaticData pageStaticData = setPageStaticData(nowData, lastTime);
WePageStateQuery wePageStateQuery = new WePageStateQuery();
//获取15天前的时间
@@ -110,6 +132,21 @@ public class PageHomeDataTask {
wePageStateQuery.setEndTime(today);
wePageStateQuery.setFew(14);
List dayCountData = weUserBehaviorDataService.getDayCountData(wePageStateQuery);
+ List dayGroupChatCountData = weGroupStatisticService.getDayCountData(wePageStateQuery);
+ for (WePageCountDto dayData : dayCountData) {
+ for (WePageCountDto dayGroupChatData : dayGroupChatCountData) {
+ if (dayData.getXTime().equals(dayGroupChatData.getXTime())){
+ dayData.setChatCnt(dayGroupChatData.getChatCnt());
+ dayData.setChatTotal(dayGroupChatData.getChatTotal());
+ dayData.setChatHasMsg(dayGroupChatData.getChatHasMsg());
+ dayData.setNewChatCnt(dayGroupChatData.getNewChatCnt());
+ dayData.setNewMemberCnt(dayGroupChatData.getNewMemberCnt());
+ dayData.setMemberTotal(dayGroupChatData.getMemberTotal());
+ dayData.setMsgTotal(dayGroupChatData.getMsgTotal());
+ break;
+ }
+ }
+ }
pageStaticData.setDataList(dayCountData);
return pageStaticData;
@@ -121,17 +158,51 @@ public class PageHomeDataTask {
*/
//客户统计
WePageCountDto newTime = weUserBehaviorDataService.getCountDataByDay(DateUtil.today(),"week");
+ WePageCountDto nowTimeGroupChatData = weGroupStatisticService.getCountDataByDay(DateUtil.today(),"week");
+ if(nowTimeGroupChatData != null){
+ newTime.setChatCnt(nowTimeGroupChatData.getChatCnt());
+ newTime.setChatTotal(nowTimeGroupChatData.getChatTotal());
+ newTime.setChatHasMsg(nowTimeGroupChatData.getChatHasMsg());
+ newTime.setNewChatCnt(nowTimeGroupChatData.getNewChatCnt());
+ newTime.setNewMemberCnt(nowTimeGroupChatData.getNewMemberCnt());
+ newTime.setMemberTotal(nowTimeGroupChatData.getMemberTotal());
+ newTime.setMsgTotal(nowTimeGroupChatData.getMsgTotal());
+ }
/**
* 上周
*/
//客户统计
WePageCountDto lastTime = weUserBehaviorDataService.getCountDataByDay(DateUtil.lastWeek().toDateStr(),"week");
-
+ WePageCountDto lastTimeGroupChatData = weGroupStatisticService.getCountDataByDay(DateUtil.lastWeek().toDateStr(),"week");
+ if(lastTimeGroupChatData != null){
+ lastTime.setChatCnt(lastTimeGroupChatData.getChatCnt());
+ lastTime.setChatTotal(lastTimeGroupChatData.getChatTotal());
+ lastTime.setChatHasMsg(lastTimeGroupChatData.getChatHasMsg());
+ lastTime.setNewChatCnt(lastTimeGroupChatData.getNewChatCnt());
+ lastTime.setNewMemberCnt(lastTimeGroupChatData.getNewMemberCnt());
+ lastTime.setMemberTotal(lastTimeGroupChatData.getMemberTotal());
+ lastTime.setMsgTotal(lastTimeGroupChatData.getMsgTotal());
+ }
WePageStaticDataDto.PageStaticData pageStaticData = setPageStaticData(newTime, lastTime);
WePageStateQuery wePageStateQuery = new WePageStateQuery();
wePageStateQuery.setFew(5);
List weekCountData = weUserBehaviorDataService.getWeekCountData(wePageStateQuery);
+ List weekGroupChatCountData = weGroupStatisticService.getWeekCountData(wePageStateQuery);
+ for (WePageCountDto weekData : weekCountData) {
+ for (WePageCountDto weekGroupChatData : weekGroupChatCountData) {
+ if (weekData.getXTime().equals(weekGroupChatData.getXTime())){
+ weekData.setChatCnt(weekGroupChatData.getChatCnt());
+ weekData.setChatTotal(weekGroupChatData.getChatTotal());
+ weekData.setChatHasMsg(weekGroupChatData.getChatHasMsg());
+ weekData.setNewChatCnt(weekGroupChatData.getNewChatCnt());
+ weekData.setNewMemberCnt(weekGroupChatData.getNewMemberCnt());
+ weekData.setMemberTotal(weekGroupChatData.getMemberTotal());
+ weekData.setMsgTotal(weekGroupChatData.getMsgTotal());
+ break;
+ }
+ }
+ }
pageStaticData.setDataList(weekCountData);
return pageStaticData;
@@ -139,21 +210,55 @@ public class PageHomeDataTask {
private WePageStaticDataDto.PageStaticData getMonthData(){
/**
- * 本周
+ * 本月
*/
//客户统计
WePageCountDto newTime = weUserBehaviorDataService.getCountDataByDay(DateUtil.today(),"month");
+ WePageCountDto nowTimeGroupChatData = weGroupStatisticService.getCountDataByDay(DateUtil.today(),"month");
+ if(nowTimeGroupChatData != null){
+ newTime.setChatCnt(nowTimeGroupChatData.getChatCnt());
+ newTime.setChatTotal(nowTimeGroupChatData.getChatTotal());
+ newTime.setChatHasMsg(nowTimeGroupChatData.getChatHasMsg());
+ newTime.setNewChatCnt(nowTimeGroupChatData.getNewChatCnt());
+ newTime.setNewMemberCnt(nowTimeGroupChatData.getNewMemberCnt());
+ newTime.setMemberTotal(nowTimeGroupChatData.getMemberTotal());
+ newTime.setMsgTotal(nowTimeGroupChatData.getMsgTotal());
+ }
/**
- * 上周
+ * 上月
*/
//客户统计
WePageCountDto lastTime = weUserBehaviorDataService.getCountDataByDay(DateUtil.lastMonth().toDateStr(),"month");
-
+ WePageCountDto lastTimeGroupChatData = weGroupStatisticService.getCountDataByDay(DateUtil.lastMonth().toDateStr(),"month");
+ if(lastTimeGroupChatData != null){
+ lastTime.setChatCnt(lastTimeGroupChatData.getChatCnt());
+ lastTime.setChatTotal(lastTimeGroupChatData.getChatTotal());
+ lastTime.setChatHasMsg(lastTimeGroupChatData.getChatHasMsg());
+ lastTime.setNewChatCnt(lastTimeGroupChatData.getNewChatCnt());
+ lastTime.setNewMemberCnt(lastTimeGroupChatData.getNewMemberCnt());
+ lastTime.setMemberTotal(lastTimeGroupChatData.getMemberTotal());
+ lastTime.setMsgTotal(lastTimeGroupChatData.getMsgTotal());
+ }
WePageStaticDataDto.PageStaticData pageStaticData = setPageStaticData(newTime, lastTime);
WePageStateQuery wePageStateQuery = new WePageStateQuery();
wePageStateQuery.setFew(5);
List monthCountData = weUserBehaviorDataService.getMonthCountData(wePageStateQuery);
+ List monthGroupChatCountData = weGroupStatisticService.getMonthCountData(wePageStateQuery);
+ for (WePageCountDto monthData : monthCountData) {
+ for (WePageCountDto monthGroupChatData : monthGroupChatCountData) {
+ if (monthData.getXTime().equals(monthGroupChatData.getXTime())){
+ monthData.setChatCnt(monthGroupChatData.getChatCnt());
+ monthData.setChatTotal(monthGroupChatData.getChatTotal());
+ monthData.setChatHasMsg(monthGroupChatData.getChatHasMsg());
+ monthData.setNewChatCnt(monthGroupChatData.getNewChatCnt());
+ monthData.setNewMemberCnt(monthGroupChatData.getNewMemberCnt());
+ monthData.setMemberTotal(monthGroupChatData.getMemberTotal());
+ monthData.setMsgTotal(monthGroupChatData.getMsgTotal());
+ break;
+ }
+ }
+ }
pageStaticData.setDataList(monthCountData);
return pageStaticData;
@@ -169,6 +274,8 @@ public class PageHomeDataTask {
pageStaticData.setNegativeFeedbackCntDiff(nowTime.getNegativeFeedbackCnt() - lastTime.getNegativeFeedbackCnt());
pageStaticData.setNewContactCnt(nowTime.getNewContactCnt());
pageStaticData.setNewContactCntDiff(nowTime.getNewContactCnt() - lastTime.getNewContactCnt());
+ pageStaticData.setNewMemberCnt(nowTime.getNewMemberCnt());
+ pageStaticData.setNewMemberCntDiff(nowTime.getNewMemberCnt() - lastTime.getNewMemberCnt());
return pageStaticData;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAccessTokenClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAccessTokenClient.java
index 2a3e6ec371bbdceb70e5c3cc84469396c28c1997..a563ffb143232c993a6f2a24a08e36cdbed306ea 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAccessTokenClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAccessTokenClient.java
@@ -1,20 +1,20 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.Body;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.WeAccessTokenDtoDto;
import com.linkwechat.wecom.domain.dto.WeLoginUserInfoDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 获取企业微信Token相关
* @author: HaoN
* @create: 2020-08-26 14:33
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeAccessTokenClient {
-
-
-
/**
* 获取token(常用token,联系人token)
* @param corpId 企业id
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAppClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAppClient.java
index 3405176232257c4cd0f1087b41d8399d7663545b..6c5ff540ea212d832c4687ba352ffec461331616 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAppClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeAppClient.java
@@ -1,15 +1,18 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.DataObject;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.WeAppDetailDto;
import com.linkwechat.wecom.domain.dto.WeAppDto;
import com.linkwechat.wecom.domain.dto.WeResultDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* 应用管理相关接口
*/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeAppClient {
/**
@@ -25,7 +28,7 @@ public interface WeAppClient {
* @return
*/
@Request(url = "/agent/get")
- WeAppDetailDto findAgentById(@Query("agentid") Integer agentid);
+ WeAppDetailDto findAgentById(@Query("agentid") String agentid);
/**
* 设置应用
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCropTagClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCropTagClient.java
index 78805e84faf01db1c9e3dffc52f33020e88d3799..05700efb06a96f41f05768a0f830b3516ed7c68c 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCropTagClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCropTagClient.java
@@ -1,16 +1,19 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.Body;
import com.dtflys.forest.annotation.DataObject;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.WeResultDto;
import com.linkwechat.wecom.domain.dto.tag.*;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 企业微信标签相关
* @author: HaoN
* @create: 2020-10-17 11:00
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeCropTagClient {
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerClient.java
index c18256ec21a4efcb8901c723f7c439fa6b535efe..e4219c3295e706e5af4764322512de394139d9dc 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerClient.java
@@ -1,13 +1,11 @@
package com.linkwechat.wecom.client;
-import com.dtflys.forest.annotation.DataObject;
-import com.dtflys.forest.annotation.JSONBody;
-import com.dtflys.forest.annotation.Query;
-import com.dtflys.forest.annotation.Request;
+import com.dtflys.forest.annotation.*;
import com.linkwechat.wecom.domain.dto.*;
import com.linkwechat.wecom.domain.dto.customer.*;
import com.linkwechat.wecom.domain.query.GroupChatStatisticQuery;
import com.linkwechat.wecom.domain.query.UserBehaviorDataQuery;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
import java.util.Map;
@@ -17,6 +15,7 @@ import java.util.Map;
* @author: HaoN
* @create: 2020-09-15 14:15
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeCustomerClient {
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerGroupClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerGroupClient.java
index 9adaa54557c80a52f0aba613ff91a273a8c178b4..963165aa74c62c30e24c9988f98fab2c37dd4aba 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerGroupClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerGroupClient.java
@@ -1,16 +1,19 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.DataObject;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.customer.CustomerGroupDetail;
import com.linkwechat.wecom.domain.dto.customer.CustomerGroupList;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 客户群
* @author: HaoN
* @create: 2020-10-20 21:50
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeCustomerGroupClient {
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerMessagePushClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerMessagePushClient.java
index 84408de31e49286bad52d7b7e609cc4d3db348a0..9564f798f1ea7008d0beaad6a16ea0cab3d301a6 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerMessagePushClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeCustomerMessagePushClient.java
@@ -1,19 +1,18 @@
package com.linkwechat.wecom.client;
-import com.dtflys.forest.annotation.Body;
-import com.dtflys.forest.annotation.DataObject;
-import com.dtflys.forest.annotation.Query;
-import com.dtflys.forest.annotation.Request;
+import com.dtflys.forest.annotation.*;
import com.linkwechat.wecom.domain.dto.message.QueryCustomerMessageStatusResultDataObjectDto;
import com.linkwechat.wecom.domain.dto.message.QueryCustomerMessageStatusResultDto;
import com.linkwechat.wecom.domain.dto.message.SendMessageResultDto;
import com.linkwechat.wecom.domain.dto.message.WeCustomerMessagePushDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 群发消息
* @author: KeWen
* @create: 2020-10-25 21:34
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeCustomerMessagePushClient {
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeDepartMentClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeDepartMentClient.java
index cf0525723f3eacd20f918462ec043ab7368d05e2..c5da019196f9f0600c99b796780988a90ad263ea 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeDepartMentClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeDepartMentClient.java
@@ -1,16 +1,19 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.DataObject;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.WeDepartMentDto;
import com.linkwechat.wecom.domain.dto.WeResultDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 企业微信部门相关客户端
* @author: HaoN
* @create: 2020-08-27 16:40
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeDepartMentClient {
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeExternalContactClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeExternalContactClient.java
index e0354cfcffb9ab3f045b120f87b98c329a2bb120..45b66b0102cbdbedaafcc3cdbba7828b2c0e5558 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeExternalContactClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeExternalContactClient.java
@@ -1,15 +1,18 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.DataObject;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.WeExternalContactDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 员工对外联系方式
* @author: HaoN
* @create: 2020-10-13 10:39
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeExternalContactClient {
@Request(url = "/externalcontact/add_contact_way",
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMediaClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMediaClient.java
index c5281749940a63ffc28a067fa4a3281bc2f642a0..8cafe75a22f05ce6908b0466b6149a8a1933e8c6 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMediaClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMediaClient.java
@@ -1,9 +1,11 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.DataFile;
import com.dtflys.forest.annotation.Post;
import com.dtflys.forest.annotation.Query;
import com.linkwechat.wecom.domain.dto.WeMediaDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
@@ -15,6 +17,7 @@ import java.io.InputStream;
* @Description:
* @Date: create in 2020/9/24 0024 0:14
*/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeMediaClient {
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMessagePushClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMessagePushClient.java
index 56a606498a239c51e8181857726bb69f0b460dfd..16ee17ed877c669b00f36e7983b23631d14af6c8 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMessagePushClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMessagePushClient.java
@@ -1,11 +1,13 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.DataObject;
import com.dtflys.forest.annotation.Header;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.WeMessagePushDto;
import com.linkwechat.wecom.domain.dto.WeMessagePushGroupDto;
import com.linkwechat.wecom.domain.dto.WeMessagePushResultDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 消息推送
@@ -13,6 +15,7 @@ import com.linkwechat.wecom.domain.dto.WeMessagePushResultDto;
* @create: 2020-10-17 22:41
**/
@SuppressWarnings("all")
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeMessagePushClient {
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMsgAuditClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMsgAuditClient.java
index 01914abb4ccf516501ef7f69fe1994f7d1441659..6300c635592f81bd353b4c07abdace54b64b529f 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMsgAuditClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeMsgAuditClient.java
@@ -1,16 +1,19 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.DataObject;
import com.dtflys.forest.annotation.DataVariable;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.dto.msgaudit.WeMsgAuditDto;
import com.linkwechat.wecom.domain.vo.WeMsgAuditVo;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @author danmo
* @description 会话存档接口
* @date 2020/12/2 16:45
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeMsgAuditClient {
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeTicketClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeTicketClient.java
index 6ecfe4d3810732f3f04c38cb230649cba23c2bfe..2bd9346daf718e8de7ed05ea5d2e900b195cf0d7 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeTicketClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeTicketClient.java
@@ -1,14 +1,17 @@
package com.linkwechat.wecom.client;
+import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.Header;
import com.dtflys.forest.annotation.Request;
import com.linkwechat.wecom.domain.WeH5TicketDto;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @author danmo
* @description h5获取签名
* @date 2021/1/6 11:51
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeTicketClient {
/**
* 获取去企业jsapi_ticket
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeUserClient.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeUserClient.java
index b998633f061f3c74d3445447c38757e797d2a29b..1881de06f3e38cc8ff8ebcc7615d2f4faf03faed 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeUserClient.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/client/WeUserClient.java
@@ -1,16 +1,15 @@
package com.linkwechat.wecom.client;
-import com.dtflys.forest.annotation.DataObject;
-import com.dtflys.forest.annotation.Header;
-import com.dtflys.forest.annotation.Query;
-import com.dtflys.forest.annotation.Request;
+import com.dtflys.forest.annotation.*;
import com.linkwechat.wecom.domain.dto.*;
+import com.linkwechat.wecom.interceptor.WeAccessTokenInterceptor;
/**
* @description: 企业微信通讯录成员
* @author: HaoN
* @create: 2020-08-27 16:42
**/
+@BaseRequest(interceptor = WeAccessTokenInterceptor.class)
public interface WeUserClient {
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeApp.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeApp.java
index 2e477f9d6c0526ee9886bebd599c311354d18e58..08cc95821945129dca48118d4c298f20842a2dc0 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeApp.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeApp.java
@@ -1,5 +1,6 @@
package com.linkwechat.wecom.domain;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.linkwechat.common.utils.SnowFlakeUtil;
import lombok.AllArgsConstructor;
@@ -8,6 +9,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
+import java.util.List;
/**
* @description: 自建应用相关
@@ -34,7 +36,7 @@ public class WeApp {
private String agentSecret;
- /**应用类型(1:自建应用;)**/
+ /**应用类型(1:自建应用;2:小程序)**/
private Integer appType;
@@ -52,8 +54,28 @@ public class WeApp {
private String status;
+ /**可见范围部门id,使用逗号隔开**/
+ private String allowPartys;
+ /**可见范围人员id,使用逗号隔开**/
+ private String allowUserinfos;
+
+
+ /**应用名称**/
+ private String agentName;
+
+
+ /**企业应用描述**/
+ private String description;
+
+
+ /**应用头像**/
+ private String squareLogoUrl;
+
+
+ @TableField(exist = false)
+ private String logoMediaid;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeChatContactMapping.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeChatContactMapping.java
index 1d5c0e6f5f0e04480630d68ab182583e6656732d..d6088806c6ee1fa6d9de6c10cd393c9bfb228e11 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeChatContactMapping.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeChatContactMapping.java
@@ -3,6 +3,8 @@ package com.linkwechat.wecom.domain;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.linkwechat.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -12,6 +14,7 @@ import lombok.Data;
* @author ruoyi
* @date 2020-12-27
*/
+@ApiModel
@Data
public class WeChatContactMapping {
private static final long serialVersionUID = 1L;
@@ -24,66 +27,77 @@ public class WeChatContactMapping {
/**
* 发送人id
*/
+ @ApiModelProperty("发送人id")
@Excel(name = "发送人id")
private String fromId;
/**
* 接收人id
*/
+ @ApiModelProperty("接收人id")
@Excel(name = "接收人id")
private String receiveId;
/**
* 群聊id
*/
+ @ApiModelProperty("群聊id")
@Excel(name = "群聊id")
private String roomId;
/**
* 是否为客户 0-成员 1-客户 2-机器人
*/
+ @ApiModelProperty("是否为客户 0-成员 1-客户 2-机器人")
@Excel(name = "是否为客户 0-成员 1-客户 2-机器人")
private Integer isCustom;
/**
* 是否为客户 0-内部 1-外部 2-群聊
*/
+ @ApiModelProperty("是否为客户 0-内部 1-外部 2-群聊")
@TableField(exist = false)
private Integer searchType;
/**
- * 内部接收人信息
+ * 内部发送人信息
*/
+ @ApiModelProperty("内部发送人信息")
@TableField(exist = false)
private WeUser fromWeUser;
/**
- * 外部接收人信息
+ * 外部发送人信息
*/
+ @ApiModelProperty("外部发送人信息")
@TableField(exist = false)
private WeCustomer fromWeCustomer;
/**
* 内部接收人信息
*/
+ @ApiModelProperty("内部接收人信息")
@TableField(exist = false)
private WeUser receiveWeUser;
/**
* 外部接收人信息
*/
+ @ApiModelProperty("外部接收人信息")
@TableField(exist = false)
private WeCustomer receiveWeCustomer;
/**
* 群信息
*/
+ @ApiModelProperty("群信息")
@TableField(exist = false)
private WeGroup roomInfo;
/**
* 最后一条聊天数据
*/
+ @ApiModelProperty("最后一条聊天数据")
@TableField(exist = false)
private JSONObject finalChatContext;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCommunityNewGroup.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCommunityNewGroup.java
index 721adf465a9ca32ee91f41cb6b6ad9b278659661..6288e13036d0e1e37b3bda147e9804f6a761b611 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCommunityNewGroup.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCommunityNewGroup.java
@@ -23,72 +23,25 @@ public class WeCommunityNewGroup extends BaseEntity {
*主键ID
*/
@TableId
- private Long newGroupId= SnowFlakeUtil.nextId();
+ private Long id = SnowFlakeUtil.nextId();
/**
* 员工活码名称
*/
- @ApiModelProperty("员工活码名称")
- private String empleCodeName;
+ private String emplCodeName;
/**
- * 活动场景
+ * 群活码id
*/
- @ApiModelProperty("活动场景")
- private String activityScene;
-
- /**
- * 欢迎语
- */
- @ApiModelProperty("欢迎语")
- private String welcomeMsg;
-
- /**
- * 新增联系方式的配置id
- */
- @ApiModelProperty("新增联系方式的配置id")
- private String configId;
-
- /**
- * 二维码链接
- */
- @ApiModelProperty("二维码链接")
- private String qrCode;
-
- /**
- * 客户添加时无需经过确认自动成为好友:1:是;0:否
- */
- @ApiModelProperty("客户添加时无需经过确认自动成为好友:1:是;0:否")
- private Boolean isJoinConfirmFriends;
-
- /**
- * 添加好友数
- */
- @ApiModelProperty("添加好友数")
- private Integer joinFriendNums;
-
- /**
- * 群活码ID
- */
- @ApiModelProperty("群活码ID")
private Long groupCodeId;
/**
- * 素材的id
+ * 员工活码id
*/
- @ApiModelProperty("素材的id")
- private Long mediaId;
+ private Long emplCodeId;
/**
* 0 未删除 1 已删除
*/
- @ApiModelProperty("0 未删除 1 已删除")
- private int delFlag;
-
-
- /**
- * 员工活码
- */
- private String userQrCode;
-
+ private int delFlag = 0;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomer.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomer.java
index 4cd7a0f54c9251226e29b8340eb60704bfc3ed15..760efe2266958faf3a62f629de9d31617d510193 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomer.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomer.java
@@ -1,31 +1,26 @@
package com.linkwechat.wecom.domain;
-import java.util.Date;
-import java.util.List;
-
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.linkwechat.common.annotation.Excel;
-import com.linkwechat.common.annotation.Excels;
import com.linkwechat.common.core.domain.BaseEntity;
-import com.linkwechat.common.utils.SnowFlakeUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.List;
/**
* 企业微信客户对象 we_customer
- *
+ *
* @author ruoyi
* @date 2020-09-13
*/
@@ -35,72 +30,99 @@ import javax.validation.constraints.NotBlank;
@AllArgsConstructor
@NoArgsConstructor
@TableName("we_customer")
-public class WeCustomer extends BaseEntity
-{
+public class WeCustomer extends BaseEntity {
private static final long serialVersionUID = 1L;
- /** 外部联系人的userid */
+ /**
+ * 外部联系人的userid
+ */
@TableId
@NotBlank(message = "外部联系人的id不可为空")
@ApiModelProperty("外部联系人的userid")
private String externalUserid;
- /** 外部联系人名称 */
+ /**
+ * 外部联系人名称
+ */
@Excel(name = "客户")
@ApiModelProperty("外部联系人名称")
private String name;
- /** 外部联系人头像 */
+ /**
+ * 外部联系人头像
+ */
@ApiModelProperty("外部联系人头像")
private String avatar;
- /** 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户 */
+ /**
+ * 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户
+ */
@ApiModelProperty("外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户")
@Excel(name = "客户类型", readConverterExp = "1=微信,2=企业微信")
private Integer type;
- /** 外部联系人性别 0-未知 1-男性 2-女性 */
+ /**
+ * 外部联系人性别 0-未知 1-男性 2-女性
+ */
@ApiModelProperty("外部联系人性别 0-未知 1-男性 2-女性")
@Excel(name = "性别", readConverterExp = "0=未知,1=男性,2=女性")
private Integer gender;
- /** 外部联系人在微信开放平台的唯一身份标识,通过此字段企业可将外部联系人与公众号/小程序用户关联起来。 */
+ /**
+ * 外部联系人在微信开放平台的唯一身份标识,通过此字段企业可将外部联系人与公众号/小程序用户关联起来。
+ */
@ApiModelProperty("外部联系人在微信开放平台的唯一身份标识,通过此字段企业可将外部联系人与公众号/小程序用户关联起来")
private String unionid;
- /** 生日 */
+ /**
+ * 生日
+ */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty("生日")
private Date birthday;
- /** 客户企业简称 */
+ /**
+ * 客户企业简称
+ */
@ApiModelProperty("客户企业简称")
@Excel(name = "公司名称")
private String corpName;
- /** 客户企业全称 */
+ /**
+ * 客户企业全称
+ */
@ApiModelProperty("客户企业全称")
private String corpFullName;
- /** 职位 */
+ /**
+ * 职位
+ */
@ApiModelProperty("职位")
- private String position;
+ private String position;
- /** 是否开启会话存档 0:关闭 1:开启 */
+ /**
+ * 是否开启会话存档 0:关闭 1:开启
+ */
@ApiModelProperty("是否开启会话存档 0:关闭 1:开启")
private Integer isOpenChat;
- /** 添加人员 */
+ /**
+ * 添加人员
+ */
@TableField(exist = false)
private List weFlowerCustomerRels;
- /** 添加人id */
+ /**
+ * 添加人id
+ */
@TableField(exist = false)
private String userIds;
- /** 标签 */
+ /**
+ * 标签
+ */
@TableField(exist = false)
private String tagIds;
@@ -108,7 +130,9 @@ public class WeCustomer extends BaseEntity
@JSONField(defaultValue = "0")
private Integer status;
- /** 部门 */
+ /**
+ * 部门
+ */
@TableField(exist = false)
private String departmentIds;
@@ -125,4 +149,17 @@ public class WeCustomer extends BaseEntity
private String userId;
+ /**
+ * 创建者
+ */
+ @ApiModelProperty(hidden = true)
+ @TableField(exist = false)
+ private String createBy;
+
+ /**
+ * 更新者
+ */
+ @ApiModelProperty(hidden = true)
+ @TableField(exist = false)
+ private String updateBy;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomerTrajectory.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomerTrajectory.java
index 2b601c25330d38ab560cb0ecae3d82ef7c1bb78b..db82ae47084a7f1c7277108a957bf787dc4f5022 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomerTrajectory.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeCustomerTrajectory.java
@@ -29,8 +29,13 @@ public class WeCustomerTrajectory {
private String content;
//处理日期
private Date createDate;
- //处理时间
- private Time createTime;
+
+ //处理开始时间
+ private Time startTime;
+
+ //处理结束时间
+ private Time endTime;
+
//0:正常;1:删除;2:完成
private String status;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCode.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCode.java
index 340caef7c794fa653d0833950e2aca80fc34220b..4f74efecde12f2714d0f497dc70d37157e09fa68 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCode.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCode.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.linkwechat.common.core.domain.BaseEntity;
import com.linkwechat.common.utils.SnowFlakeUtil;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@@ -17,6 +18,7 @@ import java.util.List;
* @date 2020-10-04
*/
@Data
+@EqualsAndHashCode(callSuper = true)
@TableName("we_emple_code")
public class WeEmpleCode extends BaseEntity {
private static final long serialVersionUID = 1L;
@@ -34,12 +36,12 @@ public class WeEmpleCode extends BaseEntity {
/**
* 客户添加时无需经过确认自动成为好友:1:是;0:否
*/
- private Boolean isJoinConfirmFriends;
+ private Boolean skipVerify;
/**
- * 活动场景
+ * 活动场景,和 联系我 接口需要的 scene 不是一回事
*/
- private String activityScene;
+ private String scenario;
/**
* 欢迎语
@@ -54,10 +56,10 @@ public class WeEmpleCode extends BaseEntity {
/**
* 0:正常;1:删除;
*/
- private Integer delFlag = new Integer(0);
+ private Integer delFlag = 0;
- @NotEmpty(message = "员工信息不能为空")
/** 使用员工 */
+ @NotEmpty(message = "员工信息不能为空")
@TableField(exist = false)
private List weEmpleCodeUseScops;
@@ -84,6 +86,16 @@ public class WeEmpleCode extends BaseEntity {
*/
private String qrCode;
+ /**
+ * 企业自定义的state参数,用于区分客户具体是通过哪个「联系我」添加
+ */
+ private String state;
+
+ /**
+ * 扫码次数
+ */
+ private Integer scanTimes = 0;
+
/**
* 使用员工姓名
*/
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeTag.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeTag.java
index 2d2e22c9b3b6a050216a594e67eb6bb447110e1a..cdb7e05ec46a35ba705ea6229bb9280d77a6807a 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeTag.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeTag.java
@@ -1,9 +1,7 @@
package com.linkwechat.wecom.domain;
-import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.linkwechat.common.core.domain.BaseEntity;
import com.linkwechat.common.utils.SnowFlakeUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -16,7 +14,6 @@ import lombok.Data;
* @author ruoyi
* @date 2020-10-04
*/
-@ApiModel
@Data
@TableName("we_emple_code_tag")
public class WeEmpleCodeTag
@@ -37,7 +34,7 @@ public class WeEmpleCodeTag
/** 0:正常;2:删除; */
@ApiModelProperty("0:正常;2:删除")
- private Integer delFlag=new Integer(0);
+ private Integer delFlag = 0;
/** 标签名 */
@ApiModelProperty("标签名")
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeUseScop.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeUseScop.java
index 7a16f622c974763ba9f36ff82b33f6780cd7e3d5..948c13b4c0150a47678ee631bab4480308c78f68 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeUseScop.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeEmpleCodeUseScop.java
@@ -43,7 +43,7 @@ public class WeEmpleCodeUseScop
/** 0:正常;2:删除; */
@ApiModelProperty("0:正常;2:删除")
- private Integer delFlag=new Integer(0);
+ private Integer delFlag = 0;
/** 活码使用人员名称 */
@ApiModelProperty("活码使用人员名称")
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeGroupSopChat.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeGroupSopChat.java
index da7d1fbf8f9df09c33ed356afbf9ad1e7c470c4e..269a7d5d67d03b5690088b322e5d5bba106ba017 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeGroupSopChat.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeGroupSopChat.java
@@ -22,4 +22,9 @@ public class WeGroupSopChat {
* 实际群聊id
*/
private String chatId;
+
+ /**
+ * 是否已完成
+ */
+ private boolean isDone;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTask.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTask.java
index decaa6553d76d76aa091c2b4d5e30e7e4da567e5..0e2c5d328c81ad933bc6d56dd9001b9e0699e254 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTask.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTask.java
@@ -4,6 +4,7 @@ package com.linkwechat.wecom.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.linkwechat.common.core.domain.BaseEntity;
+import com.linkwechat.common.utils.SnowFlakeUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -12,11 +13,13 @@ import lombok.EqualsAndHashCode;
@TableName("we_pres_tag_group")
public class WePresTagGroupTask extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
/**
*主键ID
*/
@TableId
- private Long taskId;
+ private Long taskId = SnowFlakeUtil.nextId();
/**
* 任务名称
@@ -58,4 +61,9 @@ public class WePresTagGroupTask extends BaseEntity {
*/
private String cusEndTime;
+ /**
+ * 企业群发消息的id
+ */
+ private String msgid;
+
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTaskScope.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTaskScope.java
index bc5d98fa91d0979b057d982a0992da190791668f..bbe3e289cfba15e8bb7242639ae1ec595bac7bee 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTaskScope.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WePresTagGroupTaskScope.java
@@ -24,4 +24,9 @@ public class WePresTagGroupTaskScope {
*/
private String weUserId;
+ /**
+ * 是否已处理
+ */
+ private boolean isDone;
+
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeUser.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeUser.java
index 13dd7649ef829ceb6b85dd610cfa7082f6dc14e7..879c0da73fee9b142be1ad2402a18c096e1f9a57 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeUser.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeUser.java
@@ -28,6 +28,7 @@ import java.util.Date;
* @author ruoyi
* @date 2020-08-31
*/
+@ApiModel
@Data
@TableName("we_user")
@Builder
@@ -39,79 +40,101 @@ public class WeUser
/** 用户头像 */
+ @ApiModelProperty("用户头像")
@TableField(value = "head_image_url")
private String avatarMediaid;
/** 用户名称 */
+ @ApiModelProperty("用户名称")
@NotBlank(message = "姓名不可为空")
@TableField(value = "user_name")
private String name;
/** 用户昵称 */
+ @ApiModelProperty("用户昵称")
private String alias;
/** 账号 */
+ @ApiModelProperty("账号")
@NotBlank(message = "账号不可为空")
@TableId
private String userId;
/** 性别。1表示男性,2表示女性 */
+ @ApiModelProperty("性别。1表示男性,2表示女性")
private Integer gender;
/** 手机号 */
+ @ApiModelProperty("手机号")
@NotBlank(message = "手机号不可为空")
private String mobile;
/** 邮箱 */
+ @ApiModelProperty("邮箱")
private String email;
/** 个人微信号 */
+ @ApiModelProperty("个人微信号")
private String wxAccount;
/** 用户所属部门,使用逗号隔开,字符串格式存储 */
+ @ApiModelProperty("用户所属部门")
private String[] department;
/** 职务 */
+ @ApiModelProperty("职务")
private String position;
/** 1表示为上级,0表示普通成员(非上级)。 */
+ @ApiModelProperty("1表示为上级,0表示普通成员(非上级)")
private String[] isLeaderInDept;
/** 入职时间 */
+ @ApiModelProperty("入职时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date joinTime;
/** 是否启用(1表示启用成员,0表示禁用成员) */
+ @ApiModelProperty("是否启用(1表示启用成员,0表示禁用成员)")
private Integer enable;
/** 身份证号 */
+ @ApiModelProperty("身份证号")
private String idCard;
/** QQ号 */
+ @ApiModelProperty("QQ号")
private String qqAccount;
/** 座机 */
+ @ApiModelProperty("座机")
private String telephone;
/** 地址 */
+ @ApiModelProperty("地址")
private String address;
/** 生日 */
@JsonFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty("生日")
private Date birthday;
/** 是否激活(1:是;2:否)该字段主要表示当前信息是否同步微信 */
/** 激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业,6=删除 */
+ @ApiModelProperty("激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业,6=删除")
private Integer isActivate;
/** 离职是否分配(1:已分配;0:未分配;) */
+ @ApiModelProperty("离职是否分配(1:已分配;0:未分配;)")
private Integer isAllocate;
/** 离职时间 */
+ @ApiModelProperty("离职时间")
private Date dimissionTime;
+ @ApiModelProperty("备注")
private String remark;
@TableField(exist = false)
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/TemporaryMaterialDto.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/TemporaryMaterialDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ad14ab7d7c6b9c4d65e2e98f81b632068ce0f9a
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/TemporaryMaterialDto.java
@@ -0,0 +1,15 @@
+package com.linkwechat.wecom.domain.dto;
+
+import lombok.Data;
+
+/**
+ * @description: 群发参数相关
+ * @author: HaoN
+ * @create: 2021-03-31 17:20
+ **/
+@Data
+public class TemporaryMaterialDto {
+ private String url;
+ private String type;
+ private String name;
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDetailDto.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDetailDto.java
index 74cba1c617e1ec0b93df70fc002716bfa45d5c55..93d3811bf054ad76aebc495d966486558ef278cc 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDetailDto.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDetailDto.java
@@ -1,15 +1,21 @@
package com.linkwechat.wecom.domain.dto;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
/**
* 企业应用详情接口
*/
@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
public class WeAppDetailDto extends WeResultDto{
//企业应用id
- private Long agentid;
+ private String agentid;
//企业应用名称
private String name;
//企业应用方形头像
@@ -28,4 +34,33 @@ public class WeAppDetailDto extends WeResultDto{
private String home_url;
//企业应用头像的mediaid,通过素材管理接口上传图片获得mediaid,上传后会自动裁剪成方形和圆形两个头像
private String logo_mediaid;
+
+ //企业应用可见范围(人员)
+ private AllowUserinfos allow_userinfos;
+
+ //企业应用可见范围(部门)
+ private AllowPartys allow_partys;
+
+
+
+ //可见部门
+ @Data
+ public class AllowPartys{
+ private String[] partyid;
+
+ }
+
+
+ @Data
+ public class AllowUserinfos{
+ private user[] user;
+ }
+
+ @Data
+ public class user{
+ private String userid;
+ }
+
+
+
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDto.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDto.java
index 997539299704c531c67dd37551a1fe7ebfb2dd1e..9bc811f2cae005c4b56e3a9f0790c8b15db28215 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDto.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeAppDto.java
@@ -15,11 +15,19 @@ public class WeAppDto extends WeResultDto{
@Data
public class Agent{
//企业应用id
- private Long agentid;
+ private String agentid;
//企业应用名称
private String name;
//企业应用方形头像url
private String square_logo_url;
+
+
+
+
+
}
+
+
+
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeCommunityNewGroupDto.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeCommunityNewGroupDto.java
index 5d022b7339ba948c42624762da755afa01778ce1..b789f9e02d59f08e6c9b6b13a0c9fb442413be82 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeCommunityNewGroupDto.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeCommunityNewGroupDto.java
@@ -1,9 +1,5 @@
package com.linkwechat.wecom.domain.dto;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.linkwechat.wecom.domain.WeEmpleCodeTag;
-import com.linkwechat.wecom.domain.WeEmpleCodeUseScop;
-import io.swagger.annotations.ApiModel;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@@ -17,56 +13,39 @@ import java.util.List;
@Data
public class WeCommunityNewGroupDto {
-
/**
- * 主键
+ * 活码名称
*/
- private String newGroupId;
+ @NotNull(message = "活码名不能为空")
+ private String codeName;
/**
- * 活动场景
+ * 指定的员工(id)
*/
- private String activityScene;
+ @NotNull(message = "使用员工不能为空")
+ private List emplList;
/**
* 欢迎语
*/
+ @NotNull(message = "欢迎语不能为空")
private String welcomeMsg;
- @NotNull(message = "员工信息不能为空")
- /** 使用员工 */
- @TableField(exist = false)
- private List weEmpleCodeUseScops;
-
- /**
- * 扫码标签
- */
- @TableField(exist = false)
- private List weEmpleCodeTags;
-
/**
* 群活码ID
*/
+ @NotNull(message = "群活码不能为空")
private Long groupCodeId;
/**
- * 客户添加时无需经过确认自动成为好友:1:是;0:否
- */
- private Boolean isJoinConfirmFriends;
-
- /**
- * 新增联系方式的配置id
- */
- private String configId;
-
- /**
- * 二维码链接
+ * 标签id列表
*/
- private String qrCode;
+ @NotNull(message = "标签不能为空")
+ private List tagList;
/**
- * 素材的id
+ * 是否跳过验证自动加好友
*/
- private Long mediaId;
+ private Boolean skipVerify = true;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeTaskFissionPosterDTO.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeTaskFissionPosterDTO.java
index 832ec1d1b2982df04375a66fecda53bbd2b55343..f09ae36614d25573bca206a97f39d897051279de 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeTaskFissionPosterDTO.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/dto/WeTaskFissionPosterDTO.java
@@ -13,7 +13,7 @@ import lombok.Data;
@Data
public class WeTaskFissionPosterDTO {
@ApiModelProperty("客户id")
- private String eid;
+ private String unionId;
@ApiModelProperty("任务id")
private Long taskFissionId;
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeCommunityNewGroupVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeCommunityNewGroupVo.java
index a4d3647241ad45eb2b27858114e68e34d012fd86..4efc1e2ca925d59a6e06e2a1e4d3e3569006f952 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeCommunityNewGroupVo.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeCommunityNewGroupVo.java
@@ -2,15 +2,11 @@ package com.linkwechat.wecom.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
-import com.linkwechat.wecom.domain.WeEmpleCodeTag;
-import com.linkwechat.wecom.domain.WeEmpleCodeUseScop;
-import com.linkwechat.wecom.domain.WeGroupCodeActual;
-import com.linkwechat.wecom.domain.WeMaterial;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.linkwechat.wecom.domain.*;
import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;
@@ -21,108 +17,75 @@ import java.util.List;
@Data
public class WeCommunityNewGroupVo {
- /**
- * 主键ID
- */
- @ApiModelProperty("主键ID")
- private Long newGroupId;
-
- /**
- * 员工活码名称
- */
- @ApiModelProperty("员工活码名称")
- private String empleCodeName;
+ private Long id;
/**
- * 活动场景
+ * 活码名称
*/
- @ApiModelProperty("活动场景")
- private String activityScene;
+ private String codeName;
- /**
- * 欢迎语
- */
- @ApiModelProperty("欢迎语")
- private String welcomeMsg;
-
- /**
- * 群活码id
- */
- @ApiModelProperty("群活码id")
+ @JsonIgnore
private Long groupCodeId;
+ @JsonIgnore
+ private Long emplCodeId;
+
/**
- * 新增联系方式的配置id
+ * 员工活码URL
*/
- @ApiModelProperty("新增联系方式的配置id")
- private String configId;
+ private String emplCodeUrl;
/**
- * 二维码链接
+ * 欢迎语(即员工活码设定的欢迎语)
*/
- @ApiModelProperty("二维码链接")
- private String qrCode;
+ @TableField(exist = false)
+ private String welcomeMsg;
/**
- * 客户添加时无需经过确认自动成为好友:1:是;0:否
+ * 群活码信息
*/
- @ApiModelProperty("客户添加时无需经过确认自动成为好友:1:是;0:否")
- private Boolean isJoinConfirmFriends;
+ @TableField(exist = false)
+ private WeGroupCodeVo groupCodeInfo;
/**
- * 添加好友数
+ * 员工信息
*/
- @ApiModelProperty("添加好友数")
- private Integer joinFriendNums;
-
- @NotEmpty(message = "员工信息不能为空")
- /** 使用员工 */
@TableField(exist = false)
- @ApiModelProperty("使用员工")
- private List weEmpleCodeUseScops;
+ private List emplList;
/**
- * 扫码标签
+ * 对应群聊信息
*/
@TableField(exist = false)
- @ApiModelProperty("扫码标签")
- private List weEmpleCodeTags;
+ private List groupList;
/**
- * 素材
+ * 客户标签列表
*/
- @ApiModelProperty("素材")
@TableField(exist = false)
- private WeMaterial weMaterial;
+ private List tagList;
/**
- * 素材的id
+ * 当前添加的好友数
*/
- @ApiModelProperty("素材的id")
- private Long mediaId;
+ @TableField(exist = false)
+ private Integer cusNumber = 0;
/**
- * 实际群聊
+ * 是否跳过验证
*/
- @ApiModelProperty("实际群聊")
- private List weGroupUserScops;
+ @TableField(exist = false)
+ private Boolean skipVerify = true;
/**
* 创建者
*/
- @ApiModelProperty(value = "创建者", hidden = true)
private String createBy;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @ApiModelProperty(value = "创建时间", hidden = true)
private Date createTime = new Date();
- /**
- * 个人码
- */
- private String userQrCode;
-
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeEmplVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeCommunityTaskEmplVo.java
similarity index 47%
rename from linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeEmplVo.java
rename to linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeCommunityTaskEmplVo.java
index 732036647078c4d11a70b2e6a5f83210b0c4ed37..d3477c426585e46c0e7f3182f0244b8ae9758640 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeEmplVo.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeCommunityTaskEmplVo.java
@@ -3,10 +3,10 @@ package com.linkwechat.wecom.domain.vo;
import lombok.Data;
/**
- * 员工信息
+ * 社群运营相关任务执行人信息
*/
@Data
-public class WeEmplVo {
+public class WeCommunityTaskEmplVo {
/**
* 员工id
@@ -17,4 +17,14 @@ public class WeEmplVo {
* 员工名称
*/
private String name;
+
+ /**
+ * 员工头像
+ */
+ private String avatar;
+
+ /**
+ * 是否已完成任务
+ */
+ private boolean isDone;
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..91740e0b8646c55643045432229563d26aea06e6
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupCodeVo.java
@@ -0,0 +1,23 @@
+package com.linkwechat.wecom.domain.vo;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 群活码简略信息
+ * @Author Hang
+ * @Date 2021/3/26 14:21
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class WeGroupCodeVo {
+
+ private Long id;
+
+ private String uuid;
+
+ private String codeUrl;
+}
\ No newline at end of file
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupSopVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupSopVo.java
index e86aa3448d411d79ee942c7885bb6fd65d6df3fa..0b454ccbd069234a6f22b092e3d7f88f9c8c3ed2 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupSopVo.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeGroupSopVo.java
@@ -2,8 +2,8 @@ package com.linkwechat.wecom.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.linkwechat.common.enums.CommunityTaskType;
import com.linkwechat.wecom.domain.WeGroup;
-import com.linkwechat.wecom.domain.WeMaterial;
import lombok.Data;
import java.util.Date;
@@ -12,6 +12,12 @@ import java.util.List;
@Data
public class WeGroupSopVo {
+ /**
+ * 类型。该属性仅用于H5页面与老客标签建群混合列表的任务类型判断
+ */
+ @TableField(exist = false)
+ private final Integer type = CommunityTaskType.SOP.getType();
+
/**
* id
*/
@@ -36,7 +42,7 @@ public class WeGroupSopVo {
* 素材列表
*/
@TableField(exist = false)
- private List materialList;
+ private List materialList;
/**
* 自上传图片列表
@@ -50,6 +56,12 @@ public class WeGroupSopVo {
@TableField(exist = false)
private List groupList;
+ /**
+ * 执行人列表
+ */
+ @TableField(exist = false)
+ private List scopeList;
+
/**
* 开始执行时间
*/
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeKeywordGroupTaskVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeKeywordGroupTaskVo.java
index 6287ca1c124dd92d702b7d2dc62f1103f13f5459..e75ac4ba1123709a56dafb1191a5cfc33c37e4aa 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeKeywordGroupTaskVo.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeKeywordGroupTaskVo.java
@@ -3,7 +3,6 @@ package com.linkwechat.wecom.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.linkwechat.wecom.domain.WeGroupCode;
import com.linkwechat.wecom.domain.WeKeywordGroupTaskKeyword;
import lombok.Data;
@@ -37,7 +36,7 @@ public class WeKeywordGroupTaskVo {
* 群活码信息
*/
@TableField(exist = false)
- private WeGroupCode groupCodeInfo;
+ private WeGroupCodeVo groupCodeInfo;
/**
* 关键词
@@ -46,7 +45,7 @@ public class WeKeywordGroupTaskVo {
private List keywordList;
/**
- * 实际群聊
+ * 实际群聊(仅群聊名称)
*/
@TableField(exist = false)
private List groupNameList;
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeMakeCustomerTag.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeMakeCustomerTag.java
index 0f91e02c802715525e63330405169e689e8c2697..ec0d010171b31fa9af629040d8a959c944e49ad3 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeMakeCustomerTag.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeMakeCustomerTag.java
@@ -1,7 +1,10 @@
package com.linkwechat.wecom.domain.vo;
import com.linkwechat.wecom.domain.WeTag;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
import java.util.List;
@@ -11,6 +14,9 @@ import java.util.List;
* @create: 2020-10-24 20:09
**/
@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
public class WeMakeCustomerTag {
private String externalUserid;
private List addTag;
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeMaterialVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeMaterialVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..2b18bad22654d67c705283035b9acd6c4b113d60
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeMaterialVo.java
@@ -0,0 +1,74 @@
+package com.linkwechat.wecom.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 素材Vo
+ *
+ * @Author Hang
+ * @Date 2021/3/26 17:51
+ */
+@Data
+public class WeMaterialVo {
+ /**
+ * 素材类型。参考 {@link com.linkwechat.common.enums.MediaType}
+ */
+ private Integer mediaType;
+
+ private Long id;
+
+ /**
+ * 本地资源文件地址
+ */
+ private String materialUrl;
+
+ /**
+ * 文本内容、图片文案
+ */
+ private String content;
+
+ /**
+ * 图片名称
+ */
+ private String materialName;
+
+ /**
+ * 摘要
+ */
+ private String digest;
+
+ /**
+ * 封面本地资源文件
+ */
+ private String coverUrl;
+
+ /**
+ * 音频时长
+ */
+ private String audioTime;
+
+ /**
+ * 创建者
+ */
+ private String createBy;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 更新人
+ */
+ private String updateBy;
+
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private String updateTime;
+}
\ No newline at end of file
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskStatVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskStatVo.java
index 9febc01ca4c111bae3e27c664f82916e5ff12a9b..23ee6bf0e4bdd70c524bbd716fa0dfdc8a4b16ee 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskStatVo.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskStatVo.java
@@ -10,14 +10,14 @@ import lombok.Data;
public class WePresTagGroupTaskStatVo {
/**
- * 客户id
+ * 客户名称
*/
private String customerName;
/**
- * 是否已发送
+ * 发送状态
*/
- private boolean isSent = false;
+ private String status;
/**
* 是否已在群
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskVo.java
index 1c7f2fb958f539b74f34c48474f6adc033368a83..bf3b2dd52aa3064b0934e7787ab8d41c95a40dbf 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskVo.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WePresTagGroupTaskVo.java
@@ -4,7 +4,7 @@ package com.linkwechat.wecom.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.linkwechat.wecom.domain.WeGroupCode;
+import com.linkwechat.common.enums.CommunityTaskType;
import com.linkwechat.wecom.domain.WeTag;
import lombok.Data;
@@ -17,6 +17,12 @@ import java.util.List;
@Data
public class WePresTagGroupTaskVo {
+ /**
+ * 类型。该属性仅用于H5页面与SOP混合列表的任务类型判断
+ */
+ @TableField(exist = false)
+ private final Integer type = CommunityTaskType.TAG.getType();
+
/**
* 老客标签建群任务id
*/
@@ -33,16 +39,25 @@ public class WePresTagGroupTaskVo {
private String welcomeMsg;
/**
- * 群活码id
+ * 群活吗id
+ */
+ @JsonIgnore
+ private Long codeId;
+
+ /**
+ * 群活码连接
*/
@JsonIgnore
- private Long groupCodeId;
+ private String codeUrl;
/**
- * 群活码信息
+ * 群活码uuid
*/
+ @JsonIgnore
+ private String CodeUuid;
+
@TableField(exist = false)
- private WeGroupCode groupCodeInfo;
+ private WeGroupCodeVo groupCodeInfo;
/**
* 发送方式 0: 企业群发 1:个人群发
@@ -58,7 +73,7 @@ public class WePresTagGroupTaskVo {
* 使用员工
*/
@TableField(exist = false)
- private List scopeList;
+ private List scopeList;
/**
* 标签
@@ -86,6 +101,11 @@ public class WePresTagGroupTaskVo {
*/
private String cusEndTime;
+ /**
+ * msgid
+ */
+ private String msgid;
+
/**
* 创建者
*/
@@ -107,4 +127,12 @@ public class WePresTagGroupTaskVo {
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String updateTime;
+
+ /**
+ * 设置群活码信息
+ */
+ public void fillGroupCodeVo() {
+ WeGroupCodeVo groupCodeVo = new WeGroupCodeVo(this.getCodeId(), this.getCodeUuid(), this.getCodeUrl());
+ this.setGroupCodeInfo(groupCodeVo);
+ }
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WxCpXmlMessageVO.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WxCpXmlMessageVO.java
index 337683294427f233a925797d00d3ffc7a7f2a6ba..db86b4ec6b032aacd4bceacb6dbb5c0db2567f6b 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WxCpXmlMessageVO.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WxCpXmlMessageVO.java
@@ -41,6 +41,22 @@ public class WxCpXmlMessageVO extends WxCpXmlMessage {
@XStreamConverter(value = XStreamCDataConverter.class)
private String tagId;
+ @XStreamAlias("UpdateDetail")
+ @XStreamConverter(value = XStreamCDataConverter.class)
+ private String updateDetail;
+
+ @XStreamAlias("JoinScene")
+ @XStreamConverter(value = XStreamCDataConverter.class)
+ private String joinScene;
+
+ @XStreamAlias("QuitScene")
+ @XStreamConverter(value = XStreamCDataConverter.class)
+ private String quitScene;
+
+ @XStreamAlias("MemChangeCnt")
+ @XStreamConverter(value = XStreamCDataConverter.class)
+ private String memberChangeCnt;
+
@Data
public static class BatchJob implements Serializable {
private static final long serialVersionUID = -3418685294606228837L;
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxAuthUserInfoDto.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxAuthUserInfoDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..f7fe166fae943a01a697ab8001a706f07639e5cb
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxAuthUserInfoDto.java
@@ -0,0 +1,42 @@
+package com.linkwechat.wecom.domain.weixin.dto;
+
+import com.alibaba.fastjson.JSONArray;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author danmo
+ * @description 授权用户信息
+ * @date 2021/4/5 16:12
+ **/
+@ApiModel
+@Data
+public class WxAuthUserInfoDto extends WxBaseResultDto{
+ @ApiModelProperty("用户的唯一标识")
+ private String openId;
+
+ @ApiModelProperty("用户昵称")
+ private String nickName;
+
+ @ApiModelProperty("用户的性别,值为1时是男性,值为2时是女性,值为0时是未知")
+ private Integer sex;
+
+ @ApiModelProperty("用户个人资料填写的省份")
+ private String province;
+
+ @ApiModelProperty("普通用户个人资料填写的城市")
+ private String city;
+
+ @ApiModelProperty("国家,如中国为CN")
+ private String country;
+
+ @ApiModelProperty("用户头像")
+ private String headImgUrl;
+
+ @ApiModelProperty("用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)")
+ private JSONArray privilege;
+
+ @ApiModelProperty("只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。")
+ private String unionId;
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxBaseResultDto.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxBaseResultDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..c36c2d19c396611f8469581851b385529449e4d9
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxBaseResultDto.java
@@ -0,0 +1,14 @@
+package com.linkwechat.wecom.domain.weixin.dto;
+
+import lombok.Data;
+
+/**
+ * @author danmo
+ * @description
+ * @date 2021/4/5 15:59
+ **/
+@Data
+public class WxBaseResultDto {
+ private Integer errcode;
+ private String errmsg;
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxTokenDto.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxTokenDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..872439508f5da920342e896e777c64383988bfe5
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/weixin/dto/WxTokenDto.java
@@ -0,0 +1,30 @@
+package com.linkwechat.wecom.domain.weixin.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author danmo
+ * @description
+ * @date 2021/4/5 16:01
+ **/
+@ApiModel
+@Data
+public class WxTokenDto extends WxBaseResultDto {
+
+ @ApiModelProperty("网页授权接口调用凭证token")
+ private String accessToken;
+
+ @ApiModelProperty("超时时间,单位(秒)")
+ private Integer expiresIn;
+
+ @ApiModelProperty("用户刷新access_token")
+ private String refreshToken;
+
+ @ApiModelProperty("用户唯一标识")
+ private String openId;
+
+ @ApiModelProperty("用户授权的作用域,使用逗号(,)分隔")
+ private String scope;
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/WeEventChangeExternalContactImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/WeEventChangeExternalContactImpl.java
index 156ccb1c5f584ab7225be7d49cf23ce2455ca888..5a25d9fe7bf0abffdf5256e2d07ef64d9dcd26ff 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/WeEventChangeExternalContactImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/WeEventChangeExternalContactImpl.java
@@ -1,30 +1,12 @@
package com.linkwechat.wecom.factory.impl;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.linkwechat.common.constant.WeConstans;
-import com.linkwechat.common.enums.MediaType;
-import com.linkwechat.common.enums.MessageType;
-import com.linkwechat.common.utils.StringUtils;
-import com.linkwechat.common.utils.Threads;
-import com.linkwechat.wecom.client.WeMessagePushClient;
-import com.linkwechat.wecom.domain.*;
-import com.linkwechat.wecom.domain.dto.WeEmpleCodeDto;
-import com.linkwechat.wecom.domain.dto.WeMediaDto;
-import com.linkwechat.wecom.domain.dto.WeMessagePushDto;
-import com.linkwechat.wecom.domain.dto.WeWelcomeMsg;
-import com.linkwechat.wecom.domain.dto.message.TextMessageDto;
import com.linkwechat.wecom.domain.vo.WxCpXmlMessageVO;
import com.linkwechat.wecom.factory.WeCallBackEventFactory;
import com.linkwechat.wecom.factory.WeStrategyBeanFactory;
-import com.linkwechat.wecom.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.*;
-import java.util.stream.Collectors;
-
/**
* @author danmo
* @description 外部联系人回调事件处理
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java
index a9d0828e8fa1faa20a1658a2bffef62e4d03834b..d3637698e745b40053e577c09b81fff292a47f52 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddExternalContactImpl.java
@@ -16,7 +16,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
-import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -113,7 +112,7 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy {
try {
log.info("执行发送欢迎语>>>>>>>>>>>>>>>");
WeWelcomeMsg.WeWelcomeMsgBuilder weWelcomeMsgBuilder = WeWelcomeMsg.builder().welcome_code(wecomCode);
- WeEmpleCodeDto messageMap = weEmpleCodeService.selectWelcomeMsgByActivityScene(state, userId);
+ WeEmpleCodeDto messageMap = weEmpleCodeService.selectWelcomeMsgByState(state);
if (messageMap != null) {
String empleCodeId = messageMap.getEmpleCodeId();
//查询活码对应标签
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddHalfExternalContactImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddHalfExternalContactImpl.java
index 4f0c4dd1c763ed6fb2bc8028504093c618e427e0..9a93a748a5166c38893c93e39d817c4cbe6322be 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddHalfExternalContactImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackAddHalfExternalContactImpl.java
@@ -54,7 +54,7 @@ public class WeCallBackAddHalfExternalContactImpl extends WeEventStrategy {
if (message.getState() != null && message.getWelcomeCode() != null) {
log.info("执行发送欢迎语>>>>>>>>>>>>>>>");
WeWelcomeMsg.WeWelcomeMsgBuilder weWelcomeMsgBuilder = WeWelcomeMsg.builder().welcome_code(message.getWelcomeCode());
- WeEmpleCodeDto messageMap = weEmpleCodeService.selectWelcomeMsgByActivityScene(message.getState(),message.getUserId());
+ WeEmpleCodeDto messageMap = weEmpleCodeService.selectWelcomeMsgByScenario(message.getState(),message.getUserId());
String empleCodeId = messageMap.getEmpleCodeId();
//查询活码对应标签
List tagList = weEmpleCodeTagService.list(new LambdaQueryWrapper()
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackDelFollowUserImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackDelFollowUserImpl.java
index 5e8f310d0d0c79189889475164eb485743974843..18cd8da68de9f3462619e4000ba706fd9291e7f7 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackDelFollowUserImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customer/WeCallBackDelFollowUserImpl.java
@@ -2,6 +2,7 @@ package com.linkwechat.wecom.factory.impl.customer;
import com.alibaba.fastjson.JSONObject;
import com.linkwechat.common.constant.WeConstans;
+import com.linkwechat.common.core.domain.entity.WeCorpAccount;
import com.linkwechat.common.enums.MessageType;
import com.linkwechat.wecom.client.WeMessagePushClient;
import com.linkwechat.wecom.domain.*;
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customergroup/WeCallBackUpdateGroupImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customergroup/WeCallBackUpdateGroupImpl.java
index c8458067d1945eed8a0b9990e0c655074e7a1976..8ff8d2195a1747b2c4d748254c9d528423faa0a7 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customergroup/WeCallBackUpdateGroupImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/factory/impl/customergroup/WeCallBackUpdateGroupImpl.java
@@ -1,7 +1,9 @@
package com.linkwechat.wecom.factory.impl.customergroup;
+import com.linkwechat.common.enums.CallbackEventUpdateDetail;
import com.linkwechat.wecom.domain.vo.WxCpXmlMessageVO;
import com.linkwechat.wecom.factory.WeEventStrategy;
+import com.linkwechat.wecom.service.IWeGroupCodeActualService;
import com.linkwechat.wecom.service.IWeGroupService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,10 +20,18 @@ public class WeCallBackUpdateGroupImpl extends WeEventStrategy {
@Autowired
private IWeGroupService weGroupService;
+ @Autowired
+ private IWeGroupCodeActualService groupCodeActualService;
+
@Override
public void eventHandle(WxCpXmlMessageVO message) {
try {
weGroupService.updateWeGroup(message.getChatId());
+ String updateDetail = message.getUpdateDetail();
+ if (updateDetail.equals(CallbackEventUpdateDetail.ADD_MEMBER.getType())) {
+ // 添加成员,该群的实际群活码扫码次数需要加1
+ groupCodeActualService.updateScanTimesByChatId(message.getChatId());
+ }
} catch (Exception e) {
e.printStackTrace();
log.error("update>>>>>>>>>param:{},ex:{}",message.getChatId(),e);
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeAccessTokenInterceptor.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeAccessTokenInterceptor.java
index a75e15fe0f7d34c5393eca52b1591987caf4c4a3..8afe85a2493d3539c1339bd381e1a7b8c954dedc 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeAccessTokenInterceptor.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeAccessTokenInterceptor.java
@@ -40,12 +40,6 @@ public class WeAccessTokenInterceptor implements Interceptor{
*/
@Override
public boolean beforeExecute(ForestRequest request) {
-
-
-
-
-
-
String uri=request.getUrl().replace("http://","");
log.info(">>>>>>>>>>>>>>>>>>>>>>>>uri:{}",uri);
//request.setContentType("application/json");
@@ -53,9 +47,6 @@ public class WeAccessTokenInterceptor implements Interceptor{
request.setDataType(ForestDataType.JSON);
request.setContentType("application/json");
}
-
-
-
// 添加请求参数access_token
if(!Arrays.asList(weComeConfig.getNoAccessTokenUrl()).contains(uri)){
String token="";
@@ -77,8 +68,6 @@ public class WeAccessTokenInterceptor implements Interceptor{
request.addQuery("access_token",token);
}
-
-
//添加服务器统一请求地址
request.setUrl(weComeConfig.getServerUrl()+weComeConfig.getWeComePrefix()+uri);
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeiXinAccessTokenInterceptor.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeiXinAccessTokenInterceptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..c5cb8cfd07ead238c2937405cf0729fc2ef7c946
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeiXinAccessTokenInterceptor.java
@@ -0,0 +1,90 @@
+package com.linkwechat.wecom.interceptor;
+
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.dtflys.forest.interceptor.Interceptor;
+import com.dtflys.forest.utils.ForestDataType;
+import com.linkwechat.common.constant.WeConstans;
+import com.linkwechat.common.core.redis.RedisCache;
+import com.linkwechat.common.utils.StringUtils;
+import com.linkwechat.wecom.domain.weixin.dto.WxBaseResultDto;
+import com.linkwechat.wecom.domain.weixin.dto.WxTokenDto;
+import com.linkwechat.wecom.wxclient.WxCommonClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author danmo
+ * @description 微信请求拦截器
+ * @date 2021/4/5 15:17
+ **/
+@Slf4j
+@Component
+public class WeiXinAccessTokenInterceptor implements Interceptor {
+ //暂时写到配置文件,之后写入数据库
+ @Value("${weixin.appid}")
+ private String appId;
+ @Value("${weixin.secret}")
+ private String secret;
+ private final String grantType = "client_credential";
+
+ @Autowired
+ private WxCommonClient wxCommonClient;
+
+ @Autowired
+ private RedisCache redisCache;
+
+ @Override
+ public boolean beforeExecute(ForestRequest request){
+ request.setDataType(ForestDataType.JSON);
+ String accessToken = findAccessToken();
+ request.addQuery("access_token",accessToken);
+ return true;
+ }
+
+
+ private String findAccessToken(){
+ //获取用户token
+ String accessToken =redisCache.getCacheObject(WeConstans.WX_ACCESS_TOKEN);
+ if (StringUtils.isEmpty(accessToken)){
+ //当用户token失效,重新获取token
+ WxTokenDto wxTokenDto = wxCommonClient.getToken(grantType, appId, secret);
+ if(wxTokenDto != null && StringUtils.isNotEmpty(wxTokenDto.getAccessToken())){
+ redisCache.setCacheObject(WeConstans.WX_AUTH_ACCESS_TOKEN, wxTokenDto.getAccessToken(), wxTokenDto.getExpiresIn(), TimeUnit.SECONDS);
+ accessToken = wxTokenDto.getAccessToken();
+ }
+ }
+ return accessToken;
+ }
+
+
+ /**
+ * 请求发送失败时被调用
+ * @param e
+ * @param request
+ * @param response
+ */
+ @Override
+ public void onError(ForestRuntimeException e, ForestRequest request, ForestResponse response) {
+ log.info("url:{},------params:{},----------result:"+request.getUrl(),
+ JSONObject.toJSONString(request.getArguments()),
+ response.getContent());
+ throw new ForestRuntimeException(response.getContent());
+ }
+
+ @Override
+ public void onSuccess(Object data, ForestRequest request, ForestResponse response) {
+ log.info("url:【{}】,result:【{}】",request.getUrl(),response.getContent());
+ WxBaseResultDto wxBaseResultDto = JSONUtil.toBean(response.getContent(), WxBaseResultDto.class);
+ if(null != wxBaseResultDto.getErrcode() && !wxBaseResultDto.getErrcode().equals(WeConstans.WE_SUCCESS_CODE)){
+ throw new ForestRuntimeException(response.getContent());
+ }
+ }
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeiXinAuthInterceptor.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeiXinAuthInterceptor.java
new file mode 100644
index 0000000000000000000000000000000000000000..d373f71d1544c3dcd71f471ae87c736ef7d92015
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/interceptor/WeiXinAuthInterceptor.java
@@ -0,0 +1,99 @@
+package com.linkwechat.wecom.interceptor;
+
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.dtflys.forest.interceptor.Interceptor;
+import com.dtflys.forest.utils.ForestDataType;
+import com.linkwechat.common.constant.WeConstans;
+import com.linkwechat.common.core.redis.RedisCache;
+import com.linkwechat.common.exception.wecom.WeComException;
+import com.linkwechat.common.utils.StringUtils;
+import com.linkwechat.wecom.domain.weixin.dto.WxTokenDto;
+import com.linkwechat.wecom.domain.weixin.dto.WxBaseResultDto;
+import com.linkwechat.wecom.wxclient.WxAuthClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author danmo
+ * @description 微信授权拦截器
+ * @date 2021/4/5 15:28
+ **/
+
+@Slf4j
+@Component
+public class WeiXinAuthInterceptor implements Interceptor {
+ //暂时写到配置文件,之后写入数据库
+ @Value("${weixin.appid}")
+ private String appId;
+ @Value("${weixin.secret}")
+ private String secret;
+ private final String grantType = "refresh_token";
+
+ @Autowired
+ private WxAuthClient wxAuthClient;
+
+ @Autowired
+ private RedisCache redisCache;
+
+ @Override
+ public boolean beforeExecute(ForestRequest request){
+ Object openId =request.getQuery("openid");
+ request.setDataType(ForestDataType.JSON);
+ if (openId != null){
+ request.addQuery("access_token",findAccessToken(openId.toString()));
+ }
+ return true;
+ }
+
+
+ private String findAccessToken(String openId){
+ //获取用户token
+ String accessToken =redisCache.getCacheObject(WeConstans.WX_AUTH_ACCESS_TOKEN+":"+ openId);
+ if (StringUtils.isEmpty(accessToken)){
+ //当用户token失效,则获取refreshToken
+ String refreshToken = redisCache.getCacheObject(WeConstans.WX_AUTH_REFRESH_ACCESS_TOKEN + ":" + openId);
+ if(StringUtils.isEmpty(refreshToken)){
+ throw new WeComException(1001,"token失效,请重新授权");
+ }else {
+ WxTokenDto wxTokenDto = wxAuthClient.refreshToken(appId, secret, grantType, refreshToken);
+ if(wxTokenDto != null && StringUtils.isNotEmpty(wxTokenDto.getAccessToken())){
+ redisCache.setCacheObject(WeConstans.WX_AUTH_ACCESS_TOKEN+":"+ openId, wxTokenDto.getAccessToken(), wxTokenDto.getExpiresIn(), TimeUnit.SECONDS);
+ accessToken = wxTokenDto.getAccessToken();
+ }
+ }
+ }
+ return accessToken;
+ }
+
+
+ /**
+ * 请求发送失败时被调用
+ * @param e
+ * @param request
+ * @param response
+ */
+ @Override
+ public void onError(ForestRuntimeException e, ForestRequest request, ForestResponse response) {
+ log.info("url:{},------params:{},----------result:"+request.getUrl(),
+ JSONObject.toJSONString(request.getArguments()),
+ response.getContent());
+ throw new ForestRuntimeException(response.getContent());
+ }
+
+ @Override
+ public void onSuccess(Object data, ForestRequest request, ForestResponse response) {
+ log.info("url:【{}】,result:【{}】",request.getUrl(),response.getContent());
+ WxBaseResultDto wxBaseResultDto = JSONUtil.toBean(response.getContent(), WxBaseResultDto.class);
+ if(null != wxBaseResultDto.getErrcode() && !wxBaseResultDto.getErrcode().equals(WeConstans.WE_SUCCESS_CODE)){
+ throw new ForestRuntimeException(response.getContent());
+ }
+ }
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCommunityNewGroupMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCommunityNewGroupMapper.java
index 3a541819e5151fa18fa8107199d17a639034129c..0918ebb00508d7e202c476ac5e04de380d15a841 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCommunityNewGroupMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCommunityNewGroupMapper.java
@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeCommunityNewGroup;
import com.linkwechat.wecom.domain.vo.WeCommunityNewGroupVo;
import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
import java.util.List;
+import java.util.Optional;
/**
* 社群运营 新客自动拉群 mapper接口
@@ -13,27 +15,28 @@ import java.util.List;
* @author kewen
* @date 2021-02-19
*/
+@Repository
public interface WeCommunityNewGroupMapper extends BaseMapper {
/**
* 查询新客自动拉群列表
*
- * @param employCodeName 员工名称
- * @param createBy 创建人
- * @param beginTime 开始时间
- * @param endTime 结束时间
+ * @param emplCodeName 员工名称
+ * @param createBy 创建人
+ * @param beginTime 开始时间
+ * @param endTime 结束时间
* @return {WeCommunityNewGroupVo}s 列表
*/
- List selectWeCommunityNewGroupList(@Param("employCodeName") String employCodeName, @Param("createBy") String createBy
+ List selectWeCommunityNewGroupList(@Param("emplCodeName") String emplCodeName, @Param("createBy") String createBy
, @Param("beginTime") String beginTime, @Param("endTime") String endTime);
/**
* 获取新客自动拉群详细信息
*
- * @param newGroupId 主键id
+ * @param id 主键id
* @return {@link WeCommunityNewGroupVo} 自动拉群信息
*/
- WeCommunityNewGroupVo selectWeCommunityNewGroupById(@Param("newGroupId") Long newGroupId);
+ Optional selectWeCommunityNewGroupById(@Param("id") Long id);
/**
* 删除新客自动拉群
@@ -41,7 +44,7 @@ public interface WeCommunityNewGroupMapper extends BaseMapper idList);
+ int batchRemoveWeCommunityNewGroupByIds(@Param("ids") List idList);
/**
* 通过id查询新客自动拉群信息列表
@@ -49,6 +52,6 @@ public interface WeCommunityNewGroupMapper extends BaseMapper selectWeCommunityNewGroupByIds(@Param("ids") List ids);
+ List selectWeCommunityNewGroupByIds(@Param("ids") List ids);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCorpAccountMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCorpAccountMapper.java
index 905273fe1b5fc13696136378daf0d7ac420ecfd0..bdfd8087f7cf0def78a4af6aef3d555b7ca1449c 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCorpAccountMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeCorpAccountMapper.java
@@ -1,7 +1,7 @@
package com.linkwechat.wecom.mapper;
import java.util.List;
-import com.linkwechat.wecom.domain.WeCorpAccount;
+import com.linkwechat.common.core.domain.entity.WeCorpAccount;
import org.apache.ibatis.annotations.Param;
/**
@@ -59,4 +59,12 @@ public interface WeCorpAccountMapper
* @return
*/
public int startVailWeCorpAccount(@Param("corpId") String corpId);
+
+
+ /**
+ * 根据企业账号获取企业相关配置
+ * @param corpAccount
+ * @return
+ */
+ WeCorpAccount findWeCorpByAccount(@Param("corpAccount") String corpAccount);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeMapper.java
index 092dcbf52951dc0024202ec92b18fea52c1e26be..f9c517db99394073640d8b7b7e2a76d3bf1c6548 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeEmpleCode;
import com.linkwechat.wecom.domain.dto.WeEmpleCodeDto;
import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
import java.util.List;
@@ -13,6 +14,7 @@ import java.util.List;
* @author ruoyi
* @date 2020-10-04
*/
+@Repository
public interface WeEmpleCodeMapper extends BaseMapper
{
/**
@@ -81,10 +83,17 @@ public interface WeEmpleCodeMapper extends BaseMapper
/**
* 通过活动场景获取客户欢迎语
- * @param activityScene 活动场景
+ * @param scenario 活动场景
* @return
*/
- public WeEmpleCodeDto selectWelcomeMsgByActivityScene(@Param("activityScene") String activityScene, @Param("userId") String userId);
+ public WeEmpleCodeDto selectWelcomeMsgByScenario(@Param("scenario") String scenario, @Param("userId") String userId);
+
+ /**
+ * 通过state定位员工活码
+ * @param state state
+ * @return 员工活码
+ */
+ WeEmpleCodeDto selectWelcomeMsgByState(@Param("state") String state);
/**
* 通过成员id 获取去成员活码
@@ -92,4 +101,10 @@ public interface WeEmpleCodeMapper extends BaseMapper
* @return
*/
WeEmpleCode getQrcodeByUserId(String userId);
+
+ /**
+ * 递增扫码次数
+ * @param state state
+ */
+ void updateScanTimesByState(String state);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeTagMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeTagMapper.java
index 07d2637c3376d89c8eaa808d67e79cd62711f9f6..b2bfa99b466d580e0e35fd5b509d9f0df16b8f33 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeTagMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeTagMapper.java
@@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeEmpleCodeTag;
import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
/**
* 员工活码标签Mapper接口
@@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi
* @date 2020-10-04
*/
+@Repository
public interface WeEmpleCodeTagMapper extends BaseMapper
{
/**
@@ -81,7 +83,7 @@ public interface WeEmpleCodeTagMapper extends BaseMapper
/**
* 批量逻辑删除
- * @param ids
+ * @param ids 员工活码id列表
* @return
*/
public int batchRemoveWeEmpleCodeTagIds(@Param("ids") List ids);
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeUseScopMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeUseScopMapper.java
index 7cb34889fe754e4ecbd76a2e7a095319cb412ceb..47587d12f5f5ccb0d2d71cef274e7862289d1cf5 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeUseScopMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeEmpleCodeUseScopMapper.java
@@ -3,6 +3,7 @@ package com.linkwechat.wecom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeEmpleCodeUseScop;
import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
import java.util.List;
@@ -12,6 +13,7 @@ import java.util.List;
* @author ruoyi
* @date 2020-10-04
*/
+@Repository
public interface WeEmpleCodeUseScopMapper extends BaseMapper
{
/**
@@ -20,7 +22,7 @@ public interface WeEmpleCodeUseScopMapper extends BaseMapper
* @param id 员工活码使用人ID
* @return 员工活码使用人
*/
- public WeEmpleCodeUseScop selectWeEmpleCodeUseScopById(Long id);
+ WeEmpleCodeUseScop selectWeEmpleCodeUseScopById(Long id);
/**
* 查询员工活码使用人列表
@@ -28,7 +30,7 @@ public interface WeEmpleCodeUseScopMapper extends BaseMapper
* @param empleCodeId 员工活码id
* @return 员工活码使用人集合
*/
- public List selectWeEmpleCodeUseScopListById(@Param("empleCodeId") Long empleCodeId);
+ List selectWeEmpleCodeUseScopListById(@Param("empleCodeId") Long empleCodeId);
/**
* 查询员工活码使用人列表(批量)
@@ -43,7 +45,7 @@ public interface WeEmpleCodeUseScopMapper extends BaseMapper
* @param weEmpleCodeUseScop 员工活码使用人
* @return 结果
*/
- public int insertWeEmpleCodeUseScop(WeEmpleCodeUseScop weEmpleCodeUseScop);
+ int insertWeEmpleCodeUseScop(WeEmpleCodeUseScop weEmpleCodeUseScop);
/**
* 修改员工活码使用人
@@ -51,7 +53,7 @@ public interface WeEmpleCodeUseScopMapper extends BaseMapper
* @param weEmpleCodeUseScop 员工活码使用人
* @return 结果
*/
- public int updateWeEmpleCodeUseScop(WeEmpleCodeUseScop weEmpleCodeUseScop);
+ int updateWeEmpleCodeUseScop(WeEmpleCodeUseScop weEmpleCodeUseScop);
/**
* 删除员工活码使用人
@@ -59,7 +61,7 @@ public interface WeEmpleCodeUseScopMapper extends BaseMapper
* @param id 员工活码使用人ID
* @return 结果
*/
- public int deleteWeEmpleCodeUseScopById(Long id);
+ int deleteWeEmpleCodeUseScopById(Long id);
/**
* 批量删除员工活码使用人
@@ -67,22 +69,22 @@ public interface WeEmpleCodeUseScopMapper extends BaseMapper
* @param ids 需要删除的数据ID
* @return 结果
*/
- public int deleteWeEmpleCodeUseScopByIds(Long[] ids);
+ int deleteWeEmpleCodeUseScopByIds(Long[] ids);
/**
* 批量保存
* @param weEmpleCodeUseScops
* @return
*/
- public int batchInsetWeEmpleCodeUseScop(@Param("weEmpleCodeUseScops") List weEmpleCodeUseScops);
+ int batchInsetWeEmpleCodeUseScop(@Param("weEmpleCodeUseScops") List weEmpleCodeUseScops);
/**
* 批量物理删除
- * @param ids
+ * @param ids 员工活码id列表
* @return
*/
- public int batchRemoveWeEmpleCodeUseScopIds(List ids);
+ int batchRemoveWeEmpleCodeUseScopIds(List ids);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeActualMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeActualMapper.java
index 5be00c8e720c033ab177c7d60180e2c9871372d1..6dd9a16b8a40751de3bea91416ea80ff066e2cc3 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeActualMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeActualMapper.java
@@ -3,6 +3,7 @@ package com.linkwechat.wecom.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.linkwechat.wecom.domain.WeGroup;
import com.linkwechat.wecom.domain.WeGroupCodeActual;
/**
@@ -18,14 +19,14 @@ public interface WeGroupCodeActualMapper extends BaseMapper {
* @param id 实际群码ID
* @return 实际群码
*/
- public WeGroupCodeActual selectWeGroupCodeActualById(Long id);
+ WeGroupCodeActual selectWeGroupCodeActualById(Long id);
/**
* 根据群聊id获取群实际码
* @param chatId 群聊id
* @return 结果
*/
- public WeGroupCodeActual selectWeGroupCodeActualByChatId(String chatId);
+ WeGroupCodeActual selectWeGroupCodeActualByChatId(String chatId);
/**
* 查询实际群码列表
@@ -33,7 +34,7 @@ public interface WeGroupCodeActualMapper extends BaseMapper {
* @param weGroupCodeActual 实际群码
* @return 实际群码集合
*/
- public List selectWeGroupCodeActualList(WeGroupCodeActual weGroupCodeActual);
+ List selectWeGroupCodeActualList(WeGroupCodeActual weGroupCodeActual);
/**
* 新增实际群码
@@ -41,7 +42,7 @@ public interface WeGroupCodeActualMapper extends BaseMapper {
* @param weGroupCodeActual 实际群码
* @return 结果
*/
- public int insertWeGroupCodeActual(WeGroupCodeActual weGroupCodeActual);
+ int insertWeGroupCodeActual(WeGroupCodeActual weGroupCodeActual);
/**
* 修改实际群码
@@ -49,7 +50,7 @@ public interface WeGroupCodeActualMapper extends BaseMapper {
* @param weGroupCodeActual 实际群码
* @return 结果
*/
- public int updateWeGroupCodeActual(WeGroupCodeActual weGroupCodeActual);
+ int updateWeGroupCodeActual(WeGroupCodeActual weGroupCodeActual);
/**
* 删除实际群码
@@ -57,7 +58,7 @@ public interface WeGroupCodeActualMapper extends BaseMapper {
* @param id 实际群码ID
* @return 结果
*/
- public int deleteWeGroupCodeActualById(Long id);
+ int deleteWeGroupCodeActualById(Long id);
/**
* 批量删除实际群码
@@ -65,7 +66,7 @@ public interface WeGroupCodeActualMapper extends BaseMapper {
* @param ids 需要删除的数据ID
* @return 结果
*/
- public int deleteWeGroupCodeActualByIds(Long[] ids);
+ int deleteWeGroupCodeActualByIds(Long[] ids);
/**
* 通过群活码id查询实际码列表
@@ -73,19 +74,25 @@ public interface WeGroupCodeActualMapper extends BaseMapper {
* @param groupCodeId 群活码id
* @return 结果
*/
- public List selectActualListByGroupCodeId(Long groupCodeId);
+ List selectActualListByGroupCodeId(Long groupCodeId);
/**
* 通过群活码id删除实际码
* @param groupCodeIds 群活码id列表
* @return 结果
*/
- public int deleteActualListByGroupCodeIds(Long[] groupCodeIds);
+ int deleteActualListByGroupCodeIds(Long[] groupCodeIds);
/**
* 检测chatId是否唯一
* @param chatId 群聊id
* @return 结果
*/
- public int checkChatIdUnique(String chatId);
+ int checkChatIdUnique(String chatId);
+
+ /**
+ * 通过群id递增其实际群活码扫码次数
+ * @param chatId
+ */
+ void updateScanTimesByChatId(String chatId);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java
index 9a70d0ad99bc874429ea3555050cbf21ad3078a5..864d34ed3d1c5ca41beb736378ea2584d0f7235c 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupCodeMapper.java
@@ -3,7 +3,10 @@ package com.linkwechat.wecom.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.linkwechat.wecom.domain.WeGroup;
import com.linkwechat.wecom.domain.WeGroupCode;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
/**
* 客户群活码Mapper接口
@@ -11,6 +14,8 @@ import com.linkwechat.wecom.domain.WeGroupCode;
* @author ruoyi
* @date 2020-10-07
*/
+@Mapper
+@Repository
public interface WeGroupCodeMapper extends BaseMapper
{
/**
@@ -19,7 +24,7 @@ public interface WeGroupCodeMapper extends BaseMapper
* @param id 客户群活码ID
* @return 客户群活码
*/
- public WeGroupCode selectWeGroupCodeById(Long id);
+ WeGroupCode selectWeGroupCodeById(Long id);
/**
* 查询客户群活码列表
@@ -27,14 +32,14 @@ public interface WeGroupCodeMapper extends BaseMapper
* @param weGroupCode 客户群活码
* @return 客户群活码集合
*/
- public List selectWeGroupCodeList(WeGroupCode weGroupCode);
+ List selectWeGroupCodeList(WeGroupCode weGroupCode);
/**
* 根据群活码id查询群活码列表
* @param ids id列表
* @return 结果
*/
- public List selectWeGroupCodeListByIds(List ids);
+ List selectWeGroupCodeListByIds(List ids);
/**
* 新增客户群活码
@@ -42,7 +47,7 @@ public interface WeGroupCodeMapper extends BaseMapper
* @param weGroupCode 客户群活码
* @return 结果
*/
- public int insertWeGroupCode(WeGroupCode weGroupCode);
+ int insertWeGroupCode(WeGroupCode weGroupCode);
/**
* 修改客户群活码
@@ -50,7 +55,7 @@ public interface WeGroupCodeMapper extends BaseMapper
* @param weGroupCode 客户群活码
* @return 结果
*/
- public int updateWeGroupCode(WeGroupCode weGroupCode);
+ int updateWeGroupCode(WeGroupCode weGroupCode);
/**
* 删除客户群活码
@@ -58,7 +63,7 @@ public interface WeGroupCodeMapper extends BaseMapper
* @param id 客户群活码ID
* @return 结果
*/
- public int deleteWeGroupCodeById(Long id);
+ int deleteWeGroupCodeById(Long id);
/**
* 批量删除客户群活码
@@ -66,12 +71,34 @@ public interface WeGroupCodeMapper extends BaseMapper
* @param ids 需要删除的数据ID
* @return 结果
*/
- public int deleteWeGroupCodeByIds(Long[] ids);
+ int deleteWeGroupCodeByIds(Long[] ids);
/**
* 检测活码名称是否唯一
* @param activityName 活码名称
* @return 结果
*/
- public int checkActivityNameUnique(String activityName);
+ int checkActivityNameUnique(String activityName);
+
+ /**
+ * 根据 uuid获取群活码
+ *
+ * @param uuid uuid
+ * @return 结果
+ */
+ WeGroupCode getWeGroupByUuid(String uuid);
+
+ /**
+ * 根据群活码id获取对应所有群聊信息
+ * @param groupCodeId 群活码id
+ * @return 结果
+ */
+ List selectWeGroupListByGroupCodeId(Long groupCodeId);
+
+ /**
+ * 获取群活码的总扫码次数
+ * @param groupCodeId 群活码id
+ * @return 总扫码次数
+ */
+ int selectScanTimesByGroupCodeId(Long groupCodeId);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopChatMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopChatMapper.java
index 89d5f1e1020dd8d23a86eeb75a8f1f560d5ec01e..04b9629bc0d91aed2c61f97061581275c31dd2f2 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopChatMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopChatMapper.java
@@ -2,7 +2,9 @@ package com.linkwechat.wecom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeGroupSopChat;
+import com.linkwechat.wecom.domain.vo.WeCommunityTaskEmplVo;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -22,4 +24,21 @@ public interface WeGroupSopChatMapper extends BaseMapper {
* @return 结果
*/
int batchBindsSopChat(List sopChatList);
+
+ /**
+ * 变更某员工sop规则发送任务的状态
+ *
+ * @param ruleId 规则名称
+ * @param emplId 员工id(即群聊群主)
+ * @return 结果
+ */
+ int updateChatSopStatus(@Param("ruleId") Long ruleId, @Param("emplId") String emplId);
+
+ /**
+ * 根据SOP 规则id获取所有使用人员信息
+ *
+ * @param ruleId sop id
+ * @return 结果
+ */
+ List getScopeListByRuleId(Long ruleId);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopMapper.java
index f5031dad9f94e57d5c227a11c6c181882fefa74c..510c643c200294827cce3ca851aab3f1c5f54ab3 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupSopMapper.java
@@ -71,4 +71,13 @@ public interface WeGroupSopMapper extends BaseMapper {
* @return 结果
*/
List getChatIdListByRuleId(Long ruleId);
+
+ /**
+ * 根据员工id获取对应的sop任务列表
+ * @param emplId 员工id
+ * @param isDone 已完成还是待处理
+ * @return 结果
+ */
+ List getEmplTaskList(@Param("emplId") String emplId, @Param("isDone") boolean isDone);
+
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupStatisticMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupStatisticMapper.java
index 145b166de83081bb4f6be57f59f1657109f2cfe0..d318a29d4e4c7c31b0089db2fca25e023f2b3631 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupStatisticMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeGroupStatisticMapper.java
@@ -2,6 +2,11 @@ package com.linkwechat.wecom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeGroupStatistic;
+import com.linkwechat.wecom.domain.dto.WePageCountDto;
+import com.linkwechat.wecom.domain.query.WePageStateQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* 群聊数据统计数据
@@ -11,5 +16,29 @@ Mapper接口
* @date 2021-02-24
*/
public interface WeGroupStatisticMapper extends BaseMapper {
+ /**
+ * 按日期查询当天数据统计结果
+ * @param dateTime
+ * @return WeUserBehaviorDataDto
+ */
+ public WePageCountDto getCountDataByDay(@Param("dateTime") String dateTime, @Param("type") String type);
+ /**
+ * 按天维度查询数据统计
+ * @param wePageStateQuery 入参
+ * @return List
+ */
+ public List getDayCountData(WePageStateQuery wePageStateQuery);
+ /**
+ * 按周维度查询数据统计
+ * @param wePageStateQuery 入参
+ * @return List
+ */
+ public List getWeekCountData(WePageStateQuery wePageStateQuery);
+ /**
+ * 按月维度查询数据统计
+ * @param wePageStateQuery 入参
+ * @return List
+ */
+ public List getMonthCountData(WePageStateQuery wePageStateQuery);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeKeywordGroupTaskMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeKeywordGroupTaskMapper.java
index fd17fc89fcc476b4fdaa02592024ee586065de61..d862bfc8e8009fa1cb9abf6b2d905b655f234c08 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeKeywordGroupTaskMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeKeywordGroupTaskMapper.java
@@ -56,4 +56,12 @@ public interface WeKeywordGroupTaskMapper extends BaseMapper
* @return 结果
*/
int checkNameUnique(String taskName);
+
+ /**
+ * 通过名称或者关键词进行过滤
+ *
+ * @param word 过滤字段
+ * @return 结果
+ */
+ List filterByNameOrKeyword(String word);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeMaterialMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeMaterialMapper.java
index 099ed78a7237a010cb5f704832fa0849c00546f9..8d96b05d36f091523f3e9a03bbbb22fb05a162b9 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeMaterialMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeMaterialMapper.java
@@ -2,6 +2,7 @@ package com.linkwechat.wecom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeMaterial;
+import com.linkwechat.wecom.domain.vo.WeMaterialVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -74,5 +75,10 @@ public interface WeMaterialMapper extends BaseMapper {
*/
int resetCategory(@Param("categoryId") String categoryId, @Param("material") String material);
-
+ /**
+ * 根据id列表获取素材Vo列表
+ * @param ids 素材id列表
+ * @return 结果
+ */
+ List findMaterialVoListByIds(Long[] ids);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskMapper.java
index 0b392feb5c282892c61d62935706dc2aaafeb426..6ffd57b599b531e9491ae9c79eae1f6fa78e00da 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskMapper.java
@@ -14,6 +14,19 @@ import java.util.List;
@Repository
public interface WePresTagGroupTaskMapper extends BaseMapper {
+ /**
+ * 添加新任务
+ * @param task 老客标签建群任务
+ * @return 结果
+ */
+ int insertTask(WePresTagGroupTask task);
+
+ /**
+ * 更新任务
+ * @param task 建群任务信息
+ * @return 结果
+ */
+ int updateTask(WePresTagGroupTask task);
/**
* 获取老客户标签建群任务
*
@@ -24,11 +37,12 @@ public interface WePresTagGroupTaskMapper extends BaseMapper
/**
* 根据条件查询老客标签建群任务
- * @param taskName 任务名称
- * @param createBy 创建人
+ *
+ * @param taskName 任务名称
+ * @param createBy 创建人
* @param beginTime 开始时间
- * @param endTime 结束时间
- * @param sendType 发送方式
+ * @param endTime 结束时间
+ * @param sendType 发送方式
* @return 结果
*/
List selectTaskList(
@@ -41,9 +55,19 @@ public interface WePresTagGroupTaskMapper extends BaseMapper
/**
* 检测任务名是否已被占用
+ *
* @param taskName 任务名
* @return 是否被占用
*/
int checkTaskNameUnique(String taskName);
+ /**
+ * 获取某员工的任务
+ *
+ * @param emplId 员工id
+ * @param isDone 已完成的还是待处理
+ * @return 结果
+ */
+ List getTaskListByEmplId(@Param("emplId") String emplId, @Param("isDone") boolean isDone);
+
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskScopeMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskScopeMapper.java
index 8d9165baabe81d31bd9363f09a3363a7cb880f7e..e86aad6bbd0dc837e6a3ed613b2f300118b62517 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskScopeMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskScopeMapper.java
@@ -2,8 +2,9 @@ package com.linkwechat.wecom.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WePresTagGroupTaskScope;
-import com.linkwechat.wecom.domain.vo.WeEmplVo;
+import com.linkwechat.wecom.domain.vo.WeCommunityTaskEmplVo;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -18,7 +19,7 @@ public interface WePresTagGroupTaskScopeMapper extends BaseMapper getScopeListByTaskId(Long taskId);
+ List getScopeListByTaskId(Long taskId);
/**
* 批量绑定任务与使用人员
@@ -26,4 +27,13 @@ public interface WePresTagGroupTaskScopeMapper extends BaseMapper taskScopeList);
+
+ /**
+ * 员工发送信息后,变更其任务状态为 "完成"
+ *
+ * @param taskId 任务id
+ * @param emplId 员工id
+ * @return 结果
+ */
+ int updateEmplTaskStatus(@Param("taskId") Long taskId, @Param("emplId") String emplId);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskStatMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskStatMapper.java
index d15b16c516387da3ca0ca21552d20d57a8a6570c..404c94a94a8ca588c6f55c5ae3614ff3575e8f61 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskStatMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskStatMapper.java
@@ -16,16 +16,17 @@ public interface WePresTagGroupTaskStatMapper extends BaseMapper getStatByTaskId(
- @Param("taskId") Long taskId,
- @Param("customerName") String customerName,
- @Param("isSent") Integer isSent,
- @Param("isInGroup") Integer isInGroup
- );
+ List selectStatInfoByTaskId(@Param("taskId") Long taskId);
+
+ /**
+ * 通过taskId获取所有外部联系人id
+ *
+ * @param taskId 老客标签建群任务id
+ * @return 结果
+ */
+ List getAllExternalIdByTaskId(Long taskId);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskTagMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskTagMapper.java
index c22d22be453533e1c78829d6c16c10b9918956c5..baeeeb9533de9c896a6ef7c4149c265c812f2883 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskTagMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WePresTagGroupTaskTagMapper.java
@@ -25,8 +25,17 @@ public interface WePresTagGroupTaskTagMapper extends BaseMapper taskTagList);
+
+ /**
+ * 通过任务id获取所有符合该任务标签的客户的external_id
+ *
+ * @param taskId 热任务id
+ * @return 结果
+ */
+ List getExternalUserIdListByTaskId(Long taskId);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTagMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTagMapper.java
index 1e7a4d9f09a403ba2bbe92b5daaa3ef72c2521ba..4a265828aa9b181c32616f71b9923c03e352c34e 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTagMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTagMapper.java
@@ -5,6 +5,7 @@ import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.linkwechat.wecom.domain.WeTag;
import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
/**
* 企业微信标签Mapper接口
@@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Param;
* @author ruoyi
* @date 2020-09-07
*/
+@Repository
public interface WeTagMapper extends BaseMapper
{
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeUserMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeUserMapper.java
index d4fa04d8f6e062f67c728d4883d61ca7bb75351a..5ff24a15341ccfcf7ab864fe7a2eaf6b344020f3 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeUserMapper.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeUserMapper.java
@@ -7,6 +7,7 @@ import com.linkwechat.wecom.domain.vo.WeAllocateCustomersVo;
import com.linkwechat.wecom.domain.vo.WeAllocateGroupsVo;
import com.linkwechat.wecom.domain.vo.WeLeaveUserVo;
import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
import java.util.List;
@@ -16,6 +17,7 @@ import java.util.List;
* @author ruoyi
* @date 2020-08-31
*/
+@Repository
public interface WeUserMapper extends BaseMapper
{
/**
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeAppService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeAppService.java
index 3a7ac87f5f0714c23f64c86f7cccdc3120cac1da..ff1c9d6665b38de77b5876359bc6cf9361b63371 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeAppService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeAppService.java
@@ -9,4 +9,10 @@ import com.linkwechat.wecom.domain.WeApp;
* @create: 2021-01-26 18:44
**/
public interface IWeAppService extends IService {
+
+
+ void addWeApp(WeApp weApp);
+
+
+ void updateWeApp(WeApp weApp);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityKeywordToGroupService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityKeywordToGroupService.java
index 21c4fbc46b8ad745aa1d946396ec5a361e67702e..b2a19620adb732c5bb5b9a3cac072c99b23639da 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityKeywordToGroupService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityKeywordToGroupService.java
@@ -63,4 +63,13 @@ public interface IWeCommunityKeywordToGroupService {
* @return 结果
*/
boolean taskNameIsUnique(String taskName);
+
+
+ /**
+ * 通过名称或者关键词进行过滤
+ *
+ * @param word 过滤字段
+ * @return 结果
+ */
+ List filterByNameOrKeyword(String word);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityNewGroupService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityNewGroupService.java
index cffe13910db0890f7290e50f988be5694b4ae321..a44ce8b157e3e9d1e2a2ab5cdd40f9307e60fb90 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityNewGroupService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCommunityNewGroupService.java
@@ -6,6 +6,7 @@ import com.linkwechat.wecom.domain.dto.WeCommunityNewGroupDto;
import com.linkwechat.wecom.domain.vo.WeCommunityNewGroupVo;
import java.util.List;
+import java.util.Optional;
/**
* 社群运营 新客自动拉群
@@ -26,25 +27,26 @@ public interface IWeCommunityNewGroupService extends IService selectWeCommunityNewGroupList(String empleCodeName, String createBy, String beginTime, String endTime);
+ List selectWeCommunityNewGroupList(String emplCodeName, String createBy, String beginTime, String endTime);
/**
* 获取新客自动拉群详细信息
*
- * @param newGroupId 主键id
+ * @param id 主键id
* @return {@link WeCommunityNewGroupVo} 自动拉群信息
*/
- WeCommunityNewGroupVo selectWeCommunityNewGroupById(Long newGroupId);
+ Optional selectWeCommunityNewGroupById(Long id);
/**
* 修改新客自动拉群
*
+ * @param id 新客拉群id
* @param communityNewGroupDto 信息
* @return 结果
*/
- int updateWeCommunityNewGroup(WeCommunityNewGroupDto communityNewGroupDto);
+ int updateWeCommunityNewGroup(Long id, WeCommunityNewGroupDto communityNewGroupDto);
/**
* 删除新客自动拉群
@@ -52,15 +54,15 @@ public interface IWeCommunityNewGroupService extends IService idList);
-
- /**
- * 通过id查询新客自动拉群信息
- *
- * @param id id
- * @return {@link WeCommunityNewGroup} 新客自动拉群信息
- */
- WeCommunityNewGroupVo selectWeCommunityNewGroupById(long id);
+ int batchRemoveWeCommunityNewGroupByIds(List idList);
+//
+// /**
+// * 通过id查询新客自动拉群信息
+// *
+// * @param id id
+// * @return {@link WeCommunityNewGroup} 新客自动拉群信息
+// */
+// WeCommunityNewGroupVo selectWeCommunityNewGroupById(long id);
/**
* 通过id查询新客自动拉群信息列表
@@ -68,6 +70,6 @@ public interface IWeCommunityNewGroupService extends IService selectWeCommunityNewGroupByIds(List ids);
+ List selectWeCommunityNewGroupByIds(List ids);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCorpAccountService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCorpAccountService.java
index 2e5182722c2ec252e55bcb0bc887ac4ee2e0bc00..75374cfc744346178183e025793e741a33e9323f 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCorpAccountService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeCorpAccountService.java
@@ -1,8 +1,8 @@
package com.linkwechat.wecom.service;
+import com.linkwechat.common.core.domain.entity.WeCorpAccount;
+
import java.util.List;
-import com.linkwechat.wecom.domain.WeCorpAccount;
-import org.apache.ibatis.annotations.Param;
/**
* 企业id相关配置Service接口
@@ -71,4 +71,7 @@ public interface IWeCorpAccountService
* 客户流失通知开关查询
*/
public String getCustomerChurnNoticeSwitch();
+
+
+ WeCorpAccount findWeCorpByAccount(String corpAccount);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeEmpleCodeService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeEmpleCodeService.java
index 7bbe852967e42f26b142258da109b67492cc3280..3ade394fa8943aadaccec72751b0d89d3200c09d 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeEmpleCodeService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeEmpleCodeService.java
@@ -10,7 +10,7 @@ import java.util.List;
/**
* 员工活码Service接口
- *
+ *
* @author ruoyi
* @date 2020-10-04
*/
@@ -41,7 +41,7 @@ public interface IWeEmpleCodeService extends IService
/**
* 新增员工活码
- *
+ *
* @param weEmpleCode 员工活码
* @return 结果
*/
@@ -49,7 +49,7 @@ public interface IWeEmpleCodeService extends IService
/**
* 修改员工活码
- *
+ *
* @param weEmpleCode 员工活码
* @return 结果
*/
@@ -83,11 +83,18 @@ public interface IWeEmpleCodeService extends IService
/**
* 通过活动场景获取客户欢迎语
- * @param activityScene 活动场景
+ * @param scenario 活动场景
* @param userId 成员id
* @return
*/
- public WeEmpleCodeDto selectWelcomeMsgByActivityScene(String activityScene, String userId);
+ public WeEmpleCodeDto selectWelcomeMsgByScenario(String scenario, String userId);
+
+ /**
+ * 通过state定位员工活码
+ * @param state state
+ * @return 员工活码
+ */
+ WeEmpleCodeDto selectWelcomeMsgByState(String state);
/**
* 批量新增员工活码
@@ -116,4 +123,10 @@ public interface IWeEmpleCodeService extends IService
* @return
*/
WeEmpleCode getQrcodeByUserId(String userId);
+
+ /**
+ * 递增扫码次数
+ * @param state state
+ */
+ void updateScanTimesByState(String state);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeActualService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeActualService.java
index ff60eeb1ff07bdc0bba2552950bc40862175e4c7..a3060e2ca46f64a3817366a9cc00712e58fe1949 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeActualService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeActualService.java
@@ -75,4 +75,10 @@ public interface IWeGroupCodeActualService extends IService
* @return 结果
*/
public boolean checkChatIdUnique(WeGroupCodeActual weGroupCodeActual);
+
+ /**
+ * 通过群id递增其实际群活码扫码次数
+ * @param chatId
+ */
+ void updateScanTimesByChatId(String chatId);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java
index 061d2759bf67cd0f701dfc0eec008cf1ebe2e729..439bbbda9c9ac9f7181c2b4475fe65db8c405c04 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupCodeService.java
@@ -20,14 +20,15 @@ public interface IWeGroupCodeService extends IService {
* @param id 客户群活码ID
* @return 客户群活码
*/
- public WeGroupCode selectWeGroupCodeById(Long id);
+ WeGroupCode selectWeGroupCodeById(Long id);
/**
* 根据群活码id查询实际码列表
+ *
* @param groupCodeId 群活码id
* @return 结果
*/
- public List selectActualListByGroupCodeId(Long groupCodeId);
+ List selectActualListByGroupCodeId(Long groupCodeId);
/**
* 查询客户群活码列表
@@ -35,7 +36,7 @@ public interface IWeGroupCodeService extends IService {
* @param weGroupCode 客户群活码
* @return 客户群活码集合
*/
- public List selectWeGroupCodeList(WeGroupCode weGroupCode);
+ List selectWeGroupCodeList(WeGroupCode weGroupCode);
/**
* 根据群活码id查询群活码列表
@@ -43,7 +44,7 @@ public interface IWeGroupCodeService extends IService {
* @param ids id列表
* @return 结果
*/
- public List selectWeGroupCodeListByIds(List ids);
+ List selectWeGroupCodeListByIds(List ids);
/**
* 新增客户群活码
@@ -51,7 +52,7 @@ public interface IWeGroupCodeService extends IService {
* @param weGroupCode 客户群活码
* @return 结果
*/
- public void insertWeGroupCode(WeGroupCode weGroupCode);
+ void insertWeGroupCode(WeGroupCode weGroupCode);
/**
* 修改客户群活码
@@ -59,7 +60,7 @@ public interface IWeGroupCodeService extends IService {
* @param weGroupCode 客户群活码
* @return 结果
*/
- public int updateWeGroupCode(WeGroupCode weGroupCode);
+ int updateWeGroupCode(WeGroupCode weGroupCode);
/**
* 批量删除客户群活码
@@ -67,7 +68,7 @@ public interface IWeGroupCodeService extends IService {
* @param ids 需要删除的客户群活码ID
* @return 结果
*/
- public int deleteWeGroupCodeByIds(Long[] ids);
+ int deleteWeGroupCodeByIds(Long[] ids);
/**
* 删除客户群活码信息
@@ -75,12 +76,22 @@ public interface IWeGroupCodeService extends IService {
* @param id 客户群活码ID
* @return 结果
*/
- public int deleteWeGroupCodeById(Long id);
+ int deleteWeGroupCodeById(Long id);
/**
* 检测活码名称是否唯一
+ *
* @param weGroupCode 活码对象
* @return 结果
*/
- public boolean checkActivityNameUnique(WeGroupCode weGroupCode);
+ boolean checkActivityNameUnique(WeGroupCode weGroupCode);
+
+ /**
+ * 根据 uuid获取群活码
+ *
+ * @param uuid uuid
+ * @return 结果
+ */
+ WeGroupCode getWeGroupByUuid(String uuid);
+
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupSopService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupSopService.java
index 96e6127653fab0fe019adf9e2e27d6a7dc51e2b7..8fedc64e244fc64c7f87b014dde8499351b4ce43 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupSopService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupSopService.java
@@ -1,7 +1,10 @@
package com.linkwechat.wecom.service;
+import com.linkwechat.wecom.domain.WeGroup;
import com.linkwechat.wecom.domain.WeGroupSop;
+import com.linkwechat.wecom.domain.vo.WeCommunityTaskEmplVo;
import com.linkwechat.wecom.domain.vo.WeGroupSopVo;
+import com.linkwechat.wecom.domain.vo.WeKeywordGroupTaskVo;
import java.util.List;
@@ -68,4 +71,35 @@ public interface IWeGroupSopService {
* @return 是否唯一
*/
boolean isRuleNameUnique(String ruleName);
+
+ /**
+ * 根据员工id获取对应的sop任务列表
+ * @param emplId 员工id
+ * @param isDone 已完成还是待处理
+ * @return 结果
+ */
+ List getEmplTaskList(String emplId, boolean isDone);
+
+ /**
+ * 变更某员工sop规则发送任务的状态
+ *
+ * @param ruleId 规则名称
+ * @param emplId 群聊的群主id
+ * @return 结果
+ */
+ int updateChatSopStatus(Long ruleId, String emplId);
+
+ /**
+ * 根据SOP 规则id获取所有使用人员信息
+ *
+ * @param ruleId sop id
+ * @return 结果
+ */
+ List getScopeListByRuleId(Long ruleId);
+
+ /**
+ * 向指定的群聊进行sop企微消息推送
+ * @param groupIdList 群聊id列表
+ */
+ void sendMessage(List groupIdList);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupStatisticService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupStatisticService.java
index 8c2b56c3fc561a7787ca774c711ce7396828e9d6..13f80f8deeedb27bdad0d373ba46982ef538fad3 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupStatisticService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeGroupStatisticService.java
@@ -2,6 +2,8 @@ package com.linkwechat.wecom.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.linkwechat.wecom.domain.WeGroupStatistic;
+import com.linkwechat.wecom.domain.dto.WePageCountDto;
+import com.linkwechat.wecom.domain.query.WePageStateQuery;
import java.util.List;
@@ -18,4 +20,31 @@ public interface IWeGroupStatisticService extends IService {
* 查询列表
*/
List queryList(WeGroupStatistic weGroupStatistic);
+
+ /**
+ * 按日期查询当天数据统计结果
+ * @param dateTime
+ * @return WeUserBehaviorDataDto
+ */
+ WePageCountDto getCountDataByDay(String dateTime, String type);
+
+ /**
+ * 按天维度查询数据统计
+ * @param wePageStateQuery 入参
+ * @return List
+ */
+ List getDayCountData(WePageStateQuery wePageStateQuery);
+ /**
+ * 按周维度查询数据统计
+ * @param wePageStateQuery 入参
+ * @return List
+ */
+ List getWeekCountData(WePageStateQuery wePageStateQuery);
+
+ /**
+ * 按月维度查询数据统计
+ * @param wePageStateQuery 入参
+ * @return List
+ */
+ List getMonthCountData(WePageStateQuery wePageStateQuery);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java
index 52f7ca0f1511669c3945fff676500ba742cca955..44b814a5dfd0d208f2bd98986b0740094c419348 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWePresTagGroupTaskService.java
@@ -1,8 +1,9 @@
package com.linkwechat.wecom.service;
+import com.linkwechat.wecom.domain.WePresTagGroupTask;
import com.linkwechat.wecom.domain.WeTag;
import com.linkwechat.wecom.domain.dto.WePresTagGroupTaskDto;
-import com.linkwechat.wecom.domain.vo.WeEmplVo;
+import com.linkwechat.wecom.domain.vo.WeCommunityTaskEmplVo;
import com.linkwechat.wecom.domain.vo.WePresTagGroupTaskVo;
import com.linkwechat.wecom.domain.vo.WePresTagGroupTaskStatVo;
@@ -14,12 +15,13 @@ import java.util.List;
public interface IWePresTagGroupTaskService {
/**
- * 新增建群任务
- *
- * @param taskDto 建群所需数据
- * @return 数据库新增行数
+ * 添加新标签建群任务
+ * @param task 建群任务本体信息
+ * @param tagIdList 标签列表
+ * @param emplIdList 员工列表
+ * @return 结果
*/
- int add(WePresTagGroupTaskDto taskDto);
+ int add(WePresTagGroupTask task, List tagIdList, List emplIdList);
/**
* 根据条件查询任务列表
@@ -31,7 +33,7 @@ public interface IWePresTagGroupTaskService {
* @param endTime 结束时间
* @return 结果
*/
- List selectTaskListList(String taskName, Integer sendType, String createBy, String beginTime, String endTime);
+ List selectTaskList(String taskName, Integer sendType, String createBy, String beginTime, String endTime);
/**
* 通过id获取老客标签建群任务
@@ -69,27 +71,49 @@ public interface IWePresTagGroupTaskService {
/**
* 通过老客标签建群id获取其统计信息
*
- * @param taskId 任务id
- * @param customerName 客户名
- * @param isSent 是否已发送
- * @param isInGroup 是否已在群
+ * @param taskId 任务id
* @return 统计信息
*/
- List getStatByTaskId(Long taskId, String customerName, Integer isSent, Integer isInGroup);
+ List getStatByTaskId(Long taskId);
+
/**
- * 通过任务id获取对应使用员工
+ * 根据任务id获取对应员工信息列表
*
* @param taskId 任务id
* @return 结果
*/
- List getEmplListByTaskId(Long taskId);
+ List getScopeListByTaskId(Long taskId);
/**
- * 通过任务id获取标签列表
+ * 根据任务id获取对应标签信息列表
*
* @param taskId 任务id
* @return 结果
*/
List getTagListByTaskId(Long taskId);
+
+ /**
+ * 获取员工建群任务信息
+ *
+ * @param emplId 员工id
+ * @param isDone 是否已处理
+ * @return 结果
+ */
+ List getEmplTaskList(String emplId, boolean isDone);
+
+ /**
+ * 员工发送信息后,变更其任务状态为 "完成"
+ *
+ * @param taskId 任务id
+ * @param emplId 员工id
+ * @return 结果
+ */
+ int updateEmplTaskStatus(Long taskId, String emplId);
+
+ /**
+ * 根据标签建群任务信息发送消息
+ * @param task 标签建群任务
+ */
+ void sendMessage(WePresTagGroupTask task);
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWxAuthService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWxAuthService.java
new file mode 100644
index 0000000000000000000000000000000000000000..c5654ce2692f7298c904776d5effa3dfd3a3b594
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWxAuthService.java
@@ -0,0 +1,15 @@
+package com.linkwechat.wecom.service;
+
+import com.linkwechat.wecom.domain.weixin.dto.WxAuthUserInfoDto;
+import com.linkwechat.wecom.domain.weixin.dto.WxTokenDto;
+
+/**
+ * @author danmo
+ * @description
+ * @date 2021/4/5 22:45
+ **/
+public interface IWxAuthService {
+ WxTokenDto getToken(String code,String openId);
+
+ WxAuthUserInfoDto getUserInfo(String openId, String lang);
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/IWxAuthServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/IWxAuthServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..cf9e9144902c01e016b29615ccc8ad357b4ba78b
--- /dev/null
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/IWxAuthServiceImpl.java
@@ -0,0 +1,57 @@
+package com.linkwechat.wecom.service.impl;
+
+import com.linkwechat.common.constant.WeConstans;
+import com.linkwechat.common.core.redis.RedisCache;
+import com.linkwechat.common.utils.StringUtils;
+import com.linkwechat.wecom.domain.weixin.dto.WxAuthUserInfoDto;
+import com.linkwechat.wecom.domain.weixin.dto.WxTokenDto;
+import com.linkwechat.wecom.service.IWxAuthService;
+import com.linkwechat.wecom.wxclient.WxAuthClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author danmo
+ * @description
+ * @date 2021/4/5 22:45
+ **/
+@Slf4j
+@Service
+public class IWxAuthServiceImpl implements IWxAuthService {
+ @Autowired
+ private WxAuthClient wxAuthClient;
+ @Autowired
+ private RedisCache redisCache;
+
+ @Value("${weixin.appid}")
+ private String appId;
+ @Value("${weixin.secret}")
+ private String secret;
+ private final String grantType = "authorization_code";
+
+ @Override
+ public WxTokenDto getToken(String code,String openId) {
+ WxTokenDto authToken;
+ if (StringUtils.isNotEmpty(openId)){
+ authToken =redisCache.getCacheObject(WeConstans.WX_AUTH_ACCESS_TOKEN+":"+ openId);
+ }else {
+ authToken = wxAuthClient.getAuthToken(appId, secret, code, grantType);
+ if(authToken != null && StringUtils.isNotEmpty(authToken.getAccessToken())){
+ redisCache.setCacheObject(WeConstans.WX_AUTH_ACCESS_TOKEN+":"+ authToken.getOpenId(),
+ authToken, authToken.getExpiresIn(), TimeUnit.SECONDS);
+ redisCache.setCacheObject(WeConstans.WX_AUTH_REFRESH_ACCESS_TOKEN+":"+ authToken.getOpenId(),
+ authToken.getRefreshToken(), 30, TimeUnit.DAYS);
+ }
+ }
+ return authToken;
+ }
+
+ @Override
+ public WxAuthUserInfoDto getUserInfo(String openId, String lang) {
+ return wxAuthClient.getUserInfo(openId, lang);
+ }
+}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAccessTokenServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAccessTokenServiceImpl.java
index c462dded92e29482cfac619a422da6b6d30c443c..5ea459b1cbc3c4cc637980c35670ec4940624319 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAccessTokenServiceImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAccessTokenServiceImpl.java
@@ -8,7 +8,7 @@ import com.linkwechat.common.exception.wecom.WeComException;
import com.linkwechat.common.utils.StringUtils;
import com.linkwechat.wecom.client.WeAccessTokenClient;
import com.linkwechat.wecom.domain.WeApp;
-import com.linkwechat.wecom.domain.WeCorpAccount;
+import com.linkwechat.common.core.domain.entity.WeCorpAccount;
import com.linkwechat.wecom.domain.dto.WeAccessTokenDtoDto;
import com.linkwechat.wecom.service.IWeAccessTokenService;
import com.linkwechat.wecom.service.IWeAppService;
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAppServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAppServiceImpl.java
index b6dbef78aa7cc6151c0a8ef942287d1d4258204a..80fd45115bc19b987e140cf91e58f4ab0f2f74c5 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAppServiceImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeAppServiceImpl.java
@@ -1,10 +1,27 @@
package com.linkwechat.wecom.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.linkwechat.common.constant.Constants;
+import com.linkwechat.common.exception.wecom.WeComException;
+import com.linkwechat.wecom.client.WeAppClient;
import com.linkwechat.wecom.domain.WeApp;
+import com.linkwechat.wecom.domain.WeDepartment;
+import com.linkwechat.wecom.domain.dto.WeAppDetailDto;
+import com.linkwechat.wecom.domain.dto.WeAppDto;
import com.linkwechat.wecom.mapper.WeAppMapper;
import com.linkwechat.wecom.service.IWeAppService;
+import com.linkwechat.wecom.service.IWeDepartmentService;
+import com.linkwechat.wecom.service.IWeUserService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
/**
* @description:
@@ -13,4 +30,65 @@ import org.springframework.stereotype.Service;
**/
@Service
public class WeAppServiceImpl extends ServiceImpl implements IWeAppService {
+
+ @Autowired
+ WeAppClient weAppClient;
+
+
+ @Autowired
+ IWeDepartmentService iWeDepartmentService;
+
+
+ @Autowired
+ IWeUserService iWeUserService;
+
+
+ /**
+ * 保存应用
+ * @param weApp
+ */
+ @Override
+ @Transactional
+ public void addWeApp(WeApp weApp) {
+
+ if(null !=this.getOne(new LambdaQueryWrapper()
+ .eq(WeApp::getAgentId, weApp.getAgentId())
+ .eq(WeApp::getDelFlag, Constants.SUCCESS))){
+ throw new WeComException("AgentId已经存在");
+ }
+
+
+
+ WeAppDetailDto weAppDetailDto
+ = weAppClient.findAgentById(weApp.getAgentId());
+ if(null != weAppDetailDto){
+ weApp.setAgentName(weAppDetailDto.getName());
+ weApp.setCreateTime(new Date());
+ weApp.setSquareLogoUrl(weAppDetailDto.getSquare_logo_url());
+ weApp.setDescription(weAppDetailDto.getDescription());
+ weApp.setAllowPartys(StringUtils.join(weAppDetailDto.getAllow_partys().getPartyid(),","));
+ weApp.setAllowUserinfos(StringUtils.join(weAppDetailDto.getAllow_userinfos().getUser(),","));
+ this.save(weApp);
+ }
+
+ }
+
+
+
+ @Override
+ @Transactional
+ public void updateWeApp(WeApp weApp) {
+ if(this.updateById(weApp)){
+ weAppClient.updateAgentById(
+ WeAppDetailDto.builder()
+ .agentid(weApp.getAgentId())
+ .logo_mediaid(weApp.getLogoMediaid())
+ .description(weApp.getDescription())
+ .name(weApp.getAgentName())
+ .build()
+ );
+ }
+
+
+ }
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java
index bb965325591643ff72ba38efa1bc67c4cdf409ce..3f51bf1bfab36b838d9ce5f0581cb7f3b19c5bf1 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityKeywordToGroupServiceImpl.java
@@ -3,14 +3,15 @@ package com.linkwechat.wecom.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.linkwechat.common.utils.StringUtils;
+import com.linkwechat.wecom.domain.WeGroupCode;
import com.linkwechat.wecom.domain.WeKeywordGroupTaskKeyword;
import com.linkwechat.wecom.domain.WeKeywordGroupTask;
-import com.linkwechat.wecom.domain.WeGroupCode;
+import com.linkwechat.wecom.domain.vo.WeGroupCodeVo;
import com.linkwechat.wecom.domain.vo.WeKeywordGroupTaskVo;
+import com.linkwechat.wecom.mapper.WeGroupCodeMapper;
import com.linkwechat.wecom.mapper.WeKeywordGroupTaskKwMapper;
import com.linkwechat.wecom.mapper.WeKeywordGroupTaskMapper;
import com.linkwechat.wecom.service.IWeCommunityKeywordToGroupService;
-import com.linkwechat.wecom.service.IWeGroupCodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -35,7 +36,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl getTaskList(String taskName, String createBy, String keyword, String beginTime, String endTime) {
List taskVoList = taskMapper.getTaskList(taskName, createBy, keyword, beginTime, endTime);
- for (WeKeywordGroupTaskVo task : taskVoList) {
+ for (WeKeywordGroupTaskVo taskVo : taskVoList) {
// 查询关键词列表
- QueryWrapper taskKeywordQueryWrapper = new QueryWrapper<>();
- taskKeywordQueryWrapper.eq("task_id", task.getTaskId());
- List taskKeywordList = taskKwMapper.selectList(taskKeywordQueryWrapper);
- task.setKeywordList(taskKeywordList);
+ List taskKeywordList = this.getTaskKeywordList(taskVo.getTaskId());
+ if (StringUtils.isNotEmpty(taskKeywordList)) {
+ taskVo.setKeywordList(taskKeywordList);
+ }
+ // 群活码信息
+ taskVo.setGroupCodeInfo(this.getGroupVoByTaskId(taskVo.getGroupCodeId()));
// 通过群活码id查询对应的群
- List groupNameList = taskMapper.getGroupNameListByTaskId(task.getTaskId());
+ List groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId());
groupNameList.removeIf(Objects::isNull);
- task.setGroupNameList(groupNameList);
- // 获取群活码信息
- WeGroupCode weGroupCode = groupCodeService.selectWeGroupCodeById(task.getGroupCodeId());
- task.setGroupCodeInfo(weGroupCode);
+ taskVo.setGroupNameList(groupNameList);
}
return taskVoList;
@@ -78,10 +78,16 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl taskKeywordQueryWrapper = new QueryWrapper<>();
- taskKeywordQueryWrapper.eq("task_id", taskId);
- List keywordList = taskKwMapper.selectList(taskKeywordQueryWrapper);
- taskVo.setKeywordList(keywordList);
+ List keywordList = this.getTaskKeywordList(taskId);
+ if (StringUtils.isNotEmpty(keywordList)) {
+ taskVo.setKeywordList(keywordList);
+ }
+ // 群活码
+ taskVo.setGroupCodeInfo(this.getGroupVoByTaskId(taskVo.getGroupCodeId()));
+ // 群聊名称列表
+ List groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId());
+ groupNameList.removeIf(Objects::isNull);
+ taskVo.setGroupNameList(groupNameList);
return taskVo;
}
@@ -95,7 +101,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl taskKeywordList = Arrays
.stream(keywords)
@@ -119,7 +125,7 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl taskKwQueryWrapper = new QueryWrapper<>();
taskKwQueryWrapper.eq("task_id", task.getTaskId());
@@ -165,4 +171,52 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl filterByNameOrKeyword(String word) {
+ List taskVoList = taskMapper.filterByNameOrKeyword(word);
+ taskVoList.forEach(taskVo -> {
+ // 关键词列表
+ taskVo.setKeywordList(this.getTaskKeywordList(taskVo.getTaskId()));
+ List groupNameList = taskMapper.getGroupNameListByTaskId(taskVo.getTaskId());
+ // 群活码
+ taskVo.setGroupCodeInfo(this.getGroupVoByTaskId(taskVo.getGroupCodeId()));
+ // 群名称列表
+ groupNameList.removeIf(StringUtils::isNull);
+ taskVo.setGroupNameList(groupNameList);
+ });
+ return taskVoList;
+ }
+
+ /**
+ * 根据任务id获取关键词列表
+ *
+ * @param taskId 任务id
+ */
+ private List getTaskKeywordList(Long taskId) {
+ QueryWrapper taskKeywordQueryWrapper = new QueryWrapper<>();
+ taskKeywordQueryWrapper.eq("task_id", taskId);
+ return taskKwMapper.selectList(taskKeywordQueryWrapper);
+ }
+
+ /**
+ * 获取群活码简略信息
+ *
+ * @param groupCodeId 群活码id
+ * @return 群活码简略信息
+ */
+ private WeGroupCodeVo getGroupVoByTaskId(Long groupCodeId) {
+ WeGroupCode groupCode = groupCodeMapper.selectWeGroupCodeById(groupCodeId);
+ WeGroupCodeVo groupCodeVo = new WeGroupCodeVo();
+ groupCodeVo.setId(groupCode.getId());
+ groupCodeVo.setCodeUrl(groupCode.getCodeUrl());
+ groupCodeVo.setUuid(groupCode.getUuid());
+ return groupCodeVo;
+ }
}
diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java
index d9330eb0dfe5db5c89d047cfe886f8e50c0f5ac5..9d5e75757dbbee10c9430c177c9fa93d18b0dfc5 100644
--- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java
+++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCommunityNewGroupServiceImpl.java
@@ -1,29 +1,26 @@
package com.linkwechat.wecom.service.impl;
-import cn.hutool.core.collection.CollectionUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.google.common.collect.Lists;
+import com.linkwechat.common.enums.WeEmpleCodeType;
import com.linkwechat.common.exception.wecom.WeComException;
import com.linkwechat.common.utils.SecurityUtils;
-import com.linkwechat.wecom.client.WeExternalContactClient;
+import com.linkwechat.common.utils.StringUtils;
import com.linkwechat.wecom.domain.*;
import com.linkwechat.wecom.domain.dto.WeCommunityNewGroupDto;
import com.linkwechat.wecom.domain.dto.WeExternalContactDto;
import com.linkwechat.wecom.domain.vo.WeCommunityNewGroupVo;
-import com.linkwechat.wecom.mapper.WeCommunityNewGroupMapper;
-import com.linkwechat.wecom.mapper.WeGroupCodeMapper;
+import com.linkwechat.wecom.domain.vo.WeGroupCodeVo;
+import com.linkwechat.wecom.mapper.*;
import com.linkwechat.wecom.service.IWeCommunityNewGroupService;
-import com.linkwechat.wecom.service.IWeEmpleCodeTagService;
-import com.linkwechat.wecom.service.IWeEmpleCodeUseScopService;
-import com.linkwechat.wecom.service.IWeGroupCodeActualService;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -37,27 +34,36 @@ import java.util.stream.Collectors;
public class WeCommunityNewGroupServiceImpl extends ServiceImpl implements IWeCommunityNewGroupService {
@Autowired
- private WeGroupCodeMapper weGroupCodeMapper;
+ private WeEmpleCodeServiceImpl weEmpleCodeService;
@Autowired
- private WeEmpleCodeServiceImpl weEmpleCodeService;
+ private WeGroupCodeMapper weGroupCodeMapper;
@Autowired
private WeCommunityNewGroupMapper weCommunityNewGroupMapper;
@Autowired
- private IWeEmpleCodeTagService weEmpleCodeTagService;
+ private WeEmpleCodeTagMapper empleCodeTagMapper;
+ @Autowired
+ private WeEmpleCodeUseScopMapper empleCodeUseScopMapper;
@Autowired
- private IWeEmpleCodeUseScopService iWeEmpleCodeUseScopService;
+ private WeTagMapper weTagMapper;
@Autowired
- private WeExternalContactClient weExternalContactClient;
+ private WeEmpleCodeMapper weEmpleCodeMapper;
@Autowired
- private IWeGroupCodeActualService weGroupCodeActualService;
+ private WeUserMapper weUserMapper;
+
+ /**
+ * 添加新客自动拉群信息
+ *
+ * @param communityNewGroupDto 信息
+ * @return 结果
+ */
@Override
@Transactional(rollbackFor = Exception.class)
public int add(WeCommunityNewGroupDto communityNewGroupDto) {
@@ -67,175 +73,223 @@ public class WeCommunityNewGroupServiceImpl extends ServiceImpl item.setEmpleCodeId(communityNewGroup.getNewGroupId()));
- iWeEmpleCodeUseScopService.saveBatch(weEmpleCode.getWeEmpleCodeUseScops());
- }
- if (CollectionUtil.isNotEmpty(weEmpleCode.getWeEmpleCodeTags())) {
- weEmpleCode.getWeEmpleCodeTags().forEach(item -> item.setEmpleCodeId(communityNewGroup.getNewGroupId()));
- weEmpleCodeTagService.saveBatch(weEmpleCode.getWeEmpleCodeTags());
- }
+ WeExternalContactDto weExternalContactDto = weEmpleCodeService.getQrCode(weContactWay);
+ weEmpleCode.setConfigId(weExternalContactDto.getConfig_id());
+ weEmpleCode.setQrCode(weExternalContactDto.getQr_code());
+
+ // 保存员工活码信息
+ if (weEmpleCodeMapper.insertWeEmpleCode(weEmpleCode) > 0) {
+ // 批量保存员工活码标签
+ empleCodeTagMapper.batchInsetWeEmpleCodeTag(weEmpleCode.getWeEmpleCodeTags());
+ // 批量保存活码使用员工
+ empleCodeUseScopMapper.batchInsetWeEmpleCodeUseScop(weEmpleCode.getWeEmpleCodeUseScops());
+
+ // 保存新客自动拉群信息
+ WeCommunityNewGroup communityNewGroup = new WeCommunityNewGroup();
+ communityNewGroup.setGroupCodeId(weGroupCode.getId());
+ communityNewGroup.setEmplCodeName(communityNewGroupDto.getCodeName());
+ communityNewGroup.setCreateBy(SecurityUtils.getUsername());
+ communityNewGroup.setEmplCodeId(weEmpleCode.getId());
+
+ return weCommunityNewGroupMapper.insert(communityNewGroup);
}
- return 1;
+ return 0;
}
- private WeEmpleCode getWeEmpleCode(WeCommunityNewGroupDto communityNewGroupDto) {
- WeEmpleCode weEmpleCode = new WeEmpleCode();
- weEmpleCode.setCodeType(2);
- weEmpleCode.setActivityScene(communityNewGroupDto.getActivityScene());
- weEmpleCode.setIsJoinConfirmFriends(communityNewGroupDto.getIsJoinConfirmFriends());
- weEmpleCode.setWelcomeMsg(communityNewGroupDto.getWelcomeMsg());
- weEmpleCode.setWeEmpleCodeUseScops(communityNewGroupDto.getWeEmpleCodeUseScops());
- weEmpleCode.setWeEmpleCodeTags(communityNewGroupDto.getWeEmpleCodeTags());
- weEmpleCode.setQrCode(communityNewGroupDto.getQrCode());
- weEmpleCode.setMediaId(communityNewGroupDto.getMediaId());
- weEmpleCode.setConfigId(communityNewGroupDto.getConfigId());
- return weEmpleCode;
- }
+ /**
+ * 查询新客自动拉群列表
+ *
+ * @param emplCodeName 员工活码名称
+ * @param createBy 创建者
+ * @param beginTime 开始时间
+ * @param endTime 结束时间
+ * @return {@link WeCommunityNewGroupVo}s
+ */
@Override
- public List selectWeCommunityNewGroupList(String empleCodeName, String createBy, String beginTime, String endTime) {
- List weCommunityNewGroupVos = weCommunityNewGroupMapper.selectWeCommunityNewGroupList(empleCodeName, createBy, beginTime, endTime);
-
- if (CollectionUtil.isNotEmpty(weCommunityNewGroupVos)) {
- List newGroupIdList = weCommunityNewGroupVos.stream().map(WeCommunityNewGroupVo::getNewGroupId).collect(Collectors.toList());
- List useScopList = iWeEmpleCodeUseScopService.selectWeEmpleCodeUseScopListByIds(newGroupIdList);
- List tagList = weEmpleCodeTagService.selectWeEmpleCodeTagListByIds(newGroupIdList);
-
- weCommunityNewGroupVos.forEach(newGroup -> {
- List weGroupCodeActuals = getWeGroupCodeActuals(newGroup);
- newGroup.setWeGroupUserScops(weGroupCodeActuals);
- //活码使用人对象
- List