Function bodies 165 total
User class · java · L17-L82 (66 LOC)src/main/java/com/dk/salesystem/entity/User.java
public class User implements UserDetails {
@TableId(type = IdType.AUTO)
private Long id;
@TableField(value = "username", exist = true)
private String username;
@TableField(value = "password", exist = true)
private String password;
@TableField(value = "email", exist = true)
private String email;
@TableField(value = "phone", exist = true)
private String phone;
@TableField(value = "nickname", exist = true)
private String nickname;
@TableField(value = "avatar", exist = true)
private String avatar;
@TableField(value = "status", exist = true)
private Integer status = 1;
@TableField(value = "created_at", fill = FieldFill.INSERT)
private LocalDateTime createdAt;
@TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updatedAt;
@TableField(value = "deleted", exist = true)
private Integer deleted = 0;
@TableField(exist = false)
private List<Role> roles = negetAuthorities method · java · L56-L61 (6 LOC)src/main/java/com/dk/salesystem/entity/User.java
public Collection<? extends GrantedAuthority> getAuthorities() {
return roles.stream()
.flatMap(role -> role.getPermissions().stream())
.map(permission -> new SimpleGrantedAuthority(permission.getCode()))
.collect(Collectors.toList());
}isAccountNonExpired method · java · L64-L66 (3 LOC)src/main/java/com/dk/salesystem/entity/User.java
public boolean isAccountNonExpired() {
return true;
}isAccountNonLocked method · java · L69-L71 (3 LOC)src/main/java/com/dk/salesystem/entity/User.java
public boolean isAccountNonLocked() {
return status == 1;
}isCredentialsNonExpired method · java · L74-L76 (3 LOC)src/main/java/com/dk/salesystem/entity/User.java
public boolean isCredentialsNonExpired() {
return true;
}isEnabled method · java · L79-L81 (3 LOC)src/main/java/com/dk/salesystem/entity/User.java
public boolean isEnabled() {
return status == 1 && deleted == 0;
}SaleSystemApplication class · java · L9-L13 (5 LOC)src/main/java/com/dk/salesystem/SaleSystemApplication.java
public class SaleSystemApplication {
public static void main(String[] args) {
SpringApplication.run(SaleSystemApplication.class, args);
}
}All rows scored by the Repobility analyzer (https://repobility.com)
main method · java · L10-L12 (3 LOC)src/main/java/com/dk/salesystem/SaleSystemApplication.java
public static void main(String[] args) {
SpringApplication.run(SaleSystemApplication.class, args);
}JwtAuthenticationFilter class · java · L21-L57 (37 LOC)src/main/java/com/dk/salesystem/security/JwtAuthenticationFilter.java
public class JwtAuthenticationFilter extends OncePerRequestFilter {
@Autowired
private JwtUtil jwtUtil;
@Autowired
private AuthService authService;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException {
try {
String jwt = parseJwt(request);
if (StringUtils.hasText(jwt) && jwtUtil.validateToken(jwt, authService.loadUserByUsername(jwtUtil.extractUsername(jwt)))) {
UserDetails userDetails = authService.loadUserByUsername(jwtUtil.extractUsername(jwt));
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
userDetails, null, userDetails.getAuthorities());
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.gedoFilterInternal method · java · L30-L46 (17 LOC)src/main/java/com/dk/salesystem/security/JwtAuthenticationFilter.java
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
FilterChain filterChain) throws ServletException, IOException {
try {
String jwt = parseJwt(request);
if (StringUtils.hasText(jwt) && jwtUtil.validateToken(jwt, authService.loadUserByUsername(jwtUtil.extractUsername(jwt)))) {
UserDetails userDetails = authService.loadUserByUsername(jwtUtil.extractUsername(jwt));
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
userDetails, null, userDetails.getAuthorities());
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
SecurityContextHolder.getContext().setAuthentication(authentication);
}
} catch (Exception e) {
logger.error("Cannot set user authentication: {}", e);
}
filparseJwt method · java · L48-L56 (9 LOC)src/main/java/com/dk/salesystem/security/JwtAuthenticationFilter.java
private String parseJwt(HttpServletRequest request) {
String headerAuth = request.getHeader("Authorization");
if (StringUtils.hasText(headerAuth) && headerAuth.startsWith("Bearer ")) {
return headerAuth.substring(7);
}
return null;
}AuthService class · java · L26-L132 (107 LOC)src/main/java/com/dk/salesystem/service/AuthService.java
public class AuthService implements UserDetailsService {
@Autowired
private UserMapper userMapper;
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private JwtUtil jwtUtil;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userMapper.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException("用户不存在:" + username);
}
if (user.getDeleted() == 1) {
throw new UsernameNotFoundException("用户已被删除:" + username);
}
// Load roles and permissions for user
loadUserRolesAndPermissions(user);
return user;
}
private void loadUserRolesAndPermissions(User user) {
List<Long> roleIds = userMapper.findRoleIdsByUserId(user.getId());
if (roleIds != null && !roleIds.isEmpty()) {
LiloadUserByUsername method · java · L41-L54 (14 LOC)src/main/java/com/dk/salesystem/service/AuthService.java
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
User user = userMapper.findByUsername(username);
if (user == null) {
throw new UsernameNotFoundException("用户不存在:" + username);
}
if (user.getDeleted() == 1) {
throw new UsernameNotFoundException("用户已被删除:" + username);
}
// Load roles and permissions for user
loadUserRolesAndPermissions(user);
return user;
}loadUserRolesAndPermissions method · java · L56-L81 (26 LOC)src/main/java/com/dk/salesystem/service/AuthService.java
private void loadUserRolesAndPermissions(User user) {
List<Long> roleIds = userMapper.findRoleIdsByUserId(user.getId());
if (roleIds != null && !roleIds.isEmpty()) {
List<Role> roles = userMapper.findRolesByRoleIds(roleIds);
List<Long> permissionIds = new ArrayList<>();
for (Role role : roles) {
List<Long> rolePermissionIds = userMapper.findPermissionIdsByRoleIds(List.of(role.getId()));
if (rolePermissionIds != null) {
permissionIds.addAll(rolePermissionIds);
}
}
if (!permissionIds.isEmpty()) {
List<Permission> permissions = userMapper.findPermissionsByPermissionIds(permissionIds);
// Remove duplicates by code
permissions = permissions.stream()
.distinct()
.collect(Collectors.toList());
for (Role role : roles) {
login method · java · L83-L120 (38 LOC)src/main/java/com/dk/salesystem/service/AuthService.java
public LoginResponse login(LoginRequest request) {
try {
authenticationManager.authenticate(
new UsernamePasswordAuthenticationToken(request.getUsername(), request.getPassword())
);
} catch (DisabledException e) {
throw new BadCredentialsException("用户已被禁用");
} catch (BadCredentialsException e) {
throw new BadCredentialsException("用户名或密码错误");
}
UserDetails userDetails = loadUserByUsername(request.getUsername());
User user = (User) userDetails;
String token = jwtUtil.generateToken(userDetails);
List<String> roles = user.getRoles().stream()
.map(role -> role.getCode())
.collect(Collectors.toList());
List<String> permissions = user.getAuthorities().stream()
.map(authority -> authority.getAuthority())
.collect(Collectors.toList());
return LoginResponse.builder()
Repobility — same analyzer, your code, free for public repos · /scan/
register method · java · L122-L131 (10 LOC)src/main/java/com/dk/salesystem/service/AuthService.java
public User register(User user, String rawPassword) {
if (userMapper.existsByUsername(user.getUsername())) {
throw new RuntimeException("用户名已存在");
}
user.setPassword(passwordEncoder.encode(rawPassword));
user.setStatus(1);
user.setDeleted(0);
userMapper.insert(user);
return user;
}FishService class · java · L13-L54 (42 LOC)src/main/java/com/dk/salesystem/service/FishService.java
public class FishService {
@Autowired
private FishMapper fishMapper;
public List<Fish> findAll() {
return fishMapper.selectList(null);
}
public Page<Fish> findPage(int page, int size, String name) {
Page<Fish> pageParam = new Page<>(page, size);
if (StringUtils.hasText(name)) {
// 使用 QueryWrapper 进行模糊查询
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<Fish> wrapper =
new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<>();
wrapper.like("name", name);
return fishMapper.selectPage(pageParam, wrapper);
}
return fishMapper.selectPage(pageParam, null);
}
public Fish findById(Long id) {
return fishMapper.selectById(id);
}
public Fish save(Fish fish) {
if (fish.getId() == null) {
fishMapper.insert(fish);
} else {
fishMapper.updateById(fish);
}
return fish;
}
findAll method · java · L18-L20 (3 LOC)src/main/java/com/dk/salesystem/service/FishService.java
public List<Fish> findAll() {
return fishMapper.selectList(null);
}findPage method · java · L22-L32 (11 LOC)src/main/java/com/dk/salesystem/service/FishService.java
public Page<Fish> findPage(int page, int size, String name) {
Page<Fish> pageParam = new Page<>(page, size);
if (StringUtils.hasText(name)) {
// 使用 QueryWrapper 进行模糊查询
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<Fish> wrapper =
new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<>();
wrapper.like("name", name);
return fishMapper.selectPage(pageParam, wrapper);
}
return fishMapper.selectPage(pageParam, null);
}findById method · java · L34-L36 (3 LOC)src/main/java/com/dk/salesystem/service/FishService.java
public Fish findById(Long id) {
return fishMapper.selectById(id);
}save method · java · L38-L45 (8 LOC)src/main/java/com/dk/salesystem/service/FishService.java
public Fish save(Fish fish) {
if (fish.getId() == null) {
fishMapper.insert(fish);
} else {
fishMapper.updateById(fish);
}
return fish;
}deleteById method · java · L47-L49 (3 LOC)src/main/java/com/dk/salesystem/service/FishService.java
public void deleteById(Long id) {
fishMapper.deleteById(id);
}searchByName method · java · L51-L53 (3 LOC)src/main/java/com/dk/salesystem/service/FishService.java
public List<Fish> searchByName(String name) {
return fishMapper.findByNameContaining(name);
}Open data scored by Repobility · https://repobility.com
PermissionService class · java · L11-L44 (34 LOC)src/main/java/com/dk/salesystem/service/PermissionService.java
public class PermissionService {
@Autowired
private PermissionMapper permissionMapper;
public List<Permission> findAll() {
return permissionMapper.selectList(null);
}
public List<Permission> findMenuTree() {
return permissionMapper.findByStatus(1);
}
public Permission findById(Long id) {
return permissionMapper.selectById(id);
}
public List<Permission> findByParentId(Long parentId) {
return permissionMapper.findByParentId(parentId);
}
public Permission save(Permission permission) {
if (permission.getId() == null) {
permissionMapper.insert(permission);
} else {
permissionMapper.updateById(permission);
}
return permission;
}
public void deleteById(Long id) {
permissionMapper.deleteById(id);
}
}findAll method · java · L16-L18 (3 LOC)src/main/java/com/dk/salesystem/service/PermissionService.java
public List<Permission> findAll() {
return permissionMapper.selectList(null);
}findMenuTree method · java · L20-L22 (3 LOC)src/main/java/com/dk/salesystem/service/PermissionService.java
public List<Permission> findMenuTree() {
return permissionMapper.findByStatus(1);
}findById method · java · L24-L26 (3 LOC)src/main/java/com/dk/salesystem/service/PermissionService.java
public Permission findById(Long id) {
return permissionMapper.selectById(id);
}findByParentId method · java · L28-L30 (3 LOC)src/main/java/com/dk/salesystem/service/PermissionService.java
public List<Permission> findByParentId(Long parentId) {
return permissionMapper.findByParentId(parentId);
}save method · java · L32-L39 (8 LOC)src/main/java/com/dk/salesystem/service/PermissionService.java
public Permission save(Permission permission) {
if (permission.getId() == null) {
permissionMapper.insert(permission);
} else {
permissionMapper.updateById(permission);
}
return permission;
}deleteById method · java · L41-L43 (3 LOC)src/main/java/com/dk/salesystem/service/PermissionService.java
public void deleteById(Long id) {
permissionMapper.deleteById(id);
}RoleService class · java · L15-L47 (33 LOC)src/main/java/com/dk/salesystem/service/RoleService.java
public class RoleService {
@Autowired
private RoleMapper roleMapper;
public List<Role> findAll() {
return roleMapper.selectList(null);
}
public Role findById(Long id) {
return roleMapper.selectById(id);
}
public Role findByName(String name) {
return roleMapper.findByName(name);
}
@Transactional
public Role save(Role role) {
role.setUpdatedAt(LocalDateTime.now());
if (role.getId() == null) {
roleMapper.insert(role);
} else {
roleMapper.updateById(role);
}
return role;
}
@Transactional
public void deleteById(Long id) {
roleMapper.deleteById(id);
}
}Repobility · severity-and-effort ranking · https://repobility.com
findAll method · java · L20-L22 (3 LOC)src/main/java/com/dk/salesystem/service/RoleService.java
public List<Role> findAll() {
return roleMapper.selectList(null);
}findById method · java · L24-L26 (3 LOC)src/main/java/com/dk/salesystem/service/RoleService.java
public Role findById(Long id) {
return roleMapper.selectById(id);
}findByName method · java · L28-L30 (3 LOC)src/main/java/com/dk/salesystem/service/RoleService.java
public Role findByName(String name) {
return roleMapper.findByName(name);
}save method · java · L33-L41 (9 LOC)src/main/java/com/dk/salesystem/service/RoleService.java
public Role save(Role role) {
role.setUpdatedAt(LocalDateTime.now());
if (role.getId() == null) {
roleMapper.insert(role);
} else {
roleMapper.updateById(role);
}
return role;
}deleteById method · java · L44-L46 (3 LOC)src/main/java/com/dk/salesystem/service/RoleService.java
public void deleteById(Long id) {
roleMapper.deleteById(id);
}SaleService class · java · L20-L141 (122 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public class SaleService {
@Autowired
private SaleRecordMapper saleRecordMapper;
@Autowired
private FishMapper fishMapper;
public List<SaleRecord> findAll() {
return saleRecordMapper.selectList(null);
}
public Page<SaleRecord> findPage(int page, int size, Long fishId, LocalDate startDate, LocalDate endDate) {
Page<SaleRecord> pageParam = new Page<>(page, size);
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<SaleRecord> wrapper =
new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<>();
if (fishId != null) {
wrapper.eq("fish_id", fishId);
}
if (startDate != null) {
wrapper.ge("sale_date", startDate);
}
if (endDate != null) {
wrapper.le("sale_date", endDate);
}
Page<SaleRecord> pageResult = saleRecordMapper.selectPage(pageParam, wrapper);
// 关联鱼类信息
List<SaleRecord> records = pageResult.getfindAll method · java · L28-L30 (3 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public List<SaleRecord> findAll() {
return saleRecordMapper.selectList(null);
}findPage method · java · L32-L59 (28 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public Page<SaleRecord> findPage(int page, int size, Long fishId, LocalDate startDate, LocalDate endDate) {
Page<SaleRecord> pageParam = new Page<>(page, size);
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<SaleRecord> wrapper =
new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<>();
if (fishId != null) {
wrapper.eq("fish_id", fishId);
}
if (startDate != null) {
wrapper.ge("sale_date", startDate);
}
if (endDate != null) {
wrapper.le("sale_date", endDate);
}
Page<SaleRecord> pageResult = saleRecordMapper.selectPage(pageParam, wrapper);
// 关联鱼类信息
List<SaleRecord> records = pageResult.getRecords();
if (!records.isEmpty()) {
List<Long> fishIds = records.stream().map(SaleRecord::getFishId).distinct().collect(Collectors.toList());
List<Fish> fishList = fishMapper.selectBatchIds(fishIds);
All rows scored by the Repobility analyzer (https://repobility.com)
save method · java · L61-L68 (8 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public SaleRecord save(SaleRecord record) {
if (record.getId() == null) {
saleRecordMapper.insert(record);
} else {
saleRecordMapper.updateById(record);
}
return record;
}deleteById method · java · L70-L72 (3 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public void deleteById(Long id) {
saleRecordMapper.deleteById(id);
}getDailyStats method · java · L74-L79 (6 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public Map<String, Object> getDailyStats(LocalDate date) {
LocalDateTime startOfDay = date.atStartOfDay();
LocalDateTime endOfDay = startOfDay.plusDays(1).minusSeconds(1);
List<SaleRecord> records = saleRecordMapper.findBySaleDateTimeBetween(startOfDay, endOfDay);
return calculateStats(records);
}getWeeklyStats method · java · L81-L89 (9 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public Map<String, Object> getWeeklyStats(LocalDate date) {
LocalDateTime startOfWeek = date.minusDays(date.getDayOfWeek().getValue() - 1).atStartOfDay();
LocalDateTime endOfWeek = startOfWeek.plusDays(7).minusSeconds(1);
List<SaleRecord> records = saleRecordMapper.findBySaleDateTimeBetween(startOfWeek, endOfWeek);
Map<String, Object> stats = calculateStats(records);
stats.put("startDate", startOfWeek.toLocalDate());
stats.put("endDate", endOfWeek.toLocalDate());
return stats;
}getMonthlyStats method · java · L91-L99 (9 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public Map<String, Object> getMonthlyStats(LocalDate date) {
LocalDateTime startOfMonth = date.withDayOfMonth(1).atStartOfDay();
LocalDateTime endOfMonth = startOfMonth.plusMonths(1).minusSeconds(1);
List<SaleRecord> records = saleRecordMapper.findBySaleDateTimeBetween(startOfMonth, endOfMonth);
Map<String, Object> stats = calculateStats(records);
stats.put("startDate", startOfMonth.toLocalDate());
stats.put("endDate", endOfMonth.toLocalDate());
return stats;
}getQuarterlyStats method · java · L101-L113 (13 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public Map<String, Object> getQuarterlyStats(LocalDate date) {
int month = date.getMonthValue();
int quarter = (month - 1) / 3;
int startMonth = quarter * 3 + 1;
LocalDateTime startOfQuarter = date.withMonth(startMonth).withDayOfMonth(1).atStartOfDay();
LocalDateTime endOfQuarter = startOfQuarter.plusMonths(3).minusSeconds(1);
List<SaleRecord> records = saleRecordMapper.findBySaleDateTimeBetween(startOfQuarter, endOfQuarter);
Map<String, Object> stats = calculateStats(records);
stats.put("startDate", startOfQuarter.toLocalDate());
stats.put("endDate", endOfQuarter.toLocalDate());
stats.put("quarter", quarter + 1);
return stats;
}getYearlyStats method · java · L115-L122 (8 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
public Map<String, Object> getYearlyStats(int year) {
LocalDateTime startOfYear = LocalDateTime.of(year, 1, 1, 0, 0, 0);
LocalDateTime endOfYear = LocalDateTime.of(year, 12, 31, 23, 59, 59);
List<SaleRecord> records = saleRecordMapper.findBySaleDateTimeBetween(startOfYear, endOfYear);
Map<String, Object> stats = calculateStats(records);
stats.put("year", year);
return stats;
}calculateStats method · java · L124-L140 (17 LOC)src/main/java/com/dk/salesystem/service/SaleService.java
private Map<String, Object> calculateStats(List<SaleRecord> records) {
Map<String, Object> stats = new HashMap<>();
stats.put("records", records);
stats.put("totalRecords", records.size());
BigDecimal totalQuantity = records.stream()
.map(SaleRecord::getQuantity)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal totalAmount = records.stream()
.map(SaleRecord::getTotalPrice)
.reduce(BigDecimal.ZERO, BigDecimal::add);
stats.put("totalQuantity", totalQuantity);
stats.put("totalAmount", totalAmount);
return stats;
}Repobility — same analyzer, your code, free for public repos · /scan/
UserService class · java · L13-L57 (45 LOC)src/main/java/com/dk/salesystem/service/UserService.java
public class UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private PasswordEncoder passwordEncoder;
public List<User> findAll() {
return userMapper.selectList(null);
}
public User findById(Long id) {
return userMapper.selectById(id);
}
public User findByUsername(String username) {
return userMapper.findByUsername(username);
}
@Transactional
public User save(User user) {
if (user.getId() == null) {
userMapper.insert(user);
} else {
userMapper.updateById(user);
}
return user;
}
@Transactional
public void deleteById(Long id) {
userMapper.deleteById(id);
}
@Transactional
public void updatePassword(Long userId, String newPassword) {
User user = userMapper.selectById(userId);
if (user == null) {
throw new RuntimeException("用户不存在");
}
user.setPassword(passwordEncofindAll method · java · L21-L23 (3 LOC)src/main/java/com/dk/salesystem/service/UserService.java
public List<User> findAll() {
return userMapper.selectList(null);
}findById method · java · L25-L27 (3 LOC)src/main/java/com/dk/salesystem/service/UserService.java
public User findById(Long id) {
return userMapper.selectById(id);
}