package com.uas.account.service;

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

import com.uas.account.dao.SynchrodataToOldPlatDao;
import com.uas.account.dao.UserDao;
import com.uas.account.dao.UserSpaceDao;
import com.uas.account.entity.User;
import com.uas.account.entity.UserSpaceDetail;

@Service
public class SynchrodataToOldPlatServiceImpl implements SynchrodataToOldPlatService {

	@Autowired
	private UserSpaceDao userSpaceDao;

	@Autowired
	private SynchrodataToOldPlatDao synchrodataToOldPlatDao;

	@Autowired
	private UserDao userDao;

	@Override
	public ModelMap synchrodataToOldPlat(Long id) {
		ModelMap map = new ModelMap();
		User user = userDao.findOne(id);
		if (user.getAppId().equals("b2b")) {
			UserSpaceDetail detail = userSpaceDao.findByBusinessCode(user.getSpaceUID());
			Long spaceCount = synchrodataToOldPlatDao.findEnterpriseByEnuu(user.getSpaceDialectUID());
			// 先判断企业是否存在
			if (spaceCount > 0) {
				// 直接插入用户信息
				Long userCount = synchrodataToOldPlatDao.findUserByUserUUAndEnuu(user.getDialectUID(),
						user.getSpaceDialectUID());
				if (userCount > 0) {
					map.put("error", "该用户在旧平台已存在");
				} else {
					synchrodataToOldPlatDao.SynchUserToOldPlat(user, detail.getName());
					userCount = synchrodataToOldPlatDao.findUserByUserUUAndEnuu(user.getDialectUID(),
							user.getSpaceDialectUID());
					if (userCount > 0) {
						map.put("success", "用户添加成功");
					}
				}
			} else {
				// 先插入企业信息
				synchrodataToOldPlatDao.SyschUserSpaceToOldPlat(detail, user);
				spaceCount = synchrodataToOldPlatDao.findEnterpriseByEnuu(user.getSpaceDialectUID());
				if (spaceCount > 0) {
					synchrodataToOldPlatDao.SynchUserToOldPlat(user, detail.getName());
					Long userCount = synchrodataToOldPlatDao.findUserByUserUUAndEnuu(user.getDialectUID(),
							user.getSpaceDialectUID());
					if (userCount > 0) {
						map.put("error", "该用户在旧平台已存在");
					} else {
						userCount = synchrodataToOldPlatDao.findUserByUserUUAndEnuu(user.getDialectUID(),
								user.getSpaceDialectUID());
						if (userCount > 0) {
							map.put("success", "用户添加成功");
						}
					}
				}
			}
		} else {
			map.put("error", "只有平台用户才能同步");
		}
		return map;
	}

	@Override
	public ModelMap findUserPasswordInOldPlat(Long id) {
		ModelMap map = new ModelMap();
		User user = userDao.findOne(id);
		if (user.getAppId().equals("b2b")) {
			Long userCount = synchrodataToOldPlatDao.findUserByUserUUAndEnuu(user.getDialectUID(),
					user.getSpaceDialectUID());
			if (userCount > 0) {
				String password = synchrodataToOldPlatDao.getUserPassword(user.getDialectUID(),
						user.getSpaceDialectUID());
				if (null != password) {
					map.put("success", "enuu:" + user.getSpaceDialectUID() + ",useruu:" + user.getDialectUID()
							+ ",password：" + password);
				}
			} else {
				map.put("error", "暂未在旧平台企业中查询到相关人员信息，请先进行同步操作");
			}
		} else {
			map.put("error", "只有平台用户才能查询");
		}
		return map;
	}

}
