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 getUsers(UserDto param) { List lUserDto = new ArrayList(); lUserDto = userMapper.getUsers(param); log.info("getUsers"); return lUserDto; } @SuppressWarnings("unchecked") @Override public List 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 lUserDto = userMapper.getUsers(params.getSearchCond()); log.info("saveUsers"); return lUserDto; } @Override public Map getUsersAuthority(UserAuthorityDto param) { Map rtnVal = new HashMap(); List lUserAuthority = userMapper.getUsersAuthority(param); rtnVal.put("userAuthority", lUserAuthority); List lmUserList = userMapper.getUserList(new HashMap()); rtnVal.put("userList", lmUserList); List lmAuthorityList = userMapper.getAuthorityList(new HashMap()); rtnVal.put("authorityList", lmAuthorityList); log.info("getUsersAuthority"); return rtnVal; } @Override public Map 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 rtnVal = getUsersAuthority(params.getSearchCond()); log.info("saveUsersAuthority"); return rtnVal; } }