From 4d8f4e19031928faad3d528b5f7c71344bd81be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Tue, 4 Jul 2023 13:32:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=99=E5=B8=88=E7=AB=AF=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AE=9E=E8=AE=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/TrainingController.java | 58 +++++++++++++++---- .../forex/trading_trading/dto/TrainingBO.java | 2 - .../trading_trading/entity/Training.java | 14 ++--- .../service/MemberService.java | 8 +++ .../service/TrainingService.java | 6 +- .../forex/trading_trading/util/TzApi.java | 10 ++-- src/main/resources/mappers/TrainingMapper.xml | 28 ++++----- 7 files changed, 88 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java index 9aca402..dba5f25 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingController.java @@ -22,6 +22,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.w3c.dom.stylesheets.LinkStyle; @@ -47,20 +48,18 @@ public class TrainingController { @ApiOperation("教师端----新增一条实训记录") @PostMapping("create") public ResultEntity create(@RequestBody TrainingBO bo) { + Assert.notNull(bo.getClassId(),"请选择班级"); JwtUser currentUser = TokenProvider.getJWTUser(request); + Training training = trainingService.create(bo, currentUser); - List> maps; - if (bo.getMajorId() == null || bo.getMajorId() == 0) { - maps = TzApi.GetClassBySchoolIdForForeignExchangeTrading(currentUser); - } else { - maps = TzApi.GetClassByMajorIdForForeignExchangeTrading(currentUser, bo.getMajorId()); - } - String classIds = maps.stream() - .map(map -> String.valueOf(map.get("id"))) + String classIds = bo.getClassId().stream() + .map(String::valueOf) .collect(Collectors.joining(",")); List> studentInfos = TzApi.GetStudentInfoByClassIdForForeignExchangeTrading(classIds, currentUser); List members = buildMembers(studentInfos, training); if (members != null && members.size() > 0) memberService.insertAll(members); + training.setPeopleCount(members.size()); + trainingService.update(training); return new ResultEntity(HttpStatus.OK); } @@ -134,7 +133,13 @@ public class TrainingController { @ApiParam("页量") Integer size, @ApiParam("班级id列表") @RequestParam List classIds) { JwtUser currentUser = TokenProvider.getJWTUser(request); - return new ResultEntity>>(HttpStatus.OK, TzApi.PagedListStudentInfoByClassIdForForeignExchangeTrading(currentUser, String.join(",", classIds.toString()), index, size)); + return new ResultEntity>>(HttpStatus.OK, TzApi.PagedListStudentInfoByClassIdForForeignExchangeTrading( + currentUser, + classIds.stream() + .map(String::valueOf) + .collect(Collectors.joining(",")), + index, + size)); } @Permission(codes = PermissionType.TRAINING_MANAGEMENT_ADD) @@ -153,6 +158,39 @@ public class TrainingController { return new ResultEntity>>(HttpStatus.OK, TzApi.GetMajorIdForForeignExchangeTrading(currentUser)); } + @Permission(codes = PermissionType.TRAINING_MANAGEMENT_EDIT) + @ApiOperation("教师端----成员管理:在已存在的实训记录添加参赛人员") + @PostMapping("addMember") + public ResultEntity addMember(@ApiParam("实训记录id") @RequestParam String trainingId, + @ApiParam("查询关键字:用户名字或学号") @RequestParam String keyword) { + Assert.notNull(trainingId, "实训记录不存在"); + Assert.isTrue(StringUtils.hasText(keyword), "查询关键字不能为空"); + + JwtUser currentUser = TokenProvider.getJWTUser(request); + Training training = trainingService.findById(Integer.valueOf(trainingId)); + Assert.notNull(training, "实训记录不存在"); + List> maps = TzApi.GetStudentInfoByKeywordForForeignExchangeTrading(currentUser, keyword); + if (maps == null || maps.size() == 0) { + throw new NullPointerException("关键字未查询到用户"); + } + buildMembers(maps, training).forEach(member -> { + memberService.insert(member); + }); + return new ResultEntity(HttpStatus.OK); + } + + + @Permission(codes = PermissionType.TRAINING_MANAGEMENT_DEL) + @ApiOperation("教师端----成员管理:删除指定大赛的参赛用户") + @PostMapping("deleteMember") + public ResultEntity deleteMember(String trainingId, String memberId) { + Assert.notNull(trainingId, "实训记录不存在"); + Assert.notNull(memberId, "参赛用户不存在"); + memberService.deleteById(memberId); + return new ResultEntity(HttpStatus.OK); + } + + private List buildMembers(List> list, Training training) { List members = new ArrayList<>(); if (list != null && list.size() > 0) { @@ -160,7 +198,7 @@ public class TrainingController { member.setMemberId(IdUtil.simpleUUID()); member.setName(String.valueOf(list.get(0).get("name"))); member.setTrainingId(training.getTrainingId()); - member.setSchoolId(training.getCreateSchoolId()); + member.setSchoolId(training.getSchoolId()); member.setClassGrade(String.valueOf(list.get(0).get("className"))); member.setMajor(String.valueOf(list.get(0).get("majorName"))); member.setStudentNumber(String.valueOf(list.get(0).get("studentNo"))); diff --git a/src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingBO.java b/src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingBO.java index 975430d..ea71f4e 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingBO.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingBO.java @@ -30,8 +30,6 @@ public class TrainingBO { @ApiModelProperty("参加实训人数") @JsonIgnore private Integer peopleCount; - @ApiModelProperty("实训专业") - private Integer majorId; @ApiModelProperty("实训班级") private List classId; diff --git a/src/main/java/com/sztzjy/forex/trading_trading/entity/Training.java b/src/main/java/com/sztzjy/forex/trading_trading/entity/Training.java index e69210c..d84ca8b 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/entity/Training.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/entity/Training.java @@ -66,7 +66,7 @@ public class Training extends Base { @ApiModelProperty("创建人Id") private Integer creatorId; - @ApiModelProperty("创建人学校") + @ApiModelProperty("创建人名字") private String creatorName; /** @@ -89,7 +89,7 @@ public class Training extends Base { @ApiModelProperty("创建人所属学校id") - private Integer createSchoolId; + private Integer schoolId; /** * This method was generated by MyBatis Generator. @@ -209,12 +209,12 @@ public class Training extends Base { this.creatorId = creatorId; } - public Integer getCreateSchoolId() { - return createSchoolId; + public Integer getSchoolId() { + return schoolId; } - public void setCreateSchoolId(Integer createSchoolId) { - this.createSchoolId = createSchoolId; + public void setSchoolId(Integer schoolId) { + this.schoolId = schoolId; } /** @@ -298,7 +298,7 @@ public class Training extends Base { training.creatorId = Integer.valueOf(currentUser.getUserId()); training.creatorName = currentUser.getName(); training.createSchool = currentUser.getSchoolName(); - training.createSchoolId = currentUser.getSchoolId(); + training.schoolId = currentUser.getSchoolId(); training.peopleCount = bo.getPeopleCount(); training.status = startTime > now ? "NOT_STARTED" : "ONGOING"; return training; diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java index 53d2474..ae56856 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/MemberService.java @@ -36,4 +36,12 @@ public class MemberService { memberMapper.insert(member); } } + + public void insert(Member member){ + memberMapper.insert(member); + } + + public void deleteById(String memberId){ + memberMapper.deleteByPrimaryKey(memberId); + } } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/TrainingService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/TrainingService.java index 0f9c95c..ac231a2 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/TrainingService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/TrainingService.java @@ -47,7 +47,7 @@ public class TrainingService { member.setMemberId(IdUtil.simpleUUID()); member.setName(String.valueOf(list.get(0).get("name"))); member.setTrainingId(training.getTrainingId()); - member.setSchoolId(training.getCreateSchoolId()); + member.setSchoolId(training.getSchoolId()); member.setClassGrade(String.valueOf(list.get(0).get("className"))); member.setMajor(String.valueOf(list.get(0).get("majorName"))); member.setStudentNumber(String.valueOf(list.get(0).get("studentNo"))); @@ -66,6 +66,10 @@ public class TrainingService { trainingMapper.deleteByPrimaryKey(id); } + public void update(Training training){ + trainingMapper.updateByPrimaryKey(training); + } + public Training update(Integer id, String name) { Training training = findById(id); Assert.isTrue(StringUtils.hasText(name), "实训名称不能为空"); diff --git a/src/main/java/com/sztzjy/forex/trading_trading/util/TzApi.java b/src/main/java/com/sztzjy/forex/trading_trading/util/TzApi.java index 0dd8959..75a7fae 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/util/TzApi.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/util/TzApi.java @@ -158,10 +158,12 @@ public class TzApi { JsonNode resultNode = jsonNode.get("result"); JsonNode dataNode = resultNode.get("data"); if (dataNode != null) { - pageInfo.setPages(resultNode.get("totalPages").asInt()); - pageInfo.setHasPreviousPage(resultNode.get("hasPreviousPage").asBoolean()); - pageInfo.setHasNextPage(resultNode.get("hasNextPage").asBoolean()); - pageInfo.setTotal(resultNode.get("totalCount").asInt()); + pageInfo.setPages(dataNode.get("totalPages").asInt()); + pageInfo.setHasPreviousPage(dataNode.get("hasPreviousPage").asBoolean()); + pageInfo.setHasNextPage(dataNode.get("hasNextPage").asBoolean()); + pageInfo.setTotal(dataNode.get("totalCount").asInt()); + pageInfo.setPageNum(dataNode.get("pageIndex").asInt()); + pageInfo.setPageSize(dataNode.get("pageSize").asInt()); JsonNode retNode = dataNode.get("data"); List> dataList = new ArrayList<>(); if(retNode.isArray()){ diff --git a/src/main/resources/mappers/TrainingMapper.xml b/src/main/resources/mappers/TrainingMapper.xml index e1f91de..9bb1f6f 100644 --- a/src/main/resources/mappers/TrainingMapper.xml +++ b/src/main/resources/mappers/TrainingMapper.xml @@ -18,7 +18,7 @@ - + training_id, people_count, start_time, end_time, status, creator_id, create_school, - training_name, creator_name, create_time, update_time, create_school_id + training_name, creator_name, create_time, update_time, school_id