用户冻结、解冻
一、用户冻结
用户冻结/解冻使用管理员在后台系统对用户的惩罚措施。对于发布不当言论或者违法违规内容的用户,可以暂时、永久禁止其登录,评论,发布动态、
后台中解冻/冻结,就是将用户状态写入数据库中
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
<