改完了,真改完了

This commit is contained in:
高子兴 2024-07-06 09:20:55 +08:00
parent 5747e255e9
commit 99862678e7
4 changed files with 97 additions and 30 deletions

View File

@ -3,8 +3,11 @@ package org.cmh.backend.UserManagement.adpter;
import org.cmh.backend.UserManagement.model.User;
import org.cmh.backend.authentication.model.UserHS;
import java.time.LocalDateTime;
public class User2UserHS {
public static UserHS convert(User user) {
private String tenant;
public static UserHS convert(User user,String tenant) {
UserHS userHS = new UserHS();
userHS.setUsername(user.getAccount());
userHS.setPassword(user.getPassword());
@ -13,6 +16,9 @@ public class User2UserHS {
userHS.setGender(user.getGender());
userHS.setEmail(user.getEmail());
userHS.setPhoneNumber(user.getPhone());
userHS.setRole("用户");
userHS.setCreatedAt(LocalDateTime.now());
userHS.setTenant(tenant);
return userHS;
}

View File

@ -1,41 +1,71 @@
package org.cmh.backend.UserManagement.controller;
import jakarta.transaction.Transactional;
import org.apache.poi.ss.formula.functions.T;
import org.cmh.backend.UserManagement.dto.TenantOptionsResponse;
import org.cmh.backend.UserManagement.model.Tenant;
import org.cmh.backend.UserManagement.model.User;
import org.cmh.backend.UserManagement.service.TenantManagementService;
import org.cmh.backend.Utils.JwtUtil;
import org.cmh.backend.Utils.JwtVerify;
import org.cmh.backend.authentication.model.UserHS;
import org.cmh.backend.authentication.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/tenant")
public class TenantManagementController {
@Autowired
private TenantManagementService tenantManagementService;
@Autowired
private UserService userService;
private boolean isAdmin(String token) {
UserHS user = userService.getUserByUsername(JwtUtil.extractUsername(token));
return user.getSuperAdmin();
}
@PostMapping("/addTenant")
public Tenant addTenant(@RequestBody Tenant tenant) {
@JwtVerify
public Tenant addTenant(@RequestBody Tenant tenant, @RequestParam String token) {
if (isAdmin(token)) {
Tenant tenant1 = tenantManagementService.registerTenant(tenant);
UserHS newUser = new UserHS();
newUser.setUsername(tenant.getManager());
newUser.setPassword(tenant.getSymbol());
newUser.setRole("企业管理员");
newUser.setTenant(tenant.getName());
newUser.setGender("");
newUser.setNickname(tenant.getManager());
newUser.setEmail(tenant.getContact());
newUser.setDepartment("企业管理员");
newUser.setCreatedAt(LocalDateTime.now());
newUser.setPhoneNumber(tenant.getPhone());
userService.addUser(newUser);
System.out.println(tenant.toString());
return tenant1;
}
return null;
}
@GetMapping("/getAllTenant")
public List<Tenant> getAll() {
@JwtVerify
public List<Tenant> getAll(@RequestParam String token) {
if (isAdmin(token)) {
return tenantManagementService.findAll();
} else {
return null;
}
}
@GetMapping("/getTenantOptions")
@JwtVerify
public ResponseEntity<TenantOptionsResponse> getAll(@RequestParam String token) {
public ResponseEntity<TenantOptionsResponse> getAllForNews(@RequestParam String token) {
tenantManagementService.findAll();
try {
List<String> options = tenantManagementService.findAll().stream()
@ -48,17 +78,23 @@ public class TenantManagementController {
}
@PostMapping("/updateTenant")
public Tenant update(@RequestBody Tenant tenant) {
System.out.println(tenant);
@JwtVerify
public Tenant update(@RequestBody Tenant tenant, @RequestParam String token) {
if (isAdmin(token)) {
tenantManagementService.update(tenant);
return tenant;
}
return null;
}
@PostMapping("/deleteTenant")
@Transactional
public void delete(@RequestBody User user) {
@JwtVerify
public void delete(@RequestBody User user, @RequestParam String token) {
if (isAdmin(token)){
tenantManagementService.delete(user.getId());
}
}
}

View File

@ -32,8 +32,12 @@ public class UserManagementController {
private UserRepository userRepository;
@PostMapping("/addUser")
public ResponseEntity<UserProfileResponse> addUser(@RequestBody User user) {
UserHS newuser = User2UserHS.convert(user);
@JwtVerify
public ResponseEntity<UserProfileResponse> addUser(@RequestBody User user,@RequestParam String token) {
String username = JwtUtil.extractUsername(token);
UserHS operationUser = userService.getUserByUsername(username);
UserHS newuser = User2UserHS.convert(user,operationUser.getTenant());
UserProfileResponse response = new UserProfileResponse(
newuser.getUsername(),
newuser.getNickname(),
@ -67,15 +71,18 @@ public class UserManagementController {
@PostMapping("/update")
public ResponseEntity<UserProfileResponse> update(@RequestBody User user) {
UserHS reqUser = User2UserHS.convert(user);
public ResponseEntity<UserProfileResponse> update(@RequestBody User user,@RequestParam String token) {
String username = JwtUtil.extractUsername(token);
UserHS operationUser = userService.getUserByUsername(username);
UserHS reqUser = User2UserHS.convert(user, operationUser.getTenant());
UserHS tarUser = userService.getUserByUsername(reqUser.getUsername());
if (tarUser != null) {
tarUser.setNickname(reqUser.getNickname());
tarUser.setGender(reqUser.getGender());
tarUser.setPhoneNumber(reqUser.getPhoneNumber());
tarUser.setEmail(reqUser.getEmail());
tarUser.setRole(reqUser.getRole());
// tarUser.setNickname(reqUser.getNickname());
// tarUser.setGender(reqUser.getGender());
// tarUser.setPhoneNumber(reqUser.getPhoneNumber());
// tarUser.setEmail(reqUser.getEmail());
// tarUser.setRole(reqUser.getRole());
reqUser.setId(tarUser.getId());
UserProfileResponse response = new UserProfileResponse(
reqUser.getUsername(),
reqUser.getNickname(),
@ -86,10 +93,10 @@ public class UserManagementController {
reqUser.getRole(),
reqUser.getCreatedAt()
);
if (organizationService.getByName(reqUser.getDepartment()) != null) {
tarUser.setDepartment(reqUser.getDepartment());
if (organizationService.getByName(reqUser.getDepartment()) == null) {
return new ResponseEntity<>(null, HttpStatus.OK);
}
userRepository.save(tarUser);
userRepository.save(reqUser);
return new ResponseEntity<>(response, HttpStatus.OK);
} else {
return new ResponseEntity<>(null, HttpStatus.OK);

View File

@ -1,5 +1,7 @@
package org.cmh.backend.authentication.service;
import org.cmh.backend.UserManagement.model.Tenant;
import org.cmh.backend.UserManagement.repository.TenantManagementRepository;
import org.cmh.backend.authentication.dto.ChangePasswordRequest;
import org.cmh.backend.authentication.dto.ManageUserProfileRequest;
import org.cmh.backend.authentication.dto.RegisterRequest;
@ -18,6 +20,8 @@ import java.util.regex.Pattern;
public class UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private TenantManagementRepository tenantRepository;
private final PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
@ -47,10 +51,24 @@ public class UserService {
newUser.setUsername(username);
newUser.setPassword(encodedPassword);
newUser.setPhoneNumber(phoneNumber);
newUser.setRole("企业管理员");
newUser.setTenant(username);
newUser.setGender("");
newUser.setNickname(username);
newUser.setEmail("user@example.com");
newUser.setDepartment("企业管理员");
newUser.setCreatedAt(LocalDateTime.now());
userRepository.save(newUser);
Tenant newTenant = new Tenant();
newTenant.setName(username);
newTenant.setPhone(phoneNumber);
newTenant.setManager(username);
newTenant.setSymbol(username);
newTenant.setContact(username);
tenantRepository.save(newTenant);
return true;
}