新增学生提交接口

main
whb 1 year ago
parent 548d918919
commit c09ceede8d

@ -25,6 +25,25 @@ public class Constant {
public static final String MODULE_CPWTZD="产品问题诊断";
public static final String MODULE_PNJGYH="品类结构优化";
public static final String PRO_SCXQWJ="市场需求挖掘";
public static final String MODULE_HYXQFX="行业需求分析";
public static final String MODULE_JZHJFX="竞争环境分析";
public static final String MODULE_XFRQFX="消费人群分析";
public static final String MODULE_YHSJFX="用户数据分析";
public static final String PRO_CPGH="产品规划";
public static final String MODULE_SJHCP="数据化产品";
public static final String MODULE_CPDJ="产品定金";
public static final String MODULE_CPCYHDW="产品差异化定位";
public static final String MODULE_CPJGGH="产品结构规划";
public static final String PRO_CPTFCS="产品投放测试";
public static final String MODULE_FBQDPG="发布渠道评估";
public static final String MODULE_CPTGCS="产品推广测试";
public static final String MODULE_QDBXFX="渠道表现分析";
public static final String MODULE_CPYXDW="产品营销定位";
public static final String YONGHUSHUXINGBIAO= "客户细分数据表";
public static final String YONGHUDENGLUHUOYUEBIAO= "销售预测数据表";

@ -2,34 +2,28 @@ package com.sztzjy.linkCommerce.controller.stu;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.IdUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONObject;
import com.nimbusds.jose.shaded.gson.Gson;
import com.sztzjy.linkCommerce.annotation.AnonymousAccess;
import com.sztzjy.linkCommerce.config.Constant;
import com.sztzjy.linkCommerce.entity.*;
import com.sztzjy.linkCommerce.entity.dto.MonthlyCakeIndex;
import com.sztzjy.linkCommerce.entity.dto.StuIndustryAnalysisDTO;
import com.sztzjy.linkCommerce.entity.dto.YearCakeIndexDto;
import com.sztzjy.linkCommerce.mapper.HyxqfxAnswerMapper;
import com.sztzjy.linkCommerce.mapper.HyxqfxDataMapper;
import com.sztzjy.linkCommerce.mapper.HyxqfxStuAnswerMapper;
import com.sztzjy.linkCommerce.mapper.StuGradeMapper;
import com.sztzjy.linkCommerce.service.IndustryDemandAnalysisService;
import com.sztzjy.linkCommerce.service.ScoreService;
import com.sztzjy.linkCommerce.util.ResultEntity;
import com.sztzjy.linkCommerce.util.excel.DataListener;
import com.sztzjy.linkCommerce.util.excel.DemoDataListener;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.*;
@ -55,6 +49,9 @@ public class IndustryDemandAnalysisController {
@Autowired
private StuGradeMapper stuGradeMapper;
@Autowired
private ScoreService scoreService;
@ -120,7 +117,7 @@ public class IndustryDemandAnalysisController {
}
}
//学生答案
String jsonString = JSONObject.toJSONString(analysisDTO);
HyxqfxStuAnswer hyxqfxStuAnswer = new HyxqfxStuAnswer();
hyxqfxStuAnswer.setId(IdUtil.randomUUID());
@ -130,54 +127,19 @@ public class IndustryDemandAnalysisController {
hyxqfxStuAnswerMapper.insertSelective(hyxqfxStuAnswer);
BigDecimal subtract = BigDecimal.valueOf(100).subtract(Convert.toBigDecimal(count));
StuGrade stuGrade = new StuGrade(Constant.PRO_SCXQWJ,
Constant.MODULE_HYXQFX,
Convert.toBigDecimal(subtract),
analysisDTO.getSchoolId(),
analysisDTO.getUserId(),
analysisDTO.getName(),
analysisDTO.getClassId(),
analysisDTO.getClassName(),
analysisDTO.getContext());
//插入主观题
SubjectiveQuestions subjectiveQuestions = new SubjectiveQuestions();
subjectiveQuestions.setId(IdUtil.randomUUID());
subjectiveQuestions.setUserId(analysisDTO.getUserId());
subjectiveQuestions.setModule("行业需求分析");
subjectiveQuestions.setProject("市场需求挖掘");
subjectiveQuestions.setCreateTime(new Date());
subjectiveQuestions.setSubjectiveContent(analysisDTO.getContext());
subjectiveQuestions.setSubjectiveContent(analysisDTO.getContext());
//查询是否已经有成绩
StuGradeExample stuGradeExample = new StuGradeExample();
stuGradeExample.createCriteria().andUserIdEqualTo(analysisDTO.getUserId()).andProjectEqualTo("市场需求挖掘").andModuleEqualTo("行业需求分析");
List<StuGrade> stuGradeList = stuGradeMapper.selectByExample(stuGradeExample);
if (!CollectionUtils.isEmpty(stuGradeList)) {
StuGrade stuGrade = stuGradeList.get(0);
BigDecimal score = stuGrade.getScore();
BigDecimal error = Convert.toBigDecimal(count);
score = score.subtract(error);
if (score.compareTo(BigDecimal.valueOf(100)) > 0)
{
stuGrade.setScore(BigDecimal.valueOf(100));
}else {
stuGrade.setScore(score);
}
stuGradeMapper.updateByPrimaryKeySelective(stuGrade);
}else {
//将分数写入成绩表
StuGrade stuGrade = new StuGrade();
stuGrade.setId(IdUtil.randomUUID());
stuGrade.setUserId(analysisDTO.getUserId());
stuGrade.setCreateTime(new Date());
stuGrade.setModule("行业需求分析");
stuGrade.setProject("市场需求挖掘");
stuGrade.setClassName(analysisDTO.getClassName());
stuGrade.setContent(analysisDTO.getContext());
stuGrade.setName(analysisDTO.getName());
stuGrade.setSchoolId(analysisDTO.getSchoolId());
stuGrade.setScore(BigDecimal.valueOf(100-count));
stuGradeMapper.insertSelective(stuGrade);
}
scoreService.submitScoreCalculation(stuGrade);
return new ResultEntity<>(HttpStatus.OK, "上传成功");

@ -3,13 +3,17 @@ package com.sztzjy.linkCommerce.entity;
import java.math.BigDecimal;
import java.util.Date;
import cn.hutool.core.util.IdUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
*
* @author whb
* stu_grade
*/
@Data
public class StuGrade {
@ApiModelProperty(notes = "成绩ID主键建议格式GRD_用户ID_时间戳GRD_U1001_202311051230")
private String id;
@ -44,6 +48,21 @@ public class StuGrade {
@ApiModelProperty(notes = "主观题答卷内容建议存储为JSON格式")
private String content;
public StuGrade( String project, String module, BigDecimal score, String schoolId, String userId, String name, String schoolClassId, String className, String content) {
this.id = IdUtil.randomUUID();
this.project = project;
this.module = module;
this.createTime = new Date();
this.score = score;
this.schoolId = schoolId;
this.userId = userId;
this.name = name;
this.schoolClassId = schoolClassId;
this.className = className;
this.content = content;
}
public String getId() {
return id;
}

@ -37,6 +37,7 @@ import java.util.List;
private String name;
@ApiModelProperty(notes = "学校ID")
private String schoolId;

@ -0,0 +1,12 @@
package com.sztzjy.linkCommerce.service;
import com.sztzjy.linkCommerce.entity.StuGrade;
/**
* @author 17803
* @date 2025-04-25 09:31
*/
public interface ScoreService {
void submitScoreCalculation(StuGrade stuGrade);
}

@ -0,0 +1,70 @@
package com.sztzjy.linkCommerce.service.impl;
import com.sztzjy.linkCommerce.entity.StuGrade;
import com.sztzjy.linkCommerce.entity.StuGradeExample;
import com.sztzjy.linkCommerce.mapper.StuGradeMapper;
import com.sztzjy.linkCommerce.service.ScoreService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.List;
/**
* @author 17803
* @date 2025-04-25 09:31
*/
@Service
public class ScoreServiceImpl implements ScoreService {
@Autowired
private StuGradeMapper stuGradeMapper;
@Override
public void submitScoreCalculation(StuGrade stuGrade) {
StuGradeExample stuGradeExample = new StuGradeExample();
stuGradeExample.createCriteria()
.andModuleEqualTo(stuGrade.getModule())
.andProjectEqualTo(stuGrade.getProject())
.andUserIdEqualTo(stuGrade.getUserId())
.andSchoolIdEqualTo(stuGrade.getSchoolId())
.andSchoolClassIdEqualTo(stuGrade.getSchoolClassId());
List<StuGrade> stuGradeList = stuGradeMapper.selectByExampleWithBLOBs(stuGradeExample);
//首次插入
if (CollectionUtils.isEmpty(stuGradeList)) {
//传过来的得分
stuGrade = scoreCalculation(stuGrade);
stuGradeMapper.insertSelective(stuGrade);
}
}
public StuGrade scoreCalculation(StuGrade stuGrade) {
BigDecimal info = stuGrade.getScore();
if (info.compareTo(new BigDecimal(0)) < 0) {
stuGrade.setScore(BigDecimal.ZERO);
}
if (info.compareTo(new BigDecimal(100)) > 0) {
stuGrade.setScore(BigDecimal.valueOf(100));
}
return stuGrade;
}
}
Loading…
Cancel
Save