|
|
@ -20,166 +20,202 @@ import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将类注册为 Spring 的 Bean,名称为 "teamsService"
|
|
|
|
@Service("teamsService")
|
|
|
|
@Service("teamsService")
|
|
|
|
public class TeamsServiceImpl implements TeamsService {
|
|
|
|
public class TeamsServiceImpl implements TeamsService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 UsersDao,用于操作用户表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private UsersDao usersDao;
|
|
|
|
private UsersDao usersDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 TeamTypesDao,用于操作团队类型表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private TeamTypesDao teamTypesDao;
|
|
|
|
private TeamTypesDao teamTypesDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 TeamsDao,用于操作团队表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private TeamsDao teamsDao;
|
|
|
|
private TeamsDao teamsDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 MembersDao,用于操作成员表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private MembersDao membersDao;
|
|
|
|
private MembersDao membersDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 NoticesDao,用于操作通知表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private NoticesDao noticesDao;
|
|
|
|
private NoticesDao noticesDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 ActivitiesDao,用于操作活动表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private ActivitiesDao activitiesDao;
|
|
|
|
private ActivitiesDao activitiesDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 ActiveLogsDao,用于操作活动日志表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private ActiveLogsDao activeLogsDao;
|
|
|
|
private ActiveLogsDao activeLogsDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 ApplyLogsDao,用于操作申请日志表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private ApplyLogsDao applyLogsDao;
|
|
|
|
private ApplyLogsDao applyLogsDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 自动注入 PayLogsDao,用于操作支付日志表
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private PayLogsDao payLogsDao;
|
|
|
|
private PayLogsDao payLogsDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 添加团队方法,声明事务管理,确保添加操作的原子性
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
public void add(Teams teams) {
|
|
|
|
public void add(Teams teams) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 插入新的团队记录
|
|
|
|
teamsDao.insert(teams);
|
|
|
|
teamsDao.insert(teams);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建新的成员记录
|
|
|
|
Members member = new Members();
|
|
|
|
Members member = new Members();
|
|
|
|
member.setId(IDUtils.makeIDByCurrent());
|
|
|
|
member.setId(IDUtils.makeIDByCurrent()); // 设置成员 ID
|
|
|
|
member.setUserId(teams.getManager());
|
|
|
|
member.setUserId(teams.getManager()); // 设置负责人 ID
|
|
|
|
member.setTeamId(teams.getId());
|
|
|
|
member.setTeamId(teams.getId()); // 设置团队 ID
|
|
|
|
member.setCreateTime(DateUtils.getNowDate());
|
|
|
|
member.setCreateTime(DateUtils.getNowDate()); // 设置创建时间
|
|
|
|
membersDao.insert(member);
|
|
|
|
membersDao.insert(member); // 插入新成员记录
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询负责人信息并更新其用户类型为 1(团队负责人)
|
|
|
|
Users user = usersDao.selectById(teams.getManager());
|
|
|
|
Users user = usersDao.selectById(teams.getManager());
|
|
|
|
user.setType(1);
|
|
|
|
user.setType(1);
|
|
|
|
usersDao.updateById(user);
|
|
|
|
usersDao.updateById(user);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 更新团队方法,声明事务管理,确保更新操作的原子性
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
public void update(Teams teams) {
|
|
|
|
public void update(Teams teams) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据主键更新团队记录
|
|
|
|
teamsDao.updateById(teams);
|
|
|
|
teamsDao.updateById(teams);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 删除团队方法,声明事务管理,确保删除操作的原子性
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
public void delete(Teams teams) {
|
|
|
|
public void delete(Teams teams) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件,删除通知表中与团队相关的记录
|
|
|
|
QueryWrapper<Notices> qw_notice = new QueryWrapper<Notices>();
|
|
|
|
QueryWrapper<Notices> qw_notice = new QueryWrapper<Notices>();
|
|
|
|
qw_notice.eq("team_id", teams.getId());
|
|
|
|
qw_notice.eq("team_id", teams.getId());
|
|
|
|
noticesDao.delete(qw_notice);
|
|
|
|
noticesDao.delete(qw_notice);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件,删除支付日志表中与团队相关的记录
|
|
|
|
QueryWrapper<PayLogs> qw_pay = new QueryWrapper<PayLogs>();
|
|
|
|
QueryWrapper<PayLogs> qw_pay = new QueryWrapper<PayLogs>();
|
|
|
|
qw_pay.eq("team_id", teams.getId());
|
|
|
|
qw_pay.eq("team_id", teams.getId());
|
|
|
|
payLogsDao.delete(qw_pay);
|
|
|
|
payLogsDao.delete(qw_pay);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件,删除申请日志表中与团队相关的记录
|
|
|
|
QueryWrapper<ApplyLogs> qw_apply = new QueryWrapper<ApplyLogs>();
|
|
|
|
QueryWrapper<ApplyLogs> qw_apply = new QueryWrapper<ApplyLogs>();
|
|
|
|
qw_apply.eq("team_id", teams.getId());
|
|
|
|
qw_apply.eq("team_id", teams.getId());
|
|
|
|
applyLogsDao.delete(qw_apply);
|
|
|
|
applyLogsDao.delete(qw_apply);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件,删除成员表中与团队相关的记录
|
|
|
|
QueryWrapper<Members> qw_members = new QueryWrapper<Members>();
|
|
|
|
QueryWrapper<Members> qw_members = new QueryWrapper<Members>();
|
|
|
|
qw_members.eq("team_id", teams.getId());
|
|
|
|
qw_members.eq("team_id", teams.getId());
|
|
|
|
membersDao.delete(qw_members);
|
|
|
|
membersDao.delete(qw_members);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件,删除活动表中与团队相关的记录
|
|
|
|
QueryWrapper<Activities> qw_active = new QueryWrapper<Activities>();
|
|
|
|
QueryWrapper<Activities> qw_active = new QueryWrapper<Activities>();
|
|
|
|
qw_active.eq("team_id", teams.getId());
|
|
|
|
qw_active.eq("team_id", teams.getId());
|
|
|
|
for(Activities activitie : activitiesDao.selectList(qw_active)){
|
|
|
|
for (Activities activitie : activitiesDao.selectList(qw_active)) {
|
|
|
|
|
|
|
|
// 构造查询条件,删除活动日志表中与活动相关的记录
|
|
|
|
QueryWrapper<ActiveLogs> qw_active_log = new QueryWrapper<ActiveLogs>();
|
|
|
|
QueryWrapper<ActiveLogs> qw_active_log = new QueryWrapper<ActiveLogs>();
|
|
|
|
qw_active_log.eq("active_id", activitie.getId());
|
|
|
|
qw_active_log.eq("active_id", activitie.getId());
|
|
|
|
activeLogsDao.delete(qw_active_log);
|
|
|
|
activeLogsDao.delete(qw_active_log);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
activitiesDao.delete(qw_active);
|
|
|
|
activitiesDao.delete(qw_active);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据主键删除团队记录
|
|
|
|
teamsDao.deleteById(teams);
|
|
|
|
teamsDao.deleteById(teams);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件,检查负责人是否不再管理任何团队
|
|
|
|
QueryWrapper<Teams> qw_team = new QueryWrapper<Teams>();
|
|
|
|
QueryWrapper<Teams> qw_team = new QueryWrapper<Teams>();
|
|
|
|
qw_team.eq("manager", teams.getManager());
|
|
|
|
qw_team.eq("manager", teams.getManager());
|
|
|
|
if(teamsDao.selectCount(qw_team) <= 0){
|
|
|
|
if (teamsDao.selectCount(qw_team) <= 0) {
|
|
|
|
|
|
|
|
// 查询负责人信息并更新其用户类型为 2(普通用户)
|
|
|
|
Users user = usersDao.selectById(teams.getManager());
|
|
|
|
Users user = usersDao.selectById(teams.getManager());
|
|
|
|
user.setType(2);
|
|
|
|
user.setType(2);
|
|
|
|
usersDao.updateById(user);
|
|
|
|
usersDao.updateById(user);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取单个团队方法,声明只读事务,提高性能
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
public Teams getOne(String id) {
|
|
|
|
public Teams getOne(String id) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据主键查询团队记录
|
|
|
|
Teams teams = teamsDao.selectById(id);
|
|
|
|
Teams teams = teamsDao.selectById(id);
|
|
|
|
|
|
|
|
|
|
|
|
return teams;
|
|
|
|
return teams; // 返回查询到的团队记录
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取所有团队方法,声明只读事务,提高性能
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
public List<Teams> getAll(){
|
|
|
|
public List<Teams> getAll() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件
|
|
|
|
QueryWrapper<Teams> qw = new QueryWrapper<Teams>();
|
|
|
|
QueryWrapper<Teams> qw = new QueryWrapper<Teams>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 按创建时间降序排序
|
|
|
|
qw.orderByDesc("create_time");
|
|
|
|
qw.orderByDesc("create_time");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询所有团队记录
|
|
|
|
List<Teams> list = teamsDao.selectList(qw);
|
|
|
|
List<Teams> list = teamsDao.selectList(qw);
|
|
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
return list; // 返回所有团队记录
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据负责人 ID 获取团队列表方法,声明只读事务,提高性能
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
public List<Teams> getListByManId(String manId){
|
|
|
|
public List<Teams> getListByManId(String manId) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件
|
|
|
|
QueryWrapper<Teams> qw = new QueryWrapper<Teams>();
|
|
|
|
QueryWrapper<Teams> qw = new QueryWrapper<Teams>();
|
|
|
|
qw.eq("manager", manId);
|
|
|
|
qw.eq("manager", manId); // 查询指定负责人的团队记录
|
|
|
|
qw.orderByDesc("create_time");
|
|
|
|
qw.orderByDesc("create_time"); // 按创建时间降序排序
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询指定负责人的团队记录
|
|
|
|
List<Teams> list = teamsDao.selectList(qw);
|
|
|
|
List<Teams> list = teamsDao.selectList(qw);
|
|
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
return list; // 返回指定负责人的团队记录
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 获取分页团队信息方法,声明只读事务,提高性能
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
|
|
|
public PageData getPageInfo(Long pageIndex, Long pageSize, Teams teams) {
|
|
|
|
public PageData getPageInfo(Long pageIndex, Long pageSize, Teams teams) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件
|
|
|
|
QueryWrapper<Teams> qw = new QueryWrapper<Teams>();
|
|
|
|
QueryWrapper<Teams> qw = new QueryWrapper<Teams>();
|
|
|
|
|
|
|
|
|
|
|
|
if(StringUtils.isNotNullOrEmpty(teams.getName())){
|
|
|
|
// 如果团队名称不为空,进行模糊匹配
|
|
|
|
|
|
|
|
if (StringUtils.isNotNullOrEmpty(teams.getName())) {
|
|
|
|
qw.like("name", teams.getName());
|
|
|
|
qw.like("name", teams.getName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(StringUtils.isNotNullOrEmpty(teams.getTypeId())){
|
|
|
|
// 如果团队类型 ID 不为空,进行精确匹配
|
|
|
|
|
|
|
|
if (StringUtils.isNotNullOrEmpty(teams.getTypeId())) {
|
|
|
|
qw.eq("type_id", teams.getTypeId());
|
|
|
|
qw.eq("type_id", teams.getTypeId());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(StringUtils.isNotNullOrEmpty(teams.getManager())){
|
|
|
|
// 如果负责人 ID 不为空,进行精确匹配
|
|
|
|
|
|
|
|
if (StringUtils.isNotNullOrEmpty(teams.getManager())) {
|
|
|
|
qw.eq("manager", teams.getManager());
|
|
|
|
qw.eq("manager", teams.getManager());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 按创建时间降序排序
|
|
|
|
qw.orderByDesc("create_time");
|
|
|
|
qw.orderByDesc("create_time");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 分页查询团队记录
|
|
|
|
Page<Teams> page =
|
|
|
|
Page<Teams> page =
|
|
|
|
teamsDao.selectPage(new Page<Teams>(pageIndex, pageSize), qw);
|
|
|
|
teamsDao.selectPage(new Page<Teams>(pageIndex, pageSize), qw);
|
|
|
|
|
|
|
|
|
|
|
|
return parsePage(page);
|
|
|
|
return parsePage(page); // 转换分页结果并返回
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -187,30 +223,40 @@ public class TeamsServiceImpl implements TeamsService {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public PageData parsePage(Page<Teams> p) {
|
|
|
|
public PageData parsePage(Page<Teams> p) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化结果列表
|
|
|
|
List<Map<String, Object>> resl = new ArrayList<Map<String, Object>>();
|
|
|
|
List<Map<String, Object>> resl = new ArrayList<Map<String, Object>>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 遍历分页结果中的团队记录
|
|
|
|
for (Teams teams : p.getRecords()) {
|
|
|
|
for (Teams teams : p.getRecords()) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化临时映射
|
|
|
|
Map<String, Object> temp = new HashMap<String, Object>();
|
|
|
|
Map<String, Object> temp = new HashMap<String, Object>();
|
|
|
|
temp.put("id", teams.getId());
|
|
|
|
|
|
|
|
temp.put("name", teams.getName());
|
|
|
|
|
|
|
|
temp.put("createTime", teams.getCreateTime());
|
|
|
|
|
|
|
|
temp.put("total", teams.getTotal());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 添加团队基本信息
|
|
|
|
|
|
|
|
temp.put("id", teams.getId()); // 添加团队 ID
|
|
|
|
|
|
|
|
temp.put("name", teams.getName()); // 添加团队名称
|
|
|
|
|
|
|
|
temp.put("createTime", teams.getCreateTime()); // 添加创建时间
|
|
|
|
|
|
|
|
temp.put("total", teams.getTotal()); // 添加团队总人数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询负责人信息
|
|
|
|
Users user = usersDao.selectById(teams.getManager());
|
|
|
|
Users user = usersDao.selectById(teams.getManager());
|
|
|
|
temp.put("manager", teams.getManager());
|
|
|
|
temp.put("manager", teams.getManager()); // 添加负责人 ID
|
|
|
|
temp.put("managerName", user.getName());
|
|
|
|
temp.put("managerName", user.getName()); // 添加负责人姓名
|
|
|
|
temp.put("managerPhone", user.getPhone());
|
|
|
|
temp.put("managerPhone", user.getPhone()); // 添加负责人电话
|
|
|
|
temp.put("managerAddress", user.getAddress());
|
|
|
|
temp.put("managerAddress", user.getAddress()); // 添加负责人地址
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询团队类型信息
|
|
|
|
TeamTypes teamType = teamTypesDao.selectById(teams.getTypeId());
|
|
|
|
TeamTypes teamType = teamTypesDao.selectById(teams.getTypeId());
|
|
|
|
temp.put("typeId", teams.getTypeId());
|
|
|
|
temp.put("typeId", teams.getTypeId()); // 添加团队类型 ID
|
|
|
|
temp.put("typeName", teamType.getName());
|
|
|
|
temp.put("typeName", teamType.getName()); // 添加团队类型名称
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将临时映射添加到结果列表
|
|
|
|
resl.add(temp);
|
|
|
|
resl.add(temp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化分页数据对象
|
|
|
|
PageData pageData = new PageData(p.getCurrent(), p.getSize(), p.getTotal(), resl);
|
|
|
|
PageData pageData = new PageData(p.getCurrent(), p.getSize(), p.getTotal(), resl);
|
|
|
|
|
|
|
|
|
|
|
|
return pageData;
|
|
|
|
return pageData; // 返回分页数据对象
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|