From b48f8af4586bf8c3e2903eb54f44b4d7831a1aba Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Fri, 21 Apr 2023 15:28:20 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E4=BB=A3=E7=A0=81=EF=BC=8C=E6=8F=90=E9=AB=98?= =?UTF-8?q?=E5=8F=AF=E7=BB=B4=E6=8A=A4=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/RemotePushConcernFanService.java | 4 ++ .../controller/PushConcernFanController.java | 51 ++++++++++++++++--- .../system/controller/UserController.java | 9 ++++ 3 files changed, 57 insertions(+), 7 deletions(-) diff --git a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java index ba0544f3..97d13256 100644 --- a/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java +++ b/kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java @@ -32,4 +32,8 @@ public interface RemotePushConcernFanService { @PostMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/removeUserPushData", headers = SecurityConstants.HEADER_FROM_IN) R removeUserPushData(@RequestParam("innerEnterpriseUserId")Set userIds); + + @PostMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/bindConcernEnterpriseUser", headers = SecurityConstants.HEADER_FROM_IN) + R bindConcernEnterpriseUser(@RequestParam("userId") String userId, @RequestBody List enterpriseUserList); + } diff --git a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java index f7629e20..e7bc71a9 100644 --- a/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java +++ b/kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java @@ -66,14 +66,18 @@ public class PushConcernFanController { return R.ok(iPushConcernFanService.getByPushConcernFanId(id, onType)); } + @ApiOperation("根据关注用户ID与粉丝用户ID查询") + @GetMapping("/getByConcernUserIdAndFanUserId") + public R getByConcernUserIdAndFanUserId(String concernUserId, String fanUserId) { + return R.ok(iPushConcernFanService.getOne(Wrappers.lambdaQuery() + .eq(PushConcernFan::getConcernUserId, concernUserId) + .eq(PushConcernFan::getFanUserId, fanUserId) + )); + } + @ApiOperation("保存") @PostMapping("/save") public R save(@Valid @RequestBody PushConcernFan pushConcernFan) { - // 关注可以重复申请,后者信息覆盖前者信息需先删除前者的关注数据 - iPushConcernFanService.remove(Wrappers.lambdaQuery() - .in(PushConcernFan::getStatus, PushAuditStatusEnum.NOT_APPLIED.getValue(), PushAuditStatusEnum.UNDER_REVIEW.getValue()) - .eq(PushConcernFan::getFanUserId, pushConcernFan.getFanUserId()) - .eq(PushConcernFan::getConcernUserId, pushConcernFan.getConcernUserId())); iPushConcernFanService.save(pushConcernFan); // 同步推送类型 if (pushConcernFan.getStatus() == PushAuditStatusEnum.APPROVED.getValue()) { @@ -104,6 +108,40 @@ public class PushConcernFanController { return R.ok(); } + @Inner + @ApiOperation("创建内部新用户强制关联内部企业") + @PostMapping("/bindConcernEnterpriseUser") + public R bindConcernEnterpriseUser(String userId, @Valid @RequestBody List enterpriseUserList) { + // 创建新用户时需要跟企业内部用户进行绑定 + enterpriseUserList.forEach(item -> { + // 添加系统内部用户为粉丝 + PushConcernFan pushConcernFan = new PushConcernFan(); + pushConcernFan.setFanUserId(userId); + pushConcernFan.setConcernUserId(item.getId()); + pushConcernFan.setType(PushConcernTypeEnum.INTERNAL_COMPANY.getValue()); + pushConcernFan.setStatus(PushAuditStatusEnum.APPROVED.getValue()); + iPushConcernFanService.save(pushConcernFan); + // 同步推送类型 + List pushTypes = iPushTypeService.list(Wrappers.lambdaQuery().eq(PushType::getCreateById, item.getId())); + List pushConcernFanTypes = pushTypes.stream().map(subItem -> new PushConcernFanType() + .setName(subItem.getName()) + .setConcernFanId(pushConcernFan.getId()) + .setConcernUserId(pushConcernFan.getConcernUserId()) + .setFanUserId(pushConcernFan.getFanUserId()) + .setTypeId(subItem.getId()) + .setDefaultType(subItem.getDefaultType()) + .setPlaySound(subItem.getPlaySound()) + .setPlayVibrate(subItem.getPlayVibrate()) + .setPlayLights(subItem.getPlayLights()) + .setPlayToText(subItem.getPlayToText()) + .setOnlineRingtone(subItem.getOnlineRingtone()) + .setOfflineRingtone(subItem.getOfflineRingtone()) + ).collect(Collectors.toList()); + iPushConcernFanTypeService.saveBatch(pushConcernFanTypes); + }); + return R.ok(); + } + @Inner @ApiOperation("内部企业用户粉丝保存") @PostMapping("/enterpriseUserFanSave") @@ -125,8 +163,7 @@ public class PushConcernFanController { @PutMapping("/updateAuditStatus") public R updateAuditStatus(@RequestParam String id, @RequestParam Integer status) { iPushConcernFanService.update(Wrappers.lambdaUpdate() - .set(PushConcernFan::getStatus, status) - .eq(PushConcernFan::getId, id)); + .set(PushConcernFan::getStatus, status).eq(PushConcernFan::getId, id)); // 同步推送类型 if (status == PushAuditStatusEnum.APPROVED.getValue()) { PushConcernFan pushConcernFan = iPushConcernFanService.getById(id); diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java index 0b2a3f2f..44ba26ce 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java @@ -145,6 +145,15 @@ public class UserController { .notIn(User::getUserType, UserTypeEnum.ENTERPRISE_USER.getValue(), UserTypeEnum.INTERNAL_USER.getValue())); remotePushConcernFanService.enterpriseUserFanSave(user.getId(), userList); } + // 创建内部新用户强制关联内部企业 + if (!ArrayUtil.contains(new String[]{ + UserTypeEnum.ENTERPRISE_USER.getValue(), + UserTypeEnum.INTERNAL_USER.getValue(), + }, SecurityUtils.getUser().getUserType())) { + List enterpriseUserList = userService.list(Wrappers.lambdaQuery() + .in(User::getUserType, UserTypeEnum.ENTERPRISE_USER.getValue(), UserTypeEnum.INTERNAL_USER.getValue())); + remotePushConcernFanService.bindConcernEnterpriseUser(user.getId(), enterpriseUserList); + } return R.ok(); }