新增实训分数功能

master
yz 2 years ago
parent 7dd5568a23
commit c370d85eb1

@ -1,7 +1,8 @@
package com.ruoyi.biemo.business.controller;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.constant.TrainingScoreConstants;
import com.ruoyi.system.domain.SysTrainingScore;
import com.ruoyi.system.service.ISysTrainingScoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -9,9 +10,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigInteger;
import java.util.Map;
@RestController
@RequestMapping("/makesoft/trainingScore")
public class TrainingScoreController {
@ -21,9 +19,20 @@ public class TrainingScoreController {
@PostMapping("/addScore")
private void addScore(@RequestBody JSONObject jsonObject){
String controlsName = jsonObject.getString("controlsName");
BigInteger userId = jsonObject.getBigInteger("userId");
Map<String, Integer> trainingScoreConstantsMap = TrainingScoreConstants.getTrainingScoreConstantsMap();
Integer score = trainingScoreConstantsMap.get(controlsName);
Boolean isCommit=trainingScoreService.checkStatus(userId);
Long userId = jsonObject.getLong("userId");
//检查状态是否提交且变更的值是否有数据 如果返回值为false 则执行更新操作
SysTrainingScore sysTrainingScore = trainingScoreService.checkStatusAndControlsName(userId, controlsName);
if(sysTrainingScore!=null){
//更新userid的进度和分数
sysTrainingScore.calculateDataScore();
trainingScoreService.updateByPrimaryKeySelective(sysTrainingScore);
}
}
@PostMapping("/selectScore")
private SysTrainingScore selectScore(@RequestBody JSONObject jsonObject){
Long userId = jsonObject.getLong("userId");
SysTrainingScore sysTrainingScore = trainingScoreService.selectByUserId(userId);
return sysTrainingScore;
}
}

@ -61,7 +61,7 @@ public class TrainingScoreConstants {
// 判断字段是否为静态字段
if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
// 将字段名和字段值放入map中
constantsMap.put(field.getName(), field.getInt(null));
constantsMap.put(convertToCamelCase(field.getName()), field.getInt(null));
}
}
} catch (Exception e) {
@ -70,4 +70,22 @@ public class TrainingScoreConstants {
return constantsMap;
}
public static String convertToCamelCase(String string) {
// 拆分字符串为单词数组
String[] words = string.split("_");
// 将单词转换为小写,并将首字母大写
StringBuilder sb = new StringBuilder();
for (int i = 0; i < words.length; i++) {
String word = words[i].toLowerCase();
if (i > 0) {
// 将首字母大写
word = Character.toUpperCase(word.charAt(0)) + word.substring(1);
}
sb.append(word);
}
return sb.toString();
}
}

@ -12,7 +12,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
long countByExample(SysTrainingScoreExample example);
@ -20,7 +20,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int deleteByExample(SysTrainingScoreExample example);
@ -28,7 +28,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int deleteByPrimaryKey(String id);
@ -36,7 +36,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int insert(SysTrainingScore record);
@ -44,7 +44,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int insertSelective(SysTrainingScore record);
@ -52,7 +52,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
List<SysTrainingScore> selectByExampleWithBLOBs(SysTrainingScoreExample example);
@ -60,7 +60,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
List<SysTrainingScore> selectByExample(SysTrainingScoreExample example);
@ -68,7 +68,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
SysTrainingScore selectByPrimaryKey(String id);
@ -76,7 +76,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int updateByExampleSelective(@Param("record") SysTrainingScore record, @Param("example") SysTrainingScoreExample example);
@ -84,7 +84,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int updateByExampleWithBLOBs(@Param("record") SysTrainingScore record, @Param("example") SysTrainingScoreExample example);
@ -92,7 +92,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int updateByExample(@Param("record") SysTrainingScore record, @Param("example") SysTrainingScoreExample example);
@ -100,7 +100,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int updateByPrimaryKeySelective(SysTrainingScore record);
@ -108,7 +108,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int updateByPrimaryKeyWithBLOBs(SysTrainingScore record);
@ -116,7 +116,7 @@ public interface SysTrainingScoreMapper {
* This method was generated by MyBatis Generator.
* This method corresponds to the database table sys_training_score
*
* @mbg.generated Thu Aug 10 15:13:28 CST 2023
* @mbg.generated Thu Aug 10 17:59:47 CST 2023
*/
int updateByPrimaryKey(SysTrainingScore record);
}

@ -3,12 +3,19 @@ package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.system.domain.SysTrainingScore;
import java.math.BigInteger;
public interface ISysTrainingScoreService {
Boolean checkStatus(BigInteger userId);
SysTrainingScore checkStatusAndControlsName(Long userId,String controlsName);
AjaxResult uploadReport(MultipartFile file, String fileName, Long id);
AjaxResult submitReport(String content, Long userId);
void updateByPrimaryKeySelective(SysTrainingScore sysTrainingScore);
SysTrainingScore selectByUserId(Long userId);
}

@ -3,6 +3,9 @@ package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.SysTrainingScore;
import com.ruoyi.system.domain.SysTrainingScoreExample;
import com.ruoyi.common.constant.TrainingScoreConstants;
import com.ruoyi.system.domain.SysTrainingScore;
import com.ruoyi.system.domain.SysTrainingScoreExample;
import com.ruoyi.system.mapper.SysTrainingScoreMapper;
import com.ruoyi.system.service.ISysTrainingScoreService;
import com.ruoyi.system.util.IFileUtil;
@ -13,6 +16,8 @@ import org.springframework.web.multipart.MultipartFile;
import java.math.BigInteger;
import java.util.List;
import java.util.List;
import java.util.Map;
@Service
public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
@ -21,11 +26,41 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
@Autowired
private IFileUtil fileUtil;
@Override
public SysTrainingScore selectByUserId(Long userId){
SysTrainingScoreExample example = new SysTrainingScoreExample();
SysTrainingScoreExample.Criteria criteria = example.createCriteria();
criteria.andUseridEqualTo(userId);
List<SysTrainingScore> trainingScores = trainingScoreMapper.selectByExample(example);
return trainingScores.get(0);
}
@Override
public Boolean checkStatus(BigInteger userId) {
// trainingScoreMapper.selectByExample()
public SysTrainingScore checkStatusAndControlsName(Long userId,String controlsName) {
SysTrainingScoreExample example = new SysTrainingScoreExample();
SysTrainingScoreExample.Criteria criteria = example.createCriteria();
criteria.andUseridEqualTo(userId);
List<SysTrainingScore> trainingScores = trainingScoreMapper.selectByExample(example);
SysTrainingScore sysTrainingScore = trainingScores.get(0);
if(sysTrainingScore.getStatus()==1){
return null;
}else{
if(sysTrainingScore.get(controlsName)==null ||("").equals(sysTrainingScore.get(controlsName))){
Map<String, Integer> trainingScoreConstantsMap = TrainingScoreConstants.getTrainingScoreConstantsMap();
Integer score = trainingScoreConstantsMap.get(controlsName);
SysTrainingScore trainingScore=new SysTrainingScore();
trainingScore.setId(sysTrainingScore.getId());
trainingScore.set(controlsName, String.valueOf(score));
trainingScoreMapper.updateByPrimaryKeySelective(trainingScore);
return trainingScore;
}
return null;
}
}
public void updateByPrimaryKeySelective( SysTrainingScore trainingScore){
trainingScoreMapper.updateByPrimaryKeySelective(trainingScore);
}
@Override

@ -3,6 +3,7 @@ package com.ruoyi.system.util;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.IdUtil;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;

Loading…
Cancel
Save