All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.quhaodian.userfriend.data.service.impl.UserFollowServiceImpl Maven / Gradle / Ivy

The newest version!
package com.quhaodian.userfriend.data.service.impl;

import com.quhaodian.data.core.Finder;
import com.quhaodian.user.data.entity.UserInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.quhaodian.data.core.Updater;
import com.quhaodian.userfriend.data.dao.UserFollowDao;
import com.quhaodian.userfriend.data.entity.UserFollow;
import com.quhaodian.userfriend.data.service.UserFollowService;

import com.quhaodian.data.page.Filter;
import com.quhaodian.data.page.Order;
import com.quhaodian.data.page.Page;
import com.quhaodian.data.page.Pageable;
import java.util.List;

import com.quhaodian.data.utils.FilterUtils;
import org.springframework.context.annotation.Scope;


/**
* Created by imake on 2017年09月01日10:05:18.
*/


@Scope("prototype")
@Service
@Transactional
public class UserFollowServiceImpl implements UserFollowService {

	private UserFollowDao dao;


	@Override
	@Transactional(readOnly = true)
	public UserFollow findById(Long id) {
		return dao.findById(id);
	}


	@Override
    @Transactional
	public UserFollow save(UserFollow bean) {
		dao.save(bean);
		return bean;
	}

	@Override
    @Transactional
	public UserFollow update(UserFollow bean) {
		Updater updater = new Updater(bean);
		return dao.updateByUpdater(updater);
	}

	@Override
    @Transactional
	public UserFollow deleteById(Long id) {
		UserFollow bean = dao.findById(id);
        dao.deleteById(id);
		return bean;
	}

	@Override
    @Transactional	
	public UserFollow[] deleteByIds(Long[] ids) {
		UserFollow[] beans = new UserFollow[ids.length];
		for (int i = 0,len = ids.length; i < len; i++) {
			beans[i] = deleteById(ids[i]);
		}
		return beans;
	}


	@Autowired
	public void setDao(UserFollowDao dao) {
		this.dao = dao;
	}

	@Override
    public Page page(Pageable pageable){
         return dao.page(pageable);
    }


    @Override
	public Page page(Pageable pageable, Object search) {
		List filters=	FilterUtils.getFilters(search);
		if (filters!=null) {
			pageable.getFilters().addAll(filters);
		}
		return dao.page(pageable);
	}

    @Override
    public List list(int first, Integer size, List filters, List orders) {
        return dao.list(first,size,filters,orders);}

	@Override
	public UserFollow follow(UserFollow bean) {
		UserFollow result=null;
		Finder finder = Finder.create();
		finder.append("from UserFollow u where u.userInfo.id=:userid");
		finder.setParam("userid", bean.getUser().getId());
		finder.append(" and u.follower.id=:followerid");
		finder.setParam("followerid", bean.getFollower().getId());
		List list=	dao.find(finder);
		if(list!=null&&list.size()>0){
			result=new UserFollow();
			result.setId(-1l);
		}else{
			result=dao.save(bean);
		}

		return result;
	}

	@Override
	public UserFollow unFollow(UserFollow bean) {
		UserFollow result = new UserFollow();
		dao.deleteById(bean.getId());
		result.setId(-1l);
		return result;
	}

	@Override
	public UserFollow follow(long userid, long followid) {
		if(userid==followid){
			UserFollow f=new UserFollow();
			f.setId(-2l);
			return f;
		}
		UserFollow result=null;
		Finder finder = Finder.create();
		finder.append("from UserFollow u where u.userInfo.id=:userid");
		finder.setParam("userid", userid);
		finder.append(" and u.follower.id=:followerid");
		finder.setParam("followerid", followid);
		List list=	dao.find(finder);
		if(list!=null&&list.size()>0){
			result=new UserFollow();
			result.setId(-1l);
		}else{
			UserFollow bean=new UserFollow();
			bean.setUser(UserInfo.fromId(userid));
			bean.setFollower(UserInfo.fromId(followid));
			result=dao.save(bean);
		}

		return result;
	}

	@Override
	public UserFollow unFollow(long userid, long followid) {
		Finder finder = Finder.create();
		finder.append("from UserFollow u where u.userInfo.id=:userid");
		finder.setParam("userid", userid);
		finder.append(" and u.follower.id=:followerid");
		finder.setParam("followerid", followid);
		List list=	dao.find(finder);
		UserFollow result=new UserFollow();
		if(list!=null&&list.size()>0){
			dao.delete(list.get(0));
			result.setId(1l);
		}else{
			result.setId(-1l);

		}
		return result;
	}


	@Override
	public UserFollow remove(UserFollow bean) {
		UserFollow result = new UserFollow();
		Finder finder = Finder.create();
		finder.append("from UserFollow f where f.user.id=:userid");
		finder.setParam("userid", bean.getUser().getId());
		finder.append(" and  f.friend.id=:friendid ");
		finder.setParam("friendid", bean.getFollower().getId());
		List follows = dao.find(finder);
		if (follows != null && follows.size() > 0) {
			dao.delete(follows.get(0));
			result.setId(1l);
			return null;
		} else {
			result.setId(-1l);
		}
		return result;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy