Bläddra i källkod

拉黑用户 关联去掉

zoujiajian 10 månader sedan
förälder
incheckning
641672380b

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserBindDetail.java

@@ -1,5 +1,7 @@
 package com.cyksj.model.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -12,13 +14,18 @@ import lombok.Setter;
 @Getter
 @Setter
 public class UserBindDetail extends BaseEntity{
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long userId;
 
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private String phone;
 
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long phoneUserId;
 
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private String email;
 
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long emailUserId;
 }

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserBlackRecord.java

@@ -23,4 +23,6 @@ public class UserBlackRecord extends BaseEntity{
 	 * 拉黑状态
 	 */
 	private Boolean status;
+
+	private String operator;
 }

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/views/UserSyncInfoView.java

@@ -21,6 +21,11 @@ public class UserSyncInfoView {
 	 */
 	private Boolean isVip = false;
 
+	/**
+	 * 是否被拉黑
+	 */
+	private Boolean isBlack = false;
+
 	/**
 	 * 会员开始时间
 	 */

+ 30 - 1
netflix-service/src/main/java/com/cyksj/service/user/impl/UserServiceImpl.java

@@ -935,6 +935,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 		}
 		User user = userMapper.selectById(userId);
 		syncInfoView.setGalaxyCoin(user.getGalaxyCoin());
+		syncInfoView.setIsBlack(user.getIsBlack());
 		return syncInfoView;
 	}
 
@@ -974,11 +975,39 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 			relateUser.setIsBlack(Boolean.TRUE);
 			userMapper.updateById(relateUser);
 
+			if (StrUtil.isNotBlank(relateUser.getLoginPhone())) {
+				UserBindDetail bindDetail = userBindDetailMapper.selectOne(Wrappers.lambdaQuery(UserBindDetail.class).eq(UserBindDetail::getPhone, relateUser.getLoginPhone()).last("limit 1"));
+				if (bindDetail != null) {
+					bindDetail.setPhone(null);
+					bindDetail.setPhoneUserId(null);
+					userBindDetailMapper.updateById(bindDetail);
+				}
+				relateUser.setLoginPhone(relateUser.getLoginPhone() + "#");
+			}
+			if (StrUtil.isNotBlank(relateUser.getEmail())) {
+				UserBindDetail bindDetail = userBindDetailMapper.selectOne(Wrappers.lambdaQuery(UserBindDetail.class).eq(UserBindDetail::getEmail, relateUser.getEmail()).last("limit 1"));
+				if (bindDetail != null) {
+					bindDetail.setEmail(null);
+					bindDetail.setEmailUserId(null);
+					userBindDetailMapper.updateById(bindDetail);
+				}
+				relateUser.setEmail(relateUser.getEmail() + "#");
+			}
+
+			if (StrUtil.isNotBlank(relateUser.getUnionid())) {
+				UserBindDetail bindDetail = userBindDetailMapper.selectOne(Wrappers.lambdaQuery(UserBindDetail.class).eq(UserBindDetail::getUserId, relateUser.getId()).last("limit 1"));
+				if (bindDetail != null) {
+					bindDetail.setUserId(null);
+					userBindDetailMapper.updateById(bindDetail);
+				}
+
+			}
+
 			//用户拉黑记录
 			UserBlackRecord userBlackRecord = new UserBlackRecord();
 			userBlackRecord.setOperateUserId(userId);
 			userBlackRecord.setUserId(relateUser.getId());
-			userBlackRecord.setStatus(user.getIsBlack());
+			userBlackRecord.setStatus(relateUser.getIsBlack());
 			blackRecordMapper.insert(userBlackRecord);
 		}
 	}

+ 53 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsUserController.java

@@ -94,6 +94,8 @@ public class CmsUserController{
 
     private final CmsVipUserService cmsVipUserService;
 
+    private final UserBlackRecordMapper blackRecordMapper;
+
     private final List<Long> no_blacks_userIds = List.of(375274l, 545599l, 523937l, 507498l, 604146l, 613437l, 651728l, 614100l, 604148l);
 
     @GetMapping("/get")
@@ -195,11 +197,13 @@ public class CmsUserController{
         if (no_blacks_userIds.contains(id)) {
             throw BusinessRuntimeException.getInstance("张凯已处理");
         }
+        long adminId = StpUtil.getLoginIdAsLong();
         User user = userMapper.selectById(id);
+        CmsUser cmsUser = cmsUserMapper.selectById(adminId);
         Optional.ofNullable(user).ifPresent(u -> {
-            u.setIsBlack(!u.getIsBlack());
-            if (u.getIsBlack()) {
-                List<Long> userIds = userBindRelationService.getRelationUserIdList(id, user);
+            Boolean isBlack = !u.getIsBlack();
+            List<Long> userIds = userBindRelationService.getRelationUserIdList(id, user);
+            if (isBlack) {
                 List<RenewalView> groupsRelations = beanSearcher.searchAll(RenewalView.class, MapUtils.builder()
                         .field(RenewalView::getUserId, 0).op(Operator.GreaterThan)
                         .field(RenewalView::getUserId, userIds).op(Operator.InList)
@@ -220,7 +224,52 @@ public class CmsUserController{
                     vipUserMapper.updateById(vipUser);
                 });
             }
-            userMapper.updateById(u);
+            List<User> users = userMapper.selectBatchIds(userIds);
+
+            for (User relateUser : users) {
+                relateUser.setIsBlack(isBlack);
+                userMapper.updateById(relateUser);
+
+                //拉黑 关联去掉
+                if (isBlack) {
+                    if (StrUtil.isNotBlank(relateUser.getLoginPhone())) {
+                        UserBindDetail bindDetail = userBindDetailMapper.selectOne(Wrappers.lambdaQuery(UserBindDetail.class).eq(UserBindDetail::getPhone, relateUser.getLoginPhone()).last("limit 1"));
+                        if (bindDetail != null) {
+                            bindDetail.setPhone(null);
+                            bindDetail.setPhoneUserId(null);
+                            userBindDetailMapper.updateById(bindDetail);
+                        }
+                        relateUser.setLoginPhone(relateUser.getLoginPhone() + "#");
+                    }
+                    if (StrUtil.isNotBlank(relateUser.getEmail())) {
+                        UserBindDetail bindDetail = userBindDetailMapper.selectOne(Wrappers.lambdaQuery(UserBindDetail.class).eq(UserBindDetail::getEmail, relateUser.getEmail()).last("limit 1"));
+                        if (bindDetail != null) {
+                            bindDetail.setEmail(null);
+                            bindDetail.setEmailUserId(null);
+                            userBindDetailMapper.updateById(bindDetail);
+                        }
+                        relateUser.setEmail(relateUser.getEmail() + "#");
+                    }
+
+                    if (StrUtil.isNotBlank(relateUser.getUnionid())) {
+                        UserBindDetail bindDetail = userBindDetailMapper.selectOne(Wrappers.lambdaQuery(UserBindDetail.class).eq(UserBindDetail::getUserId, relateUser.getId()).last("limit 1"));
+                        if (bindDetail != null) {
+                            bindDetail.setUserId(null);
+                            userBindDetailMapper.updateById(bindDetail);
+                        }
+
+                    }
+                }
+
+                //用户拉黑记录
+                UserBlackRecord userBlackRecord = new UserBlackRecord();
+                userBlackRecord.setUserId(relateUser.getId());
+                userBlackRecord.setStatus(relateUser.getIsBlack());
+                if (cmsUser != null) {
+                    userBlackRecord.setOperator(cmsUser.getNickname());
+                }
+                blackRecordMapper.insert(userBlackRecord);
+            }
         });
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }