记得上下班打卡 | git大法好,push需谨慎

Commit 3c328cd0 authored by 姜秀龙's avatar 姜秀龙

注销账户恢复

parent 4b1c7368
...@@ -11,6 +11,7 @@ import com.liquidnet.commons.lang.core.JwtValidator; ...@@ -11,6 +11,7 @@ import com.liquidnet.commons.lang.core.JwtValidator;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.constant.AdamRedisConst; import com.liquidnet.service.adam.constant.AdamRedisConst;
import com.liquidnet.service.adam.dto.AdamEntersParam; import com.liquidnet.service.adam.dto.AdamEntersParam;
import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo; import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo; import com.liquidnet.service.adam.dto.vo.AdamUserInfoVo;
import com.liquidnet.service.adam.entity.AdamEnters; import com.liquidnet.service.adam.entity.AdamEnters;
...@@ -206,7 +207,58 @@ public class AdamController { ...@@ -206,7 +207,58 @@ public class AdamController {
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperation(value = "修改随机6位密码(未验证版本)") @PostMapping("A004Restore")
@ApiOperation("手机号恢复注销账户")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "mobile", value = "账户手机号", required = true),
})
public ResponseDto<Object> A004Restore(
@RequestParam("mobile") String mobile
) {
// 查询 uid
String key = AdamRedisConst.IDENTITY_MOBILE.concat(mobile);
String uid = (String) redisDataSourceUtil.getRedisAdamUtil().get(key);
if (null == uid || uid.isEmpty()) {
// Redis 中不存在时从数据库查询
List<AdamUserInfoDto> users = adamUserMapper.selectByPhones(mobile);
if (users == null || users.isEmpty()) {
return ResponseDto.failure("该手机号不存在");
}
uid = users.get(0).getUid();
}
// 检查账户是否处于注销状态(state=2)
String rk = AdamRedisConst.INFO_USER.concat(uid);
AdamUserInfoVo vo = (AdamUserInfoVo) redisDataSourceUtil.getRedisAdamUtil().get(rk);
if (null == vo) {
return ResponseDto.failure("用户信息不存在,无法恢复");
}
if (vo.getState() != 2) {
return ResponseDto.failure("该账户未处于注销状态,无需恢复");
}
// 恢复账户状态
LocalDateTime now = LocalDateTime.now();
vo.setState(1);
vo.setUpdatedAt(now);
vo.setClosedAt(null);
redisDataSourceUtil.getRedisAdamUtil().set(rk, vo);
// 恢复 IDENTITY_MOBILE -> uid 的映射(如原来已过期则重建)
if (redisDataSourceUtil.getRedisAdamUtil().get(key) == null) {
redisDataSourceUtil.getRedisAdamUtil().set(key, uid);
}
// 异步更新数据库
queueUtils.sendMsgByRedis(
MQConst.AdamQueue.SQL_UCENTER.getKey(),
SqlMapping.get("adam_user.restore", now, uid)
);
return ResponseDto.success();
}
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "手机号"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "mobile", value = "手机号"),
}) })
......
...@@ -12,6 +12,7 @@ adam_enters.edit=UPDATE adam_enters SET `type`=?, `name`=?, mobile=?, id_card=?, ...@@ -12,6 +12,7 @@ adam_enters.edit=UPDATE adam_enters SET `type`=?, `name`=?, mobile=?, id_card=?,
adam_user.close=UPDATE adam_user SET `state`=2, updated_at=?, closed_at=? WHERE `uid`=? adam_user.close=UPDATE adam_user SET `state`=2, updated_at=?, closed_at=? WHERE `uid`=?
adam_user.restore=UPDATE adam_user SET `state`=1, updated_at=?, closed_at=NULL WHERE `uid`=?
adam_enters.add=INSERT INTO adam_enters (enters_id, `uid`, `type`,`name`, mobile, id_card, is_default, `state`, created_at) VALUES (?,?,?,?,?,?,?,?,?) adam_enters.add=INSERT INTO adam_enters (enters_id, `uid`, `type`,`name`, mobile, id_card, is_default, `state`, created_at) VALUES (?,?,?,?,?,?,?,?,?)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment