逻辑:
用户ID作为主键,用户不能重名,企业ID作为主键,企业可以重名,一个用户只能加入一个企业,company是user表的外键。
用户分四层权限,1为未加入企业的普通用户,2为加入企业的普通用户,3为企业管理员,4为企业创始人。
用户注册:
Controller层:
@RequestMapping(value = "/register", method = RequestMethod.POST)
public Result<UserVo> register(@RequestParam(name = "name") String name,
@RequestParam(name = "password") String password,
@RequestParam(name = "telephone", required = false) String telephone) {
User user;
if (userService.registerUser(user)) {
return Result.success(null);
} else {
return Result.error(ErrorEnum.UserNameExistError);
}
}
企业注册:
Controller层:
@PutMapping("/register")
public Result<Company> registerCompany(@RequestParam String companyName,
@RequestParam Integer userId) {
if (userService.getUserById(userId).getCompanyId() == null) {
return Result.success(companyService.registerCompany(companyName, userId, companyAddress, companyType));
} else {
return Result.error(ErrorEnum.UserHasCompanyError);
}
}
Service层:
@Override
public Company registerCompany(String companyName, Integer userId) {
Company company = new Company();
company.setName(companyName);
company.setOwnerId(userId);
company.setCType(cType);
company.setCAddress(cAddress);
companyRepository.save(company);
User owner = userRepository.getOne(userId);
owner.setCompanyId(company.getId());
owner.setPermission(4);
userRepository.save(owner);
return company;
}