修改没有实训任务时,学生进入练习模式报错问题

pull/1/head
yz 2 years ago
parent aa14b935bf
commit 2fc47bf27f

@ -76,7 +76,7 @@ public class TrainingController {
trainingService.update(training);
//生成训练账号member
buildPracticeMembers(members);
memberService.buildPracticeMembers(members);
redisUtil.sSet(Constant.NOSETTLEANACCOUNTTRAINING,training.getTrainingId());
return new ResultEntity(HttpStatus.OK);
@ -196,7 +196,7 @@ public class TrainingController {
}
buildMembers(maps, training).forEach(member -> {
memberService.insert(member);
buildPracticeMember(member);
memberService.buildPracticeMember(member);
});
trainingService.updatePeopleNum(true, trainingId);
return new ResultEntity(HttpStatus.OK);
@ -245,34 +245,7 @@ public class TrainingController {
return members;
}
private void buildPracticeMembers(List<Member> members) {
List<Member> memberList=new ArrayList<>();
for (int i = 0; i < members.size(); i++) {
Member member = members.get(i);
if (memberService.checkUser(Constant.PRACTICE_TRAINING_ID, member.getStudentNumber())) { //解决相同账号会出现生成多个练习账号的问题
continue;
}
member.setMemberId(IdUtil.simpleUUID());
member.setTrainingId(Constant.PRACTICE_TRAINING_ID);
member.setTrainingName(Constant.TRAININGNAME);
member.setSchoolId(Constant.PRACTICE_SCHOOL_ID);
memberList.add(member);
}
if (memberList.size()>0){
memberService.insertAll(memberList);
}
}
private void buildPracticeMember(Member member) {
if (memberService.checkUser(Constant.PRACTICE_TRAINING_ID, member.getStudentNumber())) {
}else {
member.setMemberId(IdUtil.simpleUUID());
member.setTrainingId(Constant.PRACTICE_TRAINING_ID);
member.setTrainingName(Constant.TRAININGNAME);
member.setSchoolId(Constant.PRACTICE_SCHOOL_ID);
memberService.insert(member);
}
}
@Permission(codes = PermissionType.TRAINING_MANAGEMENT_SEARCH)
@ApiOperation("获取我的任务列表")

@ -3,10 +3,11 @@ package com.sztzjy.forex.trading_trading.controller;
import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess;
import com.sztzjy.forex.trading_trading.annotation.OperateLog;
import com.sztzjy.forex.trading_trading.config.Constant;
import com.sztzjy.forex.trading_trading.config.security.JwtUser;
import com.sztzjy.forex.trading_trading.config.security.LoginResult;
import com.sztzjy.forex.trading_trading.config.security.TokenProvider;
import com.sztzjy.forex.trading_trading.entity.RoleRoute;
import com.sztzjy.forex.trading_trading.service.MemberService;
import com.sztzjy.forex.trading_trading.service.RoleAuthorityService;
import com.sztzjy.forex.trading_trading.service.RoleRouteService;
import com.sztzjy.forex.trading_trading.util.ResultEntity;
@ -16,6 +17,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
@ -28,9 +30,7 @@ import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
@Api(tags = "用户管理模块")
@RestController
@ -45,6 +45,8 @@ public class UserController {
private final RoleRouteService roleRouteService;
private final HttpServletRequest request;
@Autowired
MemberService memberService;
@AnonymousAccess
@OperateLog(description = "用户登录")
@ -81,10 +83,14 @@ public class UserController {
Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
String token = TokenProvider.createToken(jwtUser);
//第一次登录创建训练账号
if(!memberService.checkUser(Constant.PRACTICE_TRAINING_ID, jwtUser.getUsername())){
memberService.buildPracticeMemberByJwtUser(jwtUser);
}
return new ResultEntity<LoginResult>(LoginResult.create(jwtUser, token));
}
@AnonymousAccess
@OperateLog(description = "通过智云平台token单点登录")
@ApiOperation(value = "通过智云平台token单点登录", httpMethod = "POST")

@ -1,5 +1,6 @@
package com.sztzjy.forex.trading_trading.service;
import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.forex.trading_trading.config.Constant;
@ -295,5 +296,53 @@ public class MemberService {
memberMapper.updateStuRank();
}
public void buildPracticeMembers(List<Member> members) {
List<Member> memberList=new ArrayList<>();
for (int i = 0; i < members.size(); i++) {
Member member = members.get(i);
if (checkUser(Constant.PRACTICE_TRAINING_ID, member.getStudentNumber())) { //解决相同账号会出现生成多个练习账号的问题
continue;
}
member.setMemberId(IdUtil.simpleUUID());
member.setTrainingId(Constant.PRACTICE_TRAINING_ID);
member.setTrainingName(Constant.TRAININGNAME);
member.setSchoolId(Constant.PRACTICE_SCHOOL_ID);
memberList.add(member);
}
if (memberList.size()>0){
insertAll(memberList);
}
}
public void buildPracticeMember(Member member) {
if (checkUser(Constant.PRACTICE_TRAINING_ID, member.getStudentNumber())) {
}else {
member.setMemberId(IdUtil.simpleUUID());
member.setTrainingId(Constant.PRACTICE_TRAINING_ID);
member.setTrainingName(Constant.TRAININGNAME);
member.setSchoolId(Constant.PRACTICE_SCHOOL_ID);
insert(member);
}
}
public void buildPracticeMemberByJwtUser(JwtUser jwtUser) {
Member member = new Member();
member.setMemberId(IdUtil.simpleUUID());
member.setName(jwtUser.getName());
member.setTrainingId(Constant.PRACTICE_TRAINING_ID);
member.setSchoolId(Constant.PRACTICE_SCHOOL_ID);
member.setClassGrade(jwtUser.getClassName());
member.setClassId(jwtUser.getClassId());
member.setMajor(jwtUser.getMajorName());
member.setStudentNumber(jwtUser.getUsername());
member.setTrainingName(Constant.TRAININGNAME);
member.setInitialCapital(1000000.0);
member.setMarginUsed(0.0);
member.setCumulativeProfitLoss(0.0);
member.setOpeningTrades(0);
member.setClosingTrades(0);
insert(member);
}
}

Loading…
Cancel
Save