package com.moral.service.impl;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.ObjectUtils;
|
|
import com.moral.entity.Account;
|
import com.moral.entity.AccountExample;
|
import com.moral.mapper.AccountMapper;
|
import com.moral.service.AccountService;
|
import com.moral.service.OrganizationService;
|
import com.moral.util.BusinessException;
|
import com.moral.util.Crypto;
|
import com.moral.util.ResourceUtil;
|
|
@Service
|
public class AccountServiceImpl implements AccountService {
|
@Autowired
|
private AccountMapper accountMapper;
|
|
@Autowired
|
private OrganizationService organizationService;
|
|
@Override
|
public Map<String, Object> screenLogin(Map<String, Object> parameters) {
|
Map<String, Object> result = new HashMap<String, Object>();
|
AccountExample example = new AccountExample();
|
String password = Crypto.md5((String) parameters.get("account"));
|
example.or().andAccountNameEqualTo((String) parameters.get("account")).andPasswordEqualTo(password);
|
List<Account> accounts = accountMapper.selectByExample(example);
|
if (ObjectUtils.isEmpty(accounts) || accounts.size() != 1) {
|
result.put("msg", "用户名及密码输入错误!");
|
} else {
|
Account account = accounts.get(0);
|
if ("1".equals(account.getIsDelete())) {
|
result.put("msg", "登录成功!");
|
result.put("accountId", account.getId());
|
} else {
|
result.put("msg","您的账号已禁用,请联系管理员!");
|
}
|
}
|
return result;
|
}
|
|
@Override
|
public List<Account> getAccountLists(String accountName, String password) {
|
AccountExample example = new AccountExample();
|
example.or().andAccountNameEqualTo(accountName).andPasswordEqualTo(password);
|
return accountMapper.selectByExample(example);
|
}
|
|
@Override
|
public List<Account> getAccountList(String accountName) {
|
AccountExample example = new AccountExample();
|
example.or().andAccountNameEqualTo(accountName);
|
return accountMapper.selectByExample(example);
|
}
|
|
@Override
|
public void setOrgIdsByAccount(Map<String, Object> parameters) {
|
String accountId = (String) parameters.get("accountId");
|
accountId = accountId.replaceFirst("-", "");
|
if (!StringUtils.isNumeric((String) parameters.get("accountId"))) {
|
throw new BusinessException("accountId 参数不合法!");
|
}
|
|
Account account = accountMapper.selectByPrimaryKey((Integer.valueOf(accountId)));
|
if (ObjectUtils.isEmpty(account) || "1".equals(account.getIsDelete())) {
|
throw new BusinessException(accountId + "该账号不存在!");
|
}
|
Integer orgId = account.getOrganizationId();
|
// 不是摩瑞尔账号的需要根据组织来获取数据权限
|
|
if (!("-1".equals(orgId) || ResourceUtil.getValue("orgId").equals(orgId))) {
|
Set<Integer> orgIds = organizationService.getChildOrganizationIds(orgId);
|
parameters.put("orgIds", orgIds);
|
}
|
}
|
|
}
|