package com.yeshi.makemoney.app.service.impl.team;
|
|
import com.yeshi.makemoney.app.dao.team.TeamInviteRelationMapper;
|
import com.yeshi.makemoney.app.dao.team.TeamInviteRelationMapper.DaoQuery;
|
import com.yeshi.makemoney.app.entity.team.TeamInviteRelation;
|
import com.yeshi.makemoney.app.exception.team.TeamInviteRelationException;
|
import com.yeshi.makemoney.app.service.inter.team.TeamInviteRelationService;
|
import com.yeshi.makemoney.app.service.query.team.TeamInviteRelationQuery;
|
import org.springframework.stereotype.Service;
|
import org.yeshi.utils.bean.BeanUtil;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class TeamInviteRelationServiceImpl implements TeamInviteRelationService {
|
|
@Resource
|
private TeamInviteRelationMapper teamInviteRelationMapper;
|
|
@Override
|
public List<TeamInviteRelation> list(TeamInviteRelationQuery teamInviteRelationQuery, int page, int pageSize) {
|
DaoQuery daoQuery = new DaoQuery();
|
daoQuery.minCreateTime = teamInviteRelationQuery.toStartTime();
|
daoQuery.maxCreateTime = teamInviteRelationQuery.toEndTime();
|
if (teamInviteRelationQuery.getBoss() != null) {
|
if (teamInviteRelationQuery.getBoss()) {
|
daoQuery.uid = teamInviteRelationQuery.getUid();
|
} else {
|
daoQuery.targetUid = teamInviteRelationQuery.getUid();
|
}
|
} else {
|
daoQuery.tuid = teamInviteRelationQuery.getUid();
|
}
|
daoQuery.start = (page - 1) * pageSize;
|
daoQuery.count = pageSize;
|
return teamInviteRelationMapper.list(daoQuery);
|
}
|
|
@Override
|
public long count(TeamInviteRelationQuery teamInviteRelationQuery) {
|
DaoQuery daoQuery = new DaoQuery();
|
try {
|
BeanUtil.copyProperties(teamInviteRelationQuery, daoQuery);
|
} catch (IllegalAccessException e) {
|
e.printStackTrace();
|
}
|
return teamInviteRelationMapper.count(daoQuery);
|
}
|
|
@Override
|
public TeamInviteRelation get(Long id) {
|
return teamInviteRelationMapper.selectByPrimaryKey(id);
|
}
|
|
@Override
|
public void add(TeamInviteRelation teamInviteRelation) throws TeamInviteRelationException {
|
|
if (teamInviteRelation.getUid() == null || teamInviteRelation.getTargetUid() == null) {
|
throw new TeamInviteRelationException(TeamInviteRelationException.CODE_PARAMS_NOT_ENOUGH, "参数不完整");
|
}
|
|
//查询下家是否已经有上家
|
if (getBossUid(teamInviteRelation.getTargetUid()) != null) {
|
throw new TeamInviteRelationException(TeamInviteRelationException.CODE_ALREADY_INVITED, "已被邀请");
|
}
|
|
if (teamInviteRelation.getState() == null) {
|
teamInviteRelation.setState(TeamInviteRelation.STATE_VALID);
|
}
|
|
if (teamInviteRelation.getCreateTime() == null) {
|
teamInviteRelation.setCreateTime(new Date());
|
}
|
|
|
//保存
|
teamInviteRelationMapper.insertSelective(teamInviteRelation);
|
}
|
|
@Override
|
public void update(TeamInviteRelation teamInviteRelation) {
|
if (teamInviteRelation.getUpdateTime() == null) {
|
teamInviteRelation.setUpdateTime(new Date());
|
}
|
//保存
|
teamInviteRelationMapper.updateByPrimaryKey(teamInviteRelation);
|
}
|
|
@Override
|
public void delete(List<Long> idList) {
|
for (Long id : idList) {
|
teamInviteRelationMapper.deleteByPrimaryKey(id);
|
}
|
}
|
|
@Override
|
public Long getBossUid(Long uid) {
|
DaoQuery daoQuery = new DaoQuery();
|
daoQuery.targetUid = uid;
|
daoQuery.state = TeamInviteRelation.STATE_VALID;
|
daoQuery.count = 1;
|
List<TeamInviteRelation> list = teamInviteRelationMapper.list(daoQuery);
|
if (list == null || list.size() == 0) {
|
return null;
|
}
|
return list.get(0).getUid();
|
}
|
|
@Override
|
public List<TeamInviteRelation> getFirstTeamList(Long uid, int page, int pageSize) {
|
DaoQuery daoQuery = new DaoQuery();
|
daoQuery.uid = uid;
|
daoQuery.state = TeamInviteRelation.STATE_VALID;
|
daoQuery.start = (page - 1) * pageSize;
|
daoQuery.count = pageSize;
|
return teamInviteRelationMapper.list(daoQuery);
|
}
|
|
@Override
|
public long countFirstTeam(Long uid) {
|
DaoQuery daoQuery = new DaoQuery();
|
daoQuery.uid = uid;
|
daoQuery.state = TeamInviteRelation.STATE_VALID;
|
return teamInviteRelationMapper.count(daoQuery);
|
}
|
|
@Override
|
public List<TeamInviteRelation> getSecondTeamList(Long uid, int page, int pageSize) {
|
return teamInviteRelationMapper.listSecondTeam(uid, (page - 1) * pageSize, pageSize);
|
}
|
|
@Override
|
public long countSecondTeam(Long uid) {
|
return teamInviteRelationMapper.countSecondTeam(uid);
|
}
|
|
|
}
|