com.surfs.storage.block.service.impl.BlockUserServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.surfs.storage.block.service.impl.BlockUserServiceImpl.java

Source

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package com.surfs.storage.block.service.impl;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.List;
import java.util.Map;

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

import com.autumn.core.log.LogFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.surfs.storage.block.dao.mapper.BlockUserMapper;
import com.surfs.storage.block.dao.mapper.BlockUserTargetMapper;
import com.surfs.storage.block.model.BlockUser;
import com.surfs.storage.block.model.BlockUserTarget;
import com.surfs.storage.block.service.BlockConstant;
import com.surfs.storage.block.service.BlockUserService;
import com.surfs.storage.common.datasource.jdbc.JdbcDao;
import com.surfs.storage.common.util.CmdUtils;
import com.surfs.storage.common.util.Constant;
import com.surfs.storage.common.util.HttpUtils;

@Service("BlockUserService")
public class BlockUserServiceImpl implements BlockUserService {

    @Autowired
    private JdbcDao jdbcDao;

    @Override
    public List<BlockUser> queryAllBlockUser(String poolName) throws Exception {
        // TODO Auto-generated method stub
        String sql = "SELECT userId,userName,passWord,realName,comment,createTime FROM blockUser";

        return jdbcDao.queryForList(poolName, sql, new BlockUserMapper());
    }

    @Override
    public int addBlockUser(String poolName, BlockUser blockUser) throws Exception {
        // TODO Auto-generated method stub
        String sql = "INSERT INTO blockUser(userName,passWord,realName,comment) VALUES(?,?,?,?)";
        Object key = jdbcDao.insert(poolName, sql, new Object[] { blockUser.getUserName(), blockUser.getPassWord(),
                blockUser.getRealName(), blockUser.getComment(), });
        return Integer.parseInt(key.toString());
    }

    @Override
    public int modifyBlockUser(String poolName, BlockUser blockUser) throws Exception {
        // TODO Auto-generated method stub
        String sql = "UPDATE blockUser SET userName=?,passWord=?,realName=?,comment=? WHERE userId=?";
        return jdbcDao.update(poolName, sql, new Object[] { blockUser.getUserName(), blockUser.getPassWord(),
                blockUser.getRealName(), blockUser.getComment(), blockUser.getUserId() });
    }

    @Override
    public int removeBlockUser(String poolName, int userId) throws Exception {
        // TODO Auto-generated method stub
        String sql = "DELETE FROM blockUser WHERE userId=?";
        return jdbcDao.delete(poolName, sql, userId);
    }

    @Override
    public List<BlockUser> queryListBlockUserTarget(String poolName, String target) throws Exception {
        // TODO Auto-generated method stub
        String sql = "SELECT bu.userId,bu.userName,bu.realName,bt.target FROM blockUser bu,blockUserTarget bt WHERE bu.userId=bt.userId AND bt.target=? ";
        List<BlockUser> list = jdbcDao.queryForList(poolName, sql, new BlockUserMapper(), target);
        return list;
    }

    @Override
    public List<BlockUser> queryListBlockUserNotTarget(String poolName, String target) throws Exception {
        // TODO Auto-generated method stub
        String sql = "SELECT bu.userId,bu.userName,bu.passWord,bu.realName FROM blockUser bu WHERE bu.userId NOT IN(SELECT bt.userId FROM blockUserTarget bt WHERE bt.target=?)";
        List<BlockUser> list = jdbcDao.queryForList(poolName, sql, new BlockUserMapper(), target);
        return list;
    }

    @SuppressWarnings("unchecked")
    @Override
    public String addRemoteBlockUserTarget(Map<String, Object> map) throws Exception {
        String ip = map.get("currentIp").toString();
        List<Map<String, String>> blockUserTargetList = (List<Map<String, String>>) map.get("blockUserTargetList");
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(blockUserTargetList);
        try {
            String url = HttpUtils.getUrl(ip, Constant.REST_SERVICE_PORT, BlockConstant.POOL_SERVICE_PATH,
                    BlockConstant.EXPORT_SERVICE_ADDBLOCKUSER_NAME);
            return HttpUtils.invokeHttpForGet(url, json);
        } catch (IOException e) {
            LogFactory.error(e.getMessage());
        }
        return null;
    }

    @Override
    public void addBlockUserTarget(String poolName, List<Map<String, String>> listMap) throws Exception {
        // TODO Auto-generated method stub
        for (Map<String, String> map : listMap) {
            jdbcDao.insert(poolName, "INSERT INTO blockUserTarget(userId,target)VALUES(?,?)",
                    new Object[] { Integer.parseInt(map.get("userId")), map.get("target") });

            String cmd = MessageFormat.format(BlockConstant.BLOCK_ADDDEVICE_PATH_OAUTH, map.get("target"),
                    map.get("userName"), map.get("passWord"));
            LogFactory.info(cmd);
            // return cmd;
            CmdUtils.executeCmdForString(cmd);
        }
    }

    @Override
    public List<BlockUserTarget> queryAllBlockUserTarget(String poolName) throws Exception {
        // TODO Auto-generated method stub
        String sql = "SELECT userTargetId,userId,targetId,permission FROM blockUserTarget";
        return jdbcDao.queryForList(poolName, sql, new BlockUserTargetMapper());
    }

    @Override
    public int removeBlockUserTarget(String poolName, Map<String, String> args) throws Exception {
        // TODO Auto-generated method stub
        String userId = args.get("userId");
        String target = args.get("target");
        String sql = "delete from blockUserTarget where userId=? and target=?";
        return jdbcDao.delete(poolName, sql, userId, target);
    }

    @Override
    public List<BlockUserTarget> queryBlockUser(String poolName, int userId) throws Exception {
        // TODO Auto-generated method stub
        String sql = "select * from blockUserTarget where userId = ?";
        return jdbcDao.queryForList(poolName, sql, new BlockUserTargetMapper(), userId);
    }
}