package cn.jeesoft.mvc.services; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.jeesoft.core.model.BaseBean.State; import cn.jeesoft.core.model.PagerModel; import cn.jeesoft.core.utils.DateUtils; import cn.jeesoft.core.utils.DateUtils.FieldType; import cn.jeesoft.core.utils.StringUtils; import cn.jeesoft.mvc.bean.Users; import cn.jeesoft.mvc.bean.UsersRoles; @Service("usersService") public class UsersService extends BaseService<Users> { @Autowired private UsersRolesService usersRolesService; @Override public int insert(Users bean) { // 根据邀请码获取邀请人 if (StringUtils.isNotEmpty(bean.getInviteCode())) { Users users = new Users(); users.setInviteCode(bean.getInviteCode()); users = selectOne(users); if (users != null) { bean.setInviteId(users.getId()); // 检查邀请人是否拥有权限 UsersRoles roles = usersRolesService.selectOne(bean.getInviteId()); if (roles==null || roles.getHasInvite()==null || roles.getHasInvite()!=UsersRoles.VAL_YES) { // TODO 无权限的邀请者 bean.setInviteId(null); // return -2; } } } // 自动生成邀请码 bean.setInviteCode(StringUtils.coverNumberUnit(String.valueOf(System.currentTimeMillis()), 10, 36)); // 用户状态 if (bean.getState() == null) { bean.setState(State.YES); } int id = super.insert(bean); if (id > 0) { getDao().insert(getTablename()+".createMoney", bean); getDao().insert(getTablename()+".createAuth", bean); } return id; } @Override public Users selectById(int id) { Users bean = new Users(); bean.setId(id); return super.selectOne(bean); } /** * 分页查询 * @param pager * @return */ public <P extends PagerModel<Users, Users>> P list(P pager) { if (pager.getOffset() < 0) pager.setOffset(0); if (pager.getQuery() == null) { pager.setQuery(new Users()); } if (pager.getEndTime() != null) { pager.setEndTime(DateUtils.append(pager.getEndTime(), FieldType.DAY, 1)); } // 执行查询 pager = (P) getDao().selectPageList(getTablename()+".selectPageListByInviteId", getTablename()+".selectPageCountByInviteId", pager); if (pager.getEndTime() != null) { pager.setEndTime(DateUtils.append(pager.getEndTime(), FieldType.DAY, -1)); } // 计算总页数 pager.setPageCount((pager.getTotal() + pager.getPageSize() - 1) / pager.getPageSize()); return pager; } @Override public String getTablename() { return "users"; } }