This commit is contained in:
dute7liang
2024-01-19 00:11:27 +08:00
parent a5bd7060a7
commit d35e93b0a7
24 changed files with 271 additions and 51 deletions

View File

@@ -14,6 +14,7 @@ import com.ruoyi.cai.executor.ExecutorConstant;
import com.ruoyi.cai.manager.CodeManager; import com.ruoyi.cai.manager.CodeManager;
import com.ruoyi.cai.manager.LockManager; import com.ruoyi.cai.manager.LockManager;
import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.manager.UserForbidManager;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
@@ -77,12 +78,18 @@ public class CaiLoginManager {
private ImUserClient imUserClient; private ImUserClient imUserClient;
@Autowired @Autowired
private UserCountService userCountService; private UserCountService userCountService;
@Autowired
private UserForbidManager userForbidManager;
public String login(String username,String password){ public String login(String username,String password){
User user = userService.getByUsername(username); User user = userService.getByUsername(username);
if(user == null){ if(user == null){
throw new ServiceException("用户不存在或密码错误"); throw new ServiceException("用户不存在或密码错误");
} }
UserForbidManager.CheckForbid forbid = userForbidManager.checkForbid(user.getId(), user.getUsercode(), null, ServletUtils.getClientIP());
if(forbid != null && forbid.isForbid()){
throw new ServiceException(forbid.getMessage());
}
if(user.getStatus() != 0){ if(user.getStatus() != 0){
throw new ServiceException("用户已封禁,请联系客服"); throw new ServiceException("用户已封禁,请联系客服");
} }

View File

@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.ForbidFilter; import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.dto.admin.vo.ForbidFilterAdminVo;
import com.ruoyi.cai.service.ForbidFilterService; import com.ruoyi.cai.service.ForbidFilterService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
@@ -41,8 +42,8 @@ public class ForbidFilterController extends BaseController {
*/ */
@SaCheckPermission("cai:forbidFilter:list") @SaCheckPermission("cai:forbidFilter:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<ForbidFilter> list(ForbidFilter bo, PageQuery pageQuery) { public TableDataInfo<ForbidFilterAdminVo> list(ForbidFilterAdminVo bo, PageQuery pageQuery) {
Page<ForbidFilter> page = forbidFilterService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); Page<ForbidFilterAdminVo> page = forbidFilterService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }

View File

@@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.admin.query.ResetPasswordReq; import com.ruoyi.cai.dto.admin.query.ResetPasswordReq;
import com.ruoyi.cai.dto.admin.query.UpdateMobileAdminReq; import com.ruoyi.cai.dto.admin.query.UpdateMobileAdminReq;
import com.ruoyi.cai.dto.admin.query.UserForbidReq;
import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq; import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo; import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
import com.ruoyi.cai.dto.admin.vo.UserFullAdminVo; import com.ruoyi.cai.dto.admin.vo.UserFullAdminVo;
import com.ruoyi.cai.manager.UserAdminManager; import com.ruoyi.cai.manager.UserAdminManager;
import com.ruoyi.cai.manager.UserForbidManager;
import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.cai.service.UserService; import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
@@ -22,6 +25,7 @@ import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -71,6 +75,16 @@ public class UserController extends BaseController {
return R.ok(users.stream().map(User::getUsercode).collect(Collectors.toList())); return R.ok(users.stream().map(User::getUsercode).collect(Collectors.toList()));
} }
@Autowired
private UserForbidManager userForbidManager;
@PostMapping("/userForbid")
public R<Void> userForbid(@RequestBody UserForbidReq userForbidReq){
userForbidManager.batchForbid(userForbidReq);
return R.ok();
}
/** /**
* 获取用户详细信息 * 获取用户详细信息

View File

@@ -4,6 +4,8 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserForbid; import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
import com.ruoyi.cai.manager.UserForbidManager;
import com.ruoyi.cai.service.UserForbidService; import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
@@ -15,6 +17,7 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -35,14 +38,16 @@ import java.util.Arrays;
public class UserForbidController extends BaseController { public class UserForbidController extends BaseController {
private final UserForbidService userForbidService; private final UserForbidService userForbidService;
@Autowired
private UserForbidManager userForbidManager;
/** /**
* 查询封号列表列表 * 查询封号列表列表
*/ */
@SaCheckPermission("cai:userForbid:list") @SaCheckPermission("cai:userForbid:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<UserForbid> list(UserForbid bo, PageQuery pageQuery) { public TableDataInfo<UserForbidAdminVo> list(UserForbidAdminVo bo, PageQuery pageQuery) {
Page<UserForbid> page = userForbidService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); Page<UserForbidAdminVo> page = userForbidService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@@ -69,6 +74,14 @@ public class UserForbidController extends BaseController {
return toAjax(userForbidService.save(bo)); return toAjax(userForbidService.save(bo));
} }
@Log(title = "解封", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/un/forbid")
public R<Void> unForbid(Long id) {
userForbidManager.unForbidByForbidId(id);
return R.ok();
}
/** /**
* 修改封号列表 * 修改封号列表
*/ */

View File

@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserForbidLog; import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.vo.UserForbidLogAdminVo;
import com.ruoyi.cai.service.UserForbidLogService; import com.ruoyi.cai.service.UserForbidLogService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
@@ -41,8 +42,8 @@ public class UserForbidLogController extends BaseController {
*/ */
@SaCheckPermission("cai:userForbidLog:list") @SaCheckPermission("cai:userForbidLog:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<UserForbidLog> list(UserForbidLog bo, PageQuery pageQuery) { public TableDataInfo<UserForbidLogAdminVo> list(UserForbidLogAdminVo bo, PageQuery pageQuery) {
Page<UserForbidLog> page = userForbidLogService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); Page<UserForbidLogAdminVo> page = userForbidLogService.pageAdmin(pageQuery,bo);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }

View File

@@ -1,5 +1,6 @@
package com.ruoyi.cai.domain; package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@@ -22,7 +23,7 @@ public class ForbidFilter implements Serializable {
/** /**
* *
*/ */
@TableId(value = "id") @TableId(value = "id",type = IdType.AUTO)
private Long id; private Long id;
/** /**
* 类型 * 类型

View File

@@ -0,0 +1,13 @@
package com.ruoyi.cai.dto.admin.query;
import lombok.Data;
import java.util.List;
@Data
public class UserForbidReq {
private Long userId;
private List<Integer> type;
private Integer forbidTime;
private String reason;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.ForbidFilter;
import lombok.Data;
@Data
public class ForbidFilterAdminVo extends ForbidFilter {
private String userUsercode;
private String userMobile;
private String memberNickname;
private String memberAvatar;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserForbid;
import lombok.Data;
@Data
public class UserForbidAdminVo extends UserForbid {
private String usercode;
private String mobile;
private String nickname;
private String avatar;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserForbidLog;
import lombok.Data;
@Data
public class UserForbidLogAdminVo extends UserForbidLog {
private String usercode;
private String mobile;
private String nickname;
private String avatar;
}

View File

@@ -34,4 +34,10 @@ public class ForbidCache {
return MapGetUtil.getLong(o); return MapGetUtil.getLong(o);
} }
public void unForbid(Integer type, String member) {
String key = this.getKey(type);
RMap<Object, Object> redisMap = redissonClient.getMap(key);
redisMap.remove(member);
}
} }

View File

@@ -1,22 +1,22 @@
package com.ruoyi.cai.manager; package com.ruoyi.cai.manager;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.ruoyi.cai.domain.ForbidFilter; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.cai.domain.User; import com.rabbitmq.client.LongString;
import com.ruoyi.cai.domain.UserForbidLog; import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.admin.UserForbidDTO; import com.ruoyi.cai.dto.admin.UserForbidDTO;
import com.ruoyi.cai.dto.admin.query.UserForbidReq;
import com.ruoyi.cai.enums.ForbidTimeEnum; import com.ruoyi.cai.enums.ForbidTimeEnum;
import com.ruoyi.cai.enums.ForbidTypeEnum; import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.service.ForbidFilterService; import com.ruoyi.cai.service.*;
import com.ruoyi.cai.service.UserForbidLogService; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.cai.service.UserService;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
@Component @Component
@Slf4j @Slf4j
@@ -31,7 +31,33 @@ public class UserForbidManager {
private ForbidCache forbidCache; private ForbidCache forbidCache;
@Autowired @Autowired
private ForbidFilterService forbidFilterService; private ForbidFilterService forbidFilterService;
@Autowired
private UserInfoService userInfoService;
public void batchForbid(UserForbidReq userForbidReq){
List<Integer> type = userForbidReq.getType();
User user = userService.getById(userForbidReq.getUserId());
for (Integer integer : type) {
if(integer == 1){ // 封用户
UserForbidDTO dto = new UserForbidDTO();
dto.setForbidTime(userForbidReq.getForbidTime());
dto.setForbidType(ForbidTypeEnum.USER.getCode());
dto.setMember(user.getUsercode());
dto.setRemark(userForbidReq.getReason());
this.forbid(dto);
}else if(integer == 2){ // 封设备
// 封设备
}else if(integer == 3){ // 封IP
UserInfo userInfo = userInfoService.getByUserId(user.getId());
UserForbidDTO dto = new UserForbidDTO();
dto.setForbidTime(userForbidReq.getForbidTime());
dto.setForbidType(ForbidTypeEnum.IP.getCode());
dto.setMember(userInfo.getLastLoginIp());
dto.setRemark(userForbidReq.getReason());
this.forbid(dto);
}
}
}
/** /**
* 封禁总入口 * 封禁总入口
@@ -45,7 +71,7 @@ public class UserForbidManager {
} }
User user = null; User user = null;
if(forbidType == ForbidTypeEnum.USER){ if(forbidType == ForbidTypeEnum.USER){
user = userService.getById(userForbidDTO.getMember()); user = userService.getByUserCode(userForbidDTO.getMember());
if(user == null){ if(user == null){
return; return;
} }
@@ -59,17 +85,17 @@ public class UserForbidManager {
userForbidService.forbid(userForbidLog,user); userForbidService.forbid(userForbidLog,user);
} }
public CheckForbid checkForbid(Long userId,String IMEI,String ip){ public CheckForbid checkForbid(Long userId,String usercode, String IMEI, String ip){
ForbidTypeEnum typeEnum; ForbidTypeEnum typeEnum;
CheckForbid noForbid = CheckForbid.noForbid(); CheckForbid noForbid = CheckForbid.noForbid();
String member; String member;
Long forbidId; Long forbidId;
if(userId != null){ if(StringUtils.isNotEmpty(usercode)){
forbidId = forbidCache.checkForbid(userId + "", ForbidTypeEnum.USER); forbidId = forbidCache.checkForbid(usercode, ForbidTypeEnum.USER);
if(forbidId == null){ if(forbidId == null){
return noForbid; return noForbid;
} }
member = userId+""; member = usercode;
typeEnum = ForbidTypeEnum.USER; typeEnum = ForbidTypeEnum.USER;
String traceId = IdManager.nextIdStr(); String traceId = IdManager.nextIdStr();
noForbid = CheckForbid.forbid(traceId); noForbid = CheckForbid.forbid(traceId);
@@ -112,6 +138,18 @@ public class UserForbidManager {
return noForbid; return noForbid;
} }
public void unForbidByForbidId(Long id) {
UserForbid userForbid = userForbidService.getById(id);
this.unForbid(userForbid.getType(),userForbid.getMember());
userForbidService.update(Wrappers.lambdaUpdate(UserForbid.class)
.eq(UserForbid::getId,userForbid.getId())
.set(UserForbid::getForbidStatus,2));
}
public void unForbid(Integer type,String member){
forbidCache.unForbid(type,member);
}
@Data @Data
public static class CheckForbid implements Serializable { public static class CheckForbid implements Serializable {
// 是否已经被封禁 // 是否已经被封禁

View File

@@ -1,7 +1,10 @@
package com.ruoyi.cai.mapper; package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.ForbidFilter; import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.dto.admin.vo.ForbidFilterAdminVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 登陆拦截记录Mapper接口 * 登陆拦截记录Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.ForbidFilter;
*/ */
public interface ForbidFilterMapper extends BaseMapper<ForbidFilter> { public interface ForbidFilterMapper extends BaseMapper<ForbidFilter> {
Page<ForbidFilterAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") ForbidFilterAdminVo bo);
} }

View File

@@ -1,7 +1,10 @@
package com.ruoyi.cai.mapper; package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserForbidLog; import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.vo.UserForbidLogAdminVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 封禁记录Mapper接口 * 封禁记录Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.UserForbidLog;
*/ */
public interface UserForbidLogMapper extends BaseMapper<UserForbidLog> { public interface UserForbidLogMapper extends BaseMapper<UserForbidLog> {
Page<UserForbidLogAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserForbidLogAdminVo bo);
} }

View File

@@ -1,7 +1,10 @@
package com.ruoyi.cai.mapper; package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserForbid; import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 封号列表Mapper接口 * 封号列表Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.UserForbid;
*/ */
public interface UserForbidMapper extends BaseMapper<UserForbid> { public interface UserForbidMapper extends BaseMapper<UserForbid> {
Page<UserForbidAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserForbidAdminVo bo);
} }

View File

@@ -1,8 +1,11 @@
package com.ruoyi.cai.service; package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.ForbidFilter; import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.dto.admin.vo.ForbidFilterAdminVo;
import com.ruoyi.cai.enums.ForbidTypeEnum; import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.common.core.domain.PageQuery;
/** /**
* 登陆拦截记录Service接口 * 登陆拦截记录Service接口
@@ -13,4 +16,6 @@ import com.ruoyi.cai.enums.ForbidTypeEnum;
public interface ForbidFilterService extends IService<ForbidFilter> { public interface ForbidFilterService extends IService<ForbidFilter> {
void addForbidFilter(ForbidFilter forbidFilter); void addForbidFilter(ForbidFilter forbidFilter);
Page<ForbidFilterAdminVo> pageAdmin(PageQuery pageQuery, ForbidFilterAdminVo bo);
} }

View File

@@ -1,7 +1,10 @@
package com.ruoyi.cai.service; package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.UserForbidLog; import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.vo.UserForbidLogAdminVo;
import com.ruoyi.common.core.domain.PageQuery;
/** /**
* 封禁记录Service接口 * 封禁记录Service接口
@@ -11,4 +14,5 @@ import com.ruoyi.cai.domain.UserForbidLog;
*/ */
public interface UserForbidLogService extends IService<UserForbidLog> { public interface UserForbidLogService extends IService<UserForbidLog> {
Page<UserForbidLogAdminVo> pageAdmin(PageQuery pageQuery, UserForbidLogAdminVo bo);
} }

View File

@@ -1,9 +1,13 @@
package com.ruoyi.cai.service; package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserForbid; import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.domain.UserForbidLog; import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.query.UserForbidReq;
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
import com.ruoyi.common.core.domain.PageQuery;
/** /**
* 封号列表Service接口 * 封号列表Service接口
@@ -14,4 +18,6 @@ import com.ruoyi.cai.domain.UserForbidLog;
public interface UserForbidService extends IService<UserForbid> { public interface UserForbidService extends IService<UserForbid> {
void forbid(UserForbidLog userForbidLog, User user); void forbid(UserForbidLog userForbidLog, User user);
Page<UserForbidAdminVo> pageAdmin(PageQuery pageQuery, UserForbidAdminVo bo);
} }

View File

@@ -1,10 +1,13 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.ForbidFilter; import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.dto.admin.vo.ForbidFilterAdminVo;
import com.ruoyi.cai.executor.ExecutorConstant; import com.ruoyi.cai.executor.ExecutorConstant;
import com.ruoyi.cai.mapper.ForbidFilterMapper; import com.ruoyi.cai.mapper.ForbidFilterMapper;
import com.ruoyi.cai.service.ForbidFilterService; import com.ruoyi.cai.service.ForbidFilterService;
import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@@ -22,4 +25,9 @@ public class ForbidFilterServiceImpl extends ServiceImpl<ForbidFilterMapper,Forb
this.save(forbidFilter); this.save(forbidFilter);
}); });
} }
@Override
public Page<ForbidFilterAdminVo> pageAdmin(PageQuery pageQuery, ForbidFilterAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo);
}
} }

View File

@@ -1,9 +1,12 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.UserForbidLog; import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.vo.UserForbidLogAdminVo;
import com.ruoyi.cai.mapper.UserForbidLogMapper; import com.ruoyi.cai.mapper.UserForbidLogMapper;
import com.ruoyi.cai.service.UserForbidLogService; import com.ruoyi.cai.service.UserForbidLogService;
import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@@ -15,4 +18,8 @@ import org.springframework.stereotype.Service;
@Service @Service
public class UserForbidLogServiceImpl extends ServiceImpl<UserForbidLogMapper,UserForbidLog> implements UserForbidLogService { public class UserForbidLogServiceImpl extends ServiceImpl<UserForbidLogMapper,UserForbidLog> implements UserForbidLogService {
@Override
public Page<UserForbidLogAdminVo> pageAdmin(PageQuery pageQuery, UserForbidLogAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo);
}
} }

View File

@@ -2,11 +2,14 @@ package com.ruoyi.cai.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.Anchor; import com.ruoyi.cai.domain.Anchor;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserForbid; import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.domain.UserForbidLog; import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.query.UserForbidReq;
import com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo;
import com.ruoyi.cai.enums.ForbidTimeEnum; import com.ruoyi.cai.enums.ForbidTimeEnum;
import com.ruoyi.cai.enums.ForbidTypeEnum; import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.manager.ForbidCache; import com.ruoyi.cai.manager.ForbidCache;
@@ -14,6 +17,7 @@ import com.ruoyi.cai.mapper.UserForbidMapper;
import com.ruoyi.cai.service.AnchorService; import com.ruoyi.cai.service.AnchorService;
import com.ruoyi.cai.service.UserForbidService; import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.cai.service.UserService; import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.core.domain.PageQuery;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -64,7 +68,8 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
} }
one.setEndTime(endTime); one.setEndTime(endTime);
one.setReason(userForbidLog.getReason()); one.setReason(userForbidLog.getReason());
this.save(one); one.setForbidStatus(1);
this.saveOrUpdate(one);
if(user != null){ if(user != null){
userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getStatus,1)); userService.update(Wrappers.lambdaUpdate(User.class).eq(User::getId,user.getId()).set(User::getStatus,1));
anchorService.update(Wrappers.lambdaUpdate(Anchor.class).eq(Anchor::getId,user.getId()).set(Anchor::getStatus,1)); anchorService.update(Wrappers.lambdaUpdate(Anchor.class).eq(Anchor::getId,user.getId()).set(Anchor::getStatus,1));
@@ -72,6 +77,11 @@ public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserFor
forbidCache.addForbid(one); forbidCache.addForbid(one);
} }
@Override
public Page<UserForbidAdminVo> pageAdmin(PageQuery pageQuery, UserForbidAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo);
}
private LocalDateTime getEndTime(LocalDateTime beginTime, ForbidTimeEnum time){ private LocalDateTime getEndTime(LocalDateTime beginTime, ForbidTimeEnum time){
switch (time){ switch (time){
case DAY_1: case DAY_1:

View File

@@ -4,16 +4,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.ForbidFilterMapper"> <mapper namespace="com.ruoyi.cai.mapper.ForbidFilterMapper">
<resultMap type="com.ruoyi.cai.domain.ForbidFilter" id="ForbidFilterResult"> <select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.ForbidFilterAdminVo">
<result property="id" column="id"/> select t1.*,
<result property="type" column="type"/> t2.usercode as user_usercode,t2.mobile as user_mobile,
<result property="member" column="member"/> t3.nickname as member_nickname, t3.avatar as member_avatar
<result property="userId" column="user_id"/> from cai_forbid_filter t1
<result property="traceNo" column="trace_no"/> left join cai_user t2 on t1.user_id = t2.id
<result property="forbidId" column="forbid_id"/> left join cai_user t3 on t1.member = t3.usercode and t1.type = 1
<result property="createTime" column="create_time"/> <where>
<result property="filterReason" column="filter_reason"/> <if test="bo.userMobile != null and bo.userMobile != ''">
</resultMap> and t2.mobile = #{bo.userMobile}
</if>
<if test="bo.userUsercode != null and bo.userUsercode != ''">
and t2.usercode = #{bo.userUsercode}
</if>
<if test="bo.traceNo != null and bo.traceNo != ''">
and t1.trace_no = #{bo.traceNo}
</if>
<if test="bo.type != null">
and t1.type = #{bo.type}
</if>
<if test="bo.member != null and bo.member != ''">
and t1.member = #{bo.member}
</if>
</where>
order by t1.create_time desc
</select>
</mapper> </mapper>

View File

@@ -4,15 +4,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.UserForbidLogMapper"> <mapper namespace="com.ruoyi.cai.mapper.UserForbidLogMapper">
<resultMap type="com.ruoyi.cai.domain.UserForbidLog" id="UserForbidLogResult"> <select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.UserForbidLogAdminVo">
<result property="id" column="id"/> select t1.*,t2.usercode,t2.mobile,t2.avatar,t2.nickname
<result property="type" column="type"/> from cai_user_forbid_log t1
<result property="member" column="member"/> left join cai_user t2 on t1.member = t2.usercode and t1.type = 1
<result property="forbidTime" column="forbid_time"/> <where>
<result property="createTime" column="create_time"/> <if test="bo.mobile != null and bo.mobile != ''">
<result property="originUid" column="origin_uid"/> and t2.mobile = #{bo.mobile}
<result property="reason" column="reason"/> </if>
</resultMap> <if test="bo.usercode != null and bo.usercode != ''">
and t2.usercode = #{bo.usercode}
</if>
<if test="bo.type != null">
and t1.type = #{bo.type}
</if>
<if test="bo.forbidTime != null">
and t1.forbid_time = #{bo.forbidTime}
</if>
<if test="bo.member != null and bo.member != ''">
and t1.member = #{bo.member}
</if>
</where>
order by t1.create_time desc
</select>
</mapper> </mapper>

View File

@@ -4,18 +4,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.UserForbidMapper"> <mapper namespace="com.ruoyi.cai.mapper.UserForbidMapper">
<resultMap type="com.ruoyi.cai.domain.UserForbid" id="CaiUserForbidResult"> <select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.UserForbidAdminVo">
<result property="id" column="id"/> select t1.*,t2.usercode,t2.mobile,t2.avatar,t2.nickname
<result property="type" column="type"/> from cai_user_forbid t1
<result property="sourceId" column="source_id"/> left join cai_user t2 on t1.member = t2.usercode and t1.type = 1
<result property="member" column="member"/> <where>
<result property="forbidTime" column="forbid_time"/> <if test="bo.mobile != null and bo.mobile != ''">
<result property="beginTime" column="begin_time"/> and t2.mobile = #{bo.mobile}
<result property="endTime" column="end_time"/> </if>
<result property="createTime" column="create_time"/> <if test="bo.usercode != null and bo.usercode != ''">
<result property="originUid" column="origin_uid"/> and t2.usercode = #{bo.usercode}
<result property="reason" column="reason"/> </if>
</resultMap> <if test="bo.type != null">
and t1.type = #{bo.type}
</if>
<if test="bo.member != null and bo.member != ''">
and t1.member = #{bo.member}
</if>
</where>
order by t1.create_time desc
</select>
</mapper> </mapper>