From dc33b8008cb6b13e00717af9ec186f736cc1c7ce Mon Sep 17 00:00:00 2001 From: wells <123456@qq.com> Date: Sat, 8 Aug 2026 10:20:00 +0800 Subject: [PATCH] fix --- .../com/tailbet/controller/OpsController.java | 41 ++++++++----------- .../tailbet/controller/UserController.java | 33 ++++++--------- .../tailbet/service/impl/UserServiceImpl.java | 14 ++++++- src/main/resources/application.yml | 12 +++--- 4 files changed, 47 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/tailbet/controller/OpsController.java b/src/main/java/com/tailbet/controller/OpsController.java index e833b3c..216c72b 100644 --- a/src/main/java/com/tailbet/controller/OpsController.java +++ b/src/main/java/com/tailbet/controller/OpsController.java @@ -25,14 +25,11 @@ public class OpsController { */ @PostMapping("/points/add") public R addPoints(@RequestBody PointsDTO dto) { - try { - Long operatorId = UserContext.getUserId(); - pointsService.addPoints(dto.getUserId(), dto.getAmount(), - IPointsService.TYPE_OPS_ADD, null, operatorId, dto.getRemark()); - return R.ok(); - } catch (RuntimeException e) { - return R.fail(e.getMessage()); - } + Long operatorId = UserContext.getUserId(); + pointsService.addPoints(dto.getUserId(), dto.getAmount(), + IPointsService.TYPE_OPS_ADD, null, operatorId, dto.getRemark()); + return R.ok(); + } /** @@ -40,17 +37,14 @@ public class OpsController { */ @PostMapping("/points/sub") public R subPoints(@RequestBody PointsDTO dto) { - try { - Long operatorId = UserContext.getUserId(); - boolean success = pointsService.subPoints(dto.getUserId(), dto.getAmount(), - IPointsService.TYPE_OPS_SUB, null, operatorId, dto.getRemark()); - if (success) { - return R.ok(); - } - return R.fail("余额不足或用户不存在"); - } catch (RuntimeException e) { - return R.fail(e.getMessage()); + Long operatorId = UserContext.getUserId(); + boolean success = pointsService.subPoints(dto.getUserId(), dto.getAmount(), + IPointsService.TYPE_OPS_SUB, null, operatorId, dto.getRemark()); + if (success) { + return R.ok(); } + return R.fail("余额不足或用户不存在"); + } /** @@ -58,12 +52,9 @@ public class OpsController { */ @PostMapping("/group/pull") public R pullGroup(@RequestBody PullGroupDTO dto) { - try { - Long operatorId = UserContext.getUserId(); - groupService.pullUser(dto.getGroupId(), dto.getUserId(), operatorId); - return R.ok(); - } catch (RuntimeException e) { - return R.fail(e.getMessage()); - } + Long operatorId = UserContext.getUserId(); + groupService.pullUser(dto.getGroupId(), dto.getUserId(), operatorId); + return R.ok(); + } } diff --git a/src/main/java/com/tailbet/controller/UserController.java b/src/main/java/com/tailbet/controller/UserController.java index c0daa69..80edfc0 100644 --- a/src/main/java/com/tailbet/controller/UserController.java +++ b/src/main/java/com/tailbet/controller/UserController.java @@ -26,12 +26,9 @@ public class UserController { */ @PostMapping("/register") public R register(@RequestBody RegisterDTO dto) { - try { - userService.register(dto.getUsername(), dto.getPassword()); - return R.ok(); - } catch (RuntimeException e) { - return R.fail(e.getMessage()); - } + userService.register(dto.getUsername(), dto.getPassword()); + return R.ok(); + } /** @@ -39,14 +36,11 @@ public class UserController { */ @PostMapping("/login") public R login(@RequestBody LoginDTO dto) { - try { - String token = userService.login(dto.getUsername(), dto.getPassword()); - LoginVo vo = new LoginVo(); - vo.setToken(token); - return R.ok("登录成功", vo); - } catch (RuntimeException e) { - return R.fail(e.getMessage()); - } + String token = userService.login(dto.getUsername(), dto.getPassword()); + LoginVo vo = new LoginVo(); + vo.setToken(token); + return R.ok("登录成功", vo); + } /** @@ -63,13 +57,10 @@ public class UserController { */ @PutMapping("/update") public R update(@RequestBody UpdateUserDTO dto) { - try { - Long userId = UserContext.getUserId(); - userService.updateUserInfo(userId, dto); - return R.ok(); - } catch (RuntimeException e) { - return R.fail(e.getMessage()); - } + Long userId = UserContext.getUserId(); + userService.updateUserInfo(userId, dto); + return R.ok(); + } /** diff --git a/src/main/java/com/tailbet/service/impl/UserServiceImpl.java b/src/main/java/com/tailbet/service/impl/UserServiceImpl.java index 17356ea..eebcbdd 100644 --- a/src/main/java/com/tailbet/service/impl/UserServiceImpl.java +++ b/src/main/java/com/tailbet/service/impl/UserServiceImpl.java @@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tailbet.model.entity.User; import com.tailbet.mapper.UserMapper; import com.tailbet.model.dto.UpdateUserDTO; +import com.tailbet.openim.OpenIMClient; import com.tailbet.service.IUserService; import com.tailbet.util.JwtUtil; import com.tailbet.util.PasswordUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -20,11 +22,12 @@ import java.util.List; @Slf4j @RequiredArgsConstructor @Service -public class UserServiceImpl extends ServiceImpl implements IUserService { +public class UserServiceImpl extends ServiceImpl implements IUserService { private final UserMapper userMapper; private final PasswordUtil passwordUtil; private final JwtUtil jwtUtil; + private final OpenIMClient openIMClient; /** @@ -40,6 +43,7 @@ public class UserServiceImpl extends ServiceImpl implements IUs * 注册用户 */ @Override + @Transactional(rollbackFor = Exception.class) public User register(String username, String password) { // 检查用户名是否已存在 if (getByUsername(username) != null) { @@ -54,6 +58,13 @@ public class UserServiceImpl extends ServiceImpl implements IUs user.setStatus(1); userMapper.insert(user); + // 在OpenIM创建用户 + boolean openIMResult = openIMClient.createUser(String.valueOf(user.getId()), user.getNickname()); + if (!openIMResult) { + log.warn("OpenIM用户创建失败: userId={}, username={}", user.getId(), username); + throw new RuntimeException("OpenIM用户创建失败,请稍后再试!"); + } + // 分配运营(按最少绑定+优先在线算法) assignOps(user); @@ -79,7 +90,6 @@ public class UserServiceImpl extends ServiceImpl implements IUs } - /** * 更新用户信息 */ diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e54ba4e..f39605f 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,9 +10,10 @@ spring: password: ${DB_PASSWORD:123456} data: redis: - host: ${REDIS_HOST:localhost} + host: ${REDIS_HOST:127.0.0.1} port: ${REDIS_PORT:6379} password: ${REDIS_PASSWORD:123456} +# password: ${REDIS_PASSWORD:ejgheyg2@eHSY2!.} database: ${REDIS_DB:0} timeout: 5000ms lettuce: @@ -39,10 +40,11 @@ mybatis-plus: logic-not-delete-value: 0 openim: - api-url: ${OPENIM_API_URL:http://localhost:10010} - ws-url: ${OPENIM_WS_URL:ws://localhost:10010} - admin-user: ${OPENIM_ADMIN_USER:admin} - admin-token: ${OPENIM_ADMIN_TOKEN:} +# api-url: ${OPENIM_API_URL:http://172.31.5.16:10002} + api-url: ${OPENIM_API_URL:https://openim.xiu6688.com} + ws-url: ${OPENIM_WS_URL:wss://im.xiu6688.com} + admin-user: ${OPENIM_ADMIN_USER:imAdmin} + admin-token: ${OPENIM_ADMIN_TOKEN:d71c0861267DM23adg} jwt: secret: ${JWT_SECRET:your-256-bit-secret-key-for-jwt-token-generation}