From 031d196ab2dff78a7c2ca8a3bc7662b712893866 Mon Sep 17 00:00:00 2001 From: xiaoCJ <406612557@qq.com> Date: Thu, 3 Aug 2023 15:41:51 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IndexController.java | 3 +- .../trading_trading/service/IndexService.java | 60 +++++-------------- 2 files changed, 17 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/IndexController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/IndexController.java index c990e51..233197d 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/IndexController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/IndexController.java @@ -42,14 +42,13 @@ public class IndexController { public ResultEntity> findAll(@ApiParam("分页索引:{0}为第一页") Integer index, @ApiParam("页量") @RequestParam Integer size, @ApiParam("班级") @RequestParam(required = false) String classGrade, - @ApiParam("学号") @RequestParam(required = false) String studentNumber, @ApiParam("姓名") @RequestParam(required = false) String name, @ApiParam("日期") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime, @ApiParam("实训任务名字") @RequestParam(required = false) String trainingName ) { JwtUser currentUser = TokenProvider.getJWTUser(request); int schoolId = currentUser.getSchoolId(); - PageInfo byConditions = indexService.findByConditions(index, size, classGrade, studentNumber, name, startTime, trainingName, schoolId); + PageInfo byConditions = indexService.findByConditions(index, size, classGrade, name, startTime, trainingName, schoolId); return new ResultEntity<>(byConditions); } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/IndexService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/IndexService.java index 7fede8d..d4c8689 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/service/IndexService.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/IndexService.java @@ -22,14 +22,12 @@ public class IndexService { private final MemberMapper memberMapper; private final TrainingMapper trainingMapper; - //TODO 实训任务结束后系统自动显示模拟交易实训成绩,教师评分之后显示实验报告成绩。 - // 首页分页 排序 模糊查询 - public PageInfo findByConditions(Integer index, Integer size, String classGrade, String studentNumber, String name, Date startTime, String trainingName, Integer schoolId) { + public PageInfo findByConditions(Integer index, Integer size, String classGrade, String name, Date startTime, String trainingName, Integer schoolId) { TrainingExample trainingExample = new TrainingExample(); PageHelper.startPage(index, size); // 跳转到首页 没有参数 显示所有 - if (classGrade == null && studentNumber == null && name == null && startTime == null && trainingName == null) { + if (classGrade == null && name == null && startTime == null && trainingName == null) { MemberExample memberExample = new MemberExample(); MemberExample.Criteria criteria = memberExample.createCriteria(); if (schoolId != null) { @@ -52,35 +50,25 @@ public class IndexService { if (StringUtils.isNotEmpty(trainingName)) { criteria.andTrainingNameEqualTo(trainingName); } - if (startTime!=null) { + if (startTime != null) { criteria.andStartTimeEqualTo(startTime); } List trainings = null; - if (StringUtils.isNotEmpty(trainingName) || startTime!=null) { + if (StringUtils.isNotEmpty(trainingName) || startTime != null) { trainings = trainingMapper.selectByExample(trainingExample); } List members = new ArrayList<>(); + if (trainings == null || trainings.isEmpty()) { + if (classGrade == null && name == null) { + return null; + } + } if (trainings != null && !trainings.isEmpty()) { //根据trainingName查到了对象 for (Training training : trainings) { - MemberExample memberExample = new MemberExample(); - MemberExample.Criteria criteria1 = memberExample.createCriteria(); String trainingId = training.getTrainingId(); - if (trainingId != null) { - criteria1.andTrainingIdEqualTo(trainingId); - } - if (StringUtils.isNotEmpty(classGrade)) { - criteria1.andClassGradeLike("%" + classGrade + "%"); - } - if (StringUtils.isNotEmpty(studentNumber)) { - criteria1.andStudentNumberLike("%" + studentNumber + "%"); - } - if (StringUtils.isNotEmpty(name)) { - criteria1.andNameLike("%" + name + "%"); - } - memberExample.setOrderByClause("yield DESC"); - List membersForTraining = memberMapper.selectByExample(memberExample); + List membersForTraining = memberMapper.selectMembers(schoolId, name, classGrade, trainingId); // for (int i = 1; i <= membersForTraining.size(); i++) { for (Member member : membersForTraining) { member.setStuRank(i); @@ -88,33 +76,17 @@ public class IndexService { } } members.addAll(membersForTraining); + return new PageInfo<>(members); } - return new PageInfo<>(members); - } - //没有传training表中两个参数时,直接查member表 - MemberExample memberExample = new MemberExample(); - MemberExample.Criteria criteria1 = memberExample.createCriteria(); - if (schoolId != null) { - criteria1.andSchoolIdEqualTo(schoolId); - } - if (StringUtils.isNotEmpty(classGrade)) { - criteria1.andClassGradeLike("%" + classGrade + "%"); - } - if (StringUtils.isNotEmpty(studentNumber)) { - criteria1.andStudentNumberLike("%" + studentNumber + "%"); - } - if (StringUtils.isNotEmpty(name)) { - criteria1.andNameLike("%" + name + "%"); } - memberExample.setOrderByClause("yield DESC"); PageHelper.startPage(index, size); - List membersForTraining = memberMapper.selectByExample(memberExample); - for (int i = 1; i <= membersForTraining.size(); i++) { - for (Member member : membersForTraining) { - member.setStuRank(i); + List resultMembers = memberMapper.selectMemberByNameAndNumber(schoolId, name); + for (int i = 1; i <= resultMembers.size(); i++) { + for (Member resultMember : resultMembers) { + resultMember.setStuRank(i); i++; } } - return new PageInfo<>(membersForTraining); + return new PageInfo<>(resultMembers); } } From 1111dfbb0c976f466d5733cec7a84ae98092819d Mon Sep 17 00:00:00 2001 From: xiaoCJ <406612557@qq.com> Date: Thu, 3 Aug 2023 15:57:10 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=A1=A8=E5=92=8C=E7=9B=B8=E5=85=B3=E7=9A=84?= =?UTF-8?q?=E7=B1=BB=EF=BC=8C=E4=BB=BB=E5=8A=A1=E6=8A=A5=E5=91=8A=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=B8=8A=E4=BC=A0=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trading_trading/mappers/MemberMapper.java | 12 + src/main/resources/mappers/MemberMapper.xml | 541 ++++++++++-------- 2 files changed, 301 insertions(+), 252 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java b/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java index c6c7eac..c38fd56 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/mappers/MemberMapper.java @@ -155,4 +155,16 @@ public interface MemberMapper { " #{item} " + " ") void deleteMembersByTrainingIdNotInStudentInfos(@Param("trainingId") String trainingId, @Param("list") List list); + + List selectMemberByNameAndNumber( + @Param("schoolId") Integer schoolId, + @Param("name") String name + ); + + List selectMembers( + @Param("schoolId") Integer schoolId, + @Param("name") String name, + @Param("classGrade")String classGrade, + @Param("trainingId")String trainingId + ); } \ No newline at end of file diff --git a/src/main/resources/mappers/MemberMapper.xml b/src/main/resources/mappers/MemberMapper.xml index 935582b..cc3b9e9 100644 --- a/src/main/resources/mappers/MemberMapper.xml +++ b/src/main/resources/mappers/MemberMapper.xml @@ -1,258 +1,297 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - and ${criterion.condition} - - - and ${criterion.condition} #{criterion.value} - - - and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} - - - and ${criterion.condition} - - #{listItem} - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + - - - - - + + + + + + member_id, training_id, name, student_number, major, class_grade, stu_rank, initial_capital, + total_assets, net_value, margin_used, available_funds, margin_level, position_profit_loss, + cumulative_profit_loss, yield, opening_trades, closing_trades, school_id, create_school, + training_name, report_score, class_id + + + + + - - - member_id, training_id, name, student_number, major, class_grade, stu_rank, initial_capital, - total_assets, net_value, margin_used, available_funds, margin_level, position_profit_loss, - cumulative_profit_loss, yield, opening_trades, closing_trades, school_id, create_school, - training_name, report_score, class_id - - - - - delete from sys_member - where member_id = #{memberId,jdbcType=VARCHAR} - - - - delete from sys_member - - - - - - - insert into sys_member (member_id, training_id, name, - student_number, major, class_grade, - stu_rank, initial_capital, total_assets, - net_value, margin_used, available_funds, - margin_level, position_profit_loss, cumulative_profit_loss, - yield, opening_trades, closing_trades, - school_id, create_school, training_name, - report_score, class_id) - values (#{memberId,jdbcType=VARCHAR}, #{trainingId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, - #{studentNumber,jdbcType=VARCHAR}, #{major,jdbcType=VARCHAR}, #{classGrade,jdbcType=VARCHAR}, - #{stuRank,jdbcType=INTEGER}, #{initialCapital,jdbcType=DOUBLE}, #{totalAssets,jdbcType=DOUBLE}, - #{netValue,jdbcType=DOUBLE}, #{marginUsed,jdbcType=DOUBLE}, #{availableFunds,jdbcType=DOUBLE}, - #{marginLevel,jdbcType=DOUBLE}, #{positionProfitLoss,jdbcType=DOUBLE}, #{cumulativeProfitLoss,jdbcType=DOUBLE}, - #{yield,jdbcType=DOUBLE}, #{openingTrades,jdbcType=INTEGER}, #{closingTrades,jdbcType=INTEGER}, - #{schoolId,jdbcType=INTEGER}, #{createSchool,jdbcType=VARCHAR}, #{trainingName,jdbcType=VARCHAR}, - #{reportScore,jdbcType=INTEGER}, #{classId,jdbcType=INTEGER}) - - - - - update sys_member - set member_id = #{record.memberId,jdbcType=VARCHAR}, - training_id = #{record.trainingId,jdbcType=VARCHAR}, - name = #{record.name,jdbcType=VARCHAR}, - student_number = #{record.studentNumber,jdbcType=VARCHAR}, - major = #{record.major,jdbcType=VARCHAR}, - class_grade = #{record.classGrade,jdbcType=VARCHAR}, - stu_rank = #{record.stuRank,jdbcType=INTEGER}, - initial_capital = #{record.initialCapital,jdbcType=DOUBLE}, - total_assets = #{record.totalAssets,jdbcType=DOUBLE}, - net_value = #{record.netValue,jdbcType=DOUBLE}, - margin_used = #{record.marginUsed,jdbcType=DOUBLE}, - available_funds = #{record.availableFunds,jdbcType=DOUBLE}, - margin_level = #{record.marginLevel,jdbcType=DOUBLE}, - position_profit_loss = #{record.positionProfitLoss,jdbcType=DOUBLE}, - cumulative_profit_loss = #{record.cumulativeProfitLoss,jdbcType=DOUBLE}, - yield = #{record.yield,jdbcType=DOUBLE}, - opening_trades = #{record.openingTrades,jdbcType=INTEGER}, - closing_trades = #{record.closingTrades,jdbcType=INTEGER}, - school_id = #{record.schoolId,jdbcType=INTEGER}, - create_school = #{record.createSchool,jdbcType=VARCHAR}, - training_name = #{record.trainingName,jdbcType=VARCHAR}, - report_score = #{record.reportScore,jdbcType=INTEGER}, - class_id = #{record.classId,jdbcType=INTEGER} - - - - - - - update sys_member - - - training_id = #{trainingId,jdbcType=VARCHAR}, - - - name = #{name,jdbcType=VARCHAR}, - - - student_number = #{studentNumber,jdbcType=VARCHAR}, - - - major = #{major,jdbcType=VARCHAR}, - - - class_grade = #{classGrade,jdbcType=VARCHAR}, - - - stu_rank = #{stuRank,jdbcType=INTEGER}, - - - initial_capital = #{initialCapital,jdbcType=DOUBLE}, - - - total_assets = #{totalAssets,jdbcType=DOUBLE}, - - - net_value = #{netValue,jdbcType=DOUBLE}, - - - margin_used = #{marginUsed,jdbcType=DOUBLE}, - - - available_funds = #{availableFunds,jdbcType=DOUBLE}, - - - margin_level = #{marginLevel,jdbcType=DOUBLE}, - - - position_profit_loss = #{positionProfitLoss,jdbcType=DOUBLE}, - - - cumulative_profit_loss = #{cumulativeProfitLoss,jdbcType=DOUBLE}, - - - yield = #{yield,jdbcType=DOUBLE}, - - - opening_trades = #{openingTrades,jdbcType=INTEGER}, - - - closing_trades = #{closingTrades,jdbcType=INTEGER}, - - - school_id = #{schoolId,jdbcType=INTEGER}, - - - create_school = #{createSchool,jdbcType=VARCHAR}, - - - training_name = #{trainingName,jdbcType=VARCHAR}, - - - report_score = #{reportScore,jdbcType=INTEGER}, - - - class_id = #{classId,jdbcType=INTEGER}, - - - where member_id = #{memberId,jdbcType=VARCHAR} - + + + + delete from sys_member + where member_id = #{memberId,jdbcType=VARCHAR} + + + + delete from sys_member + + + + + + + insert into sys_member (member_id, training_id, name, + student_number, major, class_grade, + stu_rank, initial_capital, total_assets, + net_value, margin_used, available_funds, + margin_level, position_profit_loss, cumulative_profit_loss, + yield, opening_trades, closing_trades, + school_id, create_school, training_name, + report_score, class_id) + values (#{memberId,jdbcType=VARCHAR}, #{trainingId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, + #{studentNumber,jdbcType=VARCHAR}, #{major,jdbcType=VARCHAR}, #{classGrade,jdbcType=VARCHAR}, + #{stuRank,jdbcType=INTEGER}, #{initialCapital,jdbcType=DOUBLE}, #{totalAssets,jdbcType=DOUBLE}, + #{netValue,jdbcType=DOUBLE}, #{marginUsed,jdbcType=DOUBLE}, #{availableFunds,jdbcType=DOUBLE}, + #{marginLevel,jdbcType=DOUBLE}, #{positionProfitLoss,jdbcType=DOUBLE}, #{cumulativeProfitLoss,jdbcType=DOUBLE}, + #{yield,jdbcType=DOUBLE}, #{openingTrades,jdbcType=INTEGER}, #{closingTrades,jdbcType=INTEGER}, + #{schoolId,jdbcType=INTEGER}, #{createSchool,jdbcType=VARCHAR}, #{trainingName,jdbcType=VARCHAR}, + #{reportScore,jdbcType=INTEGER}, #{classId,jdbcType=INTEGER}) + + + + + update sys_member + set member_id = #{record.memberId,jdbcType=VARCHAR}, + training_id = #{record.trainingId,jdbcType=VARCHAR}, + name = #{record.name,jdbcType=VARCHAR}, + student_number = #{record.studentNumber,jdbcType=VARCHAR}, + major = #{record.major,jdbcType=VARCHAR}, + class_grade = #{record.classGrade,jdbcType=VARCHAR}, + stu_rank = #{record.stuRank,jdbcType=INTEGER}, + initial_capital = #{record.initialCapital,jdbcType=DOUBLE}, + total_assets = #{record.totalAssets,jdbcType=DOUBLE}, + net_value = #{record.netValue,jdbcType=DOUBLE}, + margin_used = #{record.marginUsed,jdbcType=DOUBLE}, + available_funds = #{record.availableFunds,jdbcType=DOUBLE}, + margin_level = #{record.marginLevel,jdbcType=DOUBLE}, + position_profit_loss = #{record.positionProfitLoss,jdbcType=DOUBLE}, + cumulative_profit_loss = #{record.cumulativeProfitLoss,jdbcType=DOUBLE}, + yield = #{record.yield,jdbcType=DOUBLE}, + opening_trades = #{record.openingTrades,jdbcType=INTEGER}, + closing_trades = #{record.closingTrades,jdbcType=INTEGER}, + school_id = #{record.schoolId,jdbcType=INTEGER}, + create_school = #{record.createSchool,jdbcType=VARCHAR}, + training_name = #{record.trainingName,jdbcType=VARCHAR}, + report_score = #{record.reportScore,jdbcType=INTEGER}, + class_id = #{record.classId,jdbcType=INTEGER} + + + + + + + update sys_member + + + training_id = #{trainingId,jdbcType=VARCHAR}, + + + name = #{name,jdbcType=VARCHAR}, + + + student_number = #{studentNumber,jdbcType=VARCHAR}, + + + major = #{major,jdbcType=VARCHAR}, + + + class_grade = #{classGrade,jdbcType=VARCHAR}, + + + stu_rank = #{stuRank,jdbcType=INTEGER}, + + + initial_capital = #{initialCapital,jdbcType=DOUBLE}, + + + total_assets = #{totalAssets,jdbcType=DOUBLE}, + + + net_value = #{netValue,jdbcType=DOUBLE}, + + + margin_used = #{marginUsed,jdbcType=DOUBLE}, + + + available_funds = #{availableFunds,jdbcType=DOUBLE}, + + + margin_level = #{marginLevel,jdbcType=DOUBLE}, + + + position_profit_loss = #{positionProfitLoss,jdbcType=DOUBLE}, + + + cumulative_profit_loss = #{cumulativeProfitLoss,jdbcType=DOUBLE}, + + + yield = #{yield,jdbcType=DOUBLE}, + + + opening_trades = #{openingTrades,jdbcType=INTEGER}, + + + closing_trades = #{closingTrades,jdbcType=INTEGER}, + + + school_id = #{schoolId,jdbcType=INTEGER}, + + + create_school = #{createSchool,jdbcType=VARCHAR}, + + + training_name = #{trainingName,jdbcType=VARCHAR}, + + + report_score = #{reportScore,jdbcType=INTEGER}, + + + class_id = #{classId,jdbcType=INTEGER}, + + + where member_id = #{memberId,jdbcType=VARCHAR} + @@ -266,8 +305,6 @@ - - select distinct @@ -380,6 +344,28 @@ order by ${orderByClause} + + + + + + + + + + + + + + + + + + + + + + insert into sys_member (member_id, training_id, name, From 63ca85c854b9c665525c13c5a2a6a35ebf721f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Fri, 4 Aug 2023 10:31:26 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=8D=95=E7=82=B9=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UserController.java | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/UserController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/UserController.java index 475a74d..6ed51ac 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/UserController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/UserController.java @@ -50,18 +50,33 @@ public class UserController { @OperateLog(description = "用户登录") @ApiOperation(value = "用户登录", httpMethod = "POST") @PostMapping("login") - public ResultEntity login(@ApiParam("用户名") @RequestParam String username, - @ApiParam("加密后的密文") @RequestParam String passwordEncode) { + public ResultEntity login(@ApiParam("用户名") String username, + @ApiParam("加密后的密文") String passwordEncode, + @ApiParam("智云携带的token") String TOKEN) { String password; - try { - password = RsaUtil.decryptByPrivateKey(passwordEncode); - } catch (Exception e) { - throw new IllegalArgumentException("密码错误"); + JwtUser jwtUser; + if (!StringUtils.hasText(username) && !StringUtils.hasText(passwordEncode) && !StringUtils.hasText(TOKEN)) { + throw new IllegalArgumentException("请提供登录凭据"); + } + if (StringUtils.hasText(TOKEN)) { + jwtUser = TokenProvider.getJWTUserByZhiYun(TOKEN); + if (jwtUser == null) { + throw new IllegalArgumentException("token无效"); + } + } else { + try { + password = RsaUtil.decryptByPrivateKey(passwordEncode); + } catch (Exception e) { + throw new IllegalArgumentException("密码错误"); + } + String md5Pwd = RsaUtil.calculateMD5(password); + String hashPwd = RsaUtil.formatHash(md5Pwd); + jwtUser = TzApi.foreignExchangeTradingLogin(username, hashPwd); + if (jwtUser == null) { + throw new IllegalArgumentException("用户名或密码错误"); + } } - String md5Pwd = RsaUtil.calculateMD5(password); - String hashPwd = RsaUtil.formatHash(md5Pwd); - JwtUser jwtUser = TzApi.foreignExchangeTradingLogin(username, hashPwd); jwtUser.setAuthorityCodes(roleAuthorityService.getAuthorityByRoleId(jwtUser.getRoleId())); Authentication authentication = new UsernamePasswordAuthenticationToken(jwtUser, null, jwtUser.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); @@ -84,7 +99,6 @@ public class UserController { } - @ApiOperation(value = "注销登录", httpMethod = "POST") @PostMapping("/logout") public ResultEntity logout(HttpServletRequest request) { @@ -100,8 +114,7 @@ public class UserController { } - -// @Permission() + // @Permission() @AnonymousAccess @ApiOperation("获取当前在线用户") @GetMapping("online-users")