xufenglei
2017-12-11 59d80f82ef195f03b714fa0e9aec5d21d119c335
src/main/java/com/moral/service/impl/AccountServiceImpl.java
@@ -1,46 +1,49 @@
package com.moral.service.impl;
import static com.moral.common.bean.Constants.IS_DELETE_FALSE;
import static com.moral.common.bean.Constants.IS_DELETE_TRUE;
import static com.moral.common.util.Crypto.md5;
import static com.moral.common.util.ResourceUtil.getValue;
import static org.apache.commons.lang3.StringUtils.isNumeric;
import static org.springframework.util.ObjectUtils.isEmpty;
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 javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.moral.common.exception.BusinessException;
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
   @Resource
   private AccountMapper accountMapper;
   @Autowired
   @Resource
   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) {
      Account account = new Account();
      account.setAccountName((String) parameters.get("account"));
      account.setPassword(md5((String) parameters.get("password")));
      account = accountMapper.selectOne(account);
      if (isEmpty(account)) {
         result.put("msg", "用户名及密码输入错误!");
      } else {
         Account account = accounts.get(0);
         if ("1".equals(account.getIsDelete())) {
         if (IS_DELETE_FALSE.equals(account.getIsDelete())) {
            result.put("msg", "登录成功!");
            result.put("accountId", account.getId());
            result.put("orgId", account.getOrganizationId());
         } else {
            result.put("msg","您的账号已禁用,请联系管理员!");
         }
@@ -49,35 +52,28 @@
   }
   @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);
   public Account getAccountByAccountName(String accountName) {
      Account account = new Account();
      account.setAccountName(accountName);
      return accountMapper.selectOne(account);
   }
   @Override
   public void setOrgIdsByAccount(Map<String, Object> parameters) {
      String accountId = (String) parameters.get("accountId");
      accountId = accountId.replaceFirst("-", "");
      if (!StringUtils.isNumeric((String) parameters.get("accountId"))) {
      if (!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 + "该账号不存在!");
      if (isEmpty(account) || IS_DELETE_TRUE.equals(account.getIsDelete())) {
         throw new BusinessException(accountId + ":该账号不存在!");
      }
      Integer orgId = account.getOrganizationId();
      // 不是摩瑞尔账号的需要根据组织来获取数据权限
      
      if (!("-1".equals(orgId) || ResourceUtil.getValue("orgId").equals(orgId))) {
      if (!(-1 == orgId  || getValue("orgId").equals(orgId))) {
         Set<Integer> orgIds = organizationService.getChildOrganizationIds(orgId);
         parameters.put("orgIds", orgIds);
      }