32.用户冻结解冻

本文介绍了用户冻结和解冻的实现过程。在后台管理系统中,管理员可以通过更新数据库中的用户状态来执行冻结或解冻操作。冻结用户时,将用户信息存入Redis,并可设置缓存时间。解冻用户则通过构造特定Redis Key来删除缓存数据。同时,在APP端,用户登录、评论等行为会检查Redis中的冻结状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户冻结、解冻

一、用户冻结

用户冻结/解冻使用管理员在后台系统对用户的惩罚措施。对于发布不当言论或者违法违规内容的用户,可以暂时、永久禁止其登录,评论,发布动态、

后台中解冻/冻结,就是将用户状态写入数据库中

APP端用户在进行登录,评论,发布动态时检测Redis中冻结状态

1.ManageController


    /**
     * 用户冻结操作:
     * 请求路径:/manage/users/freeze
     * 请求方式:post
     * 请求参数: Integer userId(要冻结的用户id),
     *          String  freezingTime (冻结时间,1为冻结3天,2为冻结7天,3为永久冻结)
     *          Integer freezingRange(冻结范围,1为冻结登录,2为冻结发言,3为冻结发布动态)
     *          String  reasonsForFreezing(冻结原因)
     *          String  frozenRemarks(冻结备注)
     *          以上这些参数使用map集合接收
     * 响应数据:String message(操作结果);也是使用map集合封装返回
     *
     */
    @PostMapping("/users/freeze")
    public ResponseEntity freezeUser(@RequestBody Map map){
   

        Map retMap = manageService.freezeUser(map);

        return ResponseEntity.ok(retMap);
    }

2.ManageService

把要冻结的用户信息缓存进redis(有冻结时间设置的设置redis存活时间)

/**
     * 冻结用户
     * 实现思路:把要冻结的数据缓存进redis
     * @param map
     * @return
     */
    public Map freezeUser(Map map) {
   

        //1.构造key
        String key = Constants.FREEZE_USER_KEY + map.get("userId").toString();//这个是要冻结的用户id
        //2.设置冻结时间,也就是redis数据存活时间
        Integer  freezingTime = Integer.valueOf(map.get("freezingTime").toString()) ;//(冻结时间,1为冻结3天,2为冻结7天,3为永久冻结)
        int day = 0;
        if(freezingTime == 1){
   
            day=3;
        }else if(freezingTime == 2){
   
            day = 7;
        }
        
        //3.操作redsi
        <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖分你俩颗~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值