Skip to content

Commit

Permalink
feat: 添加系统用户初始化逻辑 & some bug fix;
Browse files Browse the repository at this point in the history
  • Loading branch information
javahuang committed Oct 19, 2021
1 parent b2dd562 commit 3622632
Show file tree
Hide file tree
Showing 17 changed files with 306 additions and 141 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@
build/
.idea/
logs/
*.map
*.map
files/
.settings
bin/
3 changes: 1 addition & 2 deletions api/build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
plugins {
id 'maven-publish'
}

group = 'cn.surveyking'
version = '0.0.1-release'
sourceCompatibility = '1.8'
project.archivesBaseName = 'surveyking'

Expand Down
84 changes: 0 additions & 84 deletions api/src/main/resources/scripts/init.sql

This file was deleted.

5 changes: 5 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ repositories {
mavenCentral()
}

allprojects {
group = 'cn.surveyking'
version = 'v0.1.0'
}

subprojects {
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
Expand Down
1 change: 1 addition & 0 deletions rdbms/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'

implementation 'com.h2database:h2:1.4.200'
// implementation 'mysql:mysql-connector-java:8.0.26'
}

test {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,17 @@ public class TemplateServiceImpl extends BaseService<TemplateMapper, Template> i

@Override
public PaginationResponse<TemplateView> listTemplate(TemplateQuery query) {
Page<Template> templatePage = pageByQuery(query,
Wrappers.<Template>lambdaQuery().like(isNotEmpty(query.getName()), Template::getName, query.getName())
.eq(query.getQuestionType() != null, Template::getQuestionType, query.getQuestionType())
.in(query.getCategories().size() > 0, Template::getCategory, query.getCategories())
.eq(Template::getShared, query.getShared())
.eq(query.getShared() == 0, Template::getCreateBy, SecurityContextUtils.getUserId())
.and(query.getTags().size() > 0, i -> query.getTags().forEach(tag -> {
i.or(j -> j.like(Template::getTag, tag));
})).orderByAsc(Template::getPriority));
Page<Template> templatePage = pageByQuery(query, Wrappers.<Template>lambdaQuery()
.like(isNotEmpty(query.getName()), Template::getName, query.getName())
.eq(query.getQuestionType() != null, Template::getQuestionType, query.getQuestionType())
// 默认查询额是普通题型
.ne(query.getQuestionType() == null, Template::getQuestionType, SurveySchemaType.QuestionType.Survey)
.in(query.getCategories().size() > 0, Template::getCategory, query.getCategories())
.eq(Template::getShared, query.getShared())
.eq(query.getShared() == 0, Template::getCreateBy, SecurityContextUtils.getUserId())
.and(query.getTags().size() > 0, i -> query.getTags().forEach(tag -> {
i.or(j -> j.like(Template::getTag, tag));
})).orderByAsc(Template::getPriority));
return new PaginationResponse<>(templatePage.getTotal(),
templatePage.getRecords().stream().map(x -> templateViewMapper.toView(x)).collect(Collectors.toList()));
}
Expand Down
55 changes: 48 additions & 7 deletions rdbms/src/main/java/cn/surveyking/server/impl/UserServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import cn.surveyking.server.core.common.PaginationResponse;
import cn.surveyking.server.core.constant.AppConsts;
import cn.surveyking.server.core.security.PreAuthorizeAnnotationExtractor;
import cn.surveyking.server.domain.dto.UserInfo;
import cn.surveyking.server.domain.dto.UserQuery;
import cn.surveyking.server.domain.dto.UserRequest;
Expand All @@ -13,7 +14,6 @@
import cn.surveyking.server.domain.model.User;
import cn.surveyking.server.domain.model.UserRole;
import cn.surveyking.server.mapper.AccountMapper;
import cn.surveyking.server.mapper.RoleMapper;
import cn.surveyking.server.mapper.UserMapper;
import cn.surveyking.server.mapper.UserRoleMapper;
import cn.surveyking.server.service.BaseService;
Expand All @@ -22,6 +22,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.core.GrantedAuthority;
Expand All @@ -46,6 +47,7 @@
@Service
@Transactional
@RequiredArgsConstructor
@Slf4j
public class UserServiceImpl extends BaseService<UserMapper, User> implements UserService {

private final AccountMapper accountMapper;
Expand All @@ -58,7 +60,7 @@ public class UserServiceImpl extends BaseService<UserMapper, User> implements Us

private final UserRoleMapper userRoleMapper;

private final RoleMapper roleMapper;
private final RoleServiceImpl roleService;

/**
* @param username 账号密码登录认证使用
Expand Down Expand Up @@ -87,7 +89,7 @@ public UserInfo currentUser(String userId) {
UserInfo userInfo = userViewMapper.toUserInfo(user);
List<Role> roles = userRoleMapper
.selectList(Wrappers.<UserRole>lambdaQuery().eq(UserRole::getUserId, user.getId())).stream()
.map(ur -> roleMapper.selectById(ur.getRoleId())).collect(Collectors.toList());
.map(ur -> roleService.getById(ur.getRoleId())).collect(Collectors.toList());
Set<String> authorities = new HashSet<>();
roles.forEach(role -> {
authorities.add("ROLE_" + role.getCode());
Expand All @@ -108,10 +110,10 @@ public PaginationResponse<UserView> getUsers(UserQuery query) {
UserView userView = userViewMapper.toUserView(x);
userView.setUsername(accountMapper
.selectOne(Wrappers.<Account>lambdaQuery().eq(Account::getUserId, x.getId())).getAuthAccount());
userView.setRoles(userRoleMapper
.selectList(Wrappers.<UserRole>lambdaQuery().eq(UserRole::getUserId, x.getId())).stream()
.map(userRole -> roleViewMapper.toView(roleMapper.selectById(userRole.getRoleId())))
.collect(Collectors.toList()));
userView.setRoles(
userRoleMapper.selectList(Wrappers.<UserRole>lambdaQuery().eq(UserRole::getUserId, x.getId()))
.stream().map(userRole -> roleViewMapper.toView(roleService.getById(userRole.getRoleId())))
.collect(Collectors.toList()));
return userView;
}).collect(Collectors.toList()));
}
Expand Down Expand Up @@ -181,4 +183,43 @@ public boolean checkUsernameExist(String username) {
return false;
}

@Override
public void init() {
if (count() > 0) {
return;
}
log.info("开始初始化系统用户");
// 创建角色
Role role = new Role();
role.setName("Admin");
role.setCode("admin");
role.setRemark("系统初始化角色");
role.setAuthority(String.join(",", PreAuthorizeAnnotationExtractor.extractAllApiPermissions()));
roleService.save(role);

// 创建用户
User user = new User();
user.setName("Admin");
user.setGender("M");
user.setStatus(AppConsts.USER_STATUS.VALID.getStatus());
save(user);

// 绑定用户角色
UserRole userRole = new UserRole();
userRole.setUserId(user.getId());
userRole.setRoleId(role.getId());
userRole.setUserType(AppConsts.USER_TYPE.SysUser.name());
userRoleMapper.insert(userRole);

// 创建账号
Account account = new Account();
account.setAuthAccount("admin");
account.setAuthSecret(passwordEncoder.encode("surveyking"));
account.setUserId(user.getId());
account.setUserType(AppConsts.USER_TYPE.SysUser.name());
account.setStatus(AppConsts.USER_STATUS.VALID.getStatus());
accountMapper.insert(account);
log.info("系统用户初始化完成(admin/surveyking)");
}

}
2 changes: 1 addition & 1 deletion rdbms/src/main/resources/config/application-pro.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ spring:
datasource:
username: sa
password: sa
url: jdbc:h2:./survey;INIT=runscript from 'classpath:scripts/init.sql'
url: jdbc:h2:./survey;INIT=runscript from 'classpath:scripts/init-h2.sql'
driver-class-name: org.h2.Driver
mybatis-plus:
configuration:
Expand Down
Loading

0 comments on commit 3622632

Please sign in to comment.