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<Map<String, Object>> 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<Map<String, Object>> studentInfos = TzApi.GetStudentInfoByClassIdForForeignExchangeTrading(classIds, currentUser); List<Member> 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<Integer> classIds) { JwtUser currentUser = TokenProvider.getJWTUser(request); - return new ResultEntity<PageInfo<Map<String, Object>>>(HttpStatus.OK, TzApi.PagedListStudentInfoByClassIdForForeignExchangeTrading(currentUser, String.join(",", classIds.toString()), index, size)); + return new ResultEntity<PageInfo<Map<String, Object>>>(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<List<Map<String, Object>>>(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<Map<String, Object>> 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<Member> buildMembers(List<Map<String, Object>> list, Training training) { List<Member> 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<Integer> 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<Map<String,Object>> 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 @@ <result column="creator_name" jdbcType="VARCHAR" property="creatorName" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> - <result column="create_school_id" jdbcType="INTEGER" property="createSchoolId" /> + <result column="school_id" jdbcType="INTEGER" property="schoolId" /> </resultMap> <sql id="Example_Where_Clause"> <!-- @@ -95,7 +95,7 @@ This element was generated on Thu Jun 29 18:43:01 CST 2023. --> 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 </sql> <select id="selectByExample" parameterType="com.sztzjy.forex.trading_trading.entity.TrainingExample" resultMap="BaseResultMap"> <!-- @@ -156,12 +156,12 @@ insert into sys_training (training_id, people_count, start_time, end_time, status, creator_id, create_school, training_name, creator_name, - create_time, update_time, create_school_id + create_time, update_time, school_id ) values (#{trainingId,jdbcType=INTEGER}, #{peopleCount,jdbcType=INTEGER}, #{startTime,jdbcType=VARCHAR}, #{endTime,jdbcType=TIMESTAMP}, #{status,jdbcType=VARCHAR}, #{creatorId,jdbcType=INTEGER}, #{createSchool,jdbcType=VARCHAR}, #{trainingName,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{createSchoolId,jdbcType=INTEGER} + #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{schoolId,jdbcType=INTEGER} ) </insert> <insert id="insertSelective" parameterType="com.sztzjy.forex.trading_trading.entity.Training"> @@ -205,8 +205,8 @@ <if test="updateTime != null"> update_time, </if> - <if test="createSchoolId != null"> - create_school_id, + <if test="schoolId != null"> + school_id, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> @@ -243,8 +243,8 @@ <if test="updateTime != null"> #{updateTime,jdbcType=TIMESTAMP}, </if> - <if test="createSchoolId != null"> - #{createSchoolId,jdbcType=INTEGER}, + <if test="schoolId != null"> + #{schoolId,jdbcType=INTEGER}, </if> </trim> </insert> @@ -300,8 +300,8 @@ <if test="record.updateTime != null"> update_time = #{record.updateTime,jdbcType=TIMESTAMP}, </if> - <if test="record.createSchoolId != null"> - create_school_id = #{record.createSchoolId,jdbcType=INTEGER}, + <if test="record.schoolId != null"> + school_id = #{record.schoolId,jdbcType=INTEGER}, </if> </set> <if test="_parameter != null"> @@ -326,7 +326,7 @@ creator_name = #{record.creatorName,jdbcType=VARCHAR}, create_time = #{record.createTime,jdbcType=TIMESTAMP}, update_time = #{record.updateTime,jdbcType=TIMESTAMP}, - create_school_id = #{record.createSchoolId,jdbcType=INTEGER} + school_id = #{record.schoolId,jdbcType=INTEGER} <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> @@ -369,8 +369,8 @@ <if test="updateTime != null"> update_time = #{updateTime,jdbcType=TIMESTAMP}, </if> - <if test="createSchoolId != null"> - create_school_id = #{createSchoolId,jdbcType=INTEGER}, + <if test="schoolId != null"> + school_id = #{schoolId,jdbcType=INTEGER}, </if> </set> where training_id = #{trainingId,jdbcType=INTEGER} @@ -392,7 +392,7 @@ creator_name = #{creatorName,jdbcType=VARCHAR}, create_time = #{createTime,jdbcType=TIMESTAMP}, update_time = #{updateTime,jdbcType=TIMESTAMP}, - create_school_id = #{createSchoolId,jdbcType=INTEGER} + school_id = #{schoolId,jdbcType=INTEGER} where training_id = #{trainingId,jdbcType=INTEGER} </update> <select id="selectByPage" parameterType="com.sztzjy.forex.trading_trading.entity.TrainingExample" resultMap="BaseResultMap">