package com.example.layuidemo.service;
import com.example.layuidemo.entity.Role;
import com.example.layuidemo.entity.User;
import com.example.layuidemo.entity.vo.UserVo;
import com.example.layuidemo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
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.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class UserServiceImpl implements UserDetailsService,UserService {
@Resource
UserMapper userMapper;
@Resource
RoleService roleService;
@Resource
PasswordEncoder passwordEncoder;
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
User user = userMapper.loadUserByUsername(s);
if(user==null){
throw new UsernameNotFoundException("用户名不存在");
}
user.setRoles(userMapper.getUserRolesByUid(user.getId()));
return user;
}
@Override
public List<Role> getUserRolesByUid(int uid) {
return userMapper.getUserRolesByUid(uid);
}
@Override
public List<User> getAllUser() {
List<User> users = userMapper.getAllUser();
/**
* user对象
* java.lang.NullPointerException: null
* at com.example.layuidemo.entity.User.getAuthorities(User.java:133) ~[classes/:na]
* at com.alibaba.fastjson.serializer.ASMSerializer_1_User.write(Unknown Source) ~[na:na]
*/
for (int i=0;i<users.size();i++){
List<Role> roles = userMapper.getUserRolesByUid(users.get(i).getId());
users.get(i).setRoles(roles);
}
return users;
}
@Override
public User getUserById(Integer id) {
return userMapper.getUserById(id);
}
@Override
public int updateUser(User user) {
return userMapper.updateUser(user);
}
@Override
public int deleteUser(int[] ids) {
return userMapper.deleteUser(ids);
}
@Override
public int addUser(String username,String password,String[] roles,String open) {
User user = new User();
user.setUsername(username);
user.setPassword(passwordEncoder.encode(password));
user.setCreateBy(16);
user.setModifyBy(16);
user.setCreateDate(new Date());
user.setModifyDate(new Date());
user.setAmount(new BigDecimal(11000));
if(open.equals("on")){
user.setIsenable(1);
user.setIslocked(1);
}else{
user.setIsenable(0);
user.setIslocked(0);
}
int result = userMapper.addUser(user);
if(result>0){
int userId = userMapper.getUidByName(user.getUsername());
for (int i=0;i<roles.length;i++){
roleService.addUserRole(userId,Integer.parseInt(roles[i]));
}
}
return result;
}
@Override
public int getCount() {
return userMapper.getCount();
}
@Override
public String getUserNameById(int id) {
return userMapper.getUserNameById(id);
}
@Override
public int updateaMount(BigDecimal mount, Integer id) {
return userMapper.updateaMount(mount, id);
}
@Override
public List<User> getAllBangKe() {
return userMapper.getAllBangKe();
}
@Override
public List<UserVo> getAllUserVo(List<User> users) {
List<UserVo> userVos = new ArrayList<>();
for (int i=0;i<users.size();i++){
User user = users.get(i);
int createById = user.getCreateBy();
String createBy = userMapper.getUserNameById(createById);
int modifyById = user.getModifyBy();
String modifyByIdBy = userMapper.getUserNameById(modifyById);
String enale = "可以使用";
String lock = "未被锁定";
if(user.getIsenable()!=1){
enale = "不可使用";
}
if(user.getIslocked()!=1){
lock = "已被锁定";
}
String roles = "";
List<Role> roleList = user.getRoles();
for(int j = 0;j<roleList.size();j++){
roles+=roleList.get(j).getRoleNameZH();
}
UserVo userVo = new UserVo(user.getId(),user.getUsername(),
user.getPassword(),user.getAmount(),enale,lock,user.getCreateDate(),
user.getModifyDate(),createBy,modifyByIdBy,roles);
userVos.add(userVo);
}
return userVos;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
bangke小项目 练手 (708个子文件)
0074a3cc002733b58b520fb80ec42902d585b9 2KB
036954b7a6da7e79b093e5795e1a568c443a5f 583B
065087d4720326776b26c7b9d2482c9e467bca 2KB
066c289fd752069ee9762a802724035b14533b 723B
06d4fad30c3281523644051d7543fcdbedeb24 3KB
074af5920a31b762cb168a9a5edcd243189d47 1KB
07d0e33fd0b0db788b61629bf13814db1d9f9b 854B
07fdaef8d453290119594e89eeec125d8f3968 2KB
084414dd95161265c03e463411cfb09709ab77 157B
0a591def9355cef54255baa416e2d8e36467f2 10KB
0b700850553a3d7be8d33cf6622c5a832cb1f0 2KB
0b88803a182485039c29d2d7e12dfe7f5e34ee 1KB
0bbc2a0384e5654525e7581017364dd9ceb59c 3KB
0bd8b0023c25e74fac444bfecd6c5d7a0dc448 2KB
0c47c0c34e8a5fc3ffaac9aea20bffd13a3cb5 1KB
0c7aa19d8b358ce2fdf83afaf3b62c7867971a 532B
0d7c5a3372a9a58dd648bfc4e57e5b59a1fb83 347B
0ddbe92792034d3bfc42659bd4021fcc1e9ccf 174B
0eeccb2f8d52541f3bbf1045f55e3f9d472b1f 306B
0f3e7e60a44a72cac061f5bde2ea2609a3389c 2KB
0f79e6d7b8b203ff199aadbe8fa22bb2a9f22b 2KB
111a38c849fa06175a318fa98625c38d717398 2KB
12a812a25c316bdf8b70ab6ab676baa1d66e8f 1KB
1343ef70984502ab356d621a5cba66d05421f5 2KB
141f3a18716eba6805aba20e7312c017abe28a 2KB
14709922b156e2b890391be246329c80e8b3b7 11KB
15f89d79ed82cdb1f53aed2378d887915528f3 3KB
169260ed514dfca36c3757d6c62366c441a59d 2KB
1697863447d9440d47e9443e54ab2694f27f01 341B
179c7a925ab42b3e4c7b2267a5a0da5ec67170 1KB
17d6c1b77c91464a496be61a1a0ab2322b6c58 1KB
17da8b1aaae2935e19ac97d9015f0fe24e8770 11KB
1a963635a9a8a4340b21b03ddde3707ce767ec 1KB
1bf60149e7fa03c04635c35554077a07ebb366 1KB
1c461ea91c57c5adebe9fee12d5635404eef12 2KB
1c88a3e8658cde7b25b6e063d23d010f7ed86a 3KB
1c9d6155c58e65af545f80b3a6a6bacfd81aaf 653B
1cc9405595ce30d5fc6462ea72213a54358a83 1KB
1d32e98c77354206aff081fda2229f157cd7ef 2KB
1d41419624c243a886b634950b05c1541c61ca 533B
1f39d0af2543c407930d305f9728336727b078 3KB
1f91cf07b927feac5e09c9434e0618cbd0efb1 735B
217db674f6cd688b62f498b8409e79fc92239f 12KB
219a55910dadc481ada7fb824c36ec632f2d01 5KB
2200c51ee924f0b91132e5cd3737fadcf40ef8 3KB
22c26aae11c4c09c95fb7005bf6953bcb7522e 954B
22e7ff12a215188dfc4d0314e91cee7526e739 2KB
234a3e5523c9f602113134566129096bb219d2 5KB
24fdfc9a047daea9128a967bc13a3766aea200 2KB
2677e2267d43ced83d9122291ed7cd8db46a34 11KB
2696a427f692fa914b6bacafc716f3cc9dd22e 39KB
27bd29ac73de3f997e136d97f4a04f3a4ddb9c 3KB
28295f22ddd016c26ab68d1f45cfea4c78b73a 292B
28a0fd3ab0f4aee75cd3b3eaa829af6114c5ac 556B
2916d4031609830f26ef77c17ad26906ac9717 2KB
2924c922a71bb9c14665d4086da2df761fc5eb 1KB
2b14162500fd1ea0d02119cc5e889d1af45d7e 2KB
2d45fe07f3198beebee5205c5401b2c5d74614 1KB
2d572ce90e5085986bdd9c9204b9404f028084 130B
2e55c377534911758c7cfbc2d5c0f3756c1202 166B
2e6369e593e85ac83037bdbb596b1fe5f33991 381B
2f0b2234a9c03bbfb9578056143ef4516bd965 2KB
2f498caa3f7fffa6dbcb63680dc00d24d515d4 165B
2fb3a9f6e8c34fe3e15937e7488f0a342d9887 1KB
31b0636bc8f30b2172b608a44a90119b29ced6 3KB
320fb419206e41cdaa8c8668303f1c619ab925 512B
321c7eb0e5b5bdbdd10b93907b8eaeb3bf11bf 3KB
322643dae616390d8263e8cf1bc4d9fdfa03ec 2KB
32b8fdf43bac138ab78b1fc3593d861d6a33c9 13KB
334ca51c4ec574c8c9acba9624885330c9c36d 3KB
33f7c4f762b5c4eda2a630793d681345423734 2KB
34548e8780d66ccd2de35bb2475db92c7e0489 3KB
34fd68a124e9312007932eef245de80efc69db 276B
35481f5f0ce3ca64dec122ed38df0a77788365 396B
358667ad5f1a28ccf6d05d2fc2447c5b80bb1b 180B
36475870da67f3c72f64777c6e0f37d9f4c87b 38KB
37fcaf214a394d8efb68f5d48c9ec6f9ea1fa3 3KB
38508c4f649a531bfe725ad37fb2c12e1ef73e 2KB
38f4bb699e7c821bb507f8b8bf888679ab4b9a 66B
3902a2b1d69c0db71d7b3a282926eabfef7852 617B
394626507e69d466eb8f2097ea758175e4b9ac 871B
3a483e4b74971fbfb1cc0fb6499852cedfe650 371B
3b19ebf521515bb48bee85151115925d151040 21KB
3c9539a22171cc2f12639492e346d97a9078e8 5KB
3f0d523561c523476e5330a0d67eb7318cb187 2KB
3f4d3a8158106dbfa48e521084e6c56fc6406f 2KB
3f9d69c6f404ea2d8d0a147bed0f97d41475e0 620B
3ffcdf5e9a80420359517b26c69f89710b3f05 2KB
402b6097328a3475d83c1f19581022342bcf66 3KB
41dbdfb6a62075493e2f4889127f3de6b315b3 444B
429912d6d6f74dfffd19376ec1fdee426d8036 3KB
44497691d150ea5d02a900231e48ff519d9616 3KB
447400d31b035f56554b29af1aefc76bda1698 3KB
451f0a79e9f05393bcd25fbb7d8aedb6cc3051 1KB
4591b67f07454791a6ac3ee973850c560540cf 2KB
466b65db7428e499f33c2c407aa42ed421d54e 1KB
46bbd46d1c1d024927b6e24d4d08ed21670fbb 1KB
476d79608dacdc613410702804e5ce7483cb67 2KB
497fa65ebe5d984acb3b761c18712134dde6cc 660B
49be5a47c3c6bb95299f6d2c1b251531e355f4 1KB
共 708 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
萌新的博客1998
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功