Browse Source

perf: 优化整体推送代码,提高可维护性

master
wangxiang 2 years ago
parent
commit
b48f8af458
  1. 4
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java
  2. 51
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java
  3. 9
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java

4
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 { @@ -32,4 +32,8 @@ public interface RemotePushConcernFanService {
@PostMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/removeUserPushData", headers = SecurityConstants.HEADER_FROM_IN)
R removeUserPushData(@RequestParam("innerEnterpriseUserId")Set<String> userIds);
@PostMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/bindConcernEnterpriseUser", headers = SecurityConstants.HEADER_FROM_IN)
R bindConcernEnterpriseUser(@RequestParam("userId") String userId, @RequestBody List<User> enterpriseUserList);
}

51
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 { @@ -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.<PushConcernFan>lambdaQuery()
.eq(PushConcernFan::getConcernUserId, concernUserId)
.eq(PushConcernFan::getFanUserId, fanUserId)
));
}
@ApiOperation("保存")
@PostMapping("/save")
public R save(@Valid @RequestBody PushConcernFan pushConcernFan) {
// 关注可以重复申请,后者信息覆盖前者信息需先删除前者的关注数据
iPushConcernFanService.remove(Wrappers.<PushConcernFan>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 { @@ -104,6 +108,40 @@ public class PushConcernFanController {
return R.ok();
}
@Inner
@ApiOperation("创建内部新用户强制关联内部企业")
@PostMapping("/bindConcernEnterpriseUser")
public R bindConcernEnterpriseUser(String userId, @Valid @RequestBody List<User> 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<PushType> pushTypes = iPushTypeService.list(Wrappers.<PushType>lambdaQuery().eq(PushType::getCreateById, item.getId()));
List<PushConcernFanType> 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 { @@ -125,8 +163,7 @@ public class PushConcernFanController {
@PutMapping("/updateAuditStatus")
public R updateAuditStatus(@RequestParam String id, @RequestParam Integer status) {
iPushConcernFanService.update(Wrappers.<PushConcernFan>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);

9
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 { @@ -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<User> enterpriseUserList = userService.list(Wrappers.<User>lambdaQuery()
.in(User::getUserType, UserTypeEnum.ENTERPRISE_USER.getValue(), UserTypeEnum.INTERNAL_USER.getValue()));
remotePushConcernFanService.bindConcernEnterpriseUser(user.getId(), enterpriseUserList);
}
return R.ok();
}

Loading…
Cancel
Save