Skip to content

Commit 228066f

Browse files
committed
fix modify user bug
1 parent 131f043 commit 228066f

File tree

10 files changed

+183
-33
lines changed

10 files changed

+183
-33
lines changed

UserServiceImpl.java

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
package user.service.impl;
2+
3+
import edu.fudan.common.util.Response;
4+
import lombok.extern.slf4j.Slf4j;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.http.*;
7+
import org.springframework.stereotype.Service;
8+
import org.springframework.web.client.RestTemplate;
9+
import user.dto.AuthDto;
10+
import user.dto.UserDto;
11+
import user.entity.User;
12+
import user.repository.UserRepository;
13+
import user.service.UserService;
14+
15+
16+
import java.util.List;
17+
import java.util.UUID;
18+
19+
20+
@Service
21+
@Slf4j
22+
public class UserServiceImpl implements UserService {
23+
24+
@Autowired
25+
private UserRepository userRepository;
26+
27+
private static final String AUHT_SERVICE_URI = "http://ts-auth-service:12340/api/v1";
28+
29+
@Override
30+
public Response saveUser(UserDto userDto, HttpHeaders headers) {
31+
log.info("Save User Name id:" + userDto.getUserName());
32+
UUID userId = userDto.getUserId();
33+
if (userDto.getUserId() == null)
34+
userId = UUID.randomUUID();
35+
36+
User user = User.builder()
37+
.userId(userId)
38+
.userName(userDto.getUserName())
39+
.password(userDto.getPassword())
40+
.gender(userDto.getGender())
41+
.documentType(userDto.getDocumentType())
42+
.documentNum(userDto.getDocumentNum())
43+
.email(userDto.getEmail()).build();
44+
45+
// avoid same user name
46+
User user1 = userRepository.findByUserName(userDto.getUserName());
47+
if (user1 == null) {
48+
createDefaultAuthUser(AuthDto.builder().userId(userId)
49+
.userName(user.getUserName())
50+
.password(user.getPassword()).build(), headers);
51+
52+
User userSaveResult = userRepository.save(user);
53+
log.info("Send authorization message to ts-auth-service....");
54+
55+
return new Response<>(1, "REGISTER USER SUCCESS", userSaveResult);
56+
} else {
57+
return new Response(0, "USER HAS ALREADY EXISTS", null);
58+
}
59+
}
60+
61+
private void createDefaultAuthUser(AuthDto dto, HttpHeaders headers) {
62+
log.info("CALL TO AUTH");
63+
log.info("AuthDto : " + dto.toString());
64+
RestTemplate restTemplate = new RestTemplate();
65+
headers.setContentType(MediaType.APPLICATION_JSON);
66+
HttpEntity<AuthDto> httpEntity = new HttpEntity(dto, headers);
67+
restTemplate.exchange(AUHT_SERVICE_URI + "/auth",
68+
HttpMethod.POST,
69+
httpEntity,
70+
Void.class);
71+
}
72+
73+
@Override
74+
public Response getAllUsers(HttpHeaders headers) {
75+
List<User> users = userRepository.findAll();
76+
if (users != null && users.size() > 0)
77+
return new Response<>(1, "Success", users);
78+
return new Response<>(0, "NO User", null);
79+
}
80+
81+
@Override
82+
public Response findByUserName(String userName, HttpHeaders headers) {
83+
User user = userRepository.findByUserName(userName);
84+
if(user != null)
85+
return new Response<>(1, "Find User Success", user);
86+
return new Response<>(0, "No User", null);
87+
}
88+
89+
@Override
90+
public Response findByUserId(String userId, HttpHeaders headers) {
91+
User user = userRepository.findByUserId(UUID.fromString(userId));
92+
if(user != null)
93+
return new Response<>(1, "Find User Success", user);
94+
return new Response<>(0, "No User", null);
95+
}
96+
97+
@Override
98+
public Response deleteUser(UUID userId, HttpHeaders headers) {
99+
log.info("DELETE USER BY ID :" + userId);
100+
User user = userRepository.findByUserId(userId);
101+
if (user != null) {
102+
// first only admin token can delete success
103+
deleteUserAuth(userId, headers);
104+
// second
105+
userRepository.deleteByUserId(userId);
106+
log.info("DELETE SUCCESS");
107+
return new Response<>(1, "DELETE SUCCESS", null);
108+
} else {
109+
return new Response<>(0, "USER NOT EXISTS", null);
110+
}
111+
}
112+
113+
@Override
114+
public Response updateUser(UserDto userDto, HttpHeaders headers) {
115+
log.info("UPDATE USER :" + userDto.toString());
116+
User oldUser = userRepository.findByUserName(userDto.getUserName());
117+
if (oldUser != null) {
118+
User newUser = oldUser.builder().email(userDto.getEmail())
119+
.password(userDto.getPassword())
120+
.userName(userDto.getUserName())
121+
.gender(userDto.getGender())
122+
.documentNum(userDto.getDocumentNum())
123+
.documentType(userDto.getDocumentType()).build();
124+
userRepository.save(newUser);
125+
return new Response<>(1, "SAVE USER SUCCESS", newUser);
126+
} else {
127+
return new Response(0, "USER NOT EXISTS", null);
128+
}
129+
}
130+
131+
public void deleteUserAuth(UUID userId, HttpHeaders headers) {
132+
log.info("DELETE USER BY ID :" + userId);
133+
RestTemplate restTemplate = new RestTemplate();
134+
135+
HttpEntity<Response> httpEntity = new HttpEntity<>(headers);
136+
restTemplate.exchange(AUHT_SERVICE_URI + "/users/" + userId,
137+
HttpMethod.DELETE,
138+
httpEntity,
139+
Response.class);
140+
log.info("DELETE USER AUTH SUCCESS");
141+
}
142+
}
Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
package auth.controller;
22

33
import auth.dto.AuthDto;
4-
import auth.dto.BasicAuthDto;
5-
import auth.dto.TokenDto;
6-
import auth.service.TokenService;
74
import auth.service.UserService;
5+
import edu.fudan.common.util.Response;
86
import lombok.extern.slf4j.Slf4j;
97
import org.springframework.beans.factory.annotation.Autowired;
10-
import org.springframework.http.HttpHeaders;
8+
import org.springframework.http.HttpEntity;
119
import org.springframework.http.HttpStatus;
1210
import org.springframework.http.ResponseEntity;
1311
import org.springframework.web.bind.annotation.*;
1412

13+
1514
@RestController
1615
@Slf4j
17-
@RequestMapping("/api/v1")
16+
@RequestMapping("/api/v1/auth")
1817
public class AuthController {
1918

2019
@Autowired
@@ -23,17 +22,19 @@ public class AuthController {
2322
/**
2423
* only while user register, this method will be called by ts-user-service
2524
* to create a default role use
25+
*
2626
* @return
2727
*/
2828
@GetMapping("/hello")
29-
public String getHello(){
29+
public String getHello() {
3030
return "hello";
3131
}
32-
@PostMapping("/auth")
33-
public ResponseEntity<Void> createDefaultUser(@RequestBody AuthDto dto, HttpHeaders headers) {
34-
log.info(dto.getUserName() +" USER NAME");
35-
userService.createDefaultAuthUser(dto , headers);
36-
return ResponseEntity.status(HttpStatus.CREATED).build();
32+
33+
@PostMapping
34+
public HttpEntity<Response> createDefaultUser(@RequestBody AuthDto authDto) {
35+
userService.createDefaultAuthUser(authDto);
36+
Response response = new Response(1, "SUCCESS", authDto);
37+
return new ResponseEntity<>(response, HttpStatus.CREATED);
3738
}
3839
}
3940

ts-auth-service/src/main/java/auth/controller/UserController.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package auth.controller;
22

33

4+
import auth.dto.AuthDto;
45
import auth.dto.BasicAuthDto;
56
import auth.dto.TokenDto;
67
import auth.entity.User;
@@ -10,6 +11,7 @@
1011
import org.springframework.beans.factory.annotation.Autowired;
1112

1213
import org.springframework.http.HttpHeaders;
14+
import org.springframework.http.HttpStatus;
1315
import org.springframework.http.ResponseEntity;
1416
import org.springframework.web.bind.annotation.*;
1517

ts-auth-service/src/main/java/auth/dto/AuthDto.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
package auth.dto;
22

33
import lombok.AllArgsConstructor;
4-
import lombok.Builder;
54
import lombok.Data;
65
import lombok.NoArgsConstructor;
76

8-
import java.util.UUID;
9-
107
/***
118
* user-service register user , then send to auth-service
129
*/
1310
@Data
14-
@Builder
1511
@NoArgsConstructor
1612
@AllArgsConstructor
1713
public class AuthDto {

ts-auth-service/src/main/java/auth/service/UserService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public interface UserService {
1414

1515
List<User> getAllUser(HttpHeaders headers);
1616

17-
User createDefaultAuthUser(AuthDto dto, HttpHeaders headers);
17+
User createDefaultAuthUser(AuthDto dto);
1818

1919
Response deleteByUserId(UUID userId, HttpHeaders headers);
2020

ts-auth-service/src/main/java/auth/service/impl/UserServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public List<User> getAllUser(HttpHeaders headers) {
4444
* @return
4545
*/
4646
@Override
47-
public User createDefaultAuthUser(AuthDto dto, HttpHeaders headers) {
47+
public User createDefaultAuthUser(AuthDto dto) {
4848
log.info("Register User Info is: " + dto.getUserName());
4949
User user = User.builder()
5050
.userId(UUID.fromString(dto.getUserId()))

ts-ui-dashboard/static/admin_user.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@
129129
<div class="tpl-portlet-components">
130130
<div class="portlet-title">
131131
<div class="caption font-green bold">
132-
Travel List
132+
User List
133133
</div>
134134

135135
</div>

ts-ui-dashboard/static/assets/js/admin_user.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,11 @@ app.controller('indexCtrl', function ($scope, $http, $window, loadDataService) {
147147
data: {
148148
accountId: $scope.update_user_id,
149149
userName: $scope.update_user_name,
150-
newPassword: $scope.update_user_password,
151-
newGender: $scope.update_user_gender,
152-
newEmail: $scope.update_user_email,
153-
newDocumentType: $scope.update_user_document_type,
154-
newDocumentNumber: $scope.update_user_document_number
150+
password: $scope.update_user_password,
151+
gender: $scope.update_user_gender,
152+
email: $scope.update_user_email,
153+
documentType: $scope.update_user_document_type,
154+
documentNum: $scope.update_user_document_number
155155
}
156156
}).success(function (data, status, headers, config) {
157157
if (data.status == 1) {

ts-user-service/src/main/java/user/dto/AuthDto.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import lombok.Data;
66
import lombok.NoArgsConstructor;
77

8-
import java.util.UUID;
8+
99

1010
/***
1111
* user-service register user , then send to auth-service
@@ -15,6 +15,7 @@
1515
@NoArgsConstructor
1616
@AllArgsConstructor
1717
public class AuthDto {
18+
1819
private String userId;
1920
private String userName;
2021
private String password;

ts-user-service/src/main/java/user/service/impl/UserServiceImpl.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import edu.fudan.common.util.Response;
44
import lombok.extern.slf4j.Slf4j;
55
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.core.ParameterizedTypeReference;
67
import org.springframework.http.*;
78
import org.springframework.stereotype.Service;
89
import org.springframework.web.client.RestTemplate;
@@ -45,9 +46,10 @@ public Response saveUser(UserDto userDto, HttpHeaders headers) {
4546
// avoid same user name
4647
User user1 = userRepository.findByUserName(userDto.getUserName());
4748
if (user1 == null) {
48-
createDefaultAuthUser(AuthDto.builder().userId(UUID.randomUUID() +"")
49+
50+
createDefaultAuthUser(AuthDto.builder().userId(userId + "")
4951
.userName(user.getUserName())
50-
.password(user.getPassword()).build(), headers);
52+
.password(user.getPassword()).build());
5153

5254
User userSaveResult = userRepository.save(user);
5355
log.info("Send authorization message to ts-auth-service....");
@@ -58,14 +60,18 @@ public Response saveUser(UserDto userDto, HttpHeaders headers) {
5860
}
5961
}
6062

61-
private void createDefaultAuthUser(AuthDto dto, HttpHeaders headers) {
63+
private Response createDefaultAuthUser(AuthDto dto) {
6264
log.info("CALL TO AUTH");
65+
log.info("AuthDto : " + dto.toString());
6366
RestTemplate restTemplate = new RestTemplate();
64-
HttpEntity httpEntity = new HttpEntity(dto, headers);
65-
restTemplate.exchange(AUHT_SERVICE_URI + "/auth",
67+
HttpHeaders headers = new HttpHeaders();
68+
HttpEntity<AuthDto> entity = new HttpEntity<AuthDto>(dto, headers);
69+
ResponseEntity<Response<AuthDto>> res = restTemplate.exchange("http://ts-auth-service:12340/api/v1/auth",
6670
HttpMethod.POST,
67-
httpEntity,
68-
Void.class);
71+
entity,
72+
new ParameterizedTypeReference<Response<AuthDto>>() {
73+
});
74+
return res.getBody();
6975
}
7076

7177
@Override
@@ -79,15 +85,15 @@ public Response getAllUsers(HttpHeaders headers) {
7985
@Override
8086
public Response findByUserName(String userName, HttpHeaders headers) {
8187
User user = userRepository.findByUserName(userName);
82-
if(user != null)
88+
if (user != null)
8389
return new Response<>(1, "Find User Success", user);
8490
return new Response<>(0, "No User", null);
8591
}
8692

8793
@Override
8894
public Response findByUserId(String userId, HttpHeaders headers) {
8995
User user = userRepository.findByUserId(UUID.fromString(userId));
90-
if(user != null)
96+
if (user != null)
9197
return new Response<>(1, "Find User Success", user);
9298
return new Response<>(0, "No User", null);
9399
}
@@ -115,10 +121,12 @@ public Response updateUser(UserDto userDto, HttpHeaders headers) {
115121
if (oldUser != null) {
116122
User newUser = oldUser.builder().email(userDto.getEmail())
117123
.password(userDto.getPassword())
124+
.userId(oldUser.getUserId())
118125
.userName(userDto.getUserName())
119126
.gender(userDto.getGender())
120127
.documentNum(userDto.getDocumentNum())
121128
.documentType(userDto.getDocumentType()).build();
129+
userRepository.deleteByUserId(oldUser.getUserId());
122130
userRepository.save(newUser);
123131
return new Response<>(1, "SAVE USER SUCCESS", newUser);
124132
} else {

0 commit comments

Comments
 (0)