From 90926256ca7adba19961e67241b4daa04afcf9e2 Mon Sep 17 00:00:00 2001 From: Sidharth Prabhu Date: Fri, 17 Apr 2026 11:21:13 +0530 Subject: [PATCH] Repeat order settings added --- .../rit/canteen/sales/service/UserService.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/com/rit/canteen/sales/service/UserService.java b/backend/src/main/java/com/rit/canteen/sales/service/UserService.java index dc4938ff..28f54143 100644 --- a/backend/src/main/java/com/rit/canteen/sales/service/UserService.java +++ b/backend/src/main/java/com/rit/canteen/sales/service/UserService.java @@ -177,7 +177,7 @@ public class UserService { } /** - * Update user details as an administrator. + * Update user details as an administrator or user. */ public LoginResponse.UserDto updateUser(Long userId, String name, String mobileNumber, String newPin) { Optional userOpt = userRepository.findById(userId); @@ -186,8 +186,22 @@ public class UserService { } User user = userOpt.get(); + + // Handle mobile number update with conflict check + if (mobileNumber != null && !mobileNumber.equals(user.getMobileNumber())) { + // Validate format + if (!mobileNumber.matches("^[0-9]{10}$")) { + return null; // Invalid format + } + + // Check for conflict + if (userRepository.existsByMobileNumber(mobileNumber)) { + return null; // Conflict: mobile number already taken + } + user.setMobileNumber(mobileNumber); + } + if (name != null) user.setName(name); - if (mobileNumber != null) user.setMobileNumber(mobileNumber); // Only update PIN if it is provided and valid if (newPin != null && !newPin.isBlank()) {