feat(team): 添加集体编辑功能

This commit is contained in:
2025-12-31 11:51:12 +08:00
parent 45758108a8
commit 89962c69e6
12 changed files with 45 additions and 1 deletions

View File

@@ -42,10 +42,16 @@ public class MartialTeamController extends BladeController {
@Operation(summary = "保存", description = "新增或修改集体")
public R<Boolean> submit(@RequestBody TeamSubmitDTO dto) {
MartialTeam team = new MartialTeam();
team.setId(dto.getId());
team.setTeamName(dto.getTeamName());
team.setRemark(dto.getRemark());
boolean result = teamService.saveTeamWithMembers(team, dto.getMemberIds());
boolean result;
if (dto.getId() != null) {
result = teamService.updateTeamWithMembers(team, dto.getMemberIds());
} else {
result = teamService.saveTeamWithMembers(team, dto.getMemberIds());
}
return R.data(result);
}

View File

@@ -9,6 +9,9 @@ import java.util.List;
@Schema(description = "集体提交DTO")
public class TeamSubmitDTO {
@Schema(description = "集体ID更新时必填")
private Long id;
@Schema(description = "集体名称")
private String teamName;

View File

@@ -14,6 +14,11 @@ public interface IMartialTeamService extends IService<MartialTeam> {
*/
boolean saveTeamWithMembers(MartialTeam team, List<Long> memberIds);
/**
* Update team with members
*/
boolean updateTeamWithMembers(MartialTeam team, List<Long> memberIds);
/**
* Get team list with member count
*/

View File

@@ -53,6 +53,36 @@ public class MartialTeamServiceImpl extends ServiceImpl<MartialTeamMapper, Marti
return saved;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateTeamWithMembers(MartialTeam team, List<Long> memberIds) {
team.setMemberCount(memberIds != null ? memberIds.size() : 0);
team.setUpdateUser(AuthUtil.getUserId());
boolean updated = this.updateById(team);
if (updated) {
// Delete old members
LambdaQueryWrapper<MartialTeamMember> deleteWrapper = new LambdaQueryWrapper<>();
deleteWrapper.eq(MartialTeamMember::getTeamId, team.getId());
teamMemberMapper.delete(deleteWrapper);
// Insert new members
if (memberIds != null && !memberIds.isEmpty()) {
for (Long athleteId : memberIds) {
MartialTeamMember member = new MartialTeamMember();
member.setTeamId(team.getId());
member.setAthleteId(athleteId);
member.setCreateTime(LocalDateTime.now());
member.setIsDeleted(0);
member.setTenantId("000000");
teamMemberMapper.insert(member);
}
}
}
return updated;
}
@Override
public IPage<MartialTeamVO> getTeamList(Long createUser, Integer current, Integer size) {
LambdaQueryWrapper<MartialTeam> wrapper = new LambdaQueryWrapper<>();