新增地区限制访问列表管理
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package com.accompany.admin.vo.ip;
|
||||
|
||||
import com.accompany.business.model.ip.IpRegionLimitRecord;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
* @date: 2023/11/20 17:04
|
||||
* @description:
|
||||
*/
|
||||
@Data
|
||||
@ApiModel
|
||||
public class IpRegionLimitRecordAdminVo extends IpRegionLimitRecord {
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@ApiModelProperty("用户ID")
|
||||
private Long erbanNo;
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
@ApiModelProperty("昵称")
|
||||
private String nick;
|
||||
|
||||
/**
|
||||
* 注册时间
|
||||
*/
|
||||
@ApiModelProperty("注册时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date signTime;
|
||||
|
||||
/**
|
||||
* 注册设备
|
||||
*/
|
||||
@ApiModelProperty("注册设备")
|
||||
private String signDeviceId;
|
||||
|
||||
/**
|
||||
* 邀请码
|
||||
*/
|
||||
@ApiModelProperty("邀请码")
|
||||
private String inviteCode;
|
||||
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
package com.accompany.admin.vo.ip;
|
||||
|
||||
import com.accompany.business.model.ip.IpRegionWhite;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -38,6 +39,7 @@ public class IpRegionWhiteAdminVo extends IpRegionWhite {
|
||||
* 注册时间
|
||||
*/
|
||||
@ApiModelProperty("注册时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date signTime;
|
||||
|
||||
/**
|
||||
@@ -46,10 +48,4 @@ public class IpRegionWhiteAdminVo extends IpRegionWhite {
|
||||
@ApiModelProperty("身份")
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 最近一次访问
|
||||
*/
|
||||
@ApiModelProperty("最近一次访问")
|
||||
private Date lastTime;
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,22 @@
|
||||
package com.accompany.admin.mapper.ip;
|
||||
|
||||
import com.accompany.admin.vo.ip.IpRegionLimitRecordAdminVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
* @date: 2023/11/20 17:00
|
||||
* @description:
|
||||
*/
|
||||
public interface IpRegionLimitRecordAdminMapper {
|
||||
|
||||
/**
|
||||
* 分页列表
|
||||
*
|
||||
* @param page
|
||||
* @param userErBanNo
|
||||
* @return
|
||||
*/
|
||||
Page<IpRegionLimitRecordAdminVo> page(Page<IpRegionLimitRecordAdminVo> page, @Param("userErBanNo") String userErBanNo);
|
||||
}
|
@@ -1,9 +1,37 @@
|
||||
package com.accompany.admin.service.ip;
|
||||
|
||||
import com.accompany.admin.vo.ip.IpRegionLimitRecordAdminVo;
|
||||
import com.accompany.common.model.PageReq;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
* @date: 2023/11/20 15:27
|
||||
* @description:
|
||||
*/
|
||||
public interface IpRegionLimitRecordAdminService {
|
||||
|
||||
/**
|
||||
* 分页列表
|
||||
*
|
||||
* @param userErBanNo
|
||||
* @param currentPage
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
Page<IpRegionLimitRecordAdminVo> page(String userErBanNo, Integer currentPage, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 解除限制
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
void relieve(Long id);
|
||||
|
||||
/**
|
||||
* 加入白名单
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
void addWhite(Long id);
|
||||
}
|
||||
|
@@ -1,9 +1,19 @@
|
||||
package com.accompany.admin.service.ip.impl;
|
||||
|
||||
import com.accompany.admin.mapper.ip.IpRegionLimitRecordAdminMapper;
|
||||
import com.accompany.admin.service.ip.IpRegionLimitRecordAdminService;
|
||||
import com.accompany.admin.vo.ip.IpRegionLimitRecordAdminVo;
|
||||
import com.accompany.business.model.ip.IpRegionLimitRecord;
|
||||
import com.accompany.business.model.ip.IpRegionWhite;
|
||||
import com.accompany.business.service.ip.IpRegionLimitRecordService;
|
||||
import com.accompany.business.service.ip.IpRegionWhiteService;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
* @date: 2023/11/20 15:27
|
||||
@@ -12,4 +22,37 @@ import org.springframework.stereotype.Service;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class IpRegionLimitRecordAdminServiceImpl implements IpRegionLimitRecordAdminService {
|
||||
|
||||
@Autowired
|
||||
private IpRegionLimitRecordAdminMapper ipRegionLimitRecordAdminMapper;
|
||||
|
||||
@Autowired
|
||||
private IpRegionLimitRecordService ipRegionLimitRecordService;
|
||||
|
||||
@Autowired
|
||||
private IpRegionWhiteService ipRegionWhiteService;
|
||||
|
||||
@Override
|
||||
public Page<IpRegionLimitRecordAdminVo> page(String userErBanNo, Integer currentPage, Integer pageSize) {
|
||||
return ipRegionLimitRecordAdminMapper.page(new Page<>(currentPage, pageSize), userErBanNo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void relieve(Long id) {
|
||||
ipRegionLimitRecordService.removeById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addWhite(Long id) {
|
||||
IpRegionLimitRecord record = ipRegionLimitRecordService.getById(id);
|
||||
if (record == null) {
|
||||
return;
|
||||
}
|
||||
IpRegionWhite ipRegionWhite = new IpRegionWhite();
|
||||
ipRegionWhite.setUid(record.getUid());
|
||||
ipRegionWhite.setPhone(record.getPhone());
|
||||
ipRegionWhite.setLastCheckTime(record.getLastCheckTime());
|
||||
ipRegionWhite.setCreateTime(new Date());
|
||||
ipRegionWhite.setSource(IpRegionWhite.Source.LIMIT.getSource());
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,26 @@
|
||||
<?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.accompany.admin.mapper.ip.IpRegionLimitRecordAdminMapper">
|
||||
<select id="page" resultType="com.accompany.admin.vo.ip.IpRegionLimitRecordAdminVo">
|
||||
select
|
||||
irlr.id,
|
||||
irlr.uid,
|
||||
irlr.phone,
|
||||
irlr.create_time as createTime,
|
||||
irlr.device_ids as deviceIds,
|
||||
irlr.last_check_ip_region as lastCheckIpRegion,
|
||||
a.sign_time as signTime,
|
||||
a.device_id as signDeviceId,
|
||||
u.nick,
|
||||
u.invite_code as inviteCode
|
||||
from ip_region_limit_record as irlr
|
||||
left join users as u on u.uid = irlr.uid
|
||||
left join account as a on a.uid = irlr.uid
|
||||
<where>
|
||||
<if test="userErBanNo != null">
|
||||
and u.erban_no = #{userErBanNo}
|
||||
</if>
|
||||
</where>
|
||||
order by irlr.create_time desc
|
||||
</select>
|
||||
</mapper>
|
@@ -1,5 +1,16 @@
|
||||
package com.accompany.admin.controller.ip;
|
||||
|
||||
import com.accompany.admin.service.ip.IpRegionLimitRecordAdminService;
|
||||
import com.accompany.admin.vo.ip.IpRegionLimitRecordAdminVo;
|
||||
import com.accompany.common.model.PageReq;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@@ -8,8 +19,57 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
* @date: 2023/11/20 15:25
|
||||
* @description:
|
||||
*/
|
||||
@Api(tags = "地区限制访问列表管理")
|
||||
@RestController
|
||||
@RequestMapping("/admin/ip/region/limit/record")
|
||||
public class IpRegionLimitRecordAdminController {
|
||||
|
||||
@Autowired
|
||||
private IpRegionLimitRecordAdminService ipRegionLimitRecordAdminService;
|
||||
|
||||
/**
|
||||
* 分页列表
|
||||
*
|
||||
* @param userErBanNo
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "userErBanNo", value = "用户平台ID"),
|
||||
@ApiImplicitParam(name = "page", value = "当前页", required = true),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示数", required = true),
|
||||
})
|
||||
@GetMapping("page")
|
||||
public BusiResult<Page<IpRegionLimitRecordAdminVo>> page(String userErBanNo, PageReq req) {
|
||||
return BusiResult.success(ipRegionLimitRecordAdminService.page(userErBanNo, req.getPage(), req.getPageSize()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 解除限制
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiImplicitParam(name = "id", value = "数据ID(主键)")
|
||||
@ApiOperation("解除限制")
|
||||
@GetMapping("relieve")
|
||||
public BusiResult<Void> relieve(Long id) {
|
||||
ipRegionLimitRecordAdminService.relieve(id);
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 加入白名单
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiImplicitParam(name = "id", value = "数据ID(主键)")
|
||||
@ApiOperation("加入白名单")
|
||||
@GetMapping("addWhite")
|
||||
public BusiResult<Void> addWhite(Long id) {
|
||||
ipRegionLimitRecordAdminService.addWhite(id);
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -5,6 +5,8 @@ import com.accompany.core.mybatis.typehandler.StringListTypeHandler;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -17,11 +19,32 @@ public class IpRegionLimitRecord {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long uid;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@ApiModelProperty("手机号")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty("进入访问限制时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date lastCheckTime;
|
||||
|
||||
private String lastCheckIp;
|
||||
|
||||
/**
|
||||
* 最近一次访问地点
|
||||
*/
|
||||
@ApiModelProperty("最近一次访问地点")
|
||||
private String lastCheckIpRegion;
|
||||
|
||||
/**
|
||||
* 访问设备
|
||||
*/
|
||||
@ApiModelProperty("访问设备")
|
||||
@TableField(typeHandler = StringListTypeHandler.class)
|
||||
private List<String> deviceIds;
|
||||
|
||||
|
@@ -2,6 +2,8 @@ package com.accompany.business.model.ip;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
@@ -15,18 +17,40 @@ public class IpRegionWhite {
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
private Long uid;
|
||||
|
||||
/**
|
||||
* 用户手机号
|
||||
*/
|
||||
@ApiModelProperty("用户手机号")
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 进入白名单时间
|
||||
*/
|
||||
@ApiModelProperty("进入白名单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 最近一次访问
|
||||
*/
|
||||
@ApiModelProperty("最近一次访问")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date lastCheckTime;
|
||||
|
||||
/**
|
||||
* 进入白名单来源 1 手动添加 2 手机号申请通过 3 限制访问记录添加
|
||||
*/
|
||||
@ApiModelProperty("进入白名单来源 1 手动添加 2 手机号申请通过 3 限制访问记录添加")
|
||||
private Byte source;
|
||||
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public enum Source {
|
||||
|
||||
ADMIN((byte)1, "手动添加"),
|
||||
PHONE((byte)2, "手机号申请通过"),
|
||||
LIMIT((byte)3, "限制访问记录添加"),
|
||||
ADMIN((byte) 1, "手动添加"),
|
||||
PHONE((byte) 2, "手机号申请通过"),
|
||||
LIMIT((byte) 3, "限制访问记录添加"),
|
||||
;
|
||||
|
||||
@Getter
|
||||
|
Reference in New Issue
Block a user