This commit is contained in:
77
2024-08-03 19:19:04 +08:00
parent 78bd8b6593
commit cf9081d69f
9 changed files with 262 additions and 0 deletions

36
doc/1.2.0.sql Normal file
View File

@@ -0,0 +1,36 @@
CREATE TABLE `cai_account_black`
(
`id` bigint unsigned NOT NULL,
`card_account` varchar(50) NOT NULL COMMENT '账户号',
`card_name` varchar(50) NOT NULL COMMENT '账户名称',
`enable_status` tinyint NOT NULL DEFAULT '1' COMMENT '是否开启',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_account` (`card_account`, `card_name`) USING BTREE
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci
ROW_FORMAT = DYNAMIC COMMENT ='账户黑名单';
ALTER TABLE `cai_anchor`
ADD COLUMN `enable_greet` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否允许群发' AFTER `recommend_status`;
-- 菜单 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values(1819683762522001409, '账户黑名单', '1737668638361206786', '1', 'accountBlack', 'cai/accountBlack/index', 1, 0, 'C', '0', '0', 'cai:accountBlack:list', '#', 'admin', sysdate(), '', null, '账户黑名单菜单');
-- 按钮 SQL
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values(1819683762522001410, '账户黑名单查询', 1819683762522001409, '1', '#', '', 1, 0, 'F', '0', '0', 'cai:accountBlack:query', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values(1819683762522001411, '账户黑名单新增', 1819683762522001409, '2', '#', '', 1, 0, 'F', '0', '0', 'cai:accountBlack:add', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values(1819683762522001412, '账户黑名单修改', 1819683762522001409, '3', '#', '', 1, 0, 'F', '0', '0', 'cai:accountBlack:edit', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values(1819683762522001413, '账户黑名单删除', 1819683762522001409, '4', '#', '', 1, 0, 'F', '0', '0', 'cai:accountBlack:remove', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
values(1819683762522001414, '账户黑名单导出', 1819683762522001409, '5', '#', '', 1, 0, 'F', '0', '0', 'cai:accountBlack:export', '#', 'admin', sysdate(), '', null, '');

View File

@@ -0,0 +1,107 @@
package com.ruoyi.web.controller.cai.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.AccountBlack;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
import com.ruoyi.cai.mapper.AccountBlackMapper;
import com.ruoyi.cai.mapper.AccountMapper;
import com.ruoyi.cai.service.AccountBlackService;
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.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 账户黑名单
*
* @author 77
* @date 2024-08-03
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/accountBlack")
public class AccountBlackController extends BaseController {
private final AccountBlackService accountBlackService;
@Resource
private AccountBlackMapper accountBlackMapper;
/**
* 查询账户黑名单列表
*/
@SaCheckPermission("cai:accountBlack:list")
@GetMapping("/list")
public TableDataInfo<AccountBlack> list(AccountBlack bo, PageQuery pageQuery) {
Page<AccountBlack> page = accountBlackService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
@GetMapping("/user")
public TableDataInfo<UserAdminVo> userList(AccountBlack bo, PageQuery pageQuery) {
Page<UserAdminVo> page = accountBlackMapper.pageUserAdmin(pageQuery.build(), bo.getCardAccount(), bo.getCardName());
return TableDataInfo.build(page);
}
/**
* 获取账户黑名单详细信息
*
* @param id 主键
*/
@SaCheckPermission("cai:accountBlack:query")
@GetMapping("/{id}")
public R<AccountBlack> getInfo(@NotNull(message = "主键不能为空")
@PathVariable String id) {
return R.ok(accountBlackService.getById(id));
}
/**
* 新增账户黑名单
*/
@SaCheckPermission("cai:accountBlack:add")
@Log(title = "账户黑名单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody AccountBlack bo) {
return toAjax(accountBlackService.save(bo));
}
/**
* 修改账户黑名单
*/
@SaCheckPermission("cai:accountBlack:edit")
@Log(title = "账户黑名单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody AccountBlack bo) {
return toAjax(accountBlackService.updateById(bo));
}
/**
* 删除账户黑名单
*
* @param ids 主键串
*/
@SaCheckPermission("cai:accountBlack:remove")
@Log(title = "账户黑名单", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable String[] ids) {
return toAjax(accountBlackService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -0,0 +1,39 @@
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_account_black
*
* @author 77
* @date 2024-08-03
*/
@Data
@TableName("cai_account_black")
public class AccountBlack implements Serializable {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private String id;
private String cardAccount;
/**
* 账户名称
*/
private String cardName;
/**
* 是否开启
*/
private Integer enableStatus;
private LocalDateTime createTime;
}

View File

@@ -85,6 +85,11 @@ public class Anchor implements Serializable{
*/
private Integer status;
/**
* 是否允许 发布群发
*/
private Integer enableGreet;
private LocalDateTime createTime;
}

View File

@@ -33,4 +33,10 @@ public class UserAdminVo extends User {
private LocalDateTime regBeginTime;
private LocalDateTime regEndTime;
private String cardAccount;
/**
* 账户名称
*/
private String cardName;
}

View File

@@ -0,0 +1,18 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.AccountBlack;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
import org.apache.ibatis.annotations.Param;
/**
* 账户黑名单Mapper接口
*
* @author 77
* @date 2024-08-03
*/
public interface AccountBlackMapper extends BaseMapper<AccountBlack> {
Page<UserAdminVo> pageUserAdmin(@Param("build") Page<Object> build, @Param("cardAccount") String cardAccount, @Param("cardName") String cardName);
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.AccountBlack;
/**
* 账户黑名单Service接口
*
* @author 77
* @date 2024-08-03
*/
public interface AccountBlackService extends IService<AccountBlack> {
}

View File

@@ -0,0 +1,17 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.AccountBlack;
import com.ruoyi.cai.mapper.AccountBlackMapper;
import com.ruoyi.cai.service.AccountBlackService;
import org.springframework.stereotype.Service;
/**
* 账户黑名单Service业务层处理
*
* @author 77
* @date 2024-08-03
*/
@Service
public class AccountBlackServiceImpl extends ServiceImpl<AccountBlackMapper,AccountBlack> implements AccountBlackService {
}

View File

@@ -0,0 +1,20 @@
<?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.AccountBlackMapper">
<select id="pageUserAdmin" resultType="com.ruoyi.cai.dto.admin.vo.UserAdminVo">
select t1.*,t2.last_login_ip,t2.last_login_time,t2.reg_ip,t2.reg_time,
t5.card_account,t5.card_name,
t4.status as online_status
from cai_user t1
left join cai_user_info t2 on t1.id = t2.user_id
left join cai_user_online t4 on t1.id = t4.user_id
join cai_account_cash t5 on t1.id = t5.user_id
where t5.card_account = #{cardAccount} and t5.card_name = #{cardName}
order by t2.last_login_time desc
</select>
</mapper>