init
This commit is contained in:
@@ -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("用户已封禁,请联系客服");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户详细信息
|
* 获取用户详细信息
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改封号列表
|
* 修改封号列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
/**
|
/**
|
||||||
* 类型
|
* 类型
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
// 是否已经被封禁
|
// 是否已经被封禁
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user