diff --git a/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java b/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java index 3f7a258a7324a03377a7064296045412b89f894c..721558f7824be4a2b342f15e0cd55dc24efc93a0 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java +++ b/linkwe-admin/src/main/java/com/linkwechat/LinkWeChatApplication.java @@ -1,7 +1,7 @@ package com.linkwechat; +import com.dtflys.forest.springboot.annotation.ForestScan; import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration; -import com.thebeastshop.forest.springboot.annotation.ForestScan; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatItemController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatItemController.java index 48ce25946ccd5d1479ad89957014317502b77458..094be8c880ad4e92a796d8ed2637188d3cec5932 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatItemController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatItemController.java @@ -30,8 +30,8 @@ public class WeChatItemController extends BaseController { /** * 侧边栏抓取素材 */ - @PreAuthorize("@ss.hasPermi('chat:item:add')") - // @Log(title = "侧边栏抓取素材", businessType = BusinessType.INSERT) +// @PreAuthorize("@ss.hasPermi('chat:item:add')") + @Log(title = "侧边栏抓取素材", businessType = BusinessType.INSERT) @PutMapping public AjaxResult add(@RequestBody WeChatItemDto chatItemDto) { return toAjax(weChatItemService.checkItems(chatItemDto)); diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatSideController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatSideController.java index db41bb0fae480d7b34bbcde14de7217121ac176e..9bc6eddf6532697e9bfbb4a0021fdbff5d242e9e 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatSideController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeChatSideController.java @@ -29,7 +29,7 @@ public class WeChatSideController extends BaseController { /** * 群发侧边栏列表 */ - @PreAuthorize("@ss.hasPermi('chat:side:list')") +// @PreAuthorize("@ss.hasPermi('chat:side:list')") @GetMapping("/list") public TableDataInfo list() { startPage(); @@ -40,7 +40,7 @@ public class WeChatSideController extends BaseController { /** * 更新侧边栏信息 */ - @PreAuthorize("@ss.hasPermi('chat:side:edit')") +// @PreAuthorize("@ss.hasPermi('chat:side:edit')") @Log(title = "更新侧边栏信息", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WeChatSide weChatSide) { 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 72a1733fbeef687ebebe558358281f3c976914f2..fd01bd2774d5a3d9353702445c1351cefe743e1a 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 @@ -40,7 +40,7 @@ public class WeCommunityGroupSopController extends BaseController { * @return 群sop规则列表 */ @ApiOperation(value = "通过过滤条件获取群sop列表", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:list')") +// @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:list')") @GetMapping(path = "/list") public TableDataInfo> getSopList( @RequestParam(value = "ruleName", required = false) String ruleName, @@ -61,7 +61,7 @@ public class WeCommunityGroupSopController extends BaseController { * @return 结果 */ @ApiOperation(value = "新增SOP规则", httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:add')") +// @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:add')") @PostMapping(path = "/") public AjaxResult addGroupSop(@Validated @RequestBody WeGroupSopDto groupSopDto) { if (!groupSopService.isRuleNameUnique(groupSopDto.getRuleName())) { @@ -86,7 +86,7 @@ public class WeCommunityGroupSopController extends BaseController { * @return 结果 */ @ApiOperation(value = "通过规则id获取sop规则详情", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:query')") +// @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:query')") @GetMapping(path = "/{ruleId}") public AjaxResult getGroupSop(@PathVariable("ruleId") Long ruleId) { WeGroupSopVo groupSopVo = groupSopService.getGroupSopById(ruleId); @@ -104,7 +104,7 @@ public class WeCommunityGroupSopController extends BaseController { * @return 结果 */ @ApiOperation(value = "更改SOP规则", httpMethod = "PUT") - @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:edit')") +// @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:edit')") @PutMapping(path = "/{ruleId}") public AjaxResult updateGroupSop(@PathVariable Long ruleId, @Validated @RequestBody WeGroupSopDto groupSopDto) { // 校验是否存在 @@ -136,7 +136,7 @@ public class WeCommunityGroupSopController extends BaseController { * @return 结果 */ @ApiOperation(value = "根据id列表批量删除群sop规则", httpMethod = "DELETE") - @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:remove')") +// @PreAuthorize("@ss.hasPermi('wecom:communityGroupSop:remove')") @DeleteMapping(path = "/{ids}") public AjaxResult batchDeleteSopRule(@PathVariable("ids") Long[] ids) { return toAjax(groupSopService.batchRemoveGroupSopByIds(ids)); 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 6c042252677abf7c3fdca802e481fc4ab1fbc300..1bac77bec022160befbf7dee8d2ceb621345f201 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 @@ -41,7 +41,7 @@ public class WeCommunityKeywordGroupController extends BaseController { * @param endTime 结束时间 * @return 列表数据 */ - @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:list')") +// @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:list')") @GetMapping(path = "/list") public TableDataInfo> list( @RequestParam(value = "taskName", required = false) String taskName, @@ -63,7 +63,7 @@ public class WeCommunityKeywordGroupController extends BaseController { * @param taskId 任务id * @return 任务详情 */ - @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:query')") + // @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:query')") @GetMapping(path = "/{taskId}") public AjaxResult getTask(@PathVariable("taskId") Long taskId) { WeKeywordGroupTaskVo keywordsGroupVo = keywordToGroupService.getTaskById(taskId); @@ -78,7 +78,7 @@ public class WeCommunityKeywordGroupController extends BaseController { * @param keywordToGroupDto 添加任务所需的数据 * @return 结果 */ - @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:add')") + // @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:add')") @PostMapping(path = "/") public AjaxResult addTask(@RequestBody @Validated WeKeywordGroupTaskDto keywordToGroupDto) { // 群活码必须存在 @@ -103,7 +103,7 @@ public class WeCommunityKeywordGroupController extends BaseController { * @param keywordToGroupDto 更新所需数据 * @return 结果 */ - @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:edit')") @PutMapping(path = "/{taskId}") public AjaxResult updateTask(@PathVariable("taskId") Long taskId, @RequestBody @Validated WeKeywordGroupTaskDto keywordToGroupDto) { // 群活码必须存在 @@ -130,7 +130,7 @@ public class WeCommunityKeywordGroupController extends BaseController { * @param ids id列表 * @return 结果 */ - @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:communityKeyword:remove')") @DeleteMapping(path = "/{ids}") public AjaxResult batchDeleteTask(@PathVariable("ids") Long[] ids) { return toAjax(keywordToGroupService.batchRemoveTaskByIds(ids)); 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 135b81b8aee3b1dfb1a50b6dfa91ce2fdfca758c..a33dd50c4e5035242f9a31bb942eca49c57ac93c 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 @@ -53,7 +53,7 @@ public class WeCommunityNewGroupController extends BaseController { * 查询新客自动拉群列表 */ @ApiOperation(value = "查询新客自动拉群列表", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:list')") + // @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 @@ -68,7 +68,7 @@ public class WeCommunityNewGroupController extends BaseController { * 获取新客自动拉群详细信息 */ @ApiOperation(value = "获取新客自动拉群详细信息", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:query')") + // @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))); @@ -78,7 +78,7 @@ public class WeCommunityNewGroupController extends BaseController { * 修改新客自动拉群 */ @ApiOperation(value = "修改新客自动拉群", httpMethod = "PUT") - @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:edit')") @Log(title = "新客自动拉群", businessType = BusinessType.UPDATE) @PutMapping("/update") public AjaxResult edit(@RequestBody @Validated WeCommunityNewGroupDto communityNewGroupDto) { @@ -91,7 +91,7 @@ public class WeCommunityNewGroupController extends BaseController { * 删除新客自动拉群 */ @ApiOperation(value = "删除新客自动拉群", httpMethod = "DELETE") - @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:remove')") @Log(title = "新客自动拉群", businessType = BusinessType.DELETE) @DeleteMapping("/delete/{ids}") public AjaxResult remove(@PathVariable String ids) { @@ -104,7 +104,7 @@ public class WeCommunityNewGroupController extends BaseController { * 新增新客自动拉群 */ @ApiOperation(value = "新增新客自动拉群", httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:add')") + // @PreAuthorize("@ss.hasPermi('wecom:communityNewGroup:add')") @Log(title = "新客自动拉群", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody @Validated WeCommunityNewGroupDto communityNewGroupDto) { @@ -132,7 +132,7 @@ public class WeCommunityNewGroupController extends BaseController { * @throws Exception */ @ApiOperation(value = "员工活码批量下载", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:code:downloadBatch')") + // @PreAuthorize("@ss.hasPermi('wecom:code:downloadBatch')") @Log(title = "员工活码批量下载", businessType = BusinessType.OTHER) @GetMapping("/downloadBatch") public void downloadBatch(String ids, HttpServletRequest request, HttpServletResponse response) { @@ -174,7 +174,7 @@ public class WeCommunityNewGroupController extends BaseController { } @ApiOperation(value = "员工活码下载", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:code:download')") + // @PreAuthorize("@ss.hasPermi('wecom:code:download')") @Log(title = "员工活码下载", businessType = BusinessType.OTHER) @GetMapping("/download") public void download(String id, HttpServletRequest request, HttpServletResponse response) { 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 b1293b6af76effa319ec6c8a8a165b22a98fdd03..30b18ba966158e14b415d5a7739bc698ca6c30a9 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 @@ -33,7 +33,7 @@ public class WeCommunityPresTagGroupController extends BaseController { /** * 获取老客标签建群列表数据 */ - @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:list')") + // @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:list')") @GetMapping(path = "/list") public TableDataInfo> getList( @RequestParam(value = "taskName", required = false) String taskName, @@ -49,7 +49,7 @@ public class WeCommunityPresTagGroupController extends BaseController { /** * 新建老客标签建群任务 */ - @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:add')") + // @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:add')") @PostMapping public AjaxResult addTask(@RequestBody @Validated WePresTagGroupTaskDto wePresTagGroupTaskDto) { // 检测任务名是否可用 @@ -65,7 +65,7 @@ public class WeCommunityPresTagGroupController extends BaseController { /** * 根据获取任务详细信息 */ - @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:query')") + // @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:query')") @GetMapping(path = "/{id}") public AjaxResult getTask(@PathVariable("id") Long id) { WePresTagGroupTaskVo taskVo = taskService.getTaskById(id); @@ -82,7 +82,7 @@ public class WeCommunityPresTagGroupController extends BaseController { /** * 更新任务信息 */ - @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:edit')") @PutMapping(path = "/{id}") public AjaxResult updateTask(@PathVariable("id") Long id, @RequestBody @Validated WePresTagGroupTaskDto wePresTagGroupTaskDto) { // 检测任务名是否可用 @@ -102,7 +102,7 @@ public class WeCommunityPresTagGroupController extends BaseController { /** * 批量删除老客标签建群任务 */ - @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:remove')") @DeleteMapping(path = "/{ids}") public AjaxResult batchRemoveTask(@PathVariable("ids") Long[] ids) { return toAjax(taskService.batchRemoveTaskByIds(ids)); @@ -111,7 +111,7 @@ public class WeCommunityPresTagGroupController extends BaseController { /** * 根据老客标签建群id及过滤条件,获取其统计信息 */ - @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:query')") + // @PreAuthorize("@ss.hasPermi('wecom:communitytagGroup:query')") @GetMapping(path = "/stat/{id}") public TableDataInfo> getStatInfo( @PathVariable("id") Long id, 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 17369c3443709150666770f6018c1daff81adb05..21a1610ecaa91513dd2ac7e522c1e8cf12381b99 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 @@ -31,7 +31,7 @@ public class WeConversationArchiveController extends BaseController { * @param /reveiceId 接收人id * @return */ - @PreAuthorize("@ss.hasPermi('conversationArchive:chatContact:list')") + // @PreAuthorize("@ss.hasPermi('conversationArchive:chatContact:list')") @GetMapping("/getChatContactList") public TableDataInfo getChatContactList(ConversationArchiveQuery query) { return getDataTable(weConversationArchiveService.getChatContactList(query)); @@ -46,7 +46,7 @@ public class WeConversationArchiveController extends BaseController { * @param /room 接收人id * @return */ - @PreAuthorize("@ss.hasPermi('conversationArchive:chatRoomContact:list')") + // @PreAuthorize("@ss.hasPermi('conversationArchive:chatRoomContact:list')") @GetMapping("/getChatRoomContactList") public TableDataInfo getChatRoomContactList(ConversationArchiveQuery query) { return getDataTable(weConversationArchiveService.getChatRoomContactList(query)); @@ -59,7 +59,7 @@ public class WeConversationArchiveController extends BaseController { * @param query 入参 * @return */ - @PreAuthorize("@ss.hasPermi('conversationArchive:chatAllContact:list')") + // @PreAuthorize("@ss.hasPermi('conversationArchive:chatAllContact:list')") @GetMapping("/getChatAllList") 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 2b3851d15fdd0454b013710fe22dbabda921d2b7..9d37d021be674d94d748b28226e10a23af45e07e 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 @@ -31,7 +31,7 @@ public class WeCorpAccountController extends BaseController /** * 查询企业id相关配置列表 */ - @PreAuthorize("@ss.hasPermi('wechat:corp:list')") + // @PreAuthorize("@ss.hasPermi('wechat:corp:list')") @GetMapping("/list") public TableDataInfo list(WeCorpAccount weCorpAccount) { @@ -44,7 +44,7 @@ public class WeCorpAccountController extends BaseController /** * 获取企业id相关配置详细信息 */ - @PreAuthorize("@ss.hasPermi('wechat:corp:query')") + // @PreAuthorize("@ss.hasPermi('wechat:corp:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -54,7 +54,7 @@ public class WeCorpAccountController extends BaseController /** * 新增企业id相关配置 */ - @PreAuthorize("@ss.hasPermi('wechat:corp:add')") + // @PreAuthorize("@ss.hasPermi('wechat:corp:add')") @Log(title = "新增企业id相关配置", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody WeCorpAccount weCorpAccount) @@ -65,7 +65,7 @@ public class WeCorpAccountController extends BaseController /** * 修改企业id相关配置 */ - @PreAuthorize("@ss.hasPermi('wechat:corp:edit')") + // @PreAuthorize("@ss.hasPermi('wechat:corp:edit')") @Log(title = "修改企业id相关配置", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody WeCorpAccount weCorpAccount) @@ -76,7 +76,7 @@ public class WeCorpAccountController extends BaseController /** * 启用有效企业微信账号 */ - @PreAuthorize("@ss.hasPermi('wechat:corp:startVailWeCorpAccount')") + // @PreAuthorize("@ss.hasPermi('wechat:corp:startVailWeCorpAccount')") @Log(title = "启用有效企业微信账号", businessType = BusinessType.DELETE) @PutMapping("/startVailWeCorpAccount/{corpId}") public AjaxResult startWeCorpAccount(@PathVariable String corpId) @@ -87,7 +87,7 @@ public class WeCorpAccountController extends BaseController /** * 客户流失通知开关 */ - @PreAuthorize("@ss.hasPermi('wechat:corp:startCustomerChurnNoticeSwitch')") + // @PreAuthorize("@ss.hasPermi('wechat:corp:startCustomerChurnNoticeSwitch')") @Log(title = "客户流失通知开关", businessType = BusinessType.UPDATE) @PutMapping("/startCustomerChurnNoticeSwitch/{status}") public AjaxResult startCustomerChurnNoticeSwitch(@PathVariable String status) @@ -98,7 +98,7 @@ public class WeCorpAccountController extends BaseController /** * 客户流失通知开关查询 */ - @PreAuthorize("@ss.hasPermi('wechat:corp:getCustomerChurnNoticeSwitch')") + // @PreAuthorize("@ss.hasPermi('wechat:corp:getCustomerChurnNoticeSwitch')") @Log(title = "客户流失通知开关查询", businessType = BusinessType.OTHER) @GetMapping("/getCustomerChurnNoticeSwitch") public AjaxResult getCustomerChurnNoticeSwitch() 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 e3d0d05420756f5b726ea40daaed6af9b63ac2d4..5781473f397b19d2b673cc0608c36b208c3d933f 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 @@ -38,7 +38,7 @@ public class WeCustomerController extends BaseController /** * 查询企业微信客户列表 */ - @PreAuthorize("@ss.hasPermi('customerManage:customer:list')") + // @PreAuthorize("@ss.hasPermi('customerManage:customer:list')") @GetMapping("/list") public TableDataInfo list(WeCustomer weCustomer) { @@ -53,7 +53,7 @@ public class WeCustomerController extends BaseController * 根据员工ID获取客户 * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:customer:list')") + // @PreAuthorize("@ss.hasPermi('customerManage:customer:list')") @GetMapping("/getCustomersByUserId/{externalUserid}") public AjaxResult getCustomersByUserId(@PathVariable String externalUserid){ @@ -64,7 +64,7 @@ public class WeCustomerController extends BaseController /** * 导出企业微信客户列表 */ - @PreAuthorize("@ss.hasPermi('wecom:customer:export')") + // @PreAuthorize("@ss.hasPermi('wecom:customer:export')") @Log(title = "企业微信客户", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(WeCustomer weCustomer) @@ -77,7 +77,7 @@ public class WeCustomerController extends BaseController /** * 获取企业微信客户详细信息 */ - @PreAuthorize("@ss.hasPermi('customerManage:customer:view')") + // @PreAuthorize("@ss.hasPermi('customerManage:customer:view')") @GetMapping(value = "/{externalUserId}") public AjaxResult getInfo(@PathVariable("externalUserId") String externalUserId) { @@ -89,7 +89,7 @@ public class WeCustomerController extends BaseController /** * 修改企业微信客户 */ - @PreAuthorize("@ss.hasPermi('wecom:customer:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:customer:edit')") @Log(title = "企业微信客户", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Validated @RequestBody WeCustomer weCustomer) @@ -103,7 +103,7 @@ public class WeCustomerController extends BaseController * 客户同步接口 * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:customer:sync')") + // @PreAuthorize("@ss.hasPermi('customerManage:customer:sync')") @Log(title = "企业微信客户同步接口", businessType = BusinessType.DELETE) @GetMapping("/synchWeCustomer") public AjaxResult synchWeCustomer() { @@ -125,7 +125,7 @@ public class WeCustomerController extends BaseController * @param weMakeCustomerTag * @return */ - @PreAuthorize("@ss.hasPermi('customerManage/customer:makeTag')") + // @PreAuthorize("@ss.hasPermi('customerManage/customer:makeTag')") @Log(title = "客户打标签", businessType = BusinessType.UPDATE) @PostMapping("/makeLabel") public AjaxResult makeLabel(@RequestBody WeMakeCustomerTag weMakeCustomerTag){ @@ -140,7 +140,7 @@ public class WeCustomerController extends BaseController * 移除客户标签 * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:customer:removeTag')") + // @PreAuthorize("@ss.hasPermi('customerManage:customer:removeTag')") @Log(title = "移除客户标签", businessType = BusinessType.DELETE) @DeleteMapping("/removeLabel") public AjaxResult removeLabel(@RequestBody WeMakeCustomerTag weMakeCustomerTag){ diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerMessagePushController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerMessagePushController.java index 0b30ae7b632fb3ded51fa9c82c8f84a72b64a5c6..58b691d7a386a46ae65f1f3165103c48820e3a7b 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerMessagePushController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeCustomerMessagePushController.java @@ -45,7 +45,7 @@ public class WeCustomerMessagePushController extends BaseController { /** * 新增群发消息发送 */ - @PreAuthorize("@ss.hasPermi('customerMessagePush:push:add')") + // @PreAuthorize("@ss.hasPermi('customerMessagePush:push:add')") @Log(title = "新增群发消息发送", businessType = BusinessType.INSERT) @PostMapping(value = "add") public AjaxResult add(@RequestBody CustomerMessagePushDto customerMessagePushDto) { @@ -62,7 +62,7 @@ public class WeCustomerMessagePushController extends BaseController { /** * 群发消息列表 */ - @PreAuthorize("@ss.hasPermi('customerMessagePush:push:list')") + // @PreAuthorize("@ss.hasPermi('customerMessagePush:push:list')") @GetMapping(value = "/list") public TableDataInfo list(@RequestParam(value = "sender", required = false) String sender , @RequestParam(value = "content", required = false) String content @@ -77,7 +77,7 @@ public class WeCustomerMessagePushController extends BaseController { /** * 群发消息详情 */ - @PreAuthorize("@ss.hasPermi('customerMessagePush:push:view')") + // @PreAuthorize("@ss.hasPermi('customerMessagePush:push:view')") @GetMapping(value = "/getInfo") public AjaxResult getInfo(@RequestParam(value = "messageId") Long messageId) { CustomerMessagePushVo customerMessagePushVo = weCustomerMessageOriginalService.CustomerMessagePushDetail(messageId); @@ -87,7 +87,7 @@ public class WeCustomerMessagePushController extends BaseController { /** * 群发消息结果列表 */ - @PreAuthorize("@ss.hasPermi('customerMessagePush:push:pushResults')") + // @PreAuthorize("@ss.hasPermi('customerMessagePush:push:pushResults')") @GetMapping(value = "/pushResults") public TableDataInfo customerMessagePushResult(@RequestParam(value = "messageId") Long messageId, @RequestParam(value = "status") String status) { startPage(); @@ -98,7 +98,7 @@ public class WeCustomerMessagePushController extends BaseController { /** * 同步消息发送结果 */ - @PreAuthorize("@ss.hasPermi('customerMessagePush:push:asyncResult')") + // @PreAuthorize("@ss.hasPermi('customerMessagePush:push:asyncResult')") @PostMapping(value = "asyncResult") public AjaxResult asyncResult(@RequestBody AsyncResultDto asyncResultDto) throws JsonProcessingException { weCustomerMessageOriginalService.asyncResult(asyncResultDto); diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeDepartmentController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeDepartmentController.java index 1f5c2ee70cd9586de6d2b66f28b1ba3ef44b2d22..001a0ccfb241b454550a0266e4853306952ea86b 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeDepartmentController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeDepartmentController.java @@ -33,7 +33,7 @@ public class WeDepartmentController extends BaseController /** * 查询企业微信组织架构相关列表 */ - @PreAuthorize("@ss.hasPermi('contacts:organization:list')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:list')") @GetMapping("/list") @ApiOperation("获取部门列表") public AjaxResult list() @@ -47,7 +47,7 @@ public class WeDepartmentController extends BaseController /** * 新增企业微信组织架构相关 */ - @PreAuthorize("@ss.hasPermi('contacts:organization:addMember')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:addMember')") @Log(title = "企业微信组织架构相关", businessType = BusinessType.INSERT) @PostMapping @ApiOperation("添加部门") @@ -60,7 +60,7 @@ public class WeDepartmentController extends BaseController /** * 修改企业微信组织架构相关 */ - @PreAuthorize("@ss.hasPermi('contacts:organization:editDep')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:editDep')") @Log(title = "企业微信组织架构相关", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation("更新部门") @@ -73,7 +73,7 @@ public class WeDepartmentController extends BaseController /** * 删除企业微信组织架构相关 */ - @PreAuthorize("@ss.hasPermi('wecom:department:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:department:remove')") @Log(title = "企业微信组织架构相关", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) 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 68da3cdb03fee09ef2c9339a715a53364142c75d..49f79ecb147483b42fae5912268868a6314d7a31 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 @@ -47,7 +47,7 @@ public class WeEmpleCodeController extends BaseController { /** * 查询员工活码列表 */ - @PreAuthorize("@ss.hasPermi('wecom:code:list')") + // @PreAuthorize("@ss.hasPermi('wecom:code:list')") @GetMapping("/list") public TableDataInfo list(WeEmpleCode weEmpleCode) { startPage(); @@ -59,7 +59,7 @@ public class WeEmpleCodeController extends BaseController { /** * 获取员工活码详细信息 */ - @PreAuthorize("@ss.hasPermi('wecom:code:query')") + // @PreAuthorize("@ss.hasPermi('wecom:code:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(weEmpleCodeService.selectWeEmpleCodeById(id)); @@ -68,7 +68,7 @@ public class WeEmpleCodeController extends BaseController { /** * 新增员工活码 */ - @PreAuthorize("@ss.hasPermi('wecom:code:add')") + // @PreAuthorize("@ss.hasPermi('wecom:code:add')") @Log(title = "员工活码", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody @Validated WeEmpleCode weEmpleCode) { @@ -89,7 +89,7 @@ public class WeEmpleCodeController extends BaseController { /** * 批量新增员工活码 */ - @PreAuthorize("@ss.hasPermi('wecom:code:batchAdd')") + // @PreAuthorize("@ss.hasPermi('wecom:code:batchAdd')") @Log(title = "批量新增员工活码", businessType = BusinessType.INSERT) @PostMapping("/batchAdd") public AjaxResult batchAdd(@RequestBody @Validated WeEmpleCode weEmpleCode) { @@ -109,7 +109,7 @@ public class WeEmpleCodeController extends BaseController { /** * 修改员工活码 */ - @PreAuthorize("@ss.hasPermi('wecom:code:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:code:edit')") @Log(title = "员工活码", businessType = BusinessType.UPDATE) @PutMapping("/update") public AjaxResult edit(@RequestBody WeEmpleCode weEmpleCode) { @@ -121,7 +121,7 @@ public class WeEmpleCodeController extends BaseController { /** * 删除员工活码 */ - @PreAuthorize("@ss.hasPermi('wecom:code:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:code:remove')") @Log(title = "员工活码", businessType = BusinessType.DELETE) @DeleteMapping("/delete/{ids}") public AjaxResult remove(@PathVariable String ids) { @@ -135,7 +135,7 @@ public class WeEmpleCodeController extends BaseController { * @param userIds 员工id * @param departmentIds 部门id */ - @PreAuthorize("@ss.hasPermi('wecom:code:qrcode')") + // @PreAuthorize("@ss.hasPermi('wecom:code:qrcode')") @Log(title = "获取员工二维码", businessType = BusinessType.DELETE) @GetMapping("/getQrcode") public AjaxResult getQrcode(String userIds, String departmentIds) { @@ -150,7 +150,7 @@ public class WeEmpleCodeController extends BaseController { * @param response 输出 * @throws Exception */ - @PreAuthorize("@ss.hasPermi('wecom:code:downloadBatch')") + // @PreAuthorize("@ss.hasPermi('wecom:code:downloadBatch')") @Log(title = "员工活码批量下载", businessType = BusinessType.OTHER) @GetMapping("/downloadBatch") public void downloadBatch(String ids, HttpServletRequest request, HttpServletResponse response){ @@ -190,7 +190,7 @@ public class WeEmpleCodeController extends BaseController { } } - @PreAuthorize("@ss.hasPermi('wecom:code:download')") + // @PreAuthorize("@ss.hasPermi('wecom:code:download')") @Log(title = "员工活码下载", businessType = BusinessType.OTHER) @GetMapping("/download") public void download(String id, HttpServletRequest request, HttpServletResponse response){ @@ -211,7 +211,7 @@ public class WeEmpleCodeController extends BaseController { * 成员添加客户统计 * @return */ - @PreAuthorize("@ss.hasPermi('wecom:code:getUserAddCustomerStat')") + // @PreAuthorize("@ss.hasPermi('wecom:code:getUserAddCustomerStat')") @Log(title = "成员添加客户统计", businessType = BusinessType.OTHER) @GetMapping("/getUserAddCustomerStat") public AjaxResult getUserAddCustomerStat(WeFlowerCustomerRel weFlowerCustomerRel){ diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeActualController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeActualController.java index d0cb07bf03e9bb603c82ffb5d9e917ca76ca57d6..edd1300863e0ca576e63bc34ab44d66b041c5a2f 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeActualController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupCodeActualController.java @@ -31,7 +31,7 @@ public class WeGroupCodeActualController extends BaseController { /** * 查询实际群码列表 */ - @PreAuthorize("@ss.hasPermi('wecom:actual:list')") + // @PreAuthorize("@ss.hasPermi('wecom:actual:list')") @GetMapping("/list") public TableDataInfo list(WeGroupCodeActual weGroupCodeActual) { startPage(); @@ -55,7 +55,7 @@ public class WeGroupCodeActualController extends BaseController { /** * 获取实际群码详细信息 */ - @PreAuthorize("@ss.hasPermi('wecom:actual:query')") + // @PreAuthorize("@ss.hasPermi('wecom:actual:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { WeGroupCodeActual weGroupCodeActual = weGroupCodeActualService.selectWeGroupCodeActualById(id); @@ -68,7 +68,7 @@ public class WeGroupCodeActualController extends BaseController { /** * 新增实际群码查询 */ - @PreAuthorize("@ss.hasPermi('wecom:actual:add')") + // @PreAuthorize("@ss.hasPermi('wecom:actual:add')") @Log(title = "实际群码", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody WeGroupCodeActual weGroupCodeActual) { @@ -82,7 +82,7 @@ public class WeGroupCodeActualController extends BaseController { /** * 修改实际群码 */ - @PreAuthorize("@ss.hasPermi('wecom:actual:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:actual:edit')") @Log(title = "实际群码", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WeGroupCodeActual weGroupCodeActual) { @@ -101,7 +101,7 @@ public class WeGroupCodeActualController extends BaseController { /** * 删除实际群码 */ - @PreAuthorize("@ss.hasPermi('wecom:actual:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:actual:remove')") @Log(title = "实际群码", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { 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 e17c81f2c4c5f9f04c1233a7b265de6e6d118602..41efe6b72b036aa5940ddfaede13a57d61e1607b 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 @@ -46,7 +46,7 @@ public class WeGroupCodeController extends BaseController { /** * 查询客户群活码列表 */ - @PreAuthorize("@ss.hasPermi('drainageCode:group:list')") +// @PreAuthorize("@ss.hasPermi('drainageCode:group:list')") @GetMapping("/list") public TableDataInfo list(WeGroupCode weGroupCode) { startPage(); @@ -57,7 +57,7 @@ public class WeGroupCodeController extends BaseController { /** * 批量下载群活码 */ - @PreAuthorize("@ss.hasPermi('drainageCode:group:downloadBatch')") + // @PreAuthorize("@ss.hasPermi('drainageCode:group:downloadBatch')") @Log(title = "群活码批量下载", businessType = BusinessType.OTHER) @GetMapping("/downloadBatch") public void downloadBatch(String ids, HttpServletRequest request, HttpServletResponse response) { @@ -92,7 +92,7 @@ public class WeGroupCodeController extends BaseController { } } - @PreAuthorize("@ss.hasPermi('drainageCode:group:download')") + // @PreAuthorize("@ss.hasPermi('drainageCode:group:download')") @Log(title = "群活码下载", businessType = BusinessType.OTHER) @GetMapping("/download") public void download(String id, HttpServletRequest request, HttpServletResponse response) { @@ -120,7 +120,7 @@ public class WeGroupCodeController extends BaseController { /** * 获取客户群活码详细信息 */ - @PreAuthorize("@ss.hasPermi('drainageCode:group:query')") + // @PreAuthorize("@ss.hasPermi('drainageCode:group:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { WeGroupCode weGroupCode = weGroupCodeService.selectWeGroupCodeById(id); @@ -135,7 +135,7 @@ public class WeGroupCodeController extends BaseController { /** * 新增客户群活码 */ - @PreAuthorize("@ss.hasPermi('drainageCode:group:add')") + // @PreAuthorize("@ss.hasPermi('drainageCode:group:add')") @Log(title = "客户群活码", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody WeGroupCode weGroupCode) { @@ -153,7 +153,7 @@ public class WeGroupCodeController extends BaseController { /** * 修改客户群活码 */ - @PreAuthorize("@ss.hasPermi('drainageCode:group:edit')") + // @PreAuthorize("@ss.hasPermi('drainageCode:group:edit')") @Log(title = "客户群活码", businessType = BusinessType.UPDATE) @PutMapping(value = "/{id}") public AjaxResult edit(@PathVariable("id") Long id, @RequestBody WeGroupCode weGroupCode) { @@ -174,7 +174,7 @@ public class WeGroupCodeController extends BaseController { /** * 删除客户群活码 */ - @PreAuthorize("@ss.hasPermi('drainageCode:group:remove')") + // @PreAuthorize("@ss.hasPermi('drainageCode:group:remove')") @Log(title = "客户群活码", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult batchRemove(@PathVariable Long[] ids) { diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupController.java index 0e38e4bb89a02b1a18ad21afb129c36852208da4..42507397a2570e1deec9d31358f80b848355d884 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeGroupController.java @@ -36,7 +36,7 @@ public class WeGroupController extends BaseController { @Autowired private IWeGroupMemberService weGroupMemberService; - @PreAuthorize("@ss.hasPermi('customerManage:group:list')") + // @PreAuthorize("@ss.hasPermi('customerManage:group:list')") @GetMapping({"/list"}) public TableDataInfo list(WeGroup weGroup) { startPage(); @@ -46,7 +46,7 @@ public class WeGroupController extends BaseController { - @PreAuthorize("@ss.hasPermi('customerManage:group:view')") + // @PreAuthorize("@ss.hasPermi('customerManage:group:view')") @GetMapping({"/members"}) public TableDataInfo list(WeGroupMember weGroupMember) { startPage(); @@ -58,7 +58,7 @@ public class WeGroupController extends BaseController { * 同步客户群 * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:group:sync')") + // @PreAuthorize("@ss.hasPermi('customerManage:group:sync')") @GetMapping({"/synchWeGroup"}) public AjaxResult synchWeGroup(){ try { @@ -78,7 +78,7 @@ public class WeGroupController extends BaseController { * @param userId * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:group:sync')") + // @PreAuthorize("@ss.hasPermi('customerManage:group:sync')") @GetMapping({"/getGroupsByUserId/{userId}"}) public AjaxResult getGroupsByUserId(@PathVariable String userId){ 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 26caddcbc7614d1a8da35b33ff54f13af816060d..85bfdf2e39253fe95c54d7c153d89bf90fd3796e 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 @@ -44,7 +44,7 @@ public class WeMaterialController extends BaseController { /** * 查询素材列表 */ - @PreAuthorize("@ss.hasPermi('wecom:material:list')") + // @PreAuthorize("@ss.hasPermi('wecom:material:list')") @GetMapping("/list") public TableDataInfo list(@RequestParam(value = "categoryId", required = false) String categoryId , @RequestParam(value = "search", required = false) String search,@RequestParam(value = "mediaType") String mediaType) { @@ -69,7 +69,7 @@ public class WeMaterialController extends BaseController { /** * 查询素材详细信息 */ - @PreAuthorize("@ss.hasPermi('wechat:material:query')") + // @PreAuthorize("@ss.hasPermi('wechat:material:query')") @GetMapping(value = "/{id}") @ApiOperation("查询素材详细信息") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -79,7 +79,7 @@ public class WeMaterialController extends BaseController { /** * 添加素材信息 */ - @PreAuthorize("@ss.hasPermi('wechat:material:add')") + // @PreAuthorize("@ss.hasPermi('wechat:material:add')") @Log(title = "添加素材信息", businessType = BusinessType.INSERT) @PostMapping @ApiOperation("添加素材信息") @@ -90,7 +90,7 @@ public class WeMaterialController extends BaseController { /** * 更新素材信息 */ - @PreAuthorize("@ss.hasPermi('wechat:material:edit')") + // @PreAuthorize("@ss.hasPermi('wechat:material:edit')") @Log(title = "更新素材信息", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation("更新素材信息") @@ -101,7 +101,7 @@ public class WeMaterialController extends BaseController { /** * 删除素材信息 */ - @PreAuthorize("@ss.hasPermi('wechat:material:remove')") + // @PreAuthorize("@ss.hasPermi('wechat:material:remove')") @Log(title = "删除素材信息", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") @ApiOperation("删除素材信息") @@ -112,7 +112,7 @@ public class WeMaterialController extends BaseController { /** * 上传素材信息 */ - @PreAuthorize("@ss.hasPermi('wechat:material:upload')") + // @PreAuthorize("@ss.hasPermi('wechat:material:upload')") @Log(title = "上传素材信息", businessType = BusinessType.OTHER) @PostMapping("/upload") @ApiOperation("上传素材信息") @@ -124,7 +124,7 @@ public class WeMaterialController extends BaseController { /** * 更换分组 */ - @PreAuthorize("@ss.hasPermi('wechat:material:resetCategory')") + // @PreAuthorize("@ss.hasPermi('wechat:material:resetCategory')") @Log(title = "更换分组", businessType = BusinessType.OTHER) @PutMapping("/resetCategory") @ApiOperation("更换分组") diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMessagePushController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMessagePushController.java index 795b81941dafb73e54097d357736f3d05717c46f..e326e87d55793c28e89a4a1d12cad4ed97b3dd0e 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMessagePushController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMessagePushController.java @@ -30,7 +30,7 @@ public class WeMessagePushController extends BaseController { /** * 查询消息发送的列表 */ - @PreAuthorize("@ss.hasPermi('system:push:list')") + // @PreAuthorize("@ss.hasPermi('system:push:list')") @GetMapping("/list") public TableDataInfo list(WeMessagePush weMessagePush) { startPage(); @@ -41,7 +41,7 @@ public class WeMessagePushController extends BaseController { /** * 导出消息发送的列表 */ - @PreAuthorize("@ss.hasPermi('system:push:export')") + // @PreAuthorize("@ss.hasPermi('system:push:export')") @Log(title = "消息发送的", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(WeMessagePush weMessagePush) { @@ -53,7 +53,7 @@ public class WeMessagePushController extends BaseController { /** * 获取消息发送的详细信息 */ - @PreAuthorize("@ss.hasPermi('system:push:query')") + // @PreAuthorize("@ss.hasPermi('system:push:query')") @GetMapping(value = "/{messagePushId}") public AjaxResult getInfo(@PathVariable("messagePushId") Long messagePushId) { return AjaxResult.success(weMessagePushService.selectWeMessagePushById(messagePushId)); @@ -62,7 +62,7 @@ public class WeMessagePushController extends BaseController { /** * 新增消息发送的 */ - @PreAuthorize("@ss.hasPermi('system:push:add')") + // @PreAuthorize("@ss.hasPermi('system:push:add')") @Log(title = "消息发送的", businessType = BusinessType.INSERT) @PostMapping(value = "add") public AjaxResult add(@RequestBody WeMessagePush weMessagePush) { @@ -73,7 +73,7 @@ public class WeMessagePushController extends BaseController { /** * 删除消息发送的 */ - @PreAuthorize("@ss.hasPermi('system:push:remove')") + // @PreAuthorize("@ss.hasPermi('system:push:remove')") @Log(title = "消息发送的", businessType = BusinessType.DELETE) @DeleteMapping("/{messagePushIds}") public AjaxResult remove(@PathVariable Long[] messagePushIds) { diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMsgTlpController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMsgTlpController.java index f6173fca92e3f0cd66e19bc39a100803f103764e..012f3b9bf90e17566c4c9420741cfa3016bdd1fa 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMsgTlpController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeMsgTlpController.java @@ -36,7 +36,7 @@ public class WeMsgTlpController extends BaseController /** * 查询欢迎语模板列表 */ - @PreAuthorize("@ss.hasPermi('wecom:tlp:list')") + // @PreAuthorize("@ss.hasPermi('wecom:tlp:list')") @GetMapping("/list") public TableDataInfo list(WeMsgTlp weMsgTlp) { @@ -49,7 +49,7 @@ public class WeMsgTlpController extends BaseController /** * 获取欢迎语模板详细信息 */ - @PreAuthorize("@ss.hasPermi('wecom:tlp:query')") + // @PreAuthorize("@ss.hasPermi('wecom:tlp:query')") @GetMapping(value = "/scop/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -62,7 +62,7 @@ public class WeMsgTlpController extends BaseController /** * 新增欢迎语模板 */ - @PreAuthorize("@ss.hasPermi('wecom:tlp:add')") + // @PreAuthorize("@ss.hasPermi('wecom:tlp:add')") @Log(title = "新增欢迎语模板", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody WeMsgTlp weMsgTlp) @@ -73,7 +73,7 @@ public class WeMsgTlpController extends BaseController /** * 修改欢迎语模板 */ - @PreAuthorize("@ss.hasPermi('wecom:tlp:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:tlp:edit')") @Log(title = "修改欢迎语模板", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WeMsgTlp weMsgTlp) @@ -84,7 +84,7 @@ public class WeMsgTlpController extends BaseController /** * 删除欢迎语模板 */ - @PreAuthorize("@ss.hasPermi('wecom:tlp:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:tlp:remove')") @Log(title = "删除欢迎语模板", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePageDateContraller.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePageDateContraller.java index 497fc5734056f24147f05ee90d65de6fc38210f9..d25017668f6cb8640ed3e08f0972635d840cb4cf 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePageDateContraller.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePageDateContraller.java @@ -33,14 +33,14 @@ public class WePageDateContraller { * */ @ApiOperation(value = "数据总览controller",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:page:getCorpBasicData')") + // @PreAuthorize("@ss.hasPermi('wecom:page:getCorpBasicData')") @GetMapping("/getCorpBasicData") public AjaxResult getCorpBasicData(){ return AjaxResult.success(redisCache.getCacheMap("getCorpBasicData")); } @ApiOperation(value = "实时数据controller",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:page:getCorpRealTimeData')") + // @PreAuthorize("@ss.hasPermi('wecom:page:getCorpRealTimeData')") @GetMapping("/getCorpRealTimeData") public AjaxResult getCorpRealTimeData(){ WePageStaticDataDto wePageStaticDataDto = redisCache.getCacheObject("getCorpRealTimeData"); diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java index 13ba4056442333f945567889d29f346022357835..77ca7e3c8e6ef4cc27ca5bec59d4f848478512ac 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WePosterController.java @@ -45,7 +45,7 @@ public class WePosterController extends BaseController { @PostMapping(value = "insert") @ApiOperation("创建海报") - @PreAuthorize("@ss.hasAnyPermi('wecom:poster:insert')") + // @PreAuthorize("@ss.hasAnyPermi('wecom:poster:insert')") @Transactional(rollbackFor = RuntimeException.class) public AjaxResult insert(@RequestBody WePoster poster) { wePosterService.generateSimpleImg(poster); @@ -70,7 +70,7 @@ public class WePosterController extends BaseController { @PutMapping(value = "update") @ApiOperation("修改海报") - @PreAuthorize("@ss.hasAnyPermi('wecom:poster:update')") + // @PreAuthorize("@ss.hasAnyPermi('wecom:poster:update')") @Transactional(rollbackFor = RuntimeException.class) public AjaxResult update(@RequestBody WePoster poster) { if (poster.getId() == null) { @@ -122,7 +122,7 @@ public class WePosterController extends BaseController { }*/ @GetMapping(value = "entity/{id}") - @PreAuthorize("@ss.hasAnyPermi('wecom:poster:entity')") + // @PreAuthorize("@ss.hasAnyPermi('wecom:poster:entity')") @ApiOperation("查询海报详情") public AjaxResult entity(@PathVariable Long id) { return AjaxResult.success(wePosterService.selectOne(id)); @@ -130,7 +130,7 @@ public class WePosterController extends BaseController { @GetMapping(value = "page") @ApiOperation("分页查询海报") - @PreAuthorize("@ss.hasAnyPermi('wecom:poster:page')") + // @PreAuthorize("@ss.hasAnyPermi('wecom:poster:page')") public AjaxResult page(Long categoryId, String name) { startPage(); List fontList = wePosterService.lambdaQuery() @@ -144,7 +144,7 @@ public class WePosterController extends BaseController { @DeleteMapping(value = "delete/{id}") @ApiOperation(value = "删除海报") - @PreAuthorize("@ss.hasAnyPermi('wecom:poster:delete')") + // @PreAuthorize("@ss.hasAnyPermi('wecom:poster:delete')") @Transactional(rollbackFor = RuntimeException.class) public AjaxResult deletePosterFont(@PathVariable Long id) { wePosterService.update( diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveActController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveActController.java index 64b3cdb7ceb083f3ef7198911599ad298329b40c..7730cfa5816e3aa88c4f41f0f42dfa7cc3feddc7 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveActController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveActController.java @@ -39,7 +39,7 @@ public class WeSensitiveActController extends BaseController { /** * 查询敏感行为列表 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:list')") +// @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:list')") @GetMapping("/list") public TableDataInfo list(WeSensitiveAct weSensitiveAct) { startPage(); @@ -50,7 +50,7 @@ public class WeSensitiveActController extends BaseController { /** * 获取敏感行为详细信息 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:query')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(weSensitiveActService.selectWeSensitiveActById(id)); @@ -59,7 +59,7 @@ public class WeSensitiveActController extends BaseController { /** * 新增敏感行为设置 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:add')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:add')") @Log(title = "新增敏感行为", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Valid @RequestBody WeSensitiveAct weSensitiveAct) { @@ -69,7 +69,7 @@ public class WeSensitiveActController extends BaseController { /** * 修改敏感词设置 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:edit')") @Log(title = "修改敏感行为", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WeSensitiveAct weSensitiveAct) { @@ -84,7 +84,7 @@ public class WeSensitiveActController extends BaseController { /** * 删除敏感词设置 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitiveact:remove')") @Log(title = "删除敏感行为", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable("ids") String ids) { @@ -97,7 +97,7 @@ public class WeSensitiveActController extends BaseController { /** * 敏感词命中查询 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitiveacthit:list')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitiveacthit:list')") @GetMapping("/hit/list") public TableDataInfo hitList() { startPage(); @@ -108,7 +108,7 @@ public class WeSensitiveActController extends BaseController { /** * 导出敏感行为记录 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitiveacthit:export')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitiveacthit:export')") @PostMapping("/hit/export") public AjaxResult export() { List list = weSensitiveActHitService.list(); diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveController.java index c32bdd3c30f409b01d326e660ec75e64af04d2a7..1721e6fce2d97c54152ccdbbdba82b2ea2067b40 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeSensitiveController.java @@ -33,7 +33,7 @@ public class WeSensitiveController extends BaseController { /** * 查询敏感词设置列表 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitive:list')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitive:list')") @GetMapping("/list") public TableDataInfo list(WeSensitive weSensitive) { startPage(); @@ -44,7 +44,7 @@ public class WeSensitiveController extends BaseController { /** * 获取敏感词设置详细信息 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitive:query')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitive:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(weSensitiveService.selectWeSensitiveById(id)); @@ -53,7 +53,7 @@ public class WeSensitiveController extends BaseController { /** * 新增敏感词设置 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitive:add')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitive:add')") @Log(title = "敏感词设置", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Valid @RequestBody WeSensitive weSensitive) { @@ -63,7 +63,7 @@ public class WeSensitiveController extends BaseController { /** * 修改敏感词设置 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitive:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitive:edit')") @Log(title = "敏感词设置", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@Valid @RequestBody WeSensitive weSensitive) { @@ -78,7 +78,7 @@ public class WeSensitiveController extends BaseController { /** * 删除敏感词设置 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitive:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitive:remove')") @Log(title = "敏感词设置", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable("ids") String ids) { @@ -91,7 +91,7 @@ public class WeSensitiveController extends BaseController { /** * 敏感词命中查询 */ - @PreAuthorize("@ss.hasPermi('wecom:sensitivehit:list')") + // @PreAuthorize("@ss.hasPermi('wecom:sensitivehit:list')") @GetMapping("/hit/list") public TableDataInfo hitList(WeSensitiveHitQuery query) { return getDataTable(weSensitiveService.getHitSensitiveList(query)); diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTagGroupController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTagGroupController.java index 941fbf2d473907546669020865067572f934daf4..68601ec235e76f7291e9c57b0343f7e515614796 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTagGroupController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTagGroupController.java @@ -44,7 +44,7 @@ public class WeTagGroupController extends BaseController /** * 查询标签组列表 */ - @PreAuthorize("@ss.hasPermi('customerManage:tag:list')") + // @PreAuthorize("@ss.hasPermi('customerManage:tag:list')") @GetMapping("/list") public TableDataInfo list(WeTagGroup weTagGroup) { @@ -60,7 +60,7 @@ public class WeTagGroupController extends BaseController /** * 新增标签组 */ - @PreAuthorize("@ss.hasPermi('customerManage:tag:add')") + // @PreAuthorize("@ss.hasPermi('customerManage:tag:add')") @Log(title = "标签组", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody WeTagGroup weTagGroup) @@ -85,7 +85,7 @@ public class WeTagGroupController extends BaseController /** * 修改标签组 */ - @PreAuthorize("@ss.hasPermi('customerManage:tag:edit')") + // @PreAuthorize("@ss.hasPermi('customerManage:tag:edit')") @Log(title = "标签组", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody WeTagGroup weTagGroup) @@ -97,7 +97,7 @@ public class WeTagGroupController extends BaseController /** * 删除标签组 */ - @PreAuthorize("@ss.hasPermi('customerManage:tag:remove')") + // @PreAuthorize("@ss.hasPermi('customerManage:tag:remove')") @Log(title = "标签组", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) @@ -110,7 +110,7 @@ public class WeTagGroupController extends BaseController * 同步标签 * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:tag:sync')") + // @PreAuthorize("@ss.hasPermi('customerManage:tag:sync')") @GetMapping("/synchWeTags") public AjaxResult synchWeTags(){ 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 139c2dc28281ab41055085cacb45eaf333357ddb..08ffd6ae0f221723225f568c02fc6cf9d0af9fc5 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,6 +3,8 @@ 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.google.common.collect.Lists; import com.linkwechat.common.annotation.Log; import com.linkwechat.common.config.CosConfig; import com.linkwechat.common.constant.HttpStatus; @@ -10,15 +12,23 @@ 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.common.exception.wecom.WeComException; +import com.linkwechat.common.utils.DateUtils; +import com.linkwechat.common.utils.StringUtils; import com.linkwechat.common.utils.file.FileUploadUtils; import com.linkwechat.common.utils.poi.ExcelUtil; +import com.linkwechat.wecom.domain.WeCustomer; import com.linkwechat.wecom.domain.WeTaskFission; import com.linkwechat.wecom.domain.dto.WeChatUserDTO; import com.linkwechat.wecom.domain.dto.WeTaskFissionPosterDTO; import com.linkwechat.wecom.domain.query.WeTaskFissionStatisticQO; +import com.linkwechat.wecom.domain.vo.WeTaskFissionProgressVO; +import com.linkwechat.wecom.domain.vo.WeTaskFissionStatisticVO; +import com.linkwechat.wecom.domain.vo.WeTaskFissionTotalProgressVO; import com.linkwechat.wecom.service.IWeTaskFissionService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -26,7 +36,10 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.text.ParseException; +import java.util.Date; import java.util.List; +import java.util.Objects; /** @@ -48,9 +61,9 @@ public class WeTaskFissionController extends BaseController { * 查询任务宝列表 */ @ApiOperation(value = "查询任务宝列表", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:fission:list')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:list')") @GetMapping("/list") - public TableDataInfo list(WeTaskFission weTaskFission) { + public TableDataInfo> list(WeTaskFission weTaskFission) throws ParseException { startPage(); List list = weTaskFissionService.selectWeTaskFissionList(weTaskFission); return getDataTable(list); @@ -60,27 +73,34 @@ public class WeTaskFissionController extends BaseController { * 查询统计信息 */ @ApiOperation(value = "查询统计信息", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:fission:stat')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:stat')") @GetMapping("/stat") - public AjaxResult statistics(WeTaskFissionStatisticQO weTaskFissionStatisticQO) { - //TODO 待完成 - //record表和complete_record表增加创建时间 - //record表增加完成时间 - //三个统计维度: - // 1. 日新增:每天裂变客户数 - // 2. 日参与:每天扫码参加活动的客户数 - // 3. 日完成:每天完成裂变任务的客户数 - return null; + public AjaxResult statistics(WeTaskFissionStatisticQO weTaskFissionStatisticQO) throws ParseException { + Date st; + Date et = DateUtils.getNowDate(); + if (weTaskFissionStatisticQO.getSeven()) { + st = DateUtils.addDays(et, -7); + } else if (weTaskFissionStatisticQO.getThirty()) { + st = DateUtils.addDays(et, -30); + } else { + if (StringUtils.isNotBlank(weTaskFissionStatisticQO.getBeginTime()) ^ StringUtils.isNotBlank(weTaskFissionStatisticQO.getEndTime())) { + throw new WeComException("开始或结束时间不能为空"); + } + st = DateUtils.parseDate(weTaskFissionStatisticQO.getBeginTime() + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + et = DateUtils.parseDate(weTaskFissionStatisticQO.getEndTime() + " 23:59:59", "yyyy-MM-dd HH:mm:ss"); + } + WeTaskFissionStatisticVO vo = weTaskFissionService.taskFissionStatistic(weTaskFissionStatisticQO.getTaskFissionId(), st, et); + return AjaxResult.success(vo); } /** * 导出任务宝列表 */ @ApiOperation(value = "导出任务宝列表", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:fission:export')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:export')") @Log(title = "任务宝", businessType = BusinessType.EXPORT) @GetMapping("/export") - public AjaxResult export(WeTaskFission weTaskFission) { + public AjaxResult export(WeTaskFission weTaskFission) throws ParseException { List list = weTaskFissionService.selectWeTaskFissionList(weTaskFission); ExcelUtil util = new ExcelUtil(WeTaskFission.class); return util.exportExcel(list, "fission"); @@ -90,9 +110,9 @@ public class WeTaskFissionController extends BaseController { * 获取任务宝详细信息 */ @ApiOperation(value = "获取任务宝详细信息", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:fission:query')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:query')") @GetMapping(value = "/getInfo/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) { + public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(weTaskFissionService.selectWeTaskFissionById(id)); } @@ -100,7 +120,7 @@ public class WeTaskFissionController extends BaseController { * 新增任务宝 */ @ApiOperation(value = "新增任务宝", httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:fission:add')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:add')") @Log(title = "任务宝", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody WeTaskFission weTaskFission) { @@ -117,7 +137,7 @@ public class WeTaskFissionController extends BaseController { * 编辑任务宝 */ @ApiOperation(value = "编辑任务宝", httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:fission:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:edit')") @Log(title = "任务宝", businessType = BusinessType.INSERT) @PutMapping("/edit") public AjaxResult edit(@RequestBody WeTaskFission weTaskFission) { @@ -141,7 +161,7 @@ public class WeTaskFissionController extends BaseController { * 删除任务宝 */ @ApiOperation(value = "删除任务宝", httpMethod = "DELETE") - @PreAuthorize("@ss.hasPermi('wecom:fission:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:remove')") @Log(title = "任务宝", businessType = BusinessType.DELETE) @DeleteMapping("/delete/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { @@ -152,7 +172,7 @@ public class WeTaskFissionController extends BaseController { * 发送裂变任务 */ @ApiOperation(value = "发送裂变任务", httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:fission:send')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:send')") @Log(title = "发送裂变任务", businessType = BusinessType.OTHER) @GetMapping("/send/{id}") public AjaxResult send(@PathVariable Long id) { @@ -164,7 +184,7 @@ public class WeTaskFissionController extends BaseController { * 添加群裂变完成记录 */ @ApiOperation(value = "添加群裂变完成记录", httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:fission:complete')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:complete')") @Log(title = "添加群裂变完成记录", businessType = BusinessType.OTHER) @PostMapping("/complete/{id}/records/{recordId}") public AjaxResult completeRecord(@PathVariable("id") Long id, @@ -175,17 +195,17 @@ public class WeTaskFissionController extends BaseController { return AjaxResult.error(HttpStatus.NOT_FOUND, "数据不存在"); } weTaskFissionService.completeFissionRecord(id, recordId, weChatUserDTO); - return AjaxResult.success(taskFission.getFissQrcode()); + return AjaxResult.success("操作成功", taskFission.getFissQrcode()); } /** * 生成带二维码的海报 */ @ApiOperation(value = "生成带二维码的海报", httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:fission:poster')") + // @PreAuthorize("@ss.hasPermi('wecom:fission:poster')") @Log(title = "生成带二维码的海报", businessType = BusinessType.OTHER) @PostMapping("/poster") - public AjaxResult posterGenerate(@RequestBody WeTaskFissionPosterDTO weTaskFissionPosterDTO) { + public AjaxResult posterGenerate(@RequestBody WeTaskFissionPosterDTO weTaskFissionPosterDTO) { String posterUrl = weTaskFissionService.fissionPosterGenerate(weTaskFissionPosterDTO); JSONObject json = new JSONObject(); json.put("posterUrl", posterUrl); @@ -195,14 +215,70 @@ public class WeTaskFissionController extends BaseController { /** * 上传兑奖图片 */ - @PreAuthorize("@ss.hasPermi('wechat:fission:upload')") + // @PreAuthorize("@ss.hasPermi('wechat:fission:upload')") @Log(title = "上传兑奖图片", businessType = BusinessType.OTHER) @PostMapping("/upload") @ApiOperation(value = "上传兑奖图片", httpMethod = "POST") - public AjaxResult upload(@RequestParam(value = "file") MultipartFile file) throws IOException { + public AjaxResult upload(@RequestParam(value = "file") MultipartFile file) throws IOException { String url = FileUploadUtils.upload2Cos(file, cosConfig); JSONObject json = new JSONObject(); json.put("rewardImageUrl", url); return AjaxResult.success(json); } + + + /** + * 根据任务id获取参与任务客户列表 + */ + @ApiOperation(value = "根据任务id获取参与任务客户列表", httpMethod = "GET") + // @PreAuthorize("@ss.hasPermi('wecom:fission:getCustomerListById')") + @Log(title = "根据任务id获取参与任务客户列表", businessType = BusinessType.OTHER) + @GetMapping("/getCustomerListById/{id}") + public AjaxResult> getCustomerListById(@ApiParam("任务id") @PathVariable("id") String id) { + return AjaxResult.success(weTaskFissionService.getCustomerListById(null, id)); + } + + + /** + * 获取客户邀请列表和任务进度 + */ + @ApiOperation(value = "获取客户邀请列表和任务进度", httpMethod = "GET") + // @PreAuthorize("@ss.hasPermi('wecom:fission:getCustomerProgress')") + @Log(title = "获取客户邀请列表和任务进度", businessType = BusinessType.OTHER) + @GetMapping("/{id}/progress/{eid}") + public AjaxResult getCustomerProgress(@ApiParam("任务id") @PathVariable("id") Long id + , @PathVariable("eid") @ApiParam("客户id") String eid) { + WeTaskFission weTaskFission = weTaskFissionService.selectWeTaskFissionById(id); + if (weTaskFission != null) { + return AjaxResult.success(weTaskFissionService.getCustomerTaskProgress(weTaskFission, eid)); + } else { + throw new WeComException("任务不存在"); + } + } + + /** + * 获取任务所有参与客户的完成情况 + */ + @ApiOperation(value = "获取任务所有参与客户的完成情况", httpMethod = "GET") + // @PreAuthorize("@ss.hasPermi('wecom:fission:getCustomerProgress')") + @Log(title = "获取任务所有参与客户的完成情况", businessType = BusinessType.OTHER) + @GetMapping("/{id}/progress") + public AjaxResult> getAllCustomerProgress(@ApiParam("任务id") @PathVariable("id") Long id) { + WeTaskFission weTaskFission = weTaskFissionService.selectWeTaskFissionById(id); + List list = Lists.newArrayList(); + if (weTaskFission != null) { + List customers = weTaskFissionService.getCustomerListById(null, String.valueOf(id)); + if (CollectionUtils.isNotEmpty(customers)) { + customers.stream().filter(Objects::nonNull).forEach(customer -> { + WeTaskFissionTotalProgressVO vo = new WeTaskFissionTotalProgressVO(); + vo.setCustomer(customer); + vo.setProgress(weTaskFissionService.getCustomerTaskProgress(weTaskFission, customer.getUnionid())); + list.add(vo); + }); + } + return AjaxResult.success(list); + } else { + throw new WeComException("任务不存在"); + } + } } diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRecordController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRecordController.java index 00e4ac469aad7580e2d23ce165b894efec8826e0..06450a8319e900ddb20d1802744328d8edba9bb3 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRecordController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRecordController.java @@ -33,7 +33,7 @@ public class WeTaskFissionRecordController extends BaseController { * 查询裂变任务完成记录列表 */ @ApiOperation(value = "查询裂变任务完成记录列表",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:record:list')") + // @PreAuthorize("@ss.hasPermi('wecom:record:list')") @GetMapping("/list") public TableDataInfo list(WeTaskFissionRecord weTaskFissionRecord) { startPage(); @@ -45,7 +45,7 @@ public class WeTaskFissionRecordController extends BaseController { * 导出裂变任务完成记录列表 */ @ApiOperation(value = "导出裂变任务完成记录列表",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:record:export')") + // @PreAuthorize("@ss.hasPermi('wecom:record:export')") @Log(title = "裂变任务完成记录", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(WeTaskFissionRecord weTaskFissionRecord) { @@ -58,7 +58,7 @@ public class WeTaskFissionRecordController extends BaseController { * 获取裂变任务完成记录详细信息 */ @ApiOperation(value = "获取裂变任务完成记录详细信息",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:record:query')") + // @PreAuthorize("@ss.hasPermi('wecom:record:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(weTaskFissionRecordService.selectWeTaskFissionRecordById(id)); @@ -68,7 +68,7 @@ public class WeTaskFissionRecordController extends BaseController { * 新增裂变任务完成记录 */ @ApiOperation(value = "新增裂变任务完成记录",httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:record:add')") + // @PreAuthorize("@ss.hasPermi('wecom:record:add')") @Log(title = "裂变任务完成记录", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody WeTaskFissionRecord weTaskFissionRecord) { @@ -79,7 +79,7 @@ public class WeTaskFissionRecordController extends BaseController { * 修改裂变任务完成记录 */ @ApiOperation(value = "修改裂变任务完成记录",httpMethod = "PUT") - @PreAuthorize("@ss.hasPermi('wecom:record:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:record:edit')") @Log(title = "裂变任务完成记录", businessType = BusinessType.UPDATE) @PutMapping("/edit") public AjaxResult edit(@RequestBody WeTaskFissionRecord weTaskFissionRecord) { @@ -90,7 +90,7 @@ public class WeTaskFissionRecordController extends BaseController { * 删除裂变任务完成记录 */ @ApiOperation(value = "删除裂变任务完成记录",httpMethod = "DELETE") - @PreAuthorize("@ss.hasPermi('wecom:record:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:record:remove')") @Log(title = "裂变任务完成记录", businessType = BusinessType.DELETE) @DeleteMapping("/delete/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRewardController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRewardController.java index 22f3ada963aefeb9af6276086296072c394e2b02..f08cdb3863ce7deebc27b7cfd3b2ca898daf6d0d 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRewardController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionRewardController.java @@ -7,9 +7,11 @@ import com.linkwechat.common.core.page.TableDataInfo; import com.linkwechat.common.enums.BusinessType; import com.linkwechat.common.utils.poi.ExcelUtil; import com.linkwechat.wecom.domain.WeTaskFissionReward; +import com.linkwechat.wecom.domain.vo.WeTaskFissionRewardVo; import com.linkwechat.wecom.service.IWeTaskFissionRewardService; 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.web.bind.annotation.*; @@ -34,7 +36,7 @@ public class WeTaskFissionRewardController extends BaseController { * 查询任务裂变奖励列表 */ @ApiOperation(value = "查询任务裂变奖励列表",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:reward:list')") + // @PreAuthorize("@ss.hasPermi('wecom:reward:list')") @GetMapping("/list") public TableDataInfo list(WeTaskFissionReward weTaskFissionReward) { startPage(); @@ -46,7 +48,7 @@ public class WeTaskFissionRewardController extends BaseController { * 导出任务裂变奖励列表 */ @ApiOperation(value = "导出任务裂变奖励列表",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:reward:export')") + // @PreAuthorize("@ss.hasPermi('wecom:reward:export')") @Log(title = "任务裂变奖励", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(WeTaskFissionReward weTaskFissionReward) { @@ -59,7 +61,7 @@ public class WeTaskFissionRewardController extends BaseController { * 获取任务裂变奖励详细信息 */ @ApiOperation(value = "获取任务裂变奖励详细信息",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:reward:query')") + // @PreAuthorize("@ss.hasPermi('wecom:reward:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(weTaskFissionRewardService.selectWeTaskFissionRewardById(id)); @@ -69,7 +71,7 @@ public class WeTaskFissionRewardController extends BaseController { * 新增任务裂变奖励 */ @ApiOperation(value = "新增任务裂变奖励",httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:reward:add')") + // @PreAuthorize("@ss.hasPermi('wecom:reward:add')") @Log(title = "任务裂变奖励", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody WeTaskFissionReward weTaskFissionReward) { @@ -80,7 +82,7 @@ public class WeTaskFissionRewardController extends BaseController { * 修改任务裂变奖励 */ @ApiOperation(value = "修改任务裂变奖励",httpMethod = "PUT") - @PreAuthorize("@ss.hasPermi('wecom:reward:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:reward:edit')") @Log(title = "任务裂变奖励", businessType = BusinessType.UPDATE) @PutMapping("edit") public AjaxResult edit(@RequestBody WeTaskFissionReward weTaskFissionReward) { @@ -91,10 +93,22 @@ public class WeTaskFissionRewardController extends BaseController { * 删除任务裂变奖励 */ @ApiOperation(value = "删除任务裂变奖励",httpMethod = "DELETE") - @PreAuthorize("@ss.hasPermi('wecom:reward:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:reward:remove')") @Log(title = "任务裂变奖励", businessType = BusinessType.DELETE) @DeleteMapping("/delete/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(weTaskFissionRewardService.deleteWeTaskFissionRewardByIds(ids)); } + + + /** + * 根据微信用户id和任务id获取任务裂变奖励详细信息 + */ + @ApiOperation(value = "根据微信用户id和任务id获取任务裂变奖励详细信息",httpMethod = "GET") + // @PreAuthorize("@ss.hasPermi('wecom:getRewardByFissionId:query')") + @GetMapping(value = "/getRewardByFissionId/{fissionId}/{eid}") + public AjaxResult getRewardByFissionId(@ApiParam("任务id") @PathVariable("fissionId") String fissionId + , @PathVariable("eid") @ApiParam("客户id") String eid) { + return AjaxResult.success(weTaskFissionRewardService.getRewardByFissionId(fissionId,eid)); + } } diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionStaffController.java b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionStaffController.java index 9eed7dcf7caa08722e7192a3e4e33b630cb56df3..3aecb3eaf3110acf607f8c8f18b26db4194d4d9c 100644 --- a/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionStaffController.java +++ b/linkwe-admin/src/main/java/com/linkwechat/web/controller/wecom/WeTaskFissionStaffController.java @@ -33,7 +33,7 @@ public class WeTaskFissionStaffController extends BaseController { * 查询裂变任务员工列列表 */ @ApiOperation(value = "查询裂变任务员工列列表",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:staff:list')") + // @PreAuthorize("@ss.hasPermi('wecom:staff:list')") @GetMapping("/list") public TableDataInfo list(WeTaskFissionStaff weTaskFissionStaff) { startPage(); @@ -45,7 +45,7 @@ public class WeTaskFissionStaffController extends BaseController { * 导出裂变任务员工列列表 */ @ApiOperation(value = "导出裂变任务员工列列表",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:staff:export')") + // @PreAuthorize("@ss.hasPermi('wecom:staff:export')") @Log(title = "裂变任务员工列", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(WeTaskFissionStaff weTaskFissionStaff) { @@ -58,7 +58,7 @@ public class WeTaskFissionStaffController extends BaseController { * 获取裂变任务员工列详细信息 */ @ApiOperation(value = "获取裂变任务员工列详细信息",httpMethod = "GET") - @PreAuthorize("@ss.hasPermi('wecom:staff:query')") + // @PreAuthorize("@ss.hasPermi('wecom:staff:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(weTaskFissionStaffService.selectWeTaskFissionStaffById(id)); @@ -68,7 +68,7 @@ public class WeTaskFissionStaffController extends BaseController { * 新增裂变任务员工列 */ @ApiOperation(value = "新增裂变任务员工列",httpMethod = "POST") - @PreAuthorize("@ss.hasPermi('wecom:staff:add')") + // @PreAuthorize("@ss.hasPermi('wecom:staff:add')") @Log(title = "裂变任务员工列", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody WeTaskFissionStaff weTaskFissionStaff) { @@ -79,7 +79,7 @@ public class WeTaskFissionStaffController extends BaseController { * 修改裂变任务员工列 */ @ApiOperation(value = "修改裂变任务员工列",httpMethod = "PUT") - @PreAuthorize("@ss.hasPermi('wecom:staff:edit')") + // @PreAuthorize("@ss.hasPermi('wecom:staff:edit')") @Log(title = "裂变任务员工列", businessType = BusinessType.UPDATE) @PutMapping("/edit") public AjaxResult edit(@RequestBody WeTaskFissionStaff weTaskFissionStaff) { @@ -90,7 +90,7 @@ public class WeTaskFissionStaffController extends BaseController { * 删除裂变任务员工列 */ @ApiOperation(value = "删除裂变任务员工列",httpMethod = "DELETE") - @PreAuthorize("@ss.hasPermi('wecom:staff:remove')") + // @PreAuthorize("@ss.hasPermi('wecom:staff:remove')") @Log(title = "裂变任务员工列", businessType = BusinessType.DELETE) @DeleteMapping("/delete/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { 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 515dc79a2aa8b4b44b7dbe5dd7fba6ff22490412..543e526d90c7b77f145b72e80d315c986eeb5ec0 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 @@ -41,7 +41,7 @@ public class WeUserController extends BaseController { /** * 查询通讯录相关客户列表 */ - @PreAuthorize("@ss.hasPermi('contacts:organization:query')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:query')") @GetMapping("/list") @ApiOperation("获取通讯录人员列表") public TableDataInfo list(WeUser weUser) @@ -57,7 +57,7 @@ public class WeUserController extends BaseController { /** * 获取通讯录相关客户详细信息 */ - @PreAuthorize("@ss.hasPermi('contacts:organization:view')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:view')") @GetMapping(value = "/{userId}") public AjaxResult getInfo(@PathVariable("userId") String userId) { @@ -67,7 +67,7 @@ public class WeUserController extends BaseController { /** * 新增通讯录相关客户 */ - @PreAuthorize("@ss.hasPermi('contacts:organization:addMember')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:addMember')") @Log(title = "通讯录相关客户", businessType = BusinessType.INSERT) @PostMapping @ApiOperation("新增通讯录客户") @@ -80,7 +80,7 @@ public class WeUserController extends BaseController { /** * 修改通讯录相关客户 */ - @PreAuthorize("@ss.hasPermi('contacts:organization:edit')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:edit')") @Log(title = "更新通讯录客户", businessType = BusinessType.UPDATE) @PutMapping @ApiOperation("更新通讯录客户") @@ -96,7 +96,7 @@ public class WeUserController extends BaseController { * @param weUser * @return */ - @PreAuthorize("@ss.hasPermi('contacts:organization:forbidden')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:forbidden')") @Log(title = "启用禁用用户", businessType = BusinessType.UPDATE) @PutMapping("/startOrStop") @ApiOperation("是否启用(1表示启用成员,0表示禁用成员)") @@ -113,7 +113,7 @@ public class WeUserController extends BaseController { * @param weLeaveUserVo * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:dimission:filter')") + // @PreAuthorize("@ss.hasPermi('customerManage:dimission:filter')") @GetMapping({"/leaveUserAllocateList"}) public TableDataInfo leaveUserAllocateList(WeLeaveUserVo weLeaveUserVo) { startPage(); @@ -129,7 +129,7 @@ public class WeUserController extends BaseController { * @param weLeaveUserVo * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:dimission:query')") + // @PreAuthorize("@ss.hasPermi('customerManage:dimission:query')") @GetMapping({"/leaveUserNoAllocateList"}) public TableDataInfo leaveUserNoAllocateList(WeLeaveUserVo weLeaveUserVo) { startPage(); @@ -145,7 +145,7 @@ public class WeUserController extends BaseController { * @param weLeaveUserInfoAllocateVo * @return */ - @PreAuthorize("@ss.hasPermi('customerManage:dimission:allocate')") + // @PreAuthorize("@ss.hasPermi('customerManage:dimission:allocate')") @PutMapping({"/allocateLeaveUserAboutData"}) public AjaxResult allocateLeaveUserAboutData(@RequestBody WeLeaveUserInfoAllocateVo weLeaveUserInfoAllocateVo) { @@ -159,7 +159,7 @@ public class WeUserController extends BaseController { * 同步成员 * @return */ - @PreAuthorize("@ss.hasPermi('contacts:organization:sync')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:sync')") @GetMapping({"/synchWeUser"}) public AjaxResult synchWeUser(){ @@ -174,7 +174,7 @@ public class WeUserController extends BaseController { * 删除用户 * @return */ - @PreAuthorize("@ss.hasPermi('contacts:organization:removeMember')") + // @PreAuthorize("@ss.hasPermi('contacts:organization:removeMember')") @DeleteMapping({"/{ids}"}) public AjaxResult deleteUser(@PathVariable String[] ids){ @@ -191,7 +191,7 @@ public class WeUserController extends BaseController { * @param weAllocateCustomersVo * @return */ - @PreAuthorize("@ss.hasPermi('wecom:user:getAllocateCustomers')") + // @PreAuthorize("@ss.hasPermi('wecom:user:getAllocateCustomers')") @GetMapping({"/getAllocateCustomers"}) public TableDataInfo getAllocateCustomers(WeAllocateCustomersVo weAllocateCustomersVo){ startPage(); @@ -206,7 +206,7 @@ public class WeUserController extends BaseController { * @param weAllocateGroupsVo * @return */ - @PreAuthorize("@ss.hasPermi('wecom:user:getAllocateGroups')") + // @PreAuthorize("@ss.hasPermi('wecom:user:getAllocateGroups')") @GetMapping({"/getAllocateGroups"}) public TableDataInfo getAllocateGroups(WeAllocateGroupsVo weAllocateGroupsVo){ startPage(); diff --git a/linkwe-admin/src/main/java/com/linkwechat/web/core/config/ResponseAdvice.java b/linkwe-admin/src/main/java/com/linkwechat/web/core/config/ResponseAdvice.java new file mode 100644 index 0000000000000000000000000000000000000000..a7bc8432011ddff71c3f92140d01d76abd090cc4 --- /dev/null +++ b/linkwe-admin/src/main/java/com/linkwechat/web/core/config/ResponseAdvice.java @@ -0,0 +1,32 @@ +package com.linkwechat.web.core.config; + +import com.linkwechat.common.core.domain.AjaxResult; +import lombok.extern.slf4j.Slf4j; +import org.springframework.core.MethodParameter; +import org.springframework.http.MediaType; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; + +import java.util.Objects; + +@RestControllerAdvice(basePackages = "com.linkwechat") +@Slf4j +public class ResponseAdvice implements ResponseBodyAdvice { + @Override + public boolean supports(MethodParameter methodParameter, Class aClass) { + return true; + } + + @Override + public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { + if (Objects.isNull(o)) { + return AjaxResult.success().build(); + } + if (o instanceof AjaxResult) { + return ((AjaxResult) o).build(); + } + return o; + } +} \ No newline at end of file diff --git a/linkwe-common/pom.xml b/linkwe-common/pom.xml index 75b1110095434a5bd010675d12e4bce461b2149d..8fc65e25c9fb2e3e0cb46682aec2814444a02b54 100644 --- a/linkwe-common/pom.xml +++ b/linkwe-common/pom.xml @@ -138,8 +138,8 @@ com.dtflys.forest - spring-boot-starter-forest - 1.5.0-RC1 + forest-spring-boot-starter + 1.5.0-RC7 @@ -226,17 +226,17 @@ org.elasticsearch.client elasticsearch-rest-high-level-client - 7.6.0 + 7.6.2 org.elasticsearch.client elasticsearch-rest-client - 7.6.0 + 7.6.2 org.elasticsearch elasticsearch - 7.6.0 + 7.6.2 com.qcloud 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 75f3a0232cd120342469ea2d4e037ff568c4360e..9ab793bf7adb8a1a1fc43a245164c8271e0a6707 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 @@ -1,6 +1,8 @@ package com.linkwechat.common.constant; +import lombok.Getter; + import java.util.HashMap; import java.util.Map; @@ -48,7 +50,6 @@ public class WeConstans { public static final String WE_EMPLE_CODE_KEY = "we_emple_code_key"; - /** * 企业微信接口返回成功code */ @@ -330,8 +331,8 @@ public class WeConstans { } - public static enum sendMessageStatusEnum { - + @Getter + public enum sendMessageStatusEnum { NOT_SEND("0", "未发送"), SEND("1", "已发送"), NOT_FRIEND_SEND("2", "因客户不是好友导致发送失败"), @@ -348,26 +349,9 @@ public class WeConstans { * @param desc */ sendMessageStatusEnum(String status, String desc) { - this.setStatus(status); - this.setDesc(desc); - } - - public String getStatus() { - return status; - } - - public void setStatus(String key) { this.status = status; - } - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { this.desc = desc; } - } @@ -387,7 +371,7 @@ public class WeConstans { */ public static final String THIRD_APP_PARAM_TIP = "agentId"; - public static final String WECUSTOMERS_KEY="weCustomer"; + public static final String WECUSTOMERS_KEY = "weCustomer"; /** * 发给客户 @@ -397,7 +381,7 @@ public class WeConstans { /** * 发给客户群 */ - public static final String SEND_MESSAGE_GROUP="1"; + public static final String SEND_MESSAGE_GROUP = "1"; /** * 消息范围 1 指定客户 @@ -407,6 +391,6 @@ public class WeConstans { /** * 消息范围 1 指定客户 */ - public static final String SEND_MESSAGE_CUSTOMER_PART="1"; + public static final String SEND_MESSAGE_CUSTOMER_PART = "1"; } diff --git a/linkwe-common/src/main/java/com/linkwechat/common/core/controller/BaseController.java b/linkwe-common/src/main/java/com/linkwechat/common/core/controller/BaseController.java index eb2416b6ba91265dc2c7631727bd3a288ed6d650..ca82149e5cea520ec53b5a004619dc8443ce9571 100644 --- a/linkwe-common/src/main/java/com/linkwechat/common/core/controller/BaseController.java +++ b/linkwe-common/src/main/java/com/linkwechat/common/core/controller/BaseController.java @@ -64,7 +64,7 @@ public class BaseController * 响应请求分页数据 */ @SuppressWarnings({ "rawtypes", "unchecked" }) - protected TableDataInfo getDataTable(List list) + protected TableDataInfo getDataTable(List list) { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); @@ -78,7 +78,7 @@ public class BaseController * 响应请求分页数据 */ @SuppressWarnings({ "rawtypes", "unchecked" }) - protected TableDataInfo getDataTable(PageInfo pageInfo) + protected TableDataInfo getDataTable(PageInfo pageInfo) { TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); diff --git a/linkwe-common/src/main/java/com/linkwechat/common/core/domain/AjaxResult.java b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/AjaxResult.java index 73af9928320bc56b3e75762bdbfcf36f85a35610..9c3e0224ca37d45b406707ad85c578e6719e0e3a 100644 --- a/linkwe-common/src/main/java/com/linkwechat/common/core/domain/AjaxResult.java +++ b/linkwe-common/src/main/java/com/linkwechat/common/core/domain/AjaxResult.java @@ -1,149 +1,177 @@ package com.linkwechat.common.core.domain; -import java.util.HashMap; - -import com.linkwechat.common.utils.StringUtils; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.linkwechat.common.constant.HttpStatus; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Optional; /** * 操作消息提醒 - * + * * @author ruoyi */ -public class AjaxResult extends HashMap -{ - private static final long serialVersionUID = 1L; +@ApiModel +@Data +public class AjaxResult implements Serializable { + + private static final long serialVersionUID = 7337293201809451832L; + + @JsonIgnore + private HashMap map; - /** 状态码 */ + /** + * 状态码 + */ public static final String CODE_TAG = "code"; - /** 返回内容 */ + @ApiModelProperty("状态码") + private int code; + + /** + * 返回内容 + */ public static final String MSG_TAG = "msg"; - /** 数据对象 */ + @ApiModelProperty("返回内容") + private String msg; + + /** + * 数据对象 + */ public static final String DATA_TAG = "data"; + @ApiModelProperty("数据对象") + private T data; + /** * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。 */ - public AjaxResult() - { + public AjaxResult() { + this.map = new HashMap<>(); } /** * 初始化一个新创建的 AjaxResult 对象 - * + * * @param code 状态码 - * @param msg 返回内容 + * @param msg 返回内容 */ - public AjaxResult(int code, String msg) - { - super.put(CODE_TAG, code); - super.put(MSG_TAG, msg); + public AjaxResult(int code, String msg) { + this(); + this.code = code; + this.msg = msg; } /** * 初始化一个新创建的 AjaxResult 对象 - * + * * @param code 状态码 - * @param msg 返回内容 + * @param msg 返回内容 * @param data 数据对象 */ - public AjaxResult(int code, String msg, Object data) - { - super.put(CODE_TAG, code); - super.put(MSG_TAG, msg); - if (StringUtils.isNotNull(data)) - { - super.put(DATA_TAG, data); - } + public AjaxResult(int code, String msg, T data) { + this(); + this.code = code; + this.msg = msg; + this.data = data; } /** * 返回成功消息 - * + * * @return 成功消息 */ - public static AjaxResult success() - { + public static AjaxResult success() { return AjaxResult.success("操作成功"); } /** * 返回成功数据 - * + * * @return 成功消息 */ - public static AjaxResult success(Object data) - { + public static AjaxResult success(T data) { return AjaxResult.success("操作成功", data); } /** * 返回成功消息 - * + * * @param msg 返回内容 * @return 成功消息 */ - public static AjaxResult success(String msg) - { + public static AjaxResult success(String msg) { return AjaxResult.success(msg, null); } /** * 返回成功消息 - * - * @param msg 返回内容 + * + * @param msg 返回内容 * @param data 数据对象 * @return 成功消息 */ - public static AjaxResult success(String msg, Object data) - { - return new AjaxResult(HttpStatus.SUCCESS, msg, data); + public static AjaxResult success(String msg, T data) { + return (AjaxResult) new AjaxResult(HttpStatus.SUCCESS, msg, data); } /** * 返回错误消息 - * + * * @return */ - public static AjaxResult error() - { + public static AjaxResult error() { return AjaxResult.error("操作失败"); } /** * 返回错误消息 - * + * * @param msg 返回内容 * @return 警告消息 */ - public static AjaxResult error(String msg) - { + public static AjaxResult error(String msg) { return AjaxResult.error(msg, null); } /** * 返回错误消息 - * - * @param msg 返回内容 + * + * @param msg 返回内容 * @param data 数据对象 * @return 警告消息 */ - public static AjaxResult error(String msg, Object data) - { + public static AjaxResult error(String msg, Object data) { return new AjaxResult(HttpStatus.ERROR, msg, data); } /** * 返回错误消息 - * + * * @param code 状态码 - * @param msg 返回内容 + * @param msg 返回内容 * @return 警告消息 */ - public static AjaxResult error(int code, String msg) - { + public static AjaxResult error(int code, String msg) { return new AjaxResult(code, msg, null); } + + public void put(String key, Object value) { + this.map.put(key, value); + } + + public JSONObject build() { + JSONObject json = new JSONObject(); + json.put("code", getCode()); + json.put("msg", getMsg()); + json.put("data", getData()); + Optional.ofNullable(getMap()).ifPresent(m -> m.forEach(json::put)); + return json; + } } 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 12a14cff82eedae15f66e38e6d94c76c8a8b9622..f339d9aa3e5717e78aaa8167c6eaaf0472e70278 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 @@ -1,5 +1,6 @@ package com.linkwechat.framework.config; +import com.linkwechat.framework.security.filter.JwtAuthenticationTokenFilter; import com.linkwechat.framework.security.handle.AuthenticationEntryPointImpl; import com.linkwechat.framework.security.handle.LogoutSuccessHandlerImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -16,22 +17,20 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.logout.LogoutFilter; import org.springframework.web.filter.CorsFilter; -import com.linkwechat.framework.security.filter.JwtAuthenticationTokenFilter; /** * spring security配置 - * + * * @author ruoyi */ @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter -{ +public class SecurityConfig extends WebSecurityConfigurerAdapter { /** * 自定义用户认证逻辑 */ @Autowired private UserDetailsService userDetailsService; - + /** * 认证失败处理类 */ @@ -55,7 +54,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter */ @Autowired private CorsFilter corsFilter; - + /** * 解决 无法直接注入 AuthenticationManager * @@ -64,8 +63,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter */ @Bean @Override - public AuthenticationManager authenticationManagerBean() throws Exception - { + public AuthenticationManager authenticationManagerBean() throws Exception { return super.authenticationManagerBean(); } @@ -85,8 +83,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * authenticated | 用户登录后可访问 */ @Override - protected void configure(HttpSecurity httpSecurity) throws Exception - { + protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity // CSRF禁用,因为不使用session .csrf().disable() @@ -97,7 +94,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/captchaImage","/findWxQrLoginInfo","/wxQrLogin").anonymous() + .antMatchers("/login", "/captchaImage", "/findWxQrLoginInfo", "/wxQrLogin").anonymous() .antMatchers( HttpMethod.GET, "/*.html", @@ -124,10 +121,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .antMatchers("/wecom/ticket/**").anonymous() .antMatchers("/wecom/user/getUserInfo").anonymous() - // .antMatchers("/common/uploadFile2Cos").anonymous() + // .antMatchers("/common/uploadFile2Cos").anonymous() .antMatchers("/wecom/material/temporaryMaterialMediaId").anonymous() .antMatchers("/wecom/portrait/**").anonymous() - // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() @@ -140,13 +136,12 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); } - + /** * 强散列哈希加密实现 */ @Bean - public BCryptPasswordEncoder bCryptPasswordEncoder() - { + public BCryptPasswordEncoder bCryptPasswordEncoder() { return new BCryptPasswordEncoder(); } @@ -154,8 +149,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * 身份认证接口 */ @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception - { + protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); } } 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 7f2a86606492cb08cb8d6fd5a74f1f3026385e91..4cd7a0f54c9251226e29b8340eb60704bfc3ed15 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 @@ -12,6 +12,8 @@ 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; @@ -27,6 +29,7 @@ import javax.validation.constraints.NotBlank; * @author ruoyi * @date 2020-09-13 */ +@ApiModel @Data @Builder @AllArgsConstructor @@ -40,42 +43,53 @@ public class WeCustomer extends BaseEntity /** 外部联系人的userid */ @TableId @NotBlank(message = "外部联系人的id不可为空") + @ApiModelProperty("外部联系人的userid") private String externalUserid; /** 外部联系人名称 */ @Excel(name = "客户") + @ApiModelProperty("外部联系人名称") private String name; /** 外部联系人头像 */ + @ApiModelProperty("外部联系人头像") private String avatar; /** 外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户 */ + @ApiModelProperty("外部联系人的类型,1表示该外部联系人是微信用户,2表示该外部联系人是企业微信用户") @Excel(name = "客户类型", readConverterExp = "1=微信,2=企业微信") private Integer type; /** 外部联系人性别 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; /** 是否开启会话存档 0:关闭 1:开启 */ + @ApiModelProperty("是否开启会话存档 0:关闭 1:开启") private Integer isOpenChat; /** 添加人员 */ diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionCompleteRecord.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionCompleteRecord.java index 628a40472993c6fc2d9d015cde48cea3b2a7dad3..95c6da3b4230627c2e48f48cfae8dd3bddc5a5ce 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionCompleteRecord.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionCompleteRecord.java @@ -1,13 +1,15 @@ package com.linkwechat.wecom.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import com.linkwechat.common.annotation.Excel; -import com.linkwechat.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.util.Date; + /** * 裂变任务完成记录对象 we_task_fission_complete_record * @@ -16,7 +18,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; */ @ApiModel @Data -public class WeTaskFissionCompleteRecord extends BaseEntity { +public class WeTaskFissionCompleteRecord { private static final long serialVersionUID = -9170275723334248435L; /** * 主键 @@ -51,6 +53,13 @@ public class WeTaskFissionCompleteRecord extends BaseEntity { @ApiModelProperty("裂变客户姓名") private String customerName; + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("创建时间") + private Date createTime = new Date(); + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -59,6 +68,7 @@ public class WeTaskFissionCompleteRecord extends BaseEntity { .append("fissionRecordId", getFissionRecordId()) .append("customerId", getCustomerId()) .append("customerName", getCustomerName()) + .append("createTime", getCreateTime()) .toString(); } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionRecord.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionRecord.java index 7934ca334865edfd67016ae68e858914ce645665..7aa3d782d34c5ed23b3374a995a403038490c39b 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionRecord.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/WeTaskFissionRecord.java @@ -1,7 +1,7 @@ package com.linkwechat.wecom.domain; +import com.fasterxml.jackson.annotation.JsonFormat; import com.linkwechat.common.annotation.Excel; -import com.linkwechat.common.core.domain.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; @@ -11,6 +11,8 @@ import lombok.NoArgsConstructor; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.util.Date; + /** * 裂变任务记录对象 we_task_fission_record * @@ -22,7 +24,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; @Builder @AllArgsConstructor @NoArgsConstructor -public class WeTaskFissionRecord extends BaseEntity { +public class WeTaskFissionRecord { private static final long serialVersionUID = 8770538385789110599L; /** * 主键 @@ -57,8 +59,22 @@ public class WeTaskFissionRecord extends BaseEntity { @ApiModelProperty("裂变客户数量") private Long fissNum; - @ApiModelProperty("生成二维码配置id") - private String configId; + @ApiModelProperty("二维码链接") + private String qrCode; + + @ApiModelProperty("海报链接") + private String poster; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private Date createTime = new Date(); + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "完成时间") + private Date completeTime; @Override public String toString() { @@ -68,7 +84,10 @@ public class WeTaskFissionRecord extends BaseEntity { .append("customerId", getCustomerId()) .append("customerName", getCustomerName()) .append("fissNum", getFissNum()) - .append("configId", getConfigId()) + .append("qrCode", getQrCode()) + .append("poster", getPoster()) + .append("createTime", getCreateTime()) + .append("completeTime", getCompleteTime()) .toString(); } } 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 f59a77293d058d47ab9bd4f3ab0902e4b43efb90..832ec1d1b2982df04375a66fecda53bbd2b55343 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 @@ -1,5 +1,7 @@ package com.linkwechat.wecom.domain.dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -7,10 +9,18 @@ import lombok.Data; * @version 1.0 * @date 2021/1/27 16:42 */ +@ApiModel @Data public class WeTaskFissionPosterDTO { - private String userId; + @ApiModelProperty("客户id") + private String eid; + + @ApiModelProperty("任务id") private Long taskFissionId; + + @ApiModelProperty("裂变目标id") private String fissionTargetId; + + @ApiModelProperty("海报id") private Long posterId; } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/query/WeTaskFissionStatisticQO.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/query/WeTaskFissionStatisticQO.java index 4e3c675fd5d9a91a526021636d5640813b9e1ca4..126127ca27c32885aa72adc35ff5535f1fdda01e 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/query/WeTaskFissionStatisticQO.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/query/WeTaskFissionStatisticQO.java @@ -1,5 +1,7 @@ package com.linkwechat.wecom.domain.query; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -8,9 +10,16 @@ import lombok.Data; * @date 2021/3/8 17:55 */ @Data +@ApiModel(value = "统计信息查询") public class WeTaskFissionStatisticQO { - private Boolean seven; + @ApiModelProperty(value = "任务id", required = true) + private Long taskFissionId; + @ApiModelProperty(value = "查询最近7天数据,与thirty属性互斥,不使用请设置为false") + private Boolean seven = true; + @ApiModelProperty(value = "查询最近30天数据,与seven属性互斥,不使用请设置为false") private Boolean thirty; + @ApiModelProperty(value = "开始时间") private String beginTime; + @ApiModelProperty(value = "结束时间") private String endTime; } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionDailyDataVO.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionDailyDataVO.java index 9ffd7e0c682cc471d473d47437639a69f6fa0675..efa3e03feceed90bc3ef7dbfa333e8e17f75b54d 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionDailyDataVO.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionDailyDataVO.java @@ -1,9 +1,11 @@ package com.linkwechat.wecom.domain.vo; -import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; - -import java.util.Date; +import lombok.NoArgsConstructor; /** * @author leejoker <1056650571@qq.com> @@ -11,10 +13,17 @@ import java.util.Date; * @date 2021/3/8 10:24 */ @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "每日数据") public class WeTaskFissionDailyDataVO { - @JsonFormat(pattern = "yyyy-MM-dd") - private Date day; - private Integer increase; - private Integer attend; - private Integer complete; + @ApiModelProperty(value = "日期") + private String day; + @ApiModelProperty(value = "日新增客户") + private Integer increase = 0; + @ApiModelProperty(value = "日参与活动客户") + private Integer attend = 0; + @ApiModelProperty(value = "日完成任务客户") + private Integer complete = 0; } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionProgressVO.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionProgressVO.java new file mode 100644 index 0000000000000000000000000000000000000000..9e5743459034ee8cf198a2172bf6afaefcf48216 --- /dev/null +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionProgressVO.java @@ -0,0 +1,24 @@ +package com.linkwechat.wecom.domain.vo; + +import com.linkwechat.wecom.domain.WeCustomer; +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +/** + * @author leejoker <1056650571@qq.com> + * @version 1.0 + * @date 2021/3/20 13:12 + * + *

+ * 客户任务进度和邀请列表 + *

+ */ +@Data +@Builder +public class WeTaskFissionProgressVO { + private Long total; + private Long completed; + private List customers; +} diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionRewardVo.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionRewardVo.java new file mode 100644 index 0000000000000000000000000000000000000000..4a9b633e9ce815f3d15be693a8dd1b0fe842324b --- /dev/null +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionRewardVo.java @@ -0,0 +1,39 @@ +package com.linkwechat.wecom.domain.vo; + +import com.linkwechat.common.annotation.Excel; +import com.linkwechat.common.core.domain.BaseEntity; +import com.linkwechat.wecom.domain.WeTaskFissionReward; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 任务裂变奖励对象 we_task_fission_reward + * + * @author leejoker + * @date 2021-01-20 + */ +@ApiModel +@Data +public class WeTaskFissionRewardVo extends BaseEntity { + @ApiModelProperty("奖励对象") + private WeTaskFissionReward weTaskFissionReward; + + /** + * 兑奖链接 + */ + @ApiModelProperty(value = "兑奖链接") + private String rewardUrl; + + /** + * 兑奖链接图片 + */ + @ApiModelProperty(value = "兑奖链接图片") + private String rewardImageUrl; + + /** + * 兑奖规则 + */ + @ApiModelProperty(value = "兑奖规则") + private String rewardRule; +} diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionStatisticVO.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionStatisticVO.java index 259b56e54a8da05dead0bdf386378c8b8c3f6cdb..6f1bd185c6d073a624540d71f77961d6ee6efd3b 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionStatisticVO.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionStatisticVO.java @@ -13,7 +13,7 @@ import java.util.List; */ @Data public class WeTaskFissionStatisticVO { - private Long id; + private Long taskFissionId; private String taskName; @JsonFormat(pattern = "yyyy-MM-dd") private Date startTime; diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionTotalProgressVO.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionTotalProgressVO.java new file mode 100644 index 0000000000000000000000000000000000000000..2b9de7704ae29799ae3d267095d199ffe3866b74 --- /dev/null +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/domain/vo/WeTaskFissionTotalProgressVO.java @@ -0,0 +1,15 @@ +package com.linkwechat.wecom.domain.vo; + +import com.linkwechat.wecom.domain.WeCustomer; +import lombok.Data; + +/** + * @author leejoker <1056650571@qq.com> + * @version 1.0 + * @date 2021/3/20 13:50 + */ +@Data +public class WeTaskFissionTotalProgressVO { + private WeCustomer customer; + private WeTaskFissionProgressVO progress; +} 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 630ecaa0bbffe0c2e123312a30c84af123ba51a9..a9d0828e8fa1faa20a1658a2bffef62e4d03834b 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 @@ -2,6 +2,7 @@ package com.linkwechat.wecom.factory.impl.customer; 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.utils.StringUtils; import com.linkwechat.wecom.domain.*; @@ -54,27 +55,27 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { weCustomerService.getCustomersInfoAndSynchWeCustomer(message.getExternalUserId()); } if (message.getState() != null && message.getWelcomeCode() != null) { - if (isNumeric(message.getState())) { - taskFissionRecordHandle(message.getState(), message.getWelcomeCode(), message.getExternalUserId()); + if (isFission(message.getState())) { + taskFissionRecordHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId()); + }else { + empleCodeHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId()); } - empleCodeHandle(message.getState(), message.getWelcomeCode(), message.getUserId(), message.getExternalUserId()); } } //裂变任务处理 - private void taskFissionRecordHandle(String state, String wecomCode, String externalUserId) { + private void taskFissionRecordHandle(String state, String wecomCode, String userId, String externalUserId) { //查询裂变客户任务记录 - WeCustomer weCustomer = weCustomerService.selectWeCustomerById(externalUserId); - WeTaskFissionRecord weTaskFissionRecord = weTaskFissionRecordService - .selectWeTaskFissionRecordByIdAndCustomerId(Long.valueOf(state),weCustomer.getUnionid()); + String fissionRecordId = state.substring(WeConstans.FISSION_PREFIX.length()); + WeTaskFissionRecord weTaskFissionRecord = weTaskFissionRecordService.selectWeTaskFissionRecordById(Long.valueOf(fissionRecordId)); if (weTaskFissionRecord != null) { - Long fissNum = weTaskFissionRecord.getFissNum() + 1; - weTaskFissionRecord.setFissNum(fissNum); - weTaskFissionRecordService.updateWeTaskFissionRecord(weTaskFissionRecord); - //查询裂变任务详情 WeTaskFission weTaskFission = weTaskFissionService .selectWeTaskFissionById(weTaskFissionRecord.getTaskFissionId()); + + Long fissNum = weTaskFissionRecord.getFissNum() + 1; + weTaskFissionRecord.setFissNum(fissNum); + if (weTaskFission != null){ //发送欢迎语 String welcomeMsg = weTaskFission.getWelcomeMsg(); @@ -85,15 +86,18 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { //裂变数量完成任务处理,消费兑换码 if (fissNum >= weTaskFission.getFissNum()){ + weTaskFissionRecord.setCompleteTime(new Date()); WeTaskFissionReward reward = new WeTaskFissionReward(); reward.setTaskFissionId(weTaskFissionRecord.getTaskFissionId()); reward.setRewardCodeStatus(0); List weTaskFissionRewardList = weTaskFissionRewardService.selectWeTaskFissionRewardList(reward); WeTaskFissionReward fissionReward = weTaskFissionRewardList.get(0); - fissionReward.setRewardUser(weCustomer.getName()); - fissionReward.setRewardUserId(weCustomer.getExternalUserid()); + fissionReward.setRewardUser(weTaskFissionRecord.getCustomerName()); + fissionReward.setRewardUserId(weTaskFissionRecord.getCustomerId()); weTaskFissionRewardService.updateWeTaskFissionReward(fissionReward); } + + weTaskFissionRecordService.updateWeTaskFissionRecord(weTaskFissionRecord); } } @@ -156,14 +160,11 @@ public class WeCallBackAddExternalContactImpl extends WeEventStrategy { } } - private boolean isNumeric(String str) { - try { - new BigDecimal(str); - } catch (Exception e) { - //异常 说明包含非数字。 - return false; + private boolean isFission(String str) { + if (str.indexOf(WeConstans.FISSION_PREFIX) != -1){ + return true; } - return true; + return false; } 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 998aa8602b13841fa7eec41543e7451a9a435631..fd17fc89fcc476b4fdaa02592024ee586065de61 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 @@ -41,14 +41,6 @@ public interface WeKeywordGroupTaskMapper extends BaseMapper */ WeKeywordGroupTaskVo getTaskById(Long taskId); - /** - * 根据id列表批量删除任务 - * - * @param ids id列表 - * @return 删除行数 - */ - int batchRemoveTaskByIds(Long[] ids); - /** * 根据任务id获取对应所有的群聊名称 * diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionCompleteRecordMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionCompleteRecordMapper.java index 91d87aca51dceaadb499251e125a6d3f5cd724d9..9abe4dc5bc1cbc9d3c8568f18c00032fe0f1b8e6 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionCompleteRecordMapper.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionCompleteRecordMapper.java @@ -1,6 +1,8 @@ package com.linkwechat.wecom.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.linkwechat.wecom.domain.WeSensitiveActHit; import com.linkwechat.wecom.domain.WeTaskFissionCompleteRecord; import java.util.List; @@ -11,7 +13,7 @@ import java.util.List; * @author ruoyi * @date 2021-01-27 */ -public interface WeTaskFissionCompleteRecordMapper { +public interface WeTaskFissionCompleteRecordMapper extends BaseMapper { /** * 查询裂变任务完成记录 * diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionRewardMapper.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionRewardMapper.java index 1d134121b3d6c63f57059af8595c1e7500c1efb4..a647c634b4bfeb08361f4d1a6de1e0fe3e865b5a 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionRewardMapper.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/mapper/WeTaskFissionRewardMapper.java @@ -1,5 +1,6 @@ package com.linkwechat.wecom.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.linkwechat.wecom.domain.WeTaskFissionReward; import java.util.List; @@ -10,7 +11,7 @@ import java.util.List; * @author leejoker * @date 2021-01-20 */ -public interface WeTaskFissionRewardMapper { +public interface WeTaskFissionRewardMapper extends BaseMapper { /** * 查询任务裂变奖励 * diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionCompleteRecordService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionCompleteRecordService.java index 01666395d7bd414be7061878cb03de5abdd8246f..066beea0f397c9d37468efe7a2107a8d34e6db4f 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionCompleteRecordService.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionCompleteRecordService.java @@ -1,8 +1,10 @@ package com.linkwechat.wecom.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.linkwechat.wecom.domain.WeTaskFissionCompleteRecord; +import java.util.Date; import java.util.List; /** @@ -11,7 +13,7 @@ import java.util.List; * @author ruoyi * @date 2021-01-27 */ -public interface IWeTaskFissionCompleteRecordService { +public interface IWeTaskFissionCompleteRecordService extends IService { /** * 查询裂变任务完成记录 * @@ -59,4 +61,6 @@ public interface IWeTaskFissionCompleteRecordService { * @return 结果 */ public int deleteWeTaskFissionCompleteRecordById(Long id); + + public List statisticCompleteRecords(Long taskFissionId, Date startTime, Date endTime); } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRecordService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRecordService.java index d764c3d837188e1fe83ec3fc520d5e4206fed6ee..af3055d872f3bcafe7db3033b39b85e7cc92b095 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRecordService.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRecordService.java @@ -1,7 +1,9 @@ package com.linkwechat.wecom.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.linkwechat.wecom.domain.WeTaskFissionRecord; +import java.util.Date; import java.util.List; /** @@ -10,7 +12,7 @@ import java.util.List; * @author ruoyi * @date 2021-01-27 */ -public interface IWeTaskFissionRecordService { +public interface IWeTaskFissionRecordService extends IService { /** * 查询裂变任务记录 * @@ -61,4 +63,6 @@ public interface IWeTaskFissionRecordService { public WeTaskFissionRecord selectWeTaskFissionRecordByIdAndCustomerId(Long id, String customerId); + + public List statisticRecords(Long taskFissionId, Date startTime, Date endTime); } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRewardService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRewardService.java index 91c147b356c388ef3c2ed5f85e8b900c8519ec26..73a9d54f50fc142cb07a7149ac80338fe86a4312 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRewardService.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionRewardService.java @@ -1,6 +1,7 @@ package com.linkwechat.wecom.service; import com.linkwechat.wecom.domain.WeTaskFissionReward; +import com.linkwechat.wecom.domain.vo.WeTaskFissionRewardVo; import java.util.List; @@ -58,4 +59,12 @@ public interface IWeTaskFissionRewardService { * @return 结果 */ public int deleteWeTaskFissionRewardById(Long id); + + /** + * 根据微信用户id和任务id获取任务裂变奖励详细信息 + * @param fissionId 任务id + * @param eid 客户id + * @return + */ + public WeTaskFissionRewardVo getRewardByFissionId(String fissionId, String eid); } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionService.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionService.java index 905904bd7e6dbc629187591b17f3c3dde52ad4ad..b284693178335208de3de95d08c6e4220c110207 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionService.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/IWeTaskFissionService.java @@ -1,9 +1,14 @@ package com.linkwechat.wecom.service; +import com.linkwechat.wecom.domain.WeCustomer; import com.linkwechat.wecom.domain.WeTaskFission; import com.linkwechat.wecom.domain.dto.WeChatUserDTO; import com.linkwechat.wecom.domain.dto.WeTaskFissionPosterDTO; +import com.linkwechat.wecom.domain.vo.WeTaskFissionProgressVO; +import com.linkwechat.wecom.domain.vo.WeTaskFissionStatisticVO; +import java.text.ParseException; +import java.util.Date; import java.util.List; /** @@ -27,7 +32,7 @@ public interface IWeTaskFissionService { * @param weTaskFission 任务宝 * @return 任务宝集合 */ - public List selectWeTaskFissionList(WeTaskFission weTaskFission); + public List selectWeTaskFissionList(WeTaskFission weTaskFission) throws ParseException; /** * 新增任务宝 @@ -83,4 +88,10 @@ public interface IWeTaskFissionService { * @param taskFissionRecordId */ public void completeFissionRecord(Long taskFissionId, Long taskFissionRecordId, WeChatUserDTO weChatUserDTO); + + List getCustomerListById(String unionId, String fissionId); + + WeTaskFissionStatisticVO taskFissionStatistic(Long taskFissionId, Date startTime, Date endTime); + + WeTaskFissionProgressVO getCustomerTaskProgress(WeTaskFission taskFission, String eid); } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatItemServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatItemServiceImpl.java index 58eb7e891a2af8cb968ba3bda425b81ed0f49c57..ae1296b11b99cdacae8817bcae6061162404425f 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatItemServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeChatItemServiceImpl.java @@ -21,8 +21,8 @@ import java.util.Optional; import java.util.stream.Collectors; /** - * * 聊天工具侧边栏 + * * @author kewen */ @Service @@ -39,84 +39,51 @@ public class WeChatItemServiceImpl extends ServiceImpl materialIds=new ArrayList<>(); - - - if("0".equals(chatItemDto.getCheckAll())){ - + List materialIds = new ArrayList<>(); + if ("0".equals(chatItemDto.getCheckAll())) { List weMaterials = weMaterialService.findWeMaterials(null, null, chatItemDto.getMediaType()); - - if(CollectionUtils.isNotEmpty(weMaterials)){ - - - materialIds= weMaterials.stream().map(WeMaterial::getId).collect(Collectors.toList()); - - + if (CollectionUtils.isNotEmpty(weMaterials)) { + materialIds = weMaterials.stream().map(WeMaterial::getId).collect(Collectors.toList()); } - - }else { - - materialIds= chatItemDto.getMaterialIds(); - + } else { + materialIds = chatItemDto.getMaterialIds(); } - List finalMaterialIds = materialIds; Optional.ofNullable(materialIds).ifPresent( - - s->{ - - List items=new ArrayList<>(); - - finalMaterialIds.forEach(materialId->{ - - - WeChatItem item=new WeChatItem(); + s -> { + List items = new ArrayList<>(); + finalMaterialIds.forEach(materialId -> { + WeChatItem item = new WeChatItem(); item.setItemId(SnowFlakeUtil.nextId()); item.setMaterialId(materialId); item.setSideId(chatItemDto.getSideId()); items.add(item); - - }); - weChatItemMapper.dropItem(chatItemDto.getSideId()); - - weChatItemMapper.addItem(items); - + if (CollectionUtils.isNotEmpty(items)) { + weChatItemMapper.addItem(items); + } checkItemsTotal(chatItemDto, finalMaterialIds); - } ); - - return 1; } @Override - public List chatItems(Long sideId,String keyword,String mediaType,String userId) { - return weChatItemMapper.findChatItems(sideId,keyword,mediaType,userId); + public List chatItems(Long sideId, String keyword, String mediaType, String userId) { + return weChatItemMapper.findChatItems(sideId, keyword, mediaType, userId); } /** * 更新该次选择的素材数 * - * @param chatItemDto 侧边栏信息 + * @param chatItemDto 侧边栏信息 * @param finalMaterialIds 素材id列表 */ private void checkItemsTotal(WeChatItemDto chatItemDto, List finalMaterialIds) { - - - WeChatSide side=new WeChatSide(); + WeChatSide side = new WeChatSide(); side.setSideId(chatItemDto.getSideId()); side.setTotal(finalMaterialIds.size()); weChatSideMapper.updateWeChatSideById(side); - - } - - - } 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 1b9ffe440b4019abcb89a1c622fd627e5492366a..bb965325591643ff72ba38efa1bc67c4cdf409ce 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 @@ -2,6 +2,7 @@ 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.WeKeywordGroupTaskKeyword; import com.linkwechat.wecom.domain.WeKeywordGroupTask; import com.linkwechat.wecom.domain.WeGroupCode; @@ -96,9 +97,13 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl weKeywordGroupTaskKeywordList = Arrays.stream(keywords) - .map(word -> new WeKeywordGroupTaskKeyword(task.getTaskId(), word)).collect(Collectors.toList()); - taskKwMapper.batchBindsTaskKeyword(weKeywordGroupTaskKeywordList); + List taskKeywordList = Arrays + .stream(keywords) + .map(word -> new WeKeywordGroupTaskKeyword(task.getTaskId(), word)) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(taskKeywordList)) { + taskKwMapper.batchBindsTaskKeyword(taskKeywordList); + } return 1; } return 0; @@ -120,9 +125,13 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl weKeywordGroupTaskKeywordList = Arrays.stream(keywords) - .map(word -> new WeKeywordGroupTaskKeyword(task.getTaskId(), word)).collect(Collectors.toList()); - taskKwMapper.batchBindsTaskKeyword(weKeywordGroupTaskKeywordList); + List taskKeywordList = Arrays + .stream(keywords) + .map(word -> new WeKeywordGroupTaskKeyword(task.getTaskId(), word)) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(taskKeywordList)) { + taskKwMapper.batchBindsTaskKeyword(taskKeywordList); + } return 1; } return 0; @@ -141,7 +150,9 @@ public class WeCommunityKeywordToGroupServiceImpl extends ServiceImpl taskKwQueryWrapper = new QueryWrapper<>(); taskKwQueryWrapper.in("task_id", Arrays.asList(ids)); taskKwMapper.delete(taskKwQueryWrapper); - return taskMapper.batchRemoveTaskByIds(ids); + QueryWrapper taskQueryWrapper = new QueryWrapper<>(); + taskKwQueryWrapper.in("task_id", Arrays.asList(ids)); + return taskMapper.delete(taskQueryWrapper); } /** diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerMessagePushServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerMessagePushServiceImpl.java index 1783496b7b4e7ee9ea3739c97a7c642d6ff355c3..8d5c31c38e35e31d30e051f07671e0ef55f689ce 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerMessagePushServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerMessagePushServiceImpl.java @@ -1,25 +1,22 @@ package com.linkwechat.wecom.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; import com.linkwechat.common.constant.WeConstans; import com.linkwechat.common.core.redis.RedisCache; -import com.linkwechat.common.enums.ChatType; import com.linkwechat.common.exception.wecom.WeComException; import com.linkwechat.common.utils.DateUtils; -import com.linkwechat.common.utils.SecurityUtils; import com.linkwechat.common.utils.SnowFlakeUtil; -import com.linkwechat.common.utils.StringUtils; import com.linkwechat.wecom.client.WeCustomerMessagePushClient; -import com.linkwechat.wecom.domain.*; -import com.linkwechat.wecom.domain.dto.message.*; +import com.linkwechat.wecom.domain.WeCustomer; +import com.linkwechat.wecom.domain.WeCustomerMessageTimeTask; +import com.linkwechat.wecom.domain.WeGroup; +import com.linkwechat.wecom.domain.dto.message.CustomerMessagePushDto; import com.linkwechat.wecom.domain.vo.CustomerMessagePushVo; import com.linkwechat.wecom.mapper.WeCustomerMessageTimeTaskMapper; import com.linkwechat.wecom.service.*; -import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -27,8 +24,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; -import java.util.*; -import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; /** * @description: 群发消息服务类 @@ -85,41 +83,40 @@ public class WeCustomerMessagePushServiceImpl implements IWeCustomerMessagePushS // 0 发给客户 if (customerMessagePushDto.getPushType().equals(WeConstans.SEND_MESSAGE_CUSTOMER)) { //查询客户信息列表 - customers = externalUserIds(customerMessagePushDto.getPushRange(), customerMessagePushDto.getStaffId() - , customerMessagePushDto.getDepartment(), customerMessagePushDto.getTag()); - if(CollectionUtils.isEmpty(customers)){ + if ("all".equals(customerMessagePushDto.getTag())) { + customers = externalUserIds(WeConstans.SEND_MESSAGE_CUSTOMER_ALL, customerMessagePushDto.getStaffId(), customerMessagePushDto.getDepartment(), customerMessagePushDto.getTag()); + } else { + customers = externalUserIds(customerMessagePushDto.getPushRange(), customerMessagePushDto.getStaffId() + , customerMessagePushDto.getDepartment(), customerMessagePushDto.getTag()); + } + if (CollectionUtils.isEmpty(customers)) { throw new WeComException("没有外部联系人"); } } // 1 发给客户群 if (customerMessagePushDto.getPushType().equals(WeConstans.SEND_MESSAGE_GROUP)) { - if (customerMessagePushDto.getStaffId() == null || customerMessagePushDto.getStaffId().equals("")) { throw new WeComException("请选择人员!"); } - - //查询群组信息列表 //通过员工id查询群列表 WeGroup weGroup = new WeGroup(); weGroup.setUserIds(customerMessagePushDto.getStaffId()); groups = weGroupService.selectWeGroupList(weGroup); - if(CollectionUtils.isEmpty(customers)){ + if (CollectionUtils.isEmpty(groups)) { throw new WeComException("没有客户群!"); } - } //保存原始数据信息表 long messageOriginalId = weCustomerMessageOriginalService.saveWeCustomerMessageOriginal(customerMessagePushDto); - long messageId = SnowFlakeUtil.nextId(); //保存映射信息 - int size = weCustomerMessgaeResultService.workerMappingCustomer(customerMessagePushDto, messageId,customers,groups); + int size = weCustomerMessgaeResultService.workerMappingCustomer(customerMessagePushDto, messageId, customers, groups); //保存微信消息 - weCustomerMessageService.saveWeCustomerMessage(messageId, messageOriginalId, customerMessagePushDto, size,customerMessagePushDto.content()); + weCustomerMessageService.saveWeCustomerMessage(messageId, messageOriginalId, customerMessagePushDto, size, customerMessagePushDto.content()); //保存分类消息信息 weCustomerSeedMessageService.saveSeedMessage(customerMessagePushDto, messageId); @@ -127,16 +124,12 @@ public class WeCustomerMessagePushServiceImpl implements IWeCustomerMessagePushS //发送群发消息 //调用微信api发送消息 if (null == customerMessagePushDto.getSettingTime() || customerMessagePushDto.getSettingTime().equals("")) { - weCustomerMessageService.sendMessgae(customerMessagePushDto, messageId,customers,groups); + weCustomerMessageService.sendMessgae(customerMessagePushDto, messageId, customers, groups); } else { - - WeCustomerMessageTimeTask timeTask=new WeCustomerMessageTimeTask(messageId, customerMessagePushDto, customers,groups - ,DateUtils.getMillionSceondsBydate(customerMessagePushDto.getSettingTime())); - + WeCustomerMessageTimeTask timeTask = new WeCustomerMessageTimeTask(messageId, customerMessagePushDto, customers, groups + , DateUtils.getMillionSceondsBydate(customerMessagePushDto.getSettingTime())); customerMessageTimeTaskMapper.saveWeCustomerMessageTimeTask(timeTask); - } - } @Override @@ -156,7 +149,15 @@ public class WeCustomerMessagePushServiceImpl implements IWeCustomerMessagePushS public List externalUserIds(String pushRange, String staffId, String department, String tag) { if (pushRange.equals(WeConstans.SEND_MESSAGE_CUSTOMER_ALL)) { //从redis中读取数据 - return redisCache.getCacheList(WeConstans.WECUSTOMERS_KEY); + List customers = redisCache.getCacheList(WeConstans.WECUSTOMERS_KEY); + if (CollectionUtils.isEmpty(customers)) { + customers = weCustomerService.selectWeCustomerList(null); + redisCache.setCacheList(WeConstans.WECUSTOMERS_KEY, customers); + } + WeCustomer weCustomer = new WeCustomer(); + weCustomer.setUserIds(staffId); + weCustomer.setDepartmentIds(department); + return weCustomerService.selectWeCustomerList(weCustomer); } else { //按条件查询客户 //通过部门id查询所有的员工 diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerServiceImpl.java index b68184f1d4e4966f1f6f359f03aa99bc6e2c979b..e4b0a2b0ba6b2bf455e913fee8bdfb7d7a776b38 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeCustomerServiceImpl.java @@ -227,18 +227,14 @@ public class WeCustomerServiceImpl extends ServiceImpl weFlowerCustomerRels = iWeFlowerCustomerRelService.list(new LambdaQueryWrapper() - .eq(WeFlowerCustomerRel::getExternalUserid, weCustomer.getExternalUserid())); + .eq(WeFlowerCustomerRel::getExternalUserid, weCustomer.getExternalUserid()) + .eq(WeFlowerCustomerRel::getUserId,userId)); if (CollectionUtil.isNotEmpty(weFlowerCustomerRels)) { List weFlowerCustomerRelIds = weFlowerCustomerRels.stream().map(WeFlowerCustomerRel::getId).collect(Collectors.toList()); - iWeFlowerCustomerTagRelService.remove( - new LambdaQueryWrapper().in(WeFlowerCustomerTagRel::getFlowerCustomerRelId, - weFlowerCustomerRelIds) - ); - - iWeFlowerCustomerRelService.removeByIds( - weFlowerCustomerRelIds - ); + iWeFlowerCustomerTagRelService.remove(new LambdaQueryWrapper() + .in(WeFlowerCustomerTagRel::getFlowerCustomerRelId, weFlowerCustomerRelIds)); + iWeFlowerCustomerRelService.removeByIds(weFlowerCustomerRelIds); } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupSopServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupSopServiceImpl.java index 33b61ac8bb73fee8600b2199778c715f676dc120..22970b8aedd22244ac07181c88c826e28bee718b 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupSopServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeGroupSopServiceImpl.java @@ -80,19 +80,21 @@ public class WeGroupSopServiceImpl extends ServiceImpl groupIdList, List materialIdList, List picList) { + public int addGroupSop(WeGroupSop weGroupSop, List groupIdList, List materialIdList, List picUrlList) { if (this.save(weGroupSop)) { Long ruleId = weGroupSop.getRuleId(); // 保存群聊及素材关联 this.saveChatAndMaterialBinds(ruleId, groupIdList, materialIdList); // 保存手动上传的图片素材 - List sopPicList = picList.stream().map(e -> new WeGroupSopPic(ruleId, e)).collect(Collectors.toList()); - sopPicMapper.batchSopPic(sopPicList); + List sopPicList = picUrlList.stream().map(picUrl -> new WeGroupSopPic(ruleId, picUrl)).collect(Collectors.toList()); + if (StringUtils.isNotEmpty(sopPicList)) { + sopPicMapper.batchSopPic(sopPicList); + } return 1; } return 0; @@ -104,12 +106,12 @@ public class WeGroupSopServiceImpl extends ServiceImpl groupIdList, List materialIdList, List picList) { + public int updateGroupSop(WeGroupSop weGroupSop, List groupIdList, List materialIdList, List picUrlList) { if (this.updateById(weGroupSop)) { Long ruleId = weGroupSop.getRuleId(); // 先删除旧数据 @@ -121,8 +123,10 @@ public class WeGroupSopServiceImpl extends ServiceImpl sopPicList = picList.stream().map(e -> new WeGroupSopPic(ruleId, e)).collect(Collectors.toList()); - sopPicMapper.batchSopPic(sopPicList); + List sopPicList = picUrlList.stream().map(picUrl -> new WeGroupSopPic(ruleId, picUrl)).collect(Collectors.toList()); + if (StringUtils.isNotEmpty(sopPicList)) { + sopPicMapper.batchSopPic(sopPicList); + } return 1; } return 0; @@ -166,7 +170,6 @@ public class WeGroupSopServiceImpl extends ServiceImpl picQueryWrapper = new QueryWrapper<>(); picQueryWrapper.eq("rule_id", ruleId); List sopPicList = sopPicMapper.selectList(picQueryWrapper); - List picList = sopPicList.stream().map(WeGroupSopPic::getPicUrl).collect(Collectors.toList()); - sopVo.setPicList(picList); + List picUrlList = sopPicList.stream().map(WeGroupSopPic::getPicUrl).collect(Collectors.toList()); + sopVo.setPicList(picUrlList); } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java index 871385294097875c7a502b841b69dbccb74ba484..778102ab5f30c943272f8fd1b995646d10b1f37f 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePosterServiceImpl.java @@ -2,13 +2,10 @@ package com.linkwechat.wecom.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.linkwechat.common.config.CosConfig; -import com.linkwechat.common.config.RuoYiConfig; import com.linkwechat.common.config.ServerConfig; import com.linkwechat.common.utils.file.FileUploadUtils; -import com.linkwechat.common.utils.file.FileUtils; import com.linkwechat.common.utils.img.ImageUtils; import com.linkwechat.common.utils.img.NetFileUtils; -import com.linkwechat.wecom.domain.WeCategory; import com.linkwechat.wecom.domain.WePoster; import com.linkwechat.wecom.domain.WePosterFont; import com.linkwechat.wecom.domain.WePosterSubassembly; @@ -17,13 +14,9 @@ import com.linkwechat.wecom.service.IWeCategoryService; import com.linkwechat.wecom.service.IWePosterFontService; import com.linkwechat.wecom.service.IWePosterService; import com.linkwechat.wecom.service.IWePosterSubassemblyService; -import org.apache.commons.fileupload.FileItem; -import org.apache.commons.fileupload.FileItemFactory; -import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; import javax.imageio.ImageIO; @@ -32,9 +25,8 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.net.NetworkInterface; -import java.util.*; import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -106,9 +98,9 @@ public class WePosterServiceImpl extends ServiceImpl i @Override public List list(Long categoryId, String name) { List fontList = this.lambdaQuery() - .eq(WePoster::getDelFlag,0) - .eq(categoryId != null,WePoster::getCategoryId,categoryId) - .like(com.linkwechat.common.utils.StringUtils.isNotBlank(name),WePoster::getTitle,name) + .eq(WePoster::getDelFlag, 0) + .eq(categoryId != null, WePoster::getCategoryId, categoryId) + .like(com.linkwechat.common.utils.StringUtils.isNotBlank(name), WePoster::getTitle, name) .orderByDesc(WePoster::getCreateTime) .list(); return fontList; @@ -122,7 +114,7 @@ public class WePosterServiceImpl extends ServiceImpl i */ @Override public String generateSimpleImg(WePoster poster) { - if(CollectionUtils.isEmpty(poster.getPosterSubassemblyList())){ + if (CollectionUtils.isEmpty(poster.getPosterSubassemblyList())) { poster.setSampleImgPath(poster.getBackgroundImgPath()); return poster.getBackgroundImgPath(); } @@ -134,24 +126,24 @@ public class WePosterServiceImpl extends ServiceImpl i } }) .filter(wePosterSubassembly -> { - if(existFontId.contains(wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle())){ + if (existFontId.contains(wePosterSubassembly.getFontId() + "_" + wePosterSubassembly.getFontSize() + "_" + wePosterSubassembly.getFontStyle())) { return false; - }else { - existFontId.add(wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle()); + } else { + existFontId.add(wePosterSubassembly.getFontId() + "_" + wePosterSubassembly.getFontSize() + "_" + wePosterSubassembly.getFontStyle()); return true; } }) .collect(Collectors.toMap(wePosterSubassembly -> { - return wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle(); - }, wePosterSubassembly -> posterFontService.getFont(wePosterSubassembly.getFontId(), wePosterSubassembly.getFontSize(),wePosterSubassembly.getFontStyle()))); - Map fileCallableMap = poster.getPosterSubassemblyList().stream().map(WePosterSubassembly::getImgPath).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toMap(s->s, NetFileUtils::getNetFile)); + return wePosterSubassembly.getFontId() + "_" + wePosterSubassembly.getFontSize() + "_" + wePosterSubassembly.getFontStyle(); + }, wePosterSubassembly -> posterFontService.getFont(wePosterSubassembly.getFontId(), wePosterSubassembly.getFontSize(), wePosterSubassembly.getFontStyle()))); + Map fileCallableMap = poster.getPosterSubassemblyList().stream().map(WePosterSubassembly::getImgPath).filter(StringUtils::isNotBlank).distinct().collect(Collectors.toMap(s -> s, NetFileUtils::getNetFile)); if (CollectionUtils.isEmpty(fileCallableMap)) { fileCallableMap = new HashMap<>(); } fileCallableMap.put(poster.getBackgroundImgPath(), NetFileUtils.getNetFile(poster.getBackgroundImgPath())); Map bufferedImageMap = fileCallableMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, stringFileCallableEntry -> { try { - return ImageUtils.copyBufferedImage(ImageIO.read(new ByteArrayInputStream(Objects.requireNonNull(NetFileUtils.getByteArrayOutputStream(stringFileCallableEntry.getValue(), false)).toByteArray())),BufferedImage.TYPE_INT_ARGB); + return ImageUtils.copyBufferedImage(ImageIO.read(new ByteArrayInputStream(Objects.requireNonNull(NetFileUtils.getByteArrayOutputStream(stringFileCallableEntry.getValue(), false)).toByteArray())), BufferedImage.TYPE_INT_ARGB); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("图片读取错误"); @@ -162,15 +154,15 @@ public class WePosterServiceImpl extends ServiceImpl i poster.setHeight(backgroundImg.getHeight()); poster.getPosterSubassemblyList().forEach(wePosterSubassembly -> { if (wePosterSubassembly.getType().equals(1)) { - Font font = fontMap.get(wePosterSubassembly.getFontId()+"_"+wePosterSubassembly.getFontSize()+"_"+wePosterSubassembly.getFontStyle()); + Font font = fontMap.get(wePosterSubassembly.getFontId() + "_" + wePosterSubassembly.getFontSize() + "_" + wePosterSubassembly.getFontStyle()); FontMetrics fontMetrics = ImageUtils.getFontMetrics(font); Color color; if (StringUtils.isNotBlank(wePosterSubassembly.getFontColor())) { - color = ImageUtils.getColor(wePosterSubassembly.getFontColor(),wePosterSubassembly.getAlpha()); + color = ImageUtils.getColor(wePosterSubassembly.getFontColor(), wePosterSubassembly.getAlpha()); } else { color = Color.BLACK; } - List lineTextList = ImageUtils.splitContext(wePosterSubassembly.getContent(), fontMetrics, wePosterSubassembly.getLeft(), wePosterSubassembly.getTop(), wePosterSubassembly.getWidth(), wePosterSubassembly.getHeight(),wePosterSubassembly.getWordSpace(),wePosterSubassembly.getLineSpace(), wePosterSubassembly.getFontTextAlign(),wePosterSubassembly.getVerticalType()); + List lineTextList = ImageUtils.splitContext(wePosterSubassembly.getContent(), fontMetrics, wePosterSubassembly.getLeft(), wePosterSubassembly.getTop(), wePosterSubassembly.getWidth(), wePosterSubassembly.getHeight(), wePosterSubassembly.getWordSpace(), wePosterSubassembly.getLineSpace(), wePosterSubassembly.getFontTextAlign(), wePosterSubassembly.getVerticalType()); lineTextList.forEach(lineText -> { lineText.getCharTextList().forEach(charText -> { ImageUtils.writeFontBufferedImage(backgroundImg, charText.getValue().toString(), charText.getPointX(), charText.getPointY(), font, color); @@ -179,16 +171,16 @@ public class WePosterServiceImpl extends ServiceImpl i }); } else { BufferedImage bufferedImage = bufferedImageMap.get(wePosterSubassembly.getImgPath()); - if (wePosterSubassembly.getAlpha() != null && wePosterSubassembly.getAlpha() >= 0){ - bufferedImage = ImageUtils.setBufferedImageAlpha(bufferedImage,wePosterSubassembly.getAlpha(),BufferedImage.TYPE_INT_ARGB); + if (wePosterSubassembly.getAlpha() != null && wePosterSubassembly.getAlpha() >= 0) { + bufferedImage = ImageUtils.setBufferedImageAlpha(bufferedImage, wePosterSubassembly.getAlpha(), BufferedImage.TYPE_INT_ARGB); } bufferedImage = ImageUtils.fixedDimensionBufferedImage(bufferedImage, BufferedImage.TYPE_INT_ARGB, wePosterSubassembly.getWidth(), wePosterSubassembly.getHeight()); - if(wePosterSubassembly.getRotate() == null){ + if (wePosterSubassembly.getRotate() == null) { ImageUtils.mergeBufferedImage(backgroundImg, bufferedImage, wePosterSubassembly.getLeft(), wePosterSubassembly.getTop()); - }else { - int x = wePosterSubassembly.getLeft() + bufferedImage.getWidth()/2; - int y = wePosterSubassembly.getTop() + bufferedImage.getHeight()/2; - bufferedImage = ImageUtils.rotateImage(bufferedImage,wePosterSubassembly.getRotate()); + } else { + int x = wePosterSubassembly.getLeft() + bufferedImage.getWidth() / 2; + int y = wePosterSubassembly.getTop() + bufferedImage.getHeight() / 2; + bufferedImage = ImageUtils.rotateImage(bufferedImage, wePosterSubassembly.getRotate()); x = x - bufferedImage.getWidth() / 2; y = y - bufferedImage.getHeight() / 2; ImageUtils.mergeBufferedImage(backgroundImg, bufferedImage, x, y); @@ -199,15 +191,14 @@ public class WePosterServiceImpl extends ServiceImpl i ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { ImageIO.write(backgroundImg, "png", byteArrayOutputStream); - NetFileUtils.StreamMultipartFile streamMultipartFile = new NetFileUtils.StreamMultipartFile(System.currentTimeMillis()+".jpg",byteArrayOutputStream.toByteArray()); + NetFileUtils.StreamMultipartFile streamMultipartFile = new NetFileUtils.StreamMultipartFile(System.currentTimeMillis() + ".jpg", byteArrayOutputStream.toByteArray()); byteArrayOutputStream.close(); - String path = FileUploadUtils.upload2Cos(streamMultipartFile,cosConfig); + String path = FileUploadUtils.upload2Cos(streamMultipartFile, cosConfig); poster.setSampleImgPath(cosConfig.getImgUrlPrefix() + path); + return poster.getSampleImgPath(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("图片生成错误"); } - - return null; } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java index 00f6620336eedd324e3bd6c5de024fcb9ad4db5b..e442838591a0d78e9c788f9eb74c71eca1e3546e 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WePresTagGroupTaskServiceImpl.java @@ -173,8 +173,6 @@ public class WePresTagGroupTaskServiceImpl extends ServiceImpl taskScopeQueryWrapper = new QueryWrapper<>(); taskScopeQueryWrapper.eq("task_id", taskId); diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionCompleteRecordServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionCompleteRecordServiceImpl.java index 1d98a3d1cbbe13ea2fdabb03ffab301e6ed0e15c..277066cc419ea013591b05ac28374dc63d97e413 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionCompleteRecordServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionCompleteRecordServiceImpl.java @@ -1,11 +1,14 @@ package com.linkwechat.wecom.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.linkwechat.wecom.domain.WeTaskFissionCompleteRecord; import com.linkwechat.wecom.mapper.WeTaskFissionCompleteRecordMapper; import com.linkwechat.wecom.service.IWeTaskFissionCompleteRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -15,7 +18,7 @@ import java.util.List; * @date 2021-01-27 */ @Service -public class WeTaskFissionCompleteRecordServiceImpl implements IWeTaskFissionCompleteRecordService { +public class WeTaskFissionCompleteRecordServiceImpl extends ServiceImpl implements IWeTaskFissionCompleteRecordService { @Autowired private WeTaskFissionCompleteRecordMapper weTaskFissionCompleteRecordMapper; @@ -84,4 +87,13 @@ public class WeTaskFissionCompleteRecordServiceImpl implements IWeTaskFissionCom public int deleteWeTaskFissionCompleteRecordById(Long id) { return weTaskFissionCompleteRecordMapper.deleteWeTaskFissionCompleteRecordById(id); } + + @Override + public List statisticCompleteRecords(Long taskFissionId, Date startTime, Date endTime) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WeTaskFissionCompleteRecord::getTaskFissionId, taskFissionId). + between(WeTaskFissionCompleteRecord::getCreateTime, startTime, endTime). + orderByAsc(WeTaskFissionCompleteRecord::getCreateTime); + return weTaskFissionCompleteRecordMapper.selectList(wrapper); + } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRecordServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRecordServiceImpl.java index 3a172a8995b50ec52d2da7b720cf0c1e739c9de3..74872de12a74b8d43d05fd03984d8f85754aaa4e 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRecordServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRecordServiceImpl.java @@ -8,6 +8,7 @@ import com.linkwechat.wecom.service.IWeTaskFissionRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -17,7 +18,7 @@ import java.util.List; * @date 2021-01-27 */ @Service -public class WeTaskFissionRecordServiceImpl extends ServiceImpl implements IWeTaskFissionRecordService { +public class WeTaskFissionRecordServiceImpl extends ServiceImpl implements IWeTaskFissionRecordService { @Autowired private WeTaskFissionRecordMapper weTaskFissionRecordMapper; @@ -90,7 +91,16 @@ public class WeTaskFissionRecordServiceImpl extends ServiceImpl() - .eq(WeTaskFissionRecord::getId,id) - .eq(WeTaskFissionRecord::getCustomerId,customerId)); + .eq(WeTaskFissionRecord::getTaskFissionId, id) + .eq(WeTaskFissionRecord::getCustomerId, customerId)); + } + + @Override + public List statisticRecords(Long taskFissionId, Date startTime, Date endTime) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WeTaskFissionRecord::getTaskFissionId, taskFissionId). + between(WeTaskFissionRecord::getCreateTime, startTime, endTime). + orderByAsc(WeTaskFissionRecord::getCreateTime); + return weTaskFissionRecordMapper.selectList(wrapper); } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRewardServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRewardServiceImpl.java index 4dd585b8154edb726ab6df6e1dbf459a2202677b..19f55f9e728c23d33d7eb5986affbbee1abc6edb 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRewardServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionRewardServiceImpl.java @@ -1,13 +1,25 @@ package com.linkwechat.wecom.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.linkwechat.common.exception.wecom.WeComException; import com.linkwechat.common.utils.DateUtils; +import com.linkwechat.wecom.domain.WeCustomer; +import com.linkwechat.wecom.domain.WeTaskFission; +import com.linkwechat.wecom.domain.WeTaskFissionRecord; import com.linkwechat.wecom.domain.WeTaskFissionReward; +import com.linkwechat.wecom.domain.vo.WeTaskFissionRewardVo; import com.linkwechat.wecom.mapper.WeTaskFissionRewardMapper; +import com.linkwechat.wecom.service.IWeCustomerService; +import com.linkwechat.wecom.service.IWeTaskFissionRecordService; import com.linkwechat.wecom.service.IWeTaskFissionRewardService; +import com.linkwechat.wecom.service.IWeTaskFissionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; +import java.util.Optional; /** * 任务裂变奖励Service业务层处理 @@ -19,6 +31,12 @@ import java.util.List; public class WeTaskFissionRewardServiceImpl implements IWeTaskFissionRewardService { @Autowired private WeTaskFissionRewardMapper weTaskFissionRewardMapper; + @Autowired + private IWeCustomerService weCustomerService; + @Autowired + private IWeTaskFissionRecordService weTaskFissionRecordService; + @Autowired + private IWeTaskFissionService weTaskFissionService; /** * 查询任务裂变奖励 @@ -86,4 +104,34 @@ public class WeTaskFissionRewardServiceImpl implements IWeTaskFissionRewardServi public int deleteWeTaskFissionRewardById(Long id) { return weTaskFissionRewardMapper.deleteWeTaskFissionRewardById(id); } + + @Override + public WeTaskFissionRewardVo getRewardByFissionId(String fissionId, String eid) { + WeTaskFissionRewardVo weTaskFissionRewardVo = new WeTaskFissionRewardVo(); + WeCustomer weCustomer = weCustomerService.getOne(new LambdaQueryWrapper().eq(WeCustomer::getExternalUserid, eid)); + String externalUseriId = Optional.ofNullable(weCustomer).map(WeCustomer::getExternalUserid) + .orElseThrow(() -> new WeComException("用户信息不存在")); + + WeTaskFissionRecord record = weTaskFissionRecordService.selectWeTaskFissionRecordByIdAndCustomerId(Long.valueOf(fissionId), externalUseriId); + Date completeTime = Optional.ofNullable(record).map(WeTaskFissionRecord::getCompleteTime) + .orElseThrow(() -> new WeComException("任务信息不存在")); + + WeTaskFission weTaskFission = weTaskFissionService.selectWeTaskFissionById(Long.valueOf(fissionId)); + Optional.ofNullable(weTaskFission).ifPresent(fission -> { + weTaskFissionRewardVo.setRewardRule(fission.getRewardRule()); + weTaskFissionRewardVo.setRewardImageUrl(fission.getRewardImageUrl()); + weTaskFissionRewardVo.setRewardUrl(fission.getRewardUrl()); + }); + + if (completeTime != null) { + WeTaskFissionReward fissionReward = weTaskFissionRewardMapper.selectOne(new LambdaQueryWrapper() + .eq(WeTaskFissionReward::getTaskFissionId, fissionId) + .eq(WeTaskFissionReward::getRewardUserId, externalUseriId)); + weTaskFissionRewardVo.setWeTaskFissionReward(fissionReward); + //发放兑奖码之后,置为已使用 + Optional.ofNullable(fissionReward).ifPresent(reward -> weTaskFissionRewardMapper.update(reward, new LambdaUpdateWrapper() + .set(WeTaskFissionReward::getRewardCodeStatus, 1).eq(WeTaskFissionReward::getId, reward.getId()))); + } + return weTaskFissionRewardVo; + } } diff --git a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionServiceImpl.java b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionServiceImpl.java index 56702bab493cabfecd45523b6daa0efa09cfb44f..6172620e3339276705e4131021794cba0c0dee2a 100644 --- a/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionServiceImpl.java +++ b/linkwe-wecom/src/main/java/com/linkwechat/wecom/service/impl/WeTaskFissionServiceImpl.java @@ -2,7 +2,9 @@ package com.linkwechat.wecom.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.core.JsonProcessingException; +import com.google.common.collect.Lists; import com.linkwechat.common.config.CosConfig; import com.linkwechat.common.constant.WeConstans; import com.linkwechat.common.enums.TaskFissionType; @@ -20,6 +22,9 @@ import com.linkwechat.wecom.domain.dto.WeExternalContactDto; import com.linkwechat.wecom.domain.dto.WeTaskFissionPosterDTO; import com.linkwechat.wecom.domain.dto.message.CustomerMessagePushDto; import com.linkwechat.wecom.domain.dto.message.LinkMessageDto; +import com.linkwechat.wecom.domain.vo.WeTaskFissionDailyDataVO; +import com.linkwechat.wecom.domain.vo.WeTaskFissionProgressVO; +import com.linkwechat.wecom.domain.vo.WeTaskFissionStatisticVO; import com.linkwechat.wecom.mapper.WeTaskFissionMapper; import com.linkwechat.wecom.service.*; import lombok.extern.slf4j.Slf4j; @@ -34,9 +39,8 @@ import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.text.ParseException; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -67,6 +71,10 @@ public class WeTaskFissionServiceImpl implements IWeTaskFissionService { @Autowired private IWeMaterialService weMaterialService; @Autowired + private IWeCustomerService weCustomerService; + @Autowired + private IWeFlowerCustomerRelService weFlowerCustomerRelService; + @Autowired private IWeTaskFissionCompleteRecordService weTaskFissionCompleteRecordService; @Autowired private CosConfig cosConfig; @@ -81,7 +89,10 @@ public class WeTaskFissionServiceImpl implements IWeTaskFissionService { */ @Override public WeTaskFission selectWeTaskFissionById(Long id) { - return weTaskFissionMapper.selectWeTaskFissionById(id); + WeTaskFission taskFission = weTaskFissionMapper.selectWeTaskFissionById(id); + List staffList = weTaskFissionStaffService.selectWeTaskFissionStaffByTaskId(id); + taskFission.setTaskFissionStaffs(staffList); + return taskFission; } /** @@ -91,7 +102,13 @@ public class WeTaskFissionServiceImpl implements IWeTaskFissionService { * @return 任务宝 */ @Override - public List selectWeTaskFissionList(WeTaskFission weTaskFission) { + public List selectWeTaskFissionList(WeTaskFission weTaskFission) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + if (weTaskFission.getStartTime() != null && weTaskFission.getOverTime() != null) { + weTaskFission.setStartTime(sdf.parse(sdf_day.format(weTaskFission.getStartTime()) + " 00:00:00")); + weTaskFission.setOverTime(sdf.parse(sdf_day.format(weTaskFission.getOverTime()) + " 23:59:59")); + } return weTaskFissionMapper.selectWeTaskFissionList(weTaskFission); } @@ -182,6 +199,8 @@ public class WeTaskFissionServiceImpl implements IWeTaskFissionService { //H5生成海报页面路径 StringBuilder pageUrlBuilder = new StringBuilder(pageUrl); pageUrlBuilder.append("?") + .append("agentId=").append("1000010") + .append("&") .append("fissionId=").append(id) .append("&") .append("userId=").append(fissStaffId) @@ -227,18 +246,33 @@ public class WeTaskFissionServiceImpl implements IWeTaskFissionService { @Override @Transactional public String fissionPosterGenerate(WeTaskFissionPosterDTO weTaskFissionPosterDTO) { - WeUser user = weUserService.selectWeUserById(weTaskFissionPosterDTO.getUserId()); - if (user != null) { - WeTaskFissionRecord record = getTaskFissionRecordId(weTaskFissionPosterDTO.getTaskFissionId(), user.getUserId(), user.getName()); - String qrcode = getPosterQRCode(weTaskFissionPosterDTO.getFissionTargetId(), record, user); - WePoster poster = wePosterService.selectOne(weTaskFissionPosterDTO.getPosterId()); - poster.getPosterSubassemblyList().stream().filter(Objects::nonNull) - .filter(wePosterSubassembly -> wePosterSubassembly.getType() == 3).forEach(wePosterSubassembly -> { - wePosterSubassembly.setImgPath(qrcode); - }); - return wePosterService.generateSimpleImg(poster); + WeCustomer weCustomer = weCustomerService.getOne(new LambdaQueryWrapper() + .eq(WeCustomer::getExternalUserid, weTaskFissionPosterDTO.getEid())); + if (weCustomer != null) { + //任务表添加当前客户任务 + WeTaskFissionRecord record = getTaskFissionRecordId(weTaskFissionPosterDTO.getTaskFissionId(), weCustomer.getExternalUserid(), weCustomer.getName()); + String posterUrl = record.getPoster(); + if (StringUtils.isBlank(posterUrl)) { + String qrcode = getPosterQRCode(weTaskFissionPosterDTO.getFissionTargetId(), record, weCustomer); + if (StringUtils.isBlank(qrcode)) { + throw new WeComException("生成的二维码为空"); + } + WePoster poster = wePosterService.selectOne(weTaskFissionPosterDTO.getPosterId()); + poster.getPosterSubassemblyList().stream().filter(Objects::nonNull) + .filter(wePosterSubassembly -> wePosterSubassembly.getType() == 3).forEach(wePosterSubassembly -> { + wePosterSubassembly.setImgPath(qrcode); + }); + posterUrl = wePosterService.generateSimpleImg(poster); + if (StringUtils.isBlank(posterUrl)) { + throw new WeComException("生成的海报为空"); + } + record.setQrCode(qrcode); + record.setPoster(posterUrl); + weTaskFissionRecordService.updateWeTaskFissionRecord(record); + } + return posterUrl; } else { - throw new RuntimeException("客户信息不存在"); + throw new WeComException("客户信息不存在"); } } @@ -252,67 +286,135 @@ public class WeTaskFissionServiceImpl implements IWeTaskFissionService { wfcr.setCustomerName(weChatUserDTO.getName()); List list = weTaskFissionCompleteRecordService.selectWeTaskFissionCompleteRecordList(wfcr); if (CollectionUtils.isEmpty(list)) { - wfcr.setCreateBy(SecurityUtils.getUsername()); wfcr.setCreateTime(new Date()); weTaskFissionCompleteRecordService.insertWeTaskFissionCompleteRecord(wfcr); } } - private String getPosterQRCode(String fissionTargetId, WeTaskFissionRecord record, WeUser user) { - String qrCode; - Long taskFissionId = record.getTaskFissionId(); + @Override + public List getCustomerListById(String eid, String fissionId) { + WeTaskFissionRecord weTaskFissionRecord; + if (StringUtils.isEmpty(eid)) { + List weTaskFissionRecords = weTaskFissionRecordService + .list(new LambdaQueryWrapper().eq(WeTaskFissionRecord::getTaskFissionId, fissionId)); + return Optional.ofNullable(weTaskFissionRecords).orElseGet(ArrayList::new).stream() + .map(record -> weCustomerService.selectWeCustomerById(record.getCustomerId())) + .filter(Objects::nonNull).collect(Collectors.toList()); + } else { + WeCustomer weCustomer = weCustomerService.getOne(new LambdaQueryWrapper().eq(WeCustomer::getExternalUserid, eid)); + String externalUseriId = Optional.ofNullable(weCustomer).map(WeCustomer::getExternalUserid) + .orElseThrow(() -> new WeComException("用户信息不存在")); + weTaskFissionRecord = weTaskFissionRecordService + .selectWeTaskFissionRecordByIdAndCustomerId(Long.valueOf(fissionId), externalUseriId); + Optional.ofNullable(weTaskFissionRecord).map(WeTaskFissionRecord::getId) + .orElseThrow(() -> new WeComException("任务记录信息不存在")); + List list = weFlowerCustomerRelService.list(new LambdaQueryWrapper() + .eq(WeFlowerCustomerRel::getState, WeConstans.FISSION_PREFIX + weTaskFissionRecord.getId())); + List eidList = Optional.ofNullable(list).orElseGet(ArrayList::new).stream() + .map(WeFlowerCustomerRel::getExternalUserid).collect(Collectors.toList()); + return weCustomerService.listByIds(eidList); + } + } + + @Override + public WeTaskFissionStatisticVO taskFissionStatistic(Long taskFissionId, Date startTime, Date endTime) { + WeTaskFissionStatisticVO vo = new WeTaskFissionStatisticVO(); WeTaskFission taskFission = weTaskFissionMapper.selectWeTaskFissionById(taskFissionId); - Integer taskFissionType = taskFission.getFissionType(); - if (TaskFissionType.USER_FISSION.getCode().equals(taskFissionType)) { - qrCode = getUserFissionQrcode(fissionTargetId, record); - } else if (TaskFissionType.GROUP_FISSION.getCode().equals(taskFissionType)) { - qrCode = getGroupFissionQrcode(taskFissionId, fissionTargetId, record, user); + if (taskFission == null) { + throw new WeComException("任务数据不存在"); + } + vo.setTaskFissionId(taskFissionId); + vo.setTaskName(taskFission.getTaskName()); + vo.setStartTime(startTime); + vo.setEndTime(endTime); + Map> completeRecordsMap = weTaskFissionCompleteRecordService.statisticCompleteRecords(taskFissionId, startTime, endTime).parallelStream().filter(Objects::nonNull).collect(Collectors.groupingBy(item -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, item.getCreateTime()))); + Map> recordsMap = weTaskFissionRecordService.statisticRecords(taskFissionId, startTime, endTime).parallelStream().filter(Objects::nonNull).collect(Collectors.groupingBy(item -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, item.getCreateTime()))); + List dailyDataList = Lists.newArrayList(); + DateUtils.findDates(startTime, endTime).parallelStream().map(d -> DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, d)) + .forEach(date -> { + WeTaskFissionDailyDataVO v = new WeTaskFissionDailyDataVO(); + v.setDay(date); + List completeList = completeRecordsMap.get(date); + List recordsList = recordsMap.get(date); + if (CollectionUtils.isNotEmpty(completeList)) { + v.setIncrease(completeList.size()); + } + if (CollectionUtils.isNotEmpty(recordsList)) { + v.setAttend(recordsList.size()); + int completeSize = (int) recordsList.stream().filter(r -> r.getCompleteTime() != null).count(); + v.setComplete(completeSize); + } + dailyDataList.add(v); + }); + vo.setData(dailyDataList); + return vo; + } + + @Override + public WeTaskFissionProgressVO getCustomerTaskProgress(WeTaskFission taskFission, String eid) { + long complete = 0L; + long total = taskFission.getFissNum(); + List list = getCustomerListById(eid, String.valueOf(taskFission.getId())); + if (CollectionUtils.isNotEmpty(list)) { + complete = list.size(); } else { - throw new WeComException("错误的任务类型"); + list = new ArrayList<>(); } + return WeTaskFissionProgressVO.builder().total(total).completed(complete).customers(list).build(); + } + + /*************************************** private functions **************************************/ + + private String getPosterQRCode(String fissionTargetId, WeTaskFissionRecord record, WeCustomer weCustomer) { + String qrCode = record.getQrCode(); if (StringUtils.isBlank(qrCode)) { - throw new WeComException("生成的二维码为空"); + Long taskFissionId = record.getTaskFissionId(); + WeTaskFission taskFission = weTaskFissionMapper.selectWeTaskFissionById(taskFissionId); + Integer taskFissionType = taskFission.getFissionType(); + if (TaskFissionType.USER_FISSION.getCode().equals(taskFissionType)) { + qrCode = getUserFissionQrcode(fissionTargetId, record); + } else if (TaskFissionType.GROUP_FISSION.getCode().equals(taskFissionType)) { + qrCode = getGroupFissionQrcode(taskFissionId, record, weCustomer); + } else { + throw new WeComException("错误的任务类型"); + } } return qrCode; } private String getUserFissionQrcode(String fissionTargetId, WeTaskFissionRecord record) { - WeExternalContactDto dto = null; - if (StringUtils.isNotBlank(record.getConfigId())) { - dto = weExternalContactClient.getContactWay(record.getConfigId()); - } - if (dto == null) { - //获取二维码 - WeExternalContactDto.WeContactWay contactWay = posterContactWay(fissionTargetId, record.getId()); - dto = weExternalContactClient.addContactWay(contactWay); - record.setConfigId(dto.getConfig_id()); - int updateResult = weTaskFissionRecordService.updateWeTaskFissionRecord(record); - if (updateResult <= 0) { - throw new RuntimeException("生成海报异常:更新裂变记录失败"); - } + //获取二维码 + String qrcode = null; + WeExternalContactDto.WeContactWay contactWay = posterContactWay(fissionTargetId, record.getId()); + WeExternalContactDto dto = weExternalContactClient.addContactWay(contactWay); + if (dto != null) { + qrcode = dto.getQr_code(); } - return dto.getQr_code(); + return qrcode; } - private String getGroupFissionQrcode(Long taskFissionId, String fissionTargetId, WeTaskFissionRecord record, WeUser user) { - String qrCode = record.getConfigId(); - String avatar = user.getAvatarMediaid(); - WeMaterial file = weMaterialService.findWeMaterialById(Long.parseLong(avatar)); - if (StringUtils.isBlank(qrCode)) { + private String getGroupFissionQrcode(Long taskFissionId, WeTaskFissionRecord record, WeCustomer weCustomer) { + String qrCode = null; + if (weCustomer != null) { + String avatar = weCustomer.getAvatar(); + WeMaterial file = weMaterialService.findWeMaterialById(Long.parseLong(avatar)); + String avatarUrl = StringUtils.isEmpty(avatar) ? file.getMaterialUrl() : avatar; String content = "/wecom/fission/complete/" + taskFissionId + "/records/" + record.getId(); - BufferedImage bufferedImage = QREncode.crateQRCode(content, file.getMaterialUrl()); + BufferedImage bufferedImage = QREncode.crateQRCode(content, avatarUrl); if (bufferedImage != null) { try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) { ImageIO.write(bufferedImage, "png", byteArrayOutputStream); NetFileUtils.StreamMultipartFile streamMultipartFile = new NetFileUtils.StreamMultipartFile(System.currentTimeMillis() + ".jpg", byteArrayOutputStream.toByteArray()); qrCode = FileUploadUtils.upload2Cos(streamMultipartFile, cosConfig); } catch (Exception e) { - log.warn("生成海报二维码异常, fissionTargetId={}, record={}, user={}, exception={}", fissionTargetId, record, user, ExceptionUtils.getStackTrace(e)); + log.warn("生成海报二维码异常, record={}, customer={}, exception={}", record, weCustomer, ExceptionUtils.getStackTrace(e)); throw new WeComException("生成二维码异常"); } } + return qrCode; + } else { + throw new WeComException("生成二维码异常,用户信息不存在"); } - return qrCode; } private WeExternalContactDto.WeContactWay posterContactWay(String fissionTargetId, Long recordId) { @@ -338,7 +440,7 @@ public class WeTaskFissionServiceImpl implements IWeTaskFissionService { if (insertRows > 0) { recordInfo = record; } else { - throw new RuntimeException("生成海报异常:插入裂变记录失败"); + throw new WeComException("生成海报异常:插入裂变记录失败"); } } return recordInfo; diff --git a/linkwe-wecom/src/main/resources/mapper/wecom/WeKeywordGroupTaskMapper.xml b/linkwe-wecom/src/main/resources/mapper/wecom/WeKeywordGroupTaskMapper.xml index ac84e36fd77f095a320548be84e63791a032f67b..4a4c31e695cd14323f20d3ee1928eda31dbeb654 100644 --- a/linkwe-wecom/src/main/resources/mapper/wecom/WeKeywordGroupTaskMapper.xml +++ b/linkwe-wecom/src/main/resources/mapper/wecom/WeKeywordGroupTaskMapper.xml @@ -69,13 +69,6 @@ WHERE wkg.task_id = #{taskId} - - delete from we_keyword_group where task_id in - - #{id} - - - diff --git a/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionCompleteRecordMapper.xml b/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionCompleteRecordMapper.xml index 4c2d748b18f626ddc0b7b9dd805e7db7f82d28dc..d8d265e497bc0dbc2e91c0f05227b866a6dd1390 100644 --- a/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionCompleteRecordMapper.xml +++ b/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionCompleteRecordMapper.xml @@ -1,50 +1,59 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + - - - - - + + + + + + - select id, task_fission_id, fission_record_id, customer_id, customer_name from we_task_fission_complete_record + select id, task_fission_id, fission_record_id, customer_id, customer_name, create_time from + we_task_fission_complete_record - - - and task_fission_id = #{taskFissionId} - and fission_record_id = #{fissionRecordId} - and customer_id = #{customerId} - and customer_name like concat('%', #{customerName}, '%') + + and task_fission_id = #{taskFissionId} + and fission_record_id = #{fissionRecordId} + and customer_id = #{customerId} + and customer_name like concat('%', #{customerName}, + '%') + - - where id = #{id} - - + + insert into we_task_fission_complete_record task_fission_id, fission_record_id, customer_id, customer_name, - + create_time, + #{taskFissionId}, #{fissionRecordId}, #{customerId}, #{customerName}, - + #{createTime}, + @@ -54,6 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" fission_record_id = #{fissionRecordId}, customer_id = #{customerId}, customer_name = #{customerName}, + create_time = #{createTime}, where id = #{id} @@ -63,10 +73,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from we_task_fission_complete_record where id in + delete from we_task_fission_complete_record where id in #{id} - + \ No newline at end of file diff --git a/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionMapper.xml b/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionMapper.xml index aa3edccafb0f8dc765a4de96043cff235b9a4451..05c38ed05dfccf40870a03acef2ca498bfbbb8a6 100644 --- a/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionMapper.xml +++ b/linkwe-wecom/src/main/resources/mapper/wecom/WeTaskFissionMapper.xml @@ -41,8 +41,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and task_name like concat('%', #{taskName}, '%') and fiss_info = #{fissInfo} and fiss_num = #{fissNum} - and start_time = #{startTime} - and over_time = #{overTime} + and start_time >= #{startTime} + and customer_tag_id = #{customerTagId} and customer_tag = #{customerTag} and posters_id = #{postersId} @@ -56,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and fiss_status = #{fissStatus} and welcome_msg = #{welcomeMsg} + order by create_time desc + - + - + insert into we_task_fission_record @@ -39,15 +46,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" customer_id, customer_name, fiss_num, - config_id, - + qr_code, + poster, + create_time, + complete_time, + #{taskFissionId}, #{customerId}, #{customerName}, #{fissNum}, - #{configId}, - + #{qrCode}, + #{poster}, + #{createTime}, + #{completeTime}, + @@ -57,7 +70,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" customer_id = #{customerId}, customer_name = #{customerName}, fiss_num = #{fissNum}, - config_id = #{configId}, + qr_code = #{qrCode}, + poster = #{poster}, + create_time = #{createTime}, + complete_time = #{completeTime}, where id = #{id} @@ -67,10 +83,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from we_task_fission_record where id in + delete from we_task_fission_record where id in #{id} - + \ No newline at end of file diff --git a/sql/link-wechat.sql b/sql/link-wechat.sql index 593fe19e7a0a38e75c3b21f9a5d4b8ca6c7df79a..58fedfe6287e3afb16ad220844e400743535c748 100644 --- a/sql/link-wechat.sql +++ b/sql/link-wechat.sql @@ -25854,6 +25854,8 @@ CREATE TABLE `we_task_fission_complete_record` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='裂变任务完成记录'; +ALTER TABLE we_task_fission_complete_record ADD create_time DATETIME NULL COMMENT '创建时间'; + -- ---------------------------- -- Records of we_task_fission_complete_record -- ---------------------------- @@ -25868,10 +25870,14 @@ CREATE TABLE `we_task_fission_record` ( `customer_id` varchar(64) NOT NULL DEFAULT 'NULL' COMMENT '裂变任务客户id', `customer_name` varchar(100) DEFAULT NULL COMMENT '裂变任务客户姓名', `fiss_num` int(11) NOT NULL DEFAULT '0' COMMENT '裂变客户数量', - `config_id` varchar(64) NOT NULL DEFAULT 'NULL' COMMENT '生成二维码配置id', + `qr_code` varchar(500) NOT NULL DEFAULT 'NULL' COMMENT '二维码链接', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='裂变任务记录'; +ALTER TABLE we_task_fission_record ADD create_time DATETIME NULL COMMENT '创建时间'; +ALTER TABLE we_task_fission_record ADD complete_time DATETIME NULL COMMENT '完成时间'; +ALTER TABLE we_task_fission_record ADD poster varchar(500) DEFAULT NULL NULL COMMENT '海报链接'; + -- ---------------------------- -- Records of we_task_fission_record -- ----------------------------