Blame view

src/main/java/daeucna/system/user/UserServiceImpl.java 3.4 KB
0206c002   함상기   2024-04-15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
  package daeucna.system.user;

  

  import java.util.ArrayList;

  import java.util.HashMap;

  import java.util.List;

  import java.util.Map;

  

  import org.springframework.beans.factory.annotation.Autowired;

  import org.springframework.security.crypto.password.PasswordEncoder;

  import org.springframework.stereotype.Repository;

  import org.springframework.stereotype.Service;

  import org.springframework.transaction.annotation.Propagation;

  import org.springframework.transaction.annotation.Transactional;

  

  import daeucna.mapper.primary.system.UserMapper;

  import daeucna.utils.StringUtil;

  import lombok.RequiredArgsConstructor;

  import lombok.extern.slf4j.Slf4j;

  

  @Service

  @RequiredArgsConstructor

  @Slf4j

  @Repository

  @Transactional(propagation = Propagation.REQUIRED, rollbackFor = { Exception.class })

  public class UserServiceImpl implements UserService {

  	@Autowired

  	private UserMapper userMapper;

  	private final PasswordEncoder passwordEncoder;

  

  	@Override

  	public List<UserDto> getUsers(UserDto param) {

  		List<UserDto> lUserDto = new ArrayList<UserDto>();

  

  		lUserDto = userMapper.getUsers(param);

  

  		log.info("getUsers");

  		return lUserDto;

  	}

  

  	@SuppressWarnings("unchecked")

  	@Override

  	public List<UserDto> saveUsers(UserSaveDto params) {

  

  		// 삭제처리먼저

  		for (UserDto curRec : params.getSaveData()) {

  			String sRowStatus = curRec.getRowStatus();

  			if ("D".indexOf(sRowStatus) > -1) {

  				// 사용자

  				userMapper.deleteUser(curRec);

  			}

  		}

  		// 신규및 업데이트 처리

  		for (UserDto curRec : params.getSaveData()) {

  			String sRowStatus = curRec.getRowStatus();

  			if ("N,U".indexOf(sRowStatus) > -1) {

  				// 사용자

  				// 패스워드를 암호화

  				String sEncodedPassword = null;

  				String sOrgPassword = StringUtil.defaultIfEmpty(curRec.getPassword(), null);

  				if (sOrgPassword != null) sEncodedPassword = passwordEncoder.encode(sOrgPassword);

  				curRec.setPassword(sEncodedPassword);

  				userMapper.saveUser(curRec);

  			}

  		}

  

  		List<UserDto> lUserDto = userMapper.getUsers(params.getSearchCond());

  

  		log.info("saveUsers");

  		return lUserDto;

  	}

  

  	@Override

  	public Map<String, Object> getUsersAuthority(UserAuthorityDto param) {

  		Map<String, Object> rtnVal = new HashMap<String, Object>();

  

  		List<UserAuthorityDto> lUserAuthority = userMapper.getUsersAuthority(param);

  		rtnVal.put("userAuthority", lUserAuthority);

  		

  		List<Map> lmUserList = userMapper.getUserList(new HashMap<String, String>());

  		rtnVal.put("userList", lmUserList);

  

  		List<Map> lmAuthorityList = userMapper.getAuthorityList(new HashMap<String, String>());

  		rtnVal.put("authorityList", lmAuthorityList);

  

  		log.info("getUsersAuthority");

  		return rtnVal;

  	}

  

  	@Override

  	public Map<String, Object> saveUsersAuthority(UserAuthoritySaveDto params) {

  		

  		// 삭제처리먼저

  		for (UserAuthorityDto curRec : params.getSaveData()) {

  			String sRowStatus = curRec.getRowStatus();

  			if ("D".indexOf(sRowStatus) > -1) {

  				// 사용자

  				userMapper.deleteUserAuthority(curRec);

  			}

  		}

  		// 신규및 업데이트 처리

  		for (UserAuthorityDto curRec : params.getSaveData()) {

  			String sRowStatus = curRec.getRowStatus();

  			if ("N,U".indexOf(sRowStatus) > -1) {

  				// 사용자

  				userMapper.saveUserAuthority(curRec);

  			}

  		}

  

  		Map<String, Object> rtnVal = getUsersAuthority(params.getSearchCond());

  

  		log.info("saveUsersAuthority");

  		return rtnVal;

  	}

  

  }