/* * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.yingzhuo.mycar.service.impl; import java.util.HashMap; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang3.Validate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import com.github.yingzhuo.mycar.domain.UserHabit; import com.github.yingzhuo.mycar.repository.UserHabitRepo; import com.github.yingzhuo.mycar.service.UserHabitService; @Service("userHabitServiceImpl") public class UserHabitServiceImpl implements UserHabitService { private static final Logger LOGGER = LoggerFactory.getLogger(UserHabitServiceImpl.class); @Resource private UserHabitRepo userHabitRepo; @Override public boolean findDefaultEditModeForCarList(Integer userId, boolean defaultValue, boolean createIfNotFound) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(habitId); if (habit != null) { return habit.getDefaultEditModeForCarList() != null ? habit.getDefaultEditModeForCarList() : defaultValue; } if (createIfNotFound) { LOGGER.debug("创建用户行为实体 userId: {}", userId); habit = new UserHabit(); habit.setId(habitId); habit.setDefaultEditModeForCarList(defaultValue); userHabitRepo.save(habit); } return defaultValue; } @Override public boolean toggleDefaultEditModeForCarList(Integer userId) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(userId); if (habit == null) { throw new IllegalArgumentException("没有找到相对应的用户习惯信息"); } boolean b = habit.getDefaultEditModeForCarList(); habit.setDefaultEditModeForCarList(! b); userHabitRepo.saveAndFlush(habit); return !b; } @Override public int findLastTabIndexForCostList(Integer userId, int defaultIndex, boolean createIfNotFound) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(habitId); if (habit != null) { return habit.getLastTabIndexForCostList() == null ? new Integer(defaultIndex) : habit.getLastTabIndexForCostList(); } if (createIfNotFound) { LOGGER.debug("创建用户行为实体 userId: {}", userId); habit = new UserHabit(); habit.setId(habitId); habit.setLastTabIndexForCostList(new Integer(defaultIndex)); userHabitRepo.save(habit); } return defaultIndex; } @Override public void setLastTabIndexForCostList(Integer userId, int index) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(habitId); habit.setLastTabIndexForCostList(index); userHabitRepo.saveAndFlush(habit); } @Override public int findLastTabIndexForChart1(Integer userId, int defaultValue, boolean createIfNotFound) { Integer habitId = userId; UserHabit habit = userHabitRepo.findOne(habitId); if (habit != null) { return habit.getLastTabIndexForChart1() == null ? new Integer(defaultValue) : habit.getLastTabIndexForChart1(); } if (createIfNotFound) { LOGGER.debug("创建用户行为实体 userId: {}", userId); habit = new UserHabit(); habit.setId(habitId); habit.setLastTabIndexForChart1(defaultValue); userHabitRepo.save(habit); } return defaultValue; } @Override public void setLastTabIndexForChart1(Integer userId, int index) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(habitId); habit.setLastTabIndexForChart1(index); userHabitRepo.saveAndFlush(habit); } @Override public Map<String, Object> findPageInfoForCostList(Integer userId, Integer defaultPageSize, String defaultSort, String defaultSortDir, boolean createIfNotFount ) { Integer habitId = userId; Map<String, Object> map = new HashMap<String, Object>(); Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(habitId); if (habit == null) { if (createIfNotFount) { habit = new UserHabit(); habit.setPageSizeForCostList(defaultPageSize); habit.setPageSortForCostList(defaultSort); habit.setPageSortDirForCostList(defaultSortDir); userHabitRepo.save(habit); } map.put("pageSize", defaultPageSize); map.put("pageSort", defaultSort); map.put("pageSortDir", defaultSortDir); return map; } map.put("pageSize", habit.getPageSizeForCostList()); map.put("pageSort", habit.getPageSortForCostList()); map.put("pageSortDir", habit.getPageSortDirForCostList()); return map; } @Override public void setPageInfoForCostList(Integer userId, Integer pageSize, String sort, String sortDir) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(habitId); habit.setPageSizeForCostList(pageSize); habit.setPageSortForCostList(sort); habit.setPageSortDirForCostList(sortDir); userHabitRepo.saveAndFlush(habit); } @Override public boolean findDefaultEditModeForContactList(Integer userId, boolean defaultValue, boolean createIfNotFound) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(habitId); if (habit == null) { if (createIfNotFound) { habit = new UserHabit(); habit.setDefaultEditModeForContactList(defaultValue); userHabitRepo.save(habit); } return defaultValue; } return habit.getDefaultEditModeForContactList().booleanValue(); } @Override public boolean toggleDefaultEditModeForContactList(Integer userId) { Integer habitId = userId; Validate.notNull(habitId); UserHabit habit = userHabitRepo.findOne(userId); if (habit == null) { throw new IllegalArgumentException("没有找到相对应的用户习惯信息"); } boolean b = habit.getDefaultEditModeForContactList(); habit.setDefaultEditModeForContactList(! b); userHabitRepo.saveAndFlush(habit); return !b; } }