This commit is contained in:
张良(004796)
2024-01-18 18:29:21 +08:00
parent fce0047b57
commit 3e5b7b9984
21 changed files with 768 additions and 28 deletions

View File

@@ -10,5 +10,7 @@ public class RedisConstant {
public static final String USER_GREET_TOTAL_REDIS = REDIS_P + "userGreetTotal:%s:%s";
public static final String USER_GREET_SEND_TIME_REDIS = REDIS_P + "userGreetSendTime:%s";
public static final String BLACK_REDIS = REDIS_P + "black:%s";
public static final String FORBID_CACHE_REDIS = REDIS_P + "forbid:%s";
}

View File

@@ -0,0 +1,95 @@
package com.ruoyi.cai.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.service.ForbidFilterService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 登陆拦截记录
*
* @author 77
* @date 2024-01-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/forbidFilter")
public class ForbidFilterController extends BaseController {
private final ForbidFilterService forbidFilterService;
/**
* 查询登陆拦截记录列表
*/
@SaCheckPermission("cai:forbidFilter:list")
@GetMapping("/list")
public TableDataInfo<ForbidFilter> list(ForbidFilter bo, PageQuery pageQuery) {
Page<ForbidFilter> page = forbidFilterService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取登陆拦截记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:forbidFilter:query")
@GetMapping("/{id}")
public R<ForbidFilter> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(forbidFilterService.getById(id));
}
/**
* 新增登陆拦截记录
*/
@SaCheckPermission("cai:forbidFilter:add")
@Log(title = "登陆拦截记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ForbidFilter bo) {
return toAjax(forbidFilterService.save(bo));
}
/**
* 修改登陆拦截记录
*/
@SaCheckPermission("cai:forbidFilter:edit")
@Log(title = "登陆拦截记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ForbidFilter bo) {
return toAjax(forbidFilterService.updateById(bo));
}
/**
* 删除登陆拦截记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:forbidFilter:remove")
@Log(title = "登陆拦截记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(forbidFilterService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,95 @@
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.service.UserForbidLogService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 封禁记录
*
* @author 77
* @date 2024-01-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/userForbidLog")
public class UserForbidLogController extends BaseController {
private final UserForbidLogService userForbidLogService;
/**
* 查询封禁记录列表
*/
@SaCheckPermission("cai:userForbidLog:list")
@GetMapping("/list")
public TableDataInfo<UserForbidLog> list(UserForbidLog bo, PageQuery pageQuery) {
Page<UserForbidLog> page = userForbidLogService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取封禁记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:userForbidLog:query")
@GetMapping("/{id}")
public R<UserForbidLog> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userForbidLogService.getById(id));
}
/**
* 新增封禁记录
*/
@SaCheckPermission("cai:userForbidLog:add")
@Log(title = "封禁记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserForbidLog bo) {
return toAjax(userForbidLogService.save(bo));
}
/**
* 修改封禁记录
*/
@SaCheckPermission("cai:userForbidLog:edit")
@Log(title = "封禁记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserForbidLog bo) {
return toAjax(userForbidLogService.updateById(bo));
}
/**
* 删除封禁记录
*
* @param ids 主键串
*/
@SaCheckPermission("cai:userForbidLog:remove")
@Log(title = "封禁记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userForbidLogService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,54 @@
package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 登陆拦截记录对象 cai_forbid_filter
*
* @author 77
* @date 2024-01-18
*/
@Data
@TableName("cai_forbid_filter")
public class ForbidFilter implements Serializable {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Long id;
/**
* 类型
*/
private Integer type;
/**
* 拦截数据
*/
private String member;
/**
* 拦截用户
*/
private Long userId;
/**
* 拦截编号
*/
private String traceNo;
/**
* 关联ID
*/
private Long forbidId;
/**
* 理由
*/
private String filterReason;
private LocalDateTime createTime;
}

View File

@@ -25,39 +25,14 @@ public class UserForbid implements Serializable {
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* 类型 1 封用户uid 2.封设备uuid 3.imei 4.mac
*/
private Integer type;
/**
* 封禁来源1.账号 2.聊天
*/
private Integer sourceId;
/**
*
*/
private String member;
/**
* 封号时长 1.封6小时 2.封1天 3.封3天 4.封5天 5.封7天 6.封一个月 7.封10年 8 一小时 9 三小时 10 十二小时
*/
private Integer forbidTime;
/**
* 开始时间
*/
private LocalDateTime beginTime;
/**
* 结束时间
*/
private LocalDateTime endTime;
/**
* 原始用户ID(后台编辑用)
*/
private Long originUid;
/**
* 理由
*/
private LocalDateTime createTime;
private String reason;
private LocalDateTime createTime;
// 1-封禁中 2-已解封
private Integer forbidStatus;
}

View File

@@ -0,0 +1,47 @@
package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 封禁记录对象 cai_user_forbid_log
*
* @author 77
* @date 2024-01-18
*/
@Data
@TableName("cai_user_forbid_log")
public class UserForbidLog implements Serializable {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* 类型 1 封用户uid 2.封设备uuid 3.imei 4.ip
*/
private Integer type;
/**
*
*/
private String member;
/**
* 封号时长 1.封6小时 2.封1天 3.封3天 4.封7天 5.封一个月 6.封10年
*/
private Integer forbidTime;
/**
* 理由
*/
private String reason;
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,16 @@
package com.ruoyi.cai.dto.admin;
import lombok.Data;
@Data
public class UserForbidDTO {
// 封禁时间
private Integer forbidTime;
// 封禁类型
private Integer forbidType;
// 封禁内容
private String member;
// 封禁备注
private String remark;
}

View File

@@ -0,0 +1,37 @@
package com.ruoyi.cai.enums;
import lombok.Getter;
/**
* 1.封6小时 2.封1天 3.封3天 4.封7天 5.封一个月 6.封10年
* <p>created on 2024/1/18 15:01</p>
* @author 77
*/
@Getter
public enum ForbidTimeEnum {
HOUSE_6(1,"封6小时"),
DAY_1(2,"封1天"),
DAY_3(3,"封3天"),
DAY_7(4,"封7天"),
MONTH_1(5,"封一个月"),
YEAR_10(6,"封10年"),
;
private final Integer code;
private final String text;
ForbidTimeEnum(Integer code, String text) {
this.code = code;
this.text = text;
}
public static ForbidTimeEnum getByCode(Integer code){
ForbidTimeEnum[] values = ForbidTimeEnum.values();
for (ForbidTimeEnum value : values) {
if(value.getCode().equals(code)){
return value;
}
}
return null;
}
}

View File

@@ -0,0 +1,31 @@
package com.ruoyi.cai.enums;
import lombok.Getter;
@Getter
public enum ForbidTypeEnum {
USER(1,"封用户"),
UUID(2,"封设备"),
IMEI(3,"封IMEI"),
MAC(4,"封MAC"),
IP(5,"封IP"),
;
private final Integer code;
private final String text;
ForbidTypeEnum(Integer code, String text) {
this.code = code;
this.text = text;
}
public static ForbidTypeEnum getByCode(Integer code){
ForbidTypeEnum[] values = ForbidTypeEnum.values();
for (ForbidTypeEnum value : values) {
if(value.getCode().equals(code)){
return value;
}
}
return null;
}
}

View File

@@ -0,0 +1,37 @@
package com.ruoyi.cai.manager;
import com.ruoyi.cai.constant.RedisConstant;
import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.ws.util.MapGetUtil;
import org.redisson.api.RMap;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class ForbidCache {
@Autowired
private RedissonClient redissonClient;
private String getKey(Integer type){
return String.format(RedisConstant.FORBID_CACHE_REDIS,type);
}
public void addForbid(UserForbid userForbid){
RMap<Object, Object> redisMap = redissonClient.getMap(getKey(userForbid.getType()));
redisMap.put(userForbid.getMember(),userForbid.getId());
}
public Long checkForbid(String member, ForbidTypeEnum forbidTypeEnum){
String key = getKey(forbidTypeEnum.getCode());
RMap<Object, Object> redisMap = redissonClient.getMap(key);
if(!redisMap.containsKey(member)){
return null;
}
Object o = redisMap.get(member);
return MapGetUtil.getLong(o);
}
}

View File

@@ -0,0 +1,134 @@
package com.ruoyi.cai.manager;
import com.alibaba.fastjson.JSON;
import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.dto.admin.UserForbidDTO;
import com.ruoyi.cai.enums.ForbidTimeEnum;
import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.service.ForbidFilterService;
import com.ruoyi.cai.service.UserForbidLogService;
import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.cai.service.UserService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.Serializable;
@Component
@Slf4j
public class UserForbidManager {
@Autowired
private UserForbidLogService userForbidLogService;
@Autowired
private UserForbidService userForbidService;
@Autowired
private UserService userService;
@Autowired
private ForbidCache forbidCache;
@Autowired
private ForbidFilterService forbidFilterService;
/**
* 封禁总入口
*/
public void forbid(UserForbidDTO userForbidDTO){
ForbidTimeEnum forbidTime = ForbidTimeEnum.getByCode(userForbidDTO.getForbidTime());
ForbidTypeEnum forbidType = ForbidTypeEnum.getByCode(userForbidDTO.getForbidType());
if(forbidTime == null || forbidType == null){
log.error("封禁入参错误 data={}", JSON.toJSONString(userForbidDTO));
return;
}
User user = null;
if(forbidType == ForbidTypeEnum.USER){
user = userService.getById(userForbidDTO.getMember());
if(user == null){
return;
}
}
UserForbidLog userForbidLog = new UserForbidLog();
userForbidLog.setType(userForbidDTO.getForbidType());
userForbidLog.setMember(userForbidDTO.getMember());
userForbidLog.setForbidTime(userForbidDTO.getForbidTime());
userForbidLog.setReason(userForbidDTO.getRemark());
userForbidLogService.save(userForbidLog);
userForbidService.forbid(userForbidLog,user);
}
public CheckForbid checkForbid(Long userId,String IMEI,String ip){
ForbidTypeEnum typeEnum;
CheckForbid noForbid = CheckForbid.noForbid();
String member;
Long forbidId;
if(userId != null){
forbidId = forbidCache.checkForbid(userId + "", ForbidTypeEnum.USER);
if(forbidId == null){
return noForbid;
}
member = userId+"";
typeEnum = ForbidTypeEnum.USER;
String traceId = IdManager.nextIdStr();
noForbid = CheckForbid.forbid(traceId);
noForbid.setMessage("您的账号已被封禁");
}else if(IMEI != null){
forbidId = forbidCache.checkForbid(IMEI, ForbidTypeEnum.IMEI);
if(forbidId == null){
return noForbid;
}
member = IMEI;
typeEnum = ForbidTypeEnum.IMEI;
String traceId = IdManager.nextIdStr();
noForbid = CheckForbid.forbid(traceId);
noForbid.setMessage("您的设备已被封禁");
}else if(ip != null){
forbidId = forbidCache.checkForbid(ip, ForbidTypeEnum.IP);
if(forbidId == null){
return noForbid;
}
member = ip;
typeEnum = ForbidTypeEnum.IP;
String traceId = IdManager.nextIdStr();
noForbid = CheckForbid.forbid(traceId);
noForbid.setMessage("您的IP已被封禁");
}else{
return noForbid;
}
if(noForbid.isForbid()){
// 保存拦截记录
ForbidFilter filter = new ForbidFilter();
filter.setType(typeEnum.getCode());
filter.setMember(member);
filter.setUserId(userId);
filter.setTraceNo(noForbid.getTraceId());
filter.setForbidId(forbidId);
filter.setFilterReason(noForbid.getMessage());
forbidFilterService.addForbidFilter(filter);
}
return noForbid;
}
@Data
public static class CheckForbid implements Serializable {
// 是否已经被封禁
private boolean forbid = false;
private String traceId;
private String message;
public static CheckForbid noForbid(){
return new CheckForbid();
}
public static CheckForbid forbid(String traceId){
CheckForbid checkForbid = new CheckForbid();
checkForbid.setForbid(true);
checkForbid.setTraceId(traceId);
return checkForbid;
}
}
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cai.domain.ForbidFilter;
/**
* 登陆拦截记录Mapper接口
*
* @author 77
* @date 2024-01-18
*/
public interface ForbidFilterMapper extends BaseMapper<ForbidFilter> {
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cai.domain.UserForbidLog;
/**
* 封禁记录Mapper接口
*
* @author 77
* @date 2024-01-18
*/
public interface UserForbidLogMapper extends BaseMapper<UserForbidLog> {
}

View File

@@ -0,0 +1,16 @@
package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.enums.ForbidTypeEnum;
/**
* 登陆拦截记录Service接口
*
* @author 77
* @date 2024-01-18
*/
public interface ForbidFilterService extends IService<ForbidFilter> {
void addForbidFilter(ForbidFilter forbidFilter);
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.UserForbidLog;
/**
* 封禁记录Service接口
*
* @author 77
* @date 2024-01-18
*/
public interface UserForbidLogService extends IService<UserForbidLog> {
}

View File

@@ -1,7 +1,9 @@
package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.domain.UserForbidLog;
/**
* 封号列表Service接口
@@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.UserForbid;
*/
public interface UserForbidService extends IService<UserForbid> {
void forbid(UserForbidLog userForbidLog, User user);
}

View File

@@ -0,0 +1,25 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.ForbidFilter;
import com.ruoyi.cai.executor.ExecutorConstant;
import com.ruoyi.cai.mapper.ForbidFilterMapper;
import com.ruoyi.cai.service.ForbidFilterService;
import org.springframework.stereotype.Service;
/**
* 登陆拦截记录Service业务层处理
*
* @author 77
* @date 2024-01-18
*/
@Service
public class ForbidFilterServiceImpl extends ServiceImpl<ForbidFilterMapper,ForbidFilter> implements ForbidFilterService {
@Override
public void addForbidFilter(ForbidFilter forbidFilter) {
ExecutorConstant.COMMON_EXECUTOR.execute(() -> {
this.save(forbidFilter);
});
}
}

View File

@@ -0,0 +1,18 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.mapper.UserForbidLogMapper;
import com.ruoyi.cai.service.UserForbidLogService;
import org.springframework.stereotype.Service;
/**
* 封禁记录Service业务层处理
*
* @author 77
* @date 2024-01-18
*/
@Service
public class UserForbidLogServiceImpl extends ServiceImpl<UserForbidLogMapper,UserForbidLog> implements UserForbidLogService {
}

View File

@@ -1,11 +1,25 @@
package com.ruoyi.cai.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.Anchor;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserForbid;
import com.ruoyi.cai.domain.UserForbidLog;
import com.ruoyi.cai.enums.ForbidTimeEnum;
import com.ruoyi.cai.enums.ForbidTypeEnum;
import com.ruoyi.cai.manager.ForbidCache;
import com.ruoyi.cai.mapper.UserForbidMapper;
import com.ruoyi.cai.service.AnchorService;
import com.ruoyi.cai.service.UserForbidService;
import com.ruoyi.cai.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 封号列表Service业务层处理
*
@@ -13,6 +27,68 @@ import org.springframework.stereotype.Service;
* @date 2023-12-21
*/
@Service
@Slf4j
public class UserForbidServiceImpl extends ServiceImpl<UserForbidMapper, UserForbid> implements UserForbidService {
@Autowired
private UserService userService;
@Autowired
private AnchorService anchorService;
@Autowired
private ForbidCache forbidCache;
@Override
public void forbid(UserForbidLog userForbidLog, User user) {
ForbidTimeEnum forbidTime = ForbidTimeEnum.getByCode(userForbidLog.getForbidTime());
ForbidTypeEnum forbidType = ForbidTypeEnum.getByCode(userForbidLog.getType());
if(forbidTime == null || forbidType == null){
log.error("封禁入参错误 data={}", JSON.toJSONString(userForbidLog));
return;
}
UserForbid one = this.getOne(Wrappers.lambdaQuery(UserForbid.class)
.eq(UserForbid::getMember, userForbidLog.getMember())
.eq(UserForbid::getType, forbidType.getCode()));
if(one == null){
one = new UserForbid();
one.setType(userForbidLog.getType());
one.setMember(userForbidLog.getMember());
one.setBeginTime(LocalDateTime.now());
} else if(one.getForbidStatus() == 2){ // 已解封
one.setBeginTime(LocalDateTime.now());
} else if(one.getForbidStatus() == 1 && one.getEndTime().isBefore(LocalDateTime.now())){
one.setBeginTime(LocalDateTime.now());
}
LocalDateTime endTime = getEndTime(one.getBeginTime(), forbidTime);
if(endTime == null){
return;
}
one.setEndTime(endTime);
one.setReason(userForbidLog.getReason());
this.save(one);
if(user != null){
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));
}
forbidCache.addForbid(one);
}
private LocalDateTime getEndTime(LocalDateTime beginTime, ForbidTimeEnum time){
switch (time){
case DAY_1:
return beginTime.plusDays(1);
case DAY_3:
return beginTime.plusDays(3);
case DAY_7:
return beginTime.plusDays(7);
case HOUSE_6:
return beginTime.plusHours(6);
case MONTH_1:
return beginTime.plusMonths(1);
case YEAR_10:
return beginTime.plusYears(10);
default:
break;
}
return null;
}
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.ForbidFilterMapper">
<resultMap type="com.ruoyi.cai.domain.ForbidFilter" id="ForbidFilterResult">
<result property="id" column="id"/>
<result property="type" column="type"/>
<result property="member" column="member"/>
<result property="userId" column="user_id"/>
<result property="traceNo" column="trace_no"/>
<result property="forbidId" column="forbid_id"/>
<result property="createTime" column="create_time"/>
<result property="filterReason" column="filter_reason"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.cai.mapper.UserForbidLogMapper">
<resultMap type="com.ruoyi.cai.domain.UserForbidLog" id="UserForbidLogResult">
<result property="id" column="id"/>
<result property="type" column="type"/>
<result property="member" column="member"/>
<result property="forbidTime" column="forbid_time"/>
<result property="createTime" column="create_time"/>
<result property="originUid" column="origin_uid"/>
<result property="reason" column="reason"/>
</resultMap>
</mapper>