Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
Tankaikai
2025-01-07 13:15:29 +08:00
9 changed files with 105 additions and 119 deletions

View File

@@ -9,7 +9,6 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.sqx.common.annotation.Debounce;
import com.sqx.common.exception.SqxException;
import com.sqx.common.utils.ApiAccessLimitUtil;
import com.sqx.common.utils.DataLimitUtil;
import com.sqx.common.utils.Result;
@@ -33,6 +32,7 @@ import java.util.Map;
/**
* APP登录授权
* @author mac
*/
@RestController
@RequestMapping("/app/user")
@@ -104,83 +104,75 @@ public class AppController {
UserInfo userInfo = userInfoService.getByUserId(userId);
UserEntity userEntity = userService.getById(userId);
String errMsg = null;
if (StrUtil.isNotBlank(zhiFuBao) && !zhiFuBao.equals(userEntity.getZhiFuBao())) {
if (StrUtil.isNotBlank(zhiFuBao) && (!zhiFuBao.equals(userEntity.getZhiFuBao())) || !certName.equals(userEntity.getZhiFuBaoName())) {
int count = userService.count(new QueryWrapper<UserEntity>()
.ne("user_id", userId)
.eq("zhi_fu_bao_name", certName)
.eq("zhi_fu_bao", zhiFuBao));
if (count > 0) {
errMsg = "支付宝信息修改失败: 一个支付宝账号仅可绑定一个用户";
return Result.error("支付宝信息修改失败: 支付宝账号已被绑定");
}
if (errMsg == null && StrUtil.isNotBlank(userInfo.getCertName()) && !certName.equals(userInfo.getCertName())) {
errMsg = "支付宝信息修改失败: 姓名与实名认证信息不相符";
if (StrUtil.isNotBlank(userInfo.getCertName()) && !certName.equals(userInfo.getCertName())) {
return Result.error("支付宝信息修改失败: 姓名与实名认证信息不相符");
}
if (errMsg == null && !DataLimitUtil.isAccessAllowed(zhiFuBao+certName, Integer.parseInt(commonRepository.findOne(924).getValue()), "month")) {
errMsg = "支付宝信息修改失败: 相同支付宝账号每月可绑定次数已用完";
if (!DataLimitUtil.isAccessAllowed(zhiFuBao + certName, Integer.parseInt(commonRepository.findOne(924).getValue()), "month")) {
return Result.error("支付宝信息修改失败: 相同支付宝账号每月可绑定次数已用完");
}
if (errMsg == null && !ApiAccessLimitUtil.isAccessAllowed(userId.toString(), "updateZFB", Integer.parseInt(commonRepository.findOne(925).getValue()), "month")) {
errMsg = "支付宝信息修改失败: 每月可修改次数已用完,请联系管理员";
if (!ApiAccessLimitUtil.isAccessAllowed(userId.toString(), "updateZFB", Integer.parseInt(commonRepository.findOne(925).getValue()), "month")) {
return Result.error("支付宝信息修改失败: 每月可修改次数已用完,请联系管理员");
}
if (errMsg == null) {
userEntity.setZhiFuBao(zhiFuBao);
userEntity.setZhiFuBaoName(certName);
userService.update(userEntity, new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getUserId, userId));
}
userEntity.setZhiFuBao(zhiFuBao);
userEntity.setZhiFuBaoName(certName);
userService.update(userEntity, new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getUserId, userId));
}
if (StrUtil.isBlank(certNum)) {
return Result.success();
}
String authErrMsg = null;
if (StrUtil.isNotBlank(certNum) && !certNum.equals(userInfo.getCertNo())) {
if (!certNum.equals(userInfo.getCertNo()) || !certName.equals(userInfo.getCertName())) {
if (StrUtil.isNotBlank(userEntity.getZhiFuBaoName()) && !certName.equals(userEntity.getZhiFuBaoName())) {
authErrMsg = "实名修改失败: 姓名与绑定支付宝信息不相符";
return Result.error("实名修改失败: 姓名与绑定支付宝信息不相符");
}
if (authErrMsg == null && !IdcardUtil.isValidCard(certNum)) {
authErrMsg = "实名修改失败: 身份证号码有误";
if (!IdcardUtil.isValidCard(certNum)) {
return Result.error("实名修改失败: 身份证号码有误");
}
if (authErrMsg == null) {
Integer idCount = userInfoService.countCertCount(certName, certNum);
if (idCount > 1) {
authErrMsg = "实名修改失败: 此实名信息已存在";
}
}
if (authErrMsg == null && !ApiAccessLimitUtil.isAccessAllowed(String.valueOf(userId), "updateAuthCertInfo", 1, "month")) {
authErrMsg = "实名修改失败: 账号每月可修改次数已用完,请联系管理员";
}
if (authErrMsg == null && !ApiAccessLimitUtil.isAccessAllowed(certNum, "updateAuthCertInfoByIdCard", 1, "month")) {
authErrMsg = "实名修改失败: 此身份证信息次月已绑定过,请联系管理员";
}
if (authErrMsg == null) {
try {
aliService.authCertNo(certName, certNum);
userInfo.setCertName(certName);
userInfo.setCertNo(certNum);
userInfo.setUpdateTime(DateUtil.date());
userInfoService.update(userInfo, new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getUserId, userId));
}catch (Exception e) {
ApiAccessLimitUtil.removeKey(String.valueOf(userId), "updateAuthCertInfo");
ApiAccessLimitUtil.removeKey(certNum, "updateAuthCertInfoByIdCard");
authErrMsg = "实名修改失败: 身份证信息不匹配";
Integer idCount = userInfoService.countCertCount(certName, certNum);
if (idCount >= 1) {
return Result.error("实名修改失败: 此身份证信息已绑定过");
}
if (!ApiAccessLimitUtil.getCertAuthIsAccessAllowed(String.valueOf(userId), "updateAuthCertInfo", 1)) {
return Result.error("实名修改失败: 每月可修改次数已用完,请联系管理员");
}
if (!ApiAccessLimitUtil.getCertAuthIsAccessAllowed(certNum, "updateAuthCertInfoByIdCard", 1)) {
return Result.error("实名修改失败: 每月可修改次数已用完,请联系管理员");
}
try {
aliService.authCertNo(certName, certNum);
userInfo.setCertName(certName);
userInfo.setCertNo(certNum);
userInfo.setUpdateTime(DateUtil.date());
boolean update = userInfoService.update(userInfo, new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getUserId, userId).eq(UserInfo::getId, userInfo.getId()));
if (!update) {
return Result.error("实名修改失败: 请稍后重试");
}
ApiAccessLimitUtil.setCertAuthIsAccessAllowed(String.valueOf(userId), "updateAuthCertInfo", 1, "month");
ApiAccessLimitUtil.setCertAuthIsAccessAllowed(certNum, "updateAuthCertInfoByIdCard", 1, "month");
return Result.success();
} catch (Exception e) {
return Result.error("实名修改失败: 身份证信息不匹配");
}
}
if (errMsg != null || authErrMsg != null) {
authErrMsg = authErrMsg == null ? "" : authErrMsg;
return Result.error(errMsg == null ? authErrMsg : errMsg + " " + authErrMsg);
}
return Result.success();
// 去除首绑支付宝奖励
// if (bool && isFirstBind) {
// userService.firstBindAwardsMoney(old);
// }
}
@@ -194,22 +186,6 @@ public class AppController {
return Result.success();
}
/*@Login
@RequestMapping(value = "/updateUsers", method = RequestMethod.POST)
@ApiOperation("用户修改个人信息")
@ResponseBody
public Result updateUsers(@RequestAttribute("userId") Long userId,String userName,String avatar,String phone) {
UserEntity userEntity=new UserEntity();
userEntity.setUserId(userId);
userEntity.setUserName(userName);
userEntity.setAvatar(avatar);
userEntity.setPhone(phone);
userService.updateById(userEntity);
return Result.success();
}*/
@Login
@RequestMapping(value = "/updateUserImageUrl", method = RequestMethod.POST)
@ApiOperation("用户修改头像")

View File

@@ -167,16 +167,6 @@ public class AppLoginController {
return userService.sendMsg(phone, state,null);
}
@Login
@Debounce(value = "#authCertNoDTO.idNum")
@PostMapping("/authCertNo")
public Result authCertNo(@RequestBody @Validated AuthCertNoDTO authCertNoDTO, @RequestAttribute("userId") long userId) {
if (!ApiAccessLimitUtil.isAccessAllowed(String.valueOf(userId), "updateAuthCertInfo", 1, "month")) {
return Result.error("每月可修改次数已用完,请联系管理员");
}
return Result.success().put("data", userService.authCertNo(userId, authCertNoDTO));
}
@ApiOperation("解密手机号")
@RequestMapping(value = "/selectPhone",method = RequestMethod.POST)
public Result getPhoneNumberBeanS5(@RequestBody WxPhone wxPhone) {

View File

@@ -96,9 +96,9 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
throw new CzgException("ip跳动过于频繁请联系管理员解封");
}
ThreadUtil.execAsync(() -> {
redisService.recordUrlVisitCountWithIp(userId, request.getRequestURI(), ip);
});
// ThreadUtil.execAsync(() -> {
// redisService.recordUrlVisitCountWithIp(userId, request.getRequestURI(), ip);
// });
// 设置 userId 到 request 里,后续根据 userId 获取用户信息
UserEntity user = userService.selectUserById(userId);

View File

@@ -126,8 +126,6 @@ public class UserServiceImpl extends ServiceImpl<UserDao, UserEntity> implements
private final UserVipDao userVipDao;
private final InviteAchievementService inviteAchievementService;
@Value("${spring.profiles.active}")
private String profiles;
private ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);