feat:用户实体审查完善

This commit is contained in:
wangyu 2021-10-23 09:44:32 +08:00
parent 873880036b
commit 703049fbec
1 changed files with 31 additions and 33 deletions

View File

@ -1,21 +1,19 @@
package com.flyfish.framework.service;
import com.flyfish.framework.domain.base.Qo;
import com.flyfish.framework.auditor.BeanAuditor;
import com.flyfish.framework.domain.po.User;
import com.flyfish.framework.enums.UserType;
import com.flyfish.framework.repository.UserRepository;
import com.flyfish.framework.service.impl.BaseServiceImpl;
import com.flyfish.framework.utils.Assert;
import com.flyfish.framework.utils.StrengthUtils;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;
@Service
@ -35,35 +33,35 @@ public class UserService extends BaseServiceImpl<User> implements UserFindServic
return ((UserRepository) repository).findByUsername(username);
}
@Override
public User create(User entity) {
if (null == entity.getId() && StringUtils.isNotBlank(entity.getPassword())) {
Assert.isTrue(StrengthUtils.isValid(entity.getPassword()), "密码强度不够,至少应该包含数字、大小写字母、符号组合");
entity.setPassword(passwordEncoder.encode(entity.getPassword()));
}
if (null == entity.getType()) {
entity.setType(UserType.ADMIN);
}
if (null == entity.getEnable()) {
entity.setEnable(true);
}
if (null == entity.getApp()) {
entity.setApp(false);
}
if (null == entity.getCode()) {
entity.setCode(entity.getUsername());
}
return super.create(entity);
}
@Component
@RequiredArgsConstructor
public static class Auditor implements BeanAuditor<User> {
@Override
public User createSelective(User entity) {
return create(entity);
}
private final PasswordEncoder passwordEncoder;
@Override
public List<User> getList(Qo<User> query) {
return super.getList(query);
/**
* 对实体进行审查并补全相关字段
*
* @param entity 原数据
*/
@Override
public void audit(User entity) {
if (null == entity.getId() && StringUtils.isNotBlank(entity.getPassword())) {
Assert.isTrue(StrengthUtils.isValid(entity.getPassword()), "密码强度不够,至少应该包含数字、大小写字母、符号组合");
entity.setPassword(passwordEncoder.encode(entity.getPassword()));
}
if (null == entity.getType()) {
entity.setType(UserType.ADMIN);
}
if (null == entity.getEnable()) {
entity.setEnable(true);
}
if (null == entity.getApp()) {
entity.setApp(false);
}
if (null == entity.getCode()) {
entity.setCode(entity.getUsername());
}
}
}
}