参赛团队成员添加

sale
tianea 3 years ago
parent 62f146515a
commit bc5058acb8

@ -8,4 +8,6 @@ public class MemberImport {
private String studentNo; private String studentNo;
private String name; private String name;
private String school; private String school;
private String province;
private String level;
} }

@ -0,0 +1,120 @@
package com.tz.platform.competitiion.pc.biz;
import com.tz.platform.common.core.base.Result;
import com.tz.platform.common.core.bo.MemberImport;
import com.tz.platform.common.core.bo.MemberInfo;
import com.tz.platform.common.core.tools.ExcelUtil;
import com.tz.platform.competitiion.pc.bo.TeamInfo;
import com.tz.platform.entity.CompetitionMember;
import com.tz.platform.entity.CompetitionTeam;
import com.tz.platform.feign.user.IFeignUser;
import com.tz.platform.repository.CompetitionMemberDao;
import com.tz.platform.repository.CompetitionTeamDao;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Row;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.List;
@Component
@Slf4j
public class TeamTemplateImportBiz {
@Autowired
private IFeignUser user;
@Autowired
private CompetitionTeamDao teamDao;
@Autowired
private CompetitionMemberDao memberDao;
public Result<String> excelImport(MultipartFile file,Long userNo,Long competitionId,Integer stageId){
if(competitionId==null||stageId == null){
return Result.error("大赛或赛段不能为空");
}
try {
ExcelUtil util = new ExcelUtil(file.getInputStream());
List<TeamInfo> teamInfoList = new ArrayList<>();
List<MemberImport> neesSave = new ArrayList<>();
for(int rowNo = 2;rowNo <util.getLastRowNum();rowNo++) {
TeamInfo teamInfo = new TeamInfo();
Row row = util.getRow(rowNo);
String teamName = util.getCellValue(row.getCell(0));
String teacher = util.getCellValue(row.getCell(1));
String school = util.getCellValue(row.getCell(2));
String level = util.getCellValue(row.getCell(3));
String province =util.getCellValue(row.getCell(4));
List<MemberImport> memberInfoList = new ArrayList<>();
for(int i = 5;i<=14;i+=2){
String member1No = util.getCellValue(row.getCell(i));
String member1Name = util.getCellValue(row.getCell(i+1));
MemberImport memberInfo = new MemberImport();
if(StringUtils.isEmpty(member1No)){
continue;
}
memberInfo.setName(member1Name);
memberInfo.setStudentNo(member1No);
memberInfo.setSchool(school);
memberInfo.setLevel(level);
memberInfo.setProvince(province);
memberInfoList.add(memberInfo);
}
if(memberInfoList.size()>0){
neesSave.addAll(memberInfoList);
}
teamInfo.setLevel(level);
teamInfo.setProvince(province);
teamInfo.setSchool(school);
teamInfo.setTeamName(teamName);
teamInfo.setTeacher(teacher);
teamInfo.setMemberList(memberInfoList);
teamInfoList.add(teamInfo);
}
teamInfoList.forEach(info -> {
System.out.println(info.getTeamName()+" "+info.getSchool()+" "+info.getLevel()+ " "+info.getTeacher()+" memberCount:"+info.getMemberList().size());
});
List<MemberInfo> mList = user.batchInsert(neesSave);
teamInfoList.forEach(team->{
CompetitionTeam t = new CompetitionTeam();
t.setCompetitionId(competitionId);
t.setStageId(stageId);
t.setTeacherName(team.getTeacher());
t.setTeamName(team.getTeamName());
t.setSchool(team.getSchool());
CompetitionTeam teamInfo = teamDao.save(t);
List<CompetitionMember> memberList = new ArrayList<>();
team.getMemberList().forEach(m->{
MemberInfo info = mList.stream().filter(m2 -> m.getStudentNo().equals(m2.getStudentNo())).findFirst().orElse(null);
if(info!=null){
CompetitionMember member = new CompetitionMember();
member.setCompetitionId(competitionId);
member.setName(m.getName());
member.setSchool(m.getSchool());
member.setStudentNo(m.getStudentNo());
member.setUserId(info.getId());
member.setStageId(stageId);
member.setTeamId(teamInfo.getId());
memberList.add(member);
}
});
memberDao.saveAll(memberList);
});
System.out.println(mList.size());
} catch (Exception e) {
e.printStackTrace();
return Result.error("上传失败");
}
return Result.success("success");
}
}

@ -0,0 +1,15 @@
package com.tz.platform.competitiion.pc.dto;
import com.tz.platform.entity.CompetitionMember;
import com.tz.platform.entity.CompetitionTeam;
import lombok.Data;
import org.springframework.data.domain.Page;
import java.io.Serializable;
import java.util.List;
@Data
public class PageTeamDTO implements Serializable {
private Page<CompetitionTeam> page;
private List<CompetitionMember> list;
}

@ -0,0 +1,11 @@
package com.tz.platform.competitiion.pc.vo;
import lombok.Data;
@Data
public class PageTeamVO {
private Long competitionId;
private Integer stageId;
private Integer pageNo;
private Integer pageSize;
}

@ -0,0 +1,10 @@
package com.tz.platform.competitiion.pc.vo;
import lombok.Data;
@Data
public class TeamInfoVO {
private Integer id;
private String name;
private Integer type;
}

@ -0,0 +1,8 @@
package com.tz.platform.competitiion.pc.vo;
import lombok.Data;
@Data
public class TeamMemberVO {
private Integer id;
}

@ -2,13 +2,11 @@ package com.tz.platform.entity;
import lombok.Data; import lombok.Data;
import javax.persistence.Entity; import javax.persistence.*;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity @Entity
@Data @Data
@Table(indexes={@Index(columnList = "competitionId,stageId,teamId")})
public class CompetitionMember { public class CompetitionMember {
@Id @Id
@ -21,7 +19,4 @@ public class CompetitionMember {
private String name; private String name;
private String school; private String school;
private Integer teamId; private Integer teamId;
} }

@ -2,13 +2,11 @@ package com.tz.platform.entity;
import lombok.Data; import lombok.Data;
import javax.persistence.Entity; import javax.persistence.*;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Data @Data
@Entity @Entity
@Table(indexes = {@Index(columnList = "teamName")})
public class CompetitionTeam { public class CompetitionTeam {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -17,4 +15,5 @@ public class CompetitionTeam {
private Integer stageId; private Integer stageId;
private String teamName; private String teamName;
private String teacherName; private String teacherName;
private String school;
} }

@ -4,7 +4,10 @@ import com.tz.platform.entity.CompetitionMember;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public interface CompetitionMemberDao extends JpaRepository<CompetitionMember,Integer> { public interface CompetitionMemberDao extends JpaRepository<CompetitionMember,Integer> {
List<CompetitionMember> findAllByCompetitionIdAndStageIdAndTeamIdIn(Long cmpId,Integer stageId,List<Integer> teamIds);
} }

@ -6,4 +6,5 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface CompetitionTeamDao extends JpaRepository<CompetitionTeam,Integer> { public interface CompetitionTeamDao extends JpaRepository<CompetitionTeam,Integer> {
CompetitionTeam getById(Integer id);
} }

@ -27,7 +27,7 @@ spring:
restart: restart:
enabled: true enabled: true
livereload: livereload:
port: 35730 port: 35736
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
logging: logging:

@ -0,0 +1,12 @@
package com.tz.platform.feign;
import com.tz.platform.feign.vo.ProvinceVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@FeignClient(value = "tz-system-service")
public interface IFeignProvince {
@RequestMapping(value = "/feign/system/province/list")
List<ProvinceVO> list();
}

@ -0,0 +1,10 @@
package com.tz.platform.feign.vo;
import lombok.Data;
@Data
public class ProvinceVO {
private Integer id;
private String name;
private Integer regionId;
}

@ -0,0 +1,21 @@
package com.tz.platform.system.feign;
import com.tz.platform.feign.IFeignProvince;
import com.tz.platform.feign.vo.ProvinceVO;
import com.tz.platform.system.feign.biz.FeignProvinceBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class FeignProvinceController implements IFeignProvince {
@Autowired
private FeignProvinceBiz feignProvinceBiz;
@Override
public List<ProvinceVO> list() {
return feignProvinceBiz.list();
}
}

@ -0,0 +1,23 @@
package com.tz.platform.system.feign.biz;
import com.tz.platform.common.core.tools.BeanUtils;
import com.tz.platform.entity.Province;
import com.tz.platform.feign.vo.ProvinceVO;
import com.tz.platform.repository.ProvinceDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class FeignProvinceBiz {
@Autowired
private ProvinceDao provinceDao;
public List<ProvinceVO> list(){
List<Province> provinces = provinceDao.findAll();
List<ProvinceVO> provinceVOList = BeanUtils.copyProperties(provinces,ProvinceVO.class);
return provinceVOList;
}
}

@ -20,6 +20,10 @@
<groupId>com.tz</groupId> <groupId>com.tz</groupId>
<artifactId>common-core</artifactId> <artifactId>common-core</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.tz</groupId>
<artifactId>system-feign</artifactId>
</dependency>
<!-- test --> <!-- test -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

@ -8,7 +8,7 @@ import java.io.Serializable;
import java.util.Date; import java.util.Date;
@Entity @Entity
@Table(name = "user",indexes = {@Index(columnList = "studentNo"),@Index(columnList = "school"),@Index(columnList = "username")}) @Table(name = "user",indexes = {@Index(columnList = "studentNo"),@Index(columnList = "school"),@Index(columnList = "username"),@Index(columnList = "name")})
@Data @Data
public class User implements Serializable { public class User implements Serializable {
@ -34,6 +34,11 @@ public class User implements Serializable {
private String name; private String name;
private String province;
private Integer provinceId;
private Integer regionId;
private Integer levelId;
@JsonIgnore @JsonIgnore
private String mobileSalt; private String mobileSalt;

@ -4,18 +4,24 @@ import com.tz.platform.common.core.base.Result;
import com.tz.platform.common.core.enmus.UserTypeEnum; import com.tz.platform.common.core.enmus.UserTypeEnum;
import com.tz.platform.entity.User; import com.tz.platform.entity.User;
import com.tz.platform.repository.UserDao; import com.tz.platform.repository.UserDao;
import com.tz.platform.user.pc.dto.UserDTO;
import com.tz.platform.user.pc.dto.UserPageDTO; import com.tz.platform.user.pc.dto.UserPageDTO;
import com.tz.platform.user.pc.vo.GetUserVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.regex.Pattern;
@Component @Component
public class PcUserInfoBiz { public class PcUserInfoBiz {
@Autowired @Autowired
private UserDao userDao; private UserDao userDao;
public Result<UserPageDTO> listPage(Integer pageNo){ public Result<UserPageDTO> listPage(Integer pageNo){
if(pageNo<0){ if(pageNo<0){
pageNo = 0; pageNo = 0;
@ -26,4 +32,20 @@ public class PcUserInfoBiz {
userPageDTO.setUserPage(page); userPageDTO.setUserPage(page);
return Result.success(userPageDTO); return Result.success(userPageDTO);
} }
public Result<UserDTO> getUser(GetUserVO vo){
UserDTO dto = new UserDTO();
User user = null;
if(vo.getName().matches("\\d+")){
user = userDao.getByStudentNo(vo.getName());
}else{
user = userDao.getByName(vo.getName());
}
if(user!=null){
BeanUtils.copyProperties(user,dto);
}else{
return Result.error("未找到用户信息");
}
return Result.success(dto);
}
} }

@ -0,0 +1,17 @@
package com.tz.platform.user.pc.dto;
import lombok.Data;
import java.io.Serializable;
@Data
public class UserDTO implements Serializable {
private Long id;
private String studentNo;
private String school;
private String name;
private String province;
private Integer provinceId;
private Integer regionId;
private Integer levelId;
}

@ -0,0 +1,8 @@
package com.tz.platform.user.pc.vo;
import lombok.Data;
@Data
public class GetUserVO {
private String name;
}

@ -17,3 +17,6 @@ spring:
namespace: ${spring.profiles.active} namespace: ${spring.profiles.active}
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
devtools:
livereload:
port: 35738

Loading…
Cancel
Save