Browse Source

fix: 推送消息测试流程

master
wangxiang 2 years ago
parent
commit
a29feffe32
  1. 5
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java
  2. 15
      kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java
  3. 1
      kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java
  4. 5
      kicc-platform/kicc-platform-api/kicc-common-api/pom.xml
  5. 7
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/PushType.java
  6. 11
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java
  7. 16
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushApplicationController.java
  8. 3
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushChatMessageController.java
  9. 142
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java
  10. 2
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanTypeController.java
  11. 9
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushEnterpriseController.java
  12. 38
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushTypeController.java
  13. 2
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushConcernFanMapper.java
  14. 5
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IPushConcernFanService.java
  15. 15
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java
  16. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushConcernFanServiceImpl.java
  17. 12
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/PushBlacklistMapper.xml
  18. 16
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/PushConcernFanMapper.xml
  19. 17
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java

5
kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/constant/SecurityConstants.java

@ -30,6 +30,11 @@ public interface SecurityConstants { @@ -30,6 +30,11 @@ public interface SecurityConstants {
*/
String FROM = "from";
/**
* 请求header
*/
String HEADER_FROM_IN = FROM + "=" + FROM_IN;
/**
* 默认登录URL
*/

15
kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java

@ -39,6 +39,18 @@ public class KiccUser extends User { @@ -39,6 +39,18 @@ public class KiccUser extends User {
@Getter
private String phone;
/**
* 用户类型
* { label: '系统管理员', value: '0' },
* { label: '普通用户', value: '1' },
* { label: '企业用户', value: '2' },
* { label: '收样员', value: '3' },
* { label: '客服', value: '4' },
* { label: '企业内部用户', value: '5' },
*/
@Getter
private String userType;
/**
* 多租户ID
*/
@ -46,13 +58,14 @@ public class KiccUser extends User { @@ -46,13 +58,14 @@ public class KiccUser extends User {
@Setter
private String tenantId;
public KiccUser(String id, String deptId, String username, String password, String phone, String tenantId, boolean enabled,
public KiccUser(String id, String deptId, String username, String password, String phone, String userType, String tenantId, boolean enabled,
boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked,
Collection<? extends GrantedAuthority> authorities) {
super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
this.id = id;
this.deptId = deptId;
this.phone = phone;
this.userType = userType;
this.tenantId = tenantId;
}

1
kicc-common/kicc-common-security/src/main/java/com/cloud/kicc/common/security/service/KiccUserDetailsService.java

@ -76,6 +76,7 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered { @@ -76,6 +76,7 @@ public interface KiccUserDetailsService extends UserDetailsService, Ordered {
user.getUserName(),
SecurityConstants.BCRYPT + user.getPassword(),
user.getPhone(),
user.getUserType(),
user.getTenantId(),
true,
true,

5
kicc-platform/kicc-platform-api/kicc-common-api/pom.xml

@ -14,6 +14,11 @@ @@ -14,6 +14,11 @@
<description>kicc 通用业务模块公共api模块</description>
<dependencies>
<!--system API-->
<dependency>
<groupId>com.cloud</groupId>
<artifactId>kicc-system-api</artifactId>
</dependency>
<!--断路器依赖-->
<dependency>
<groupId>com.cloud</groupId>

7
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/entity/PushType.java

@ -43,10 +43,13 @@ public class PushType extends CommonEntity { @@ -43,10 +43,13 @@ public class PushType extends CommonEntity {
@ApiModelProperty("是否播报文字")
private String playToText;
@ApiModelProperty("自定义播放文件名称")
@ApiModelProperty("默认类型")
private String defaultType;
@ApiModelProperty("在线铃声")
private String onlineRingtone;
@ApiModelProperty("自定义播放文件名称")
@ApiModelProperty("离线铃声")
private String offlineRingtone;
}

11
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/feign/RemotePushConcernFanService.java

@ -4,9 +4,15 @@ import com.cloud.kicc.common.core.api.R; @@ -4,9 +4,15 @@ import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.constant.ServiceNameConstants;
import com.cloud.kicc.system.api.entity.User;
import feign.Param;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
*<p>
@ -19,8 +25,7 @@ import org.springframework.web.bind.annotation.RequestHeader; @@ -19,8 +25,7 @@ import org.springframework.web.bind.annotation.RequestHeader;
@FeignClient(contextId = "remotePushConcernFanService", value = ServiceNameConstants.COMMON_SERVICE)
public interface RemotePushConcernFanService {
@PostMapping(AppConstants.APP_COMMON + "/pushConcernFan/enterpriseUserSave")
R pushConcernFanSave(String enterpriseUserId, @RequestHeader(SecurityConstants.FROM) String from);
@PostMapping(value = AppConstants.APP_COMMON + "/pushConcernFan/enterpriseUserFanSave", headers = SecurityConstants.HEADER_FROM_IN)
R enterpriseUserFanSave(@RequestParam("innerEnterpriseUserId") String innerEnterpriseUserId, @RequestBody List<User> userList);
}

16
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushApplicationController.java

@ -17,8 +17,6 @@ import com.cloud.kicc.commonbiz.api.entity.PushChatMessage; @@ -17,8 +17,6 @@ import com.cloud.kicc.commonbiz.api.entity.PushChatMessage;
import com.cloud.kicc.commonbiz.api.entity.PushEnterprise;
import com.cloud.kicc.commonbiz.service.IPushApplicationService;
import com.cloud.kicc.commonbiz.service.IPushEnterpriseService;
import com.cloud.kicc.system.api.entity.OauthClientDetails;
import io.lettuce.core.api.push.PushMessage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -46,6 +44,7 @@ public class PushApplicationController { @@ -46,6 +44,7 @@ public class PushApplicationController {
private LambdaQueryWrapper<PushApplication> getQueryWrapper(PushApplication pushApplication) {
return new LambdaQueryWrapper<PushApplication>()
.eq(PushApplication::getCreateById, SecurityUtils.getUser().getId())
.eq(StrUtil.isNotBlank(pushApplication.getName()), PushApplication::getName, pushApplication.getName())
.eq(StrUtil.isNotBlank(pushApplication.getStatus()), PushApplication::getStatus, pushApplication.getStatus());
}
@ -66,9 +65,10 @@ public class PushApplicationController { @@ -66,9 +65,10 @@ public class PushApplicationController {
@ApiOperation("保存")
@PostMapping("/save")
public R save(@Valid @RequestBody PushApplication pushApplication) {
// 验证企业是否已经认证
if (iPushEnterpriseService.count(Wrappers.<PushEnterprise>lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){
throw new CheckedException("当前企业未认证,请认证后在操作!");
// 企业用户需要验证是否进行企业认证
if (StrUtil.equals(SecurityUtils.getUser().getUserType(), "2") &&
iPushEnterpriseService.count(Wrappers.<PushEnterprise>lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){
throw new CheckedException("当前企业用户未进行企业认证,请认证后在试!");
}
pushApplication.setMessageSecret(UUID.randomUUID().toString().replace("-",""));
iPushApplicationService.save(pushApplication);
@ -78,9 +78,6 @@ public class PushApplicationController { @@ -78,9 +78,6 @@ public class PushApplicationController {
@ApiOperation("修改")
@PutMapping("/update")
public R update(@Valid @RequestBody PushApplication pushApplication) {
if (iPushEnterpriseService.count(Wrappers.<PushEnterprise>lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){
throw new CheckedException("当前企业未认证,请认证后在操作!");
}
iPushApplicationService.updateById(pushApplication);
return R.ok();
}
@ -88,9 +85,6 @@ public class PushApplicationController { @@ -88,9 +85,6 @@ public class PushApplicationController {
@ApiOperation("删除")
@DeleteMapping("/remove/{ids:[\\w,]+}")
public R<Boolean> removeById(@PathVariable String[] ids) {
if (iPushEnterpriseService.count(Wrappers.<PushEnterprise>lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){
throw new CheckedException("当前企业未认证,请认证后在操作!");
}
iPushApplicationService.removeByIds(Arrays.asList(ids));
return R.ok();
}

3
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushChatMessageController.java

@ -36,16 +36,15 @@ public class PushChatMessageController { @@ -36,16 +36,15 @@ public class PushChatMessageController {
private LambdaQueryWrapper<PushChatMessage> getQueryWrapper(PushChatMessage pushChatMessage) {
return new LambdaQueryWrapper<PushChatMessage>()
.eq(PushChatMessage::getUserId, SecurityUtils.getUser().getId())
.eq(StrUtil.isNotBlank(pushChatMessage.getStatus()), PushChatMessage::getStatus, pushChatMessage.getStatus())
.like(StrUtil.isNotBlank(pushChatMessage.getTitle()), PushChatMessage::getTitle, pushChatMessage.getTitle())
.eq(PushChatMessage::getUserId, pushChatMessage.getUserId())
.eq(StrUtil.isNotBlank(pushChatMessage.getAlias()), PushChatMessage::getAlias, pushChatMessage.getAlias());
}
@GetMapping("/list")
@ApiOperation(value = "分页查询")
public R list(Page page, PushChatMessage pushChatMessage) {
pushChatMessage.setUserId(SecurityUtils.getUser().getId());
IPage<PushChatMessage> result = iPushChatMessageService.page(page, getQueryWrapper(pushChatMessage));
return R.ok(result.getRecords(), result.getTotal());
}

142
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java

@ -2,28 +2,28 @@ package com.cloud.kicc.commonbiz.controller; @@ -2,28 +2,28 @@ package com.cloud.kicc.commonbiz.controller;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.security.annotation.Inner;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.PushConcernFan;
import com.cloud.kicc.commonbiz.api.entity.PushConcernFanType;
import com.cloud.kicc.commonbiz.api.entity.PushType;
import com.cloud.kicc.commonbiz.service.IPushConcernFanService;
import com.cloud.kicc.commonbiz.service.IPushConcernFanTypeService;
import com.cloud.kicc.commonbiz.service.IPushTypeService;
import com.cloud.kicc.commonbiz.api.entity.*;
import com.cloud.kicc.commonbiz.service.*;
import com.cloud.kicc.system.api.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.data.repository.query.Param;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -43,6 +43,10 @@ public class PushConcernFanController { @@ -43,6 +43,10 @@ public class PushConcernFanController {
private final IPushConcernFanService iPushConcernFanService;
private final IPushConcernFanTypeService iPushConcernFanTypeService;
private final IPushTypeService iPushTypeService;
private final IPushApplicationService iPushApplicationService;
private final IPushChatMessageService iPushChatMessageService;
private final IPushEnterpriseService iPushEnterpriseService;
private final IPushRingtoneService iPushRingtoneService;
@ApiOperation("分页查询")
@GetMapping("/list")
@ -60,56 +64,34 @@ public class PushConcernFanController { @@ -60,56 +64,34 @@ public class PushConcernFanController {
}
@ApiOperation("根据ID查询")
@GetMapping("/{id:\\w+}")
public R getById(@PathVariable("id") String id) {
return R.ok(iPushConcernFanService.getByPushConcernFanId(id));
@GetMapping("/getById")
public R getById(String id, String onType) {
return R.ok(iPushConcernFanService.getByPushConcernFanId(id, onType));
}
@ApiOperation("保存")
@PostMapping("/save")
public R save(@Valid @RequestBody PushConcernFan pushConcernFan) {
iPushConcernFanService.save(pushConcernFan);
return R.ok();
}
@ApiOperation("企业用户关联保存")
@PostMapping("/enterpriseUserSave")
public R enterpriseUserSave(String enterpriseUserId) {
// 企业内部用户保存默认强制关注系统内部所有用户
IPage<Map<String, Object>> list = iPushConcernFanService.selectPushFriendList(new Page(1, 999),
MapUtil.<String, Object>builder().put("createById", enterpriseUserId).build());
List<PushType> pushTypes = iPushTypeService.list(Wrappers.<PushType>lambdaQuery().eq(PushType::getCreateById, enterpriseUserId));
list.getRecords().forEach(item -> {
PushConcernFan pushConcernFan = new PushConcernFan();
pushConcernFan.setFanUserId(enterpriseUserId);
pushConcernFan.setConcernUserId(item.get("id").toString());
pushConcernFan.setType("1");
pushConcernFan.setStatus("1");
iPushConcernFanService.save(pushConcernFan);
// 保存用户自定义推送类型
List<PushConcernFanType> pushConcernFanTypes = pushTypes.stream()
.map(pushType -> new PushConcernFanType()
// 同步推送类型
if (StrUtil.equals(pushConcernFan.getStatus(), "1")) {
List<PushType> pushTypes = iPushTypeService.list(Wrappers.<PushType>lambdaQuery().eq(PushType::getCreateById, pushConcernFan.getConcernUserId()));
List<PushConcernFanType> pushConcernFanTypes = pushTypes.stream().map(item -> new PushConcernFanType()
.setName(item.getName())
.setConcernFanId(pushConcernFan.getId())
.setName(pushType.getName())
.setConcernUserId(pushConcernFan.getConcernUserId())
.setFanUserId(pushConcernFan.getFanUserId())
.setTypeId(pushType.getId())
.setPlaySound(pushType.getPlaySound())
.setPlayVibrate(pushType.getPlayVibrate())
.setPlayLights(pushType.getPlayLights())
.setPlayToText(pushType.getPlayToText())
.setOnlineRingtone(pushType.getOnlineRingtone())
.setOfflineRingtone(pushType.getOfflineRingtone())
.setTypeId(item.getId())
.setDefaultType(item.getDefaultType())
.setPlaySound(item.getPlaySound())
.setPlayVibrate(item.getPlayVibrate())
.setPlayLights(item.getPlayLights())
.setPlayToText(item.getPlayToText())
.setOnlineRingtone(item.getOnlineRingtone())
.setOfflineRingtone(item.getOfflineRingtone())
).collect(Collectors.toList());
if (!pushConcernFanTypes.isEmpty()) {
pushConcernFanTypes.get(0).setDefaultType("1");
iPushConcernFanTypeService.saveBatch(pushConcernFanTypes);
}
});
return R.ok();
}
@ -120,48 +102,82 @@ public class PushConcernFanController { @@ -120,48 +102,82 @@ public class PushConcernFanController {
return R.ok();
}
@Inner
@ApiOperation("内部企业用户粉丝保存")
@PostMapping("/enterpriseUserFanSave")
public R enterpriseUserFanSave(String innerEnterpriseUserId, @Valid @RequestBody List<User> userList) {
// 企业内部用户保存默认强制关注系统内除自己以外的所有用户
userList.forEach(item -> {
// 添加系统内部用户为粉丝
PushConcernFan pushConcernFan = new PushConcernFan();
pushConcernFan.setFanUserId(item.getId());
pushConcernFan.setConcernUserId(innerEnterpriseUserId);
pushConcernFan.setType("1");
pushConcernFan.setStatus("1");
iPushConcernFanService.save(pushConcernFan);
});
return R.ok();
}
@ApiOperation("审核")
@GetMapping("/audit")
public R audit(String id) {
iPushConcernFanService.update(Wrappers.<PushConcernFan>lambdaUpdate().set(PushConcernFan::getStatus, "1").in(PushConcernFan::getId, id));
PushConcernFan pushConcernFan = iPushConcernFanService.getById(id);
if (ObjectUtil.isNotEmpty(pushConcernFan)) {
// 同步推送类型
List<PushType> pushTypes = iPushTypeService.list(Wrappers.<PushType>lambdaQuery().eq(PushType::getCreateById, pushConcernFan.getConcernUserId()));
List<PushConcernFanType> pushConcernFanTypes = pushTypes.stream()
.map(item -> new PushConcernFanType()
.setConcernFanId(pushConcernFan.getId())
List<PushConcernFanType> pushConcernFanTypes = pushTypes.stream().map(item -> new PushConcernFanType()
.setName(item.getName())
.setConcernFanId(pushConcernFan.getId())
.setConcernUserId(pushConcernFan.getConcernUserId())
.setFanUserId(pushConcernFan.getFanUserId())
.setTypeId(item.getId())
.setDefaultType(item.getDefaultType())
.setPlaySound(item.getPlaySound())
.setPlayVibrate(item.getPlayVibrate())
.setPlayLights(item.getPlayLights())
.setPlayToText(item.getPlayToText())
.setOnlineRingtone(item.getOnlineRingtone())
.setOfflineRingtone(item.getOfflineRingtone())
)
.collect(Collectors.toList());
if (!pushConcernFanTypes.isEmpty()) {
pushConcernFanTypes.get(0).setDefaultType("1");
).collect(Collectors.toList());
iPushConcernFanTypeService.saveBatch(pushConcernFanTypes);
}
}
return R.ok();
}
@ApiOperation("删除")
@DeleteMapping("/remove/{ids:[\\w,]+}")
public R<Boolean> removeById(@PathVariable String[] ids) {
List<String> list = Arrays.asList(ids);
// 删除用户自定义推送类型
list.forEach(id -> {
PushConcernFan pushConcernFan = iPushConcernFanService.getById(id);
iPushConcernFanTypeService.remove(Wrappers.<PushConcernFanType>lambdaQuery()
.eq(PushConcernFanType::getConcernUserId, pushConcernFan.getConcernUserId())
.eq(PushConcernFanType::getFanUserId, pushConcernFan.getFanUserId()));
});
iPushConcernFanService.removeByIds(Arrays.asList(ids));
iPushConcernFanTypeService.remove(Wrappers.<PushConcernFanType>lambdaQuery().in(PushConcernFanType::getConcernFanId, ids));
return R.ok();
}
@Inner
@ApiOperation("移除用户推送相关数据")
@DeleteMapping("/removeUserPushData")
public R<Boolean> removeUserPushData(@RequestParam Set<String> userIds) {
// 移除推送关注粉丝
iPushConcernFanService.remove(Wrappers.<PushConcernFan>lambdaQuery()
.in(PushConcernFan::getConcernUserId, userIds)
.or().in(PushConcernFan::getFanUserId, userIds));
// 移除推送关注粉丝子表推送类型
iPushConcernFanTypeService.remove(Wrappers.<PushConcernFanType>lambdaQuery()
.in(PushConcernFanType::getConcernUserId, userIds)
.or().in(PushConcernFanType::getFanUserId, userIds));
iPushTypeService.remove(Wrappers.<PushType> lambdaQuery()
.in(PushType::getCreateById, userIds));
// 移除推送应用
iPushApplicationService.remove(Wrappers.<PushApplication>lambdaQuery()
.in(PushApplication::getCreateById, userIds));
// 移除推送聊天消息
iPushChatMessageService.remove(Wrappers.<PushChatMessage>lambdaQuery()
.in(PushChatMessage::getUserId, userIds));
// 移除企业用户认证信息
iPushEnterpriseService.remove(Wrappers.<PushEnterprise>lambdaQuery()
.in(PushEnterprise::getUserId, userIds));
// 移除用户在线铃声
iPushRingtoneService.remove(Wrappers.<PushRingtone>lambdaQuery()
.in(PushRingtone::getCreateById, userIds));
return R.ok();
}

2
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanTypeController.java

@ -36,7 +36,7 @@ public class PushConcernFanTypeController { @@ -36,7 +36,7 @@ public class PushConcernFanTypeController {
private LambdaQueryWrapper<PushConcernFanType> getQueryWrapper(PushConcernFanType pushConcernFanType) {
return new LambdaQueryWrapper<PushConcernFanType>()
.eq(PushConcernFanType::getConcernUserId, pushConcernFanType.getConcernUserId())
.eq(PushConcernFanType::getFanUserId, pushConcernFanType.getFanUserId())
.eq(StrUtil.isNotBlank(pushConcernFanType.getName()), PushConcernFanType::getName, pushConcernFanType.getName());
}

9
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushEnterpriseController.java

@ -64,9 +64,12 @@ public class PushEnterpriseController { @@ -64,9 +64,12 @@ public class PushEnterpriseController {
@ApiOperation("保存")
@PostMapping("/save")
public R save(@Valid @RequestBody PushEnterprise pushEnterprise) {
if(iPushEnterpriseService.count(Wrappers.<PushEnterprise>lambdaQuery()
.eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) > 0) {
throw new CheckedException("当前用户已经存在企业信息不能重复认证!");
// 限制只能有企业用户进行认证
if (!StrUtil.equals(SecurityUtils.getUser().getUserType(), "2")) {
throw new CheckedException("当前用户不是企业用户请用企业用户登录后重试!");
}
if(iPushEnterpriseService.count(Wrappers.<PushEnterprise>lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) > 0) {
throw new CheckedException("当前企业用户已经绑定了认证信息不能重复认证!");
}
if (StrUtil.isBlank(pushEnterprise.getUserId())) pushEnterprise.setUserId(SecurityUtils.getUser().getId());
iPushEnterpriseService.save(pushEnterprise);

38
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushTypeController.java

@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.PushConcernFan;
import com.cloud.kicc.commonbiz.api.entity.PushConcernFanType;
import com.cloud.kicc.commonbiz.api.entity.PushType;
import com.cloud.kicc.commonbiz.service.IPushConcernFanService;
@ -22,7 +24,9 @@ import org.springframework.web.bind.annotation.*; @@ -22,7 +24,9 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* <p>
@ -66,25 +70,21 @@ public class PushTypeController { @@ -66,25 +70,21 @@ public class PushTypeController {
@PostMapping("/save")
public R save(@Valid @RequestBody PushType pushType) {
iPushTypeService.save(pushType);
IPage<Map<String, Object>> list = iPushConcernFanService.selectPushConcernFanList(new Page(1, 999),
MapUtil.<String, Object>builder()
.put("status", "1")
.put("concernUserId", SecurityUtils.getUser().getId())
.build());
list.getRecords().forEach(item ->
iPushConcernFanTypeService.save(new PushConcernFanType()
.setConcernFanId(item.get("id").toString())
List<PushConcernFan> pushConcernFanList = iPushConcernFanService
.list(Wrappers.<PushConcernFan>lambdaQuery().eq(PushConcernFan::getFanUserId, SecurityUtils.getUser().getId()));
List<PushConcernFanType> pushConcernFanTypeList = pushConcernFanList.stream().map(item -> new PushConcernFanType()
.setConcernFanId(item.getId())
.setName(pushType.getName())
.setConcernUserId(item.get("concernUserId").toString())
.setFanUserId(item.get("fanUserId").toString())
.setConcernUserId(item.getConcernUserId())
.setFanUserId(item.getFanUserId())
.setTypeId(pushType.getId())
.setPlaySound(pushType.getPlaySound())
.setPlayVibrate(pushType.getPlayVibrate())
.setPlayLights(pushType.getPlayLights())
.setPlayToText(pushType.getPlayToText())
.setOnlineRingtone(pushType.getOnlineRingtone())
.setOfflineRingtone(pushType.getOfflineRingtone()))
);
.setOfflineRingtone(pushType.getOfflineRingtone())).collect(Collectors.toList());
iPushConcernFanTypeService.saveBatch(pushConcernFanTypeList);
return R.ok();
}
@ -103,5 +103,19 @@ public class PushTypeController { @@ -103,5 +103,19 @@ public class PushTypeController {
return R.ok();
}
@ApiOperation("设置默认推送类型")
@PutMapping("/setDefaultType")
public R setDefaultType(@RequestBody PushType pushType) {
if (StrUtil.isBlank(pushType.getId())) {
throw new CheckedException("当前推送类型ID必填!");
}
// 全部设置为不默认
iPushTypeService.update(Wrappers.<PushType>lambdaUpdate()
.set(PushType::getDefaultType, "0")
.eq(PushType::getCreateById, SecurityUtils.getUser().getId()));
iPushTypeService.updateById(pushType);
return R.ok();
}
}

2
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushConcernFanMapper.java

@ -22,7 +22,7 @@ public interface PushConcernFanMapper extends BaseMapper<PushConcernFan> { @@ -22,7 +22,7 @@ public interface PushConcernFanMapper extends BaseMapper<PushConcernFan> {
IPage<Map<String, Object>> selectPushConcernFanList(@Param("page") IPage<Map<String, Object>> page, @Param("map") Map map);
Map<String, Object> getByPushConcernFanId(String id);
Map<String, Object> getByPushConcernFanId(@Param("id") String id, @Param("onType") String onType);
IPage<Map<String, Object>> selectPushFriendList(@Param("page") IPage<Map<String, Object>> page, @Param("map") Map map);

5
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IPushConcernFanService.java

@ -25,10 +25,11 @@ public interface IPushConcernFanService extends IService<PushConcernFan> { @@ -25,10 +25,11 @@ public interface IPushConcernFanService extends IService<PushConcernFan> {
/**
* 根据ID查询
* @param
* @param id 关注粉丝表Id
* @param onType 关注粉丝类型 0关联粉丝表 1关联关注表
* @return
*/
Map<String, Object> getByPushConcernFanId(String id);
Map<String, Object> getByPushConcernFanId(String id, String onType);
/**
* 查询好友列表

15
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java

@ -12,6 +12,7 @@ import com.cloud.kicc.common.core.constant.CommonConstants; @@ -12,6 +12,7 @@ import com.cloud.kicc.common.core.constant.CommonConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.*;
import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper;
import com.cloud.kicc.commonbiz.service.*;
@ -55,6 +56,7 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe @@ -55,6 +56,7 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
private final IPushChatMessageService iPushChatMessageService;
private final IPushConcernFanTypeService iPushConcernFanTypeService;
private final RemoteUserService remoteUserService;
private final IPushEnterpriseService iPushEnterpriseService;
@Override
public void enterpriseMessageSend(PushChatMessage pushChatMessage) {
@ -67,6 +69,8 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe @@ -67,6 +69,8 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
if (result == null || result.getData() == null) {
throw new CheckedException("用户不存在");
}
// todo: // 待处理需要统一封装公开接口用户信息登录
User user = result.getData();
KiccUser kiccUser = new KiccUser(
user.getId(),
@ -74,6 +78,7 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe @@ -74,6 +78,7 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
user.getUserName(),
SecurityConstants.BCRYPT + user.getPassword(),
user.getPhone(),
user.getUserType(),
user.getTenantId(),
true,
true,
@ -84,6 +89,16 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe @@ -84,6 +89,16 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
Authentication authentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
// todo: // 待处理需要使用枚举规范用户类型参数,不好维护
if (!StrUtil.equals(SecurityUtils.getUser().getUserType(), "2") || !StrUtil.equals(SecurityUtils.getUser().getUserType(), "5")) {
throw new CheckedException("当前用户不是企业用户,禁止操作!");
}
if (StrUtil.equals(SecurityUtils.getUser().getUserType(), "2") &&
iPushEnterpriseService.count(Wrappers.<PushEnterprise>lambdaQuery().eq(PushEnterprise::getUserId, SecurityUtils.getUser().getId())) == 0){
throw new CheckedException("当前企业用户未进行企业认证,请认证后在试!");
}
PushApplication pushApplication = baseMapper.selectOne(Wrappers.<PushApplication>lambdaQuery()
.eq(PushApplication::getMessageSecret, pushChatMessage.getMessageSecret())
.eq(PushApplication::getCreateById, pushChatMessage.getUserId())

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushConcernFanServiceImpl.java

@ -26,8 +26,8 @@ public class PushConcernFanServiceImpl extends ServiceImpl<PushConcernFanMapper, @@ -26,8 +26,8 @@ public class PushConcernFanServiceImpl extends ServiceImpl<PushConcernFanMapper,
}
@Override
public Map<String, Object> getByPushConcernFanId(String id) {
return baseMapper.getByPushConcernFanId(id);
public Map<String, Object> getByPushConcernFanId(String id, String onType) {
return baseMapper.getByPushConcernFanId(id, onType);
}
@Override

12
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/PushBlacklistMapper.xml

@ -29,9 +29,9 @@ @@ -29,9 +29,9 @@
FROM
common_push_blacklist bl JOIN sys_user u
ON
bl.fan_user_id = u.id
bl.concern_user_id = u.id
<where>
u.del_flag = 0 AND u.status = 0 AND bl.concern_user_id = #{user.createById}
u.del_flag = 0 AND u.status = 0 AND bl.fan_user_id = #{user.createById}
<if test="user.nickName != null and user.nickName != ''">
AND u.nick_name LIKE CONCAT('%', #{user.nickName}, '%')
</if>
@ -65,10 +65,12 @@ @@ -65,10 +65,12 @@
FROM
common_push_blacklist bl JOIN sys_user u
ON
bl.fan_user_id = u.id
bl.concern_user_id = u.id
<where>
u.del_flag = 0 AND u.status = 0 AND
bl.concern_user_id = #{concernUserId} AND bl.fan_user_id = #{fanUserId}
u.del_flag = 0 AND
u.status = 0 AND
bl.concern_user_id = #{concernUserId} AND
bl.fan_user_id = #{fanUserId}
</where>
</select>

16
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/PushConcernFanMapper.xml

@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
</otherwise>
</choose>
<where>
cf.del_flag = 0 and u.status = 0
cf.del_flag = 0 AND u.status = 0
<if test="map.status != null and map.status != ''">
AND cf.status = #{map.status}
</if>
@ -87,9 +87,16 @@ @@ -87,9 +87,16 @@
FROM
common_push_concern_fan cf JOIN sys_user u
ON
<choose>
<when test="onType == 1">
cf.concern_user_id = u.id
</when>
<otherwise>
cf.fan_user_id = u.id
</otherwise>
</choose>
<where>
cf.del_flag = 0 and u.status = 0
cf.del_flag = 0 AND u.status = 0
AND cf.id = #{id}
</where>
</select>
@ -105,13 +112,10 @@ @@ -105,13 +112,10 @@
LEFT JOIN (select * FROM common_push_concern_fan WHERE del_flag = 0 and fan_user_id = #{map.createById}) cf ON u.id = cf.concern_user_id
LEFT JOIN common_push_blacklist b ON u.id = b.concern_user_id
<where>
u.del_flag = 0 AND u.status = 0
u.del_flag = 0 AND u.status = 0 AND u.user_type not in(2,5)
<if test="map.createById != null and map.createById != ''">
AND u.id != #{map.createById}
</if>
<if test="map.userType != null and map.userType != ''">
AND u.user_type != '2'
</if>
<if test="map.nickName != null and map.nickName != ''">
AND u.nick_name = #{map.nickName}
</if>

17
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/UserController.java

@ -116,30 +116,42 @@ public class UserController { @@ -116,30 +116,42 @@ public class UserController {
return R.ok(userService.getUserAuthority(user));
}
@GetMapping("/test")
public R test(String id) {
List<User> userList = userService.list(Wrappers.<User>lambdaQuery()
.ne(User::getId, SecurityUtils.getUser().getId())
.notIn(User::getUserType, "2", "5"));
remotePushConcernFanService.enterpriseUserFanSave(id, userList);
return R.ok(userList);
}
@SysLog("用户新增")
@PostMapping("/save")
@PreAuthorize("@pms.hasPermission('user_add')")
public R save(@RequestBody User user) {
user.setPassword(ENCODER.encode(user.getPassword()));
userService.saveUser(user);
// 企业用户推送类型数据同步
if (StrUtil.equals(user.getUserType(), "2")) {
remotePushConcernFanService.pushConcernFanSave(user.getId(), SecurityConstants.FROM_IN);
//remotePushConcernFanService.pushConcernFanSave(user.getId(), SecurityConstants.FROM_IN);
}
return R.ok();
}
@Inner(false)
@SysLog("新增外部系统用户")
@PostMapping("/saveExternalUser")
public R saveExternalUser(@RequestBody User externalUser) {
User user = userService.getById("1510539584287346688");
userService.getUserAuthority(user);
KiccUser kiccUser = new KiccUser(
user.getId(),
user.getDeptId(),
user.getUserName(),
SecurityConstants.BCRYPT + user.getPassword(),
user.getPhone(),
user.getUserType(),
user.getTenantId(),
true,
true,
@ -154,7 +166,6 @@ public class UserController { @@ -154,7 +166,6 @@ public class UserController {
return R.ok(externalUser);
}
@Inner
@GetMapping("/selectByUserName/{userName}")
public R selectByUserName(@PathVariable String userName) {

Loading…
Cancel
Save