细化用户行为画像,为rfm(用户价值管理)分析添加每个单独提交

master
whb
parent 356ae55ab0
commit 42951f9bac

@ -23,7 +23,20 @@ public class Constant {
public static final String YONGHUDENGLUHUOYUEBIAO= "用户登录活跃表";
public static final String YONGHUXIAOFEINENGLIBIAO= "用户消费能力表";
public static final String YONGHUXINGWEIBIAO= "用户行为表";
public static final String YONGHUPINGLUNBIAO= "用户评论表";
public static final String FILTEROUTSTATIS_ONE= "剔除";
public static final String FILTEROUTSTATIS_TWO= "纳入";
public static final String FILTEROUTSTATIS_THREE= "4";
public static final String FILTEROUTSTATIS_FOUR= "2";
public static final String FILTEROUTSTATIS_FIVE= "5000";
public static final String FILTEROUTSTATIS_SIX= "3";
public static final String FILTEROUTSTATIS_SEVEN= "1000";
public static final String FILTEROUTSTATIS_EIGHT= "1";
public static final String FILTEROUTSTATIS_NINE= "500";

@ -0,0 +1,113 @@
package com.sztzjy.marketing.controller.stu;
import com.sztzjy.marketing.annotation.AnonymousAccess;
import com.sztzjy.marketing.util.file.IFileUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
/**
* @author 17803
* @date 2024-06-17 10:29
*/
@Api(tags = "用户画像模型下载数据")
@RestController
@RequestMapping("api/downDataByUserPortrait")
public class DownloadDataController {
@Autowired
private IFileUtil iFileUtil;
@AnonymousAccess
@ApiOperation("RFM分析方法下载数据")
@GetMapping("/analysisByRfmDown")
public void analysisByRfmDown(HttpServletResponse response){
iFileUtil.download(response,"RFM分析方法data.xlsx");
}
@AnonymousAccess
@ApiOperation("帕累托分析方法下载数据")
@GetMapping("/analysisByPareto")
public void analysisByPareto(HttpServletResponse response){
iFileUtil.download(response,"帕累托分析方法data.xlsx");
}
@AnonymousAccess
@ApiOperation("波士顿矩阵分析图下载数据")
@GetMapping("/bostonMatrixAnalysisData")
public void bostonMatrixAnalysisData(HttpServletResponse response){
iFileUtil.download(response,"波士顿矩阵分析图data.xlsx");
}
@AnonymousAccess
@ApiOperation("漏斗模型分析下载数据")
@GetMapping("/analysisByFunnelModel")
public void analysisByFunnelModel(HttpServletResponse response){
iFileUtil.download(response,"漏斗模型分析data.xlsx");
}
@AnonymousAccess
@ApiOperation("购物篮分析下载数据")
@GetMapping("/analysisByShopBasket")
public void analysisByShopBasket(HttpServletResponse response){
iFileUtil.download(response,"购物篮分析data.xlsx");
}
@AnonymousAccess
@ApiOperation("复购分析下载数据")
@GetMapping("/analysisByRepurchase")
public void analysisByRepurchase(HttpServletResponse response){
iFileUtil.download(response,"复购分析data.xlsx");
}
@AnonymousAccess
@ApiOperation("留存分析下载数据")
@GetMapping("/analysisByRetention")
public void analysisByRetention(HttpServletResponse response){
iFileUtil.download(response,"留存分析data.xlsx");
}
@AnonymousAccess
@ApiOperation("用户粘性分析下载数据")
@GetMapping("/analysisByStickiness")
public void analysisByStickiness(HttpServletResponse response){
iFileUtil.download(response,"用户粘性分析data.xlsx");
}
}

@ -4,14 +4,11 @@ import com.sztzjy.marketing.annotation.AnonymousAccess;
import com.sztzjy.marketing.entity.StuMachineLearning;
import com.sztzjy.marketing.service.UserBehaviorProfilingAnaService;
import com.sztzjy.marketing.util.ResultEntity;
import com.sztzjy.marketing.util.file.IFileUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@Api(tags = "用户行为画像分析")
@RestController
@ -19,61 +16,35 @@ import javax.servlet.http.HttpServletResponse;
public class UserBehaviorProfilingAnaController {
@Autowired
private IFileUtil iFileUtil;
@Autowired
private UserBehaviorProfilingAnaService userBehaviorProfilingAnaService;
@AnonymousAccess
@ApiOperation("RFM分析方法下载数据")
@GetMapping("/analysisByRfmDown")
public void analysisByRfm(HttpServletResponse response){
iFileUtil.download(response,"RFM分析方法data.xlsx");
}
@AnonymousAccess
@ApiOperation("波士顿矩阵分析图下载数据")
@GetMapping("/analysisByRfmDown")
public void bostonMatrixAnalysisData(HttpServletResponse response){
iFileUtil.download(response,"波士顿矩阵分析图Data.xlsx");
}
@AnonymousAccess
@ApiOperation("用户行为画像分析自动保存")
@ApiOperation("用户画像模型根据对应模块名自动保存")
@PostMapping("/analysisByAutoSave")
public ResultEntity analysisByAutoSave(@RequestBody StuMachineLearning stuMachineLearning){
public ResultEntity analysisByAutoSave(@RequestBody StuMachineLearning stuMachineLearning) {
return userBehaviorProfilingAnaService.analysisByAutoSave(stuMachineLearning);
return userBehaviorProfilingAnaService.analysisByAutoSave(stuMachineLearning);
}
@ApiOperation("查看接口")
@ApiOperation("用户画像模型数据根据对应模块名回显")
@AnonymousAccess
@GetMapping("/readTrainInfo")
public ResultEntity readTrainInfo(String module,String userId){
public ResultEntity readTrainInfo(String module, String userId) {
return userBehaviorProfilingAnaService.readTrainInfo(module,userId);
return userBehaviorProfilingAnaService.readTrainInfo(module, userId);
}
@ApiOperation("重新实训")
@ApiOperation("根据对应模块名重新实训")
@AnonymousAccess
@GetMapping("/restartByTraining")
public ResultEntity restartByTraining(String module,String userId){
public ResultEntity restartByTraining(String module, String userId) {
return userBehaviorProfilingAnaService.restartByTraining(module,userId);
return userBehaviorProfilingAnaService.restartByTraining(module, userId);
}

@ -0,0 +1,53 @@
package com.sztzjy.marketing.controller.stu;
import com.sztzjy.marketing.annotation.AnonymousAccess;
import com.sztzjy.marketing.entity.StuMachineLearning;
import com.sztzjy.marketing.service.UserBehaviorProfilingByRfmService;
import com.sztzjy.marketing.util.ResultEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 17803
* @date 2024-06-17 13:38
*/
@Api(tags = "用户行为画像分析<rfm(用户价值管理)分析>")
@RestController
@RequestMapping("api/userBehaviorByRFM")
public class UserBehaviorProfilingByRFM {
@Autowired
private UserBehaviorProfilingByRfmService userBehaviorProfilingByRFMService;
@AnonymousAccess
@ApiOperation("第一步:筛选出统计样本")
@PostMapping("/filterOutStatisSample")
public ResultEntity filterOutStatisSample(@RequestBody StuMachineLearning stuMachineLearning) {
return userBehaviorProfilingByRFMService.filterOutStatisSample(stuMachineLearning);
}
@AnonymousAccess
@ApiOperation("第二步:计算每个用户的RFM值")
@PostMapping("/calculateRfm")
public ResultEntity calculateRfm(@RequestBody StuMachineLearning stuMachineLearning) {
return userBehaviorProfilingByRFMService.calculateRfm(stuMachineLearning);
}
}

@ -1,5 +1,7 @@
package com.sztzjy.marketing.entity;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
/**
*
@ -113,18 +115,72 @@ public class StuMachineLearning {
@ApiModelProperty("33")
private String stepNineC;
@ApiModelProperty("错误次数")
private Integer errorNumber;
@ApiModelProperty("正确次数")
private Integer successNumber;
@ApiModelProperty("用户ID-1 未提交 1已提交")
@ApiModelProperty("用户ID")
private String userId;
@ApiModelProperty("提交状态")
@ApiModelProperty("提交状态-1 未提交 1已提交")
private Integer subState;
@ApiModelProperty("归属模块(小模块)")
private String module;
@ApiModelProperty("步骤1提交状态-1 未提交 1已提交")
private Integer oneSubState;
@ApiModelProperty("步骤2提交状态-1 未提交 1已提交")
private Integer twoSubState;
@ApiModelProperty("步骤3提交状态-1 未提交 1已提交")
private Integer threeSubState;
@ApiModelProperty("步骤4提交状态-1 未提交 1已提交")
private Integer fourSubState;
@ApiModelProperty("步骤5提交状态-1 未提交 1已提交")
private Integer fiveSubState;
@ApiModelProperty("步骤6提交状态-1 未提交 1已提交")
private Integer sixSubState;
@ApiModelProperty("步骤7提交状态-1 未提交 1已提交")
private Integer sevenSubState;
@ApiModelProperty("创建时间")
private Date createTime;
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("34")
private String stepNineD;
@ApiModelProperty("35")
private String stepTenA;
@ApiModelProperty("36")
private String stepTenB;
@ApiModelProperty("37")
private String stepTenC;
@ApiModelProperty("38")
private String stepTenD;
@ApiModelProperty("39")
private String stepElevenA;
@ApiModelProperty("40")
private String stepElevenB;
@ApiModelProperty("41")
private String stepElevenC;
@ApiModelProperty("错误字段")
private String errorField;
public Integer getId() {
return id;
}
@ -405,12 +461,12 @@ public class StuMachineLearning {
this.stepNineC = stepNineC == null ? null : stepNineC.trim();
}
public Integer getErrorNumber() {
return errorNumber;
public Integer getSuccessNumber() {
return successNumber;
}
public void setErrorNumber(Integer errorNumber) {
this.errorNumber = errorNumber;
public void setSuccessNumber(Integer successNumber) {
this.successNumber = successNumber;
}
public String getUserId() {
@ -436,4 +492,148 @@ public class StuMachineLearning {
public void setModule(String module) {
this.module = module == null ? null : module.trim();
}
public Integer getOneSubState() {
return oneSubState;
}
public void setOneSubState(Integer oneSubState) {
this.oneSubState = oneSubState;
}
public Integer getTwoSubState() {
return twoSubState;
}
public void setTwoSubState(Integer twoSubState) {
this.twoSubState = twoSubState;
}
public Integer getThreeSubState() {
return threeSubState;
}
public void setThreeSubState(Integer threeSubState) {
this.threeSubState = threeSubState;
}
public Integer getFourSubState() {
return fourSubState;
}
public void setFourSubState(Integer fourSubState) {
this.fourSubState = fourSubState;
}
public Integer getFiveSubState() {
return fiveSubState;
}
public void setFiveSubState(Integer fiveSubState) {
this.fiveSubState = fiveSubState;
}
public Integer getSixSubState() {
return sixSubState;
}
public void setSixSubState(Integer sixSubState) {
this.sixSubState = sixSubState;
}
public Integer getSevenSubState() {
return sevenSubState;
}
public void setSevenSubState(Integer sevenSubState) {
this.sevenSubState = sevenSubState;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getStepNineD() {
return stepNineD;
}
public void setStepNineD(String stepNineD) {
this.stepNineD = stepNineD == null ? null : stepNineD.trim();
}
public String getStepTenA() {
return stepTenA;
}
public void setStepTenA(String stepTenA) {
this.stepTenA = stepTenA == null ? null : stepTenA.trim();
}
public String getStepTenB() {
return stepTenB;
}
public void setStepTenB(String stepTenB) {
this.stepTenB = stepTenB == null ? null : stepTenB.trim();
}
public String getStepTenC() {
return stepTenC;
}
public void setStepTenC(String stepTenC) {
this.stepTenC = stepTenC == null ? null : stepTenC.trim();
}
public String getStepTenD() {
return stepTenD;
}
public void setStepTenD(String stepTenD) {
this.stepTenD = stepTenD == null ? null : stepTenD.trim();
}
public String getStepElevenA() {
return stepElevenA;
}
public void setStepElevenA(String stepElevenA) {
this.stepElevenA = stepElevenA == null ? null : stepElevenA.trim();
}
public String getStepElevenB() {
return stepElevenB;
}
public void setStepElevenB(String stepElevenB) {
this.stepElevenB = stepElevenB == null ? null : stepElevenB.trim();
}
public String getStepElevenC() {
return stepElevenC;
}
public void setStepElevenC(String stepElevenC) {
this.stepElevenC = stepElevenC == null ? null : stepElevenC.trim();
}
public String getErrorField() {
return errorField;
}
public void setErrorField(String errorField) {
this.errorField = errorField == null ? null : errorField.trim();
}
}

@ -0,0 +1,22 @@
package com.sztzjy.marketing.entity.dto;
import lombok.Builder;
import lombok.Data;
import java.util.Map;
/**
* @author 17803
* @date 2024-06-17 15:03
*/
@Data
@Builder
public class StuBehaviorProfilingDTO {
private Map<String,String> map;
private Integer count ;
}

@ -0,0 +1,26 @@
package com.sztzjy.marketing.service;
import com.sztzjy.marketing.entity.StuMachineLearning;
import com.sztzjy.marketing.util.ResultEntity;
/**
* @author 17803
* @date 2024-06-17 13:47
*/
public interface UserBehaviorProfilingByRfmService {
/**
* :
* @param stuMachineLearning
* @return
*/
ResultEntity filterOutStatisSample(StuMachineLearning stuMachineLearning);
/**
* RFM
* @param stuMachineLearning
* @return
*/
ResultEntity calculateRfm(StuMachineLearning stuMachineLearning);
}

@ -0,0 +1,292 @@
package com.sztzjy.marketing.service;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON;
import com.sztzjy.marketing.config.Constant;
import com.sztzjy.marketing.entity.StuMachineLearning;
import com.sztzjy.marketing.entity.StuMachineLearningExample;
import com.sztzjy.marketing.entity.dto.StuBehaviorProfilingDTO;
import com.sztzjy.marketing.mapper.StuMachineLearningMapper;
import com.sztzjy.marketing.util.ResultEntity;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author 17803
* @date 2024-06-17 13:47
*/
@Service
public class UserBehaviorProfilingByRfmServiceImpl implements UserBehaviorProfilingByRfmService {
@Autowired
private StuMachineLearningMapper machineLearningMapper;
/**
* :
*
* @param learning
* @return
*/
@Override
public ResultEntity filterOutStatisSample(StuMachineLearning learning) {
//判断结果是否正确
StuBehaviorProfilingDTO behaviorProfilingDTO = checkAnswerByOneSub(learning);
//查询是否提交,已提交不做任何修改,未提交校验结果并保存,修改对应提交状态
StuMachineLearningExample machineLearningExample = new StuMachineLearningExample();
machineLearningExample.createCriteria().andUserIdEqualTo(learning.getUserId()).andModuleEqualTo(learning.getModule());
List<StuMachineLearning> machineLearningList = machineLearningMapper.selectByExample(machineLearningExample);
if (!machineLearningList.isEmpty()) {
//有用户数据
if (machineLearningList.get(0).getOneSubState() == null) {
machineLearningList.get(0).setOneSubState(0);
}
if (machineLearningList.get(0).getOneSubState() == 1) {
//二次提交不做任何修改
return new ResultEntity<>(HttpStatus.OK, "提交成功!");
}
//已经有数据
StuMachineLearning machineLearning = machineLearningList.get(0);
Integer id = machineLearning.getId();
BeanUtils.copyProperties(learning, machineLearning);
machineLearning.setId(id);
machineLearning.setSuccessNumber(behaviorProfilingDTO.getCount());
machineLearning.setOneSubState(1);
machineLearning.setErrorField(JSON.toJSONString(behaviorProfilingDTO.getMap()));
machineLearningMapper.updateByPrimaryKeySelective(machineLearning);
return new ResultEntity<>(HttpStatus.OK, "提交成功!");
} else {
//第一次提交
learning.setId((int) IdUtil.getSnowflakeNextId());
learning.setSuccessNumber(behaviorProfilingDTO.getCount());
learning.setOneSubState(1);
learning.setErrorField(JSON.toJSONString(behaviorProfilingDTO.getMap()));
machineLearningMapper.insertSelective(learning);
return new ResultEntity<>(HttpStatus.OK, "提交成功!");
}
}
/**
* RFM
* @param learning
* @return
*/
@Override
public ResultEntity calculateRfm(StuMachineLearning learning) {
//判断结果是否正确
StuBehaviorProfilingDTO behaviorProfilingDTO = checkAnswerByTwoSub(learning);
//查询是否提交,已提交不做任何修改,未提交校验结果并保存,修改对应提交状态
StuMachineLearningExample machineLearningExample = new StuMachineLearningExample();
machineLearningExample.createCriteria().andUserIdEqualTo(learning.getUserId()).andModuleEqualTo(learning.getModule());
List<StuMachineLearning> machineLearningList = machineLearningMapper.selectByExample(machineLearningExample);
if (!machineLearningList.isEmpty()) {
//有用户数据
if (machineLearningList.get(0).getTwoSubState() == null) {
machineLearningList.get(0).setTwoSubState(-1);
}
if (machineLearningList.get(0).getTwoSubState() == 1) {
//二次提交不做任何修改
return new ResultEntity<>(HttpStatus.OK, "提交成功!");
}
//已经有数据
StuMachineLearning machineLearning = machineLearningList.get(0);
Integer id = machineLearning.getId();
BeanUtils.copyProperties(learning, machineLearning);
machineLearning.setId(id);
machineLearning.setSuccessNumber(behaviorProfilingDTO.getCount());
machineLearning.setTwoSubState(1);
machineLearning.setErrorField(JSON.toJSONString(behaviorProfilingDTO.getMap()));
machineLearningMapper.updateByPrimaryKeySelective(machineLearning);
return new ResultEntity<>(HttpStatus.OK, "提交成功!");
} else {
//第一次提交
learning.setId((int) IdUtil.getSnowflakeNextId());
learning.setSuccessNumber(behaviorProfilingDTO.getCount());
learning.setTwoSubState(1);
learning.setErrorField(JSON.toJSONString(behaviorProfilingDTO.getMap()));
machineLearningMapper.insertSelective(learning);
return new ResultEntity<>(HttpStatus.OK, "提交成功!");
}
}
//第一步:筛选出统计样本结果校验
private StuBehaviorProfilingDTO checkAnswerByOneSub(StuMachineLearning learning) {
//用来存储错误字段和正确答案
Map<String, String> map = new HashMap<>();
//错误次数
int count = 0;
if (!Constant.FILTEROUTSTATIS_ONE.equals(learning.getStepOneA())){
count ++;
map.put("stepOneA",Constant.FILTEROUTSTATIS_ONE);
}
if (!Constant.FILTEROUTSTATIS_TWO.equals(learning.getStepOneB())){
count ++;
map.put("stepOneB",Constant.FILTEROUTSTATIS_TWO);
}
if (!Constant.FILTEROUTSTATIS_TWO.equals(learning.getStepOneC())){
count ++;
map.put("stepOneC",Constant.FILTEROUTSTATIS_TWO);
}
if (!Constant.FILTEROUTSTATIS_TWO.equals(learning.getStepOneD())){
count ++;
map.put("stepOneD",Constant.FILTEROUTSTATIS_TWO);
}
if (!Constant.FILTEROUTSTATIS_TWO.equals(learning.getStepTwoA())){
count ++;
map.put("stepTwoA",Constant.FILTEROUTSTATIS_TWO);
}
if (!Constant.FILTEROUTSTATIS_TWO.equals(learning.getStepTwoB())){
count ++;
map.put("stepTwoB",Constant.FILTEROUTSTATIS_TWO);
}
if (!Constant.FILTEROUTSTATIS_TWO.equals(learning.getStepTwoC())){
count ++;
map.put("stepTwoC",Constant.FILTEROUTSTATIS_TWO);
}
Integer number = 7 - count;
StuBehaviorProfilingDTO stuBehaviorProfilingDTO = StuBehaviorProfilingDTO.builder().map(map).count(number).build();
return stuBehaviorProfilingDTO;
}
private StuBehaviorProfilingDTO checkAnswerByTwoSub(StuMachineLearning learning){
//用来存储错误字段和正确答案
// 使用 fastjson 将 JSON 字符串转换回 Map
Map<String, String> map = JSON.parseObject(learning.getErrorField(), HashMap.class);
//错误次数
int count = 0;
if (!Constant.FILTEROUTSTATIS_THREE.equals(learning.getStepThreeA())){
count ++;
map.put("stepThreeA",Constant.FILTEROUTSTATIS_THREE);
}
if (!Constant.FILTEROUTSTATIS_FOUR.equals(learning.getStepThreeB())){
count ++;
map.put("stepThreeB",Constant.FILTEROUTSTATIS_FOUR);
}
if (!Constant.FILTEROUTSTATIS_FIVE.equals(learning.getStepThreeC())){
count ++;
map.put("stepThreeC",Constant.FILTEROUTSTATIS_FIVE);
}
if (!Constant.FILTEROUTSTATIS_FOUR.equals(learning.getStepThreeD())){
count ++;
map.put("stepThreeD",Constant.FILTEROUTSTATIS_FOUR);
}
if (!Constant.FILTEROUTSTATIS_SIX.equals(learning.getStepFourA())){
count ++;
map.put("stepFourA",Constant.FILTEROUTSTATIS_SIX);
}
if (!Constant.FILTEROUTSTATIS_SEVEN.equals(learning.getStepFourB())){
count ++;
map.put("stepFourB",Constant.FILTEROUTSTATIS_SEVEN);
}
if (!Constant.FILTEROUTSTATIS_EIGHT.equals(learning.getStepFourC())){
count ++;
map.put("stepFourC",Constant.FILTEROUTSTATIS_EIGHT);
}
if (!Constant.FILTEROUTSTATIS_EIGHT.equals(learning.getStepFourD())){
count ++;
map.put("stepFourD",Constant.FILTEROUTSTATIS_EIGHT);
}
if (!Constant.FILTEROUTSTATIS_NINE.equals(learning.getStepFiveA())){
count ++;
map.put("stepFiveA",Constant.FILTEROUTSTATIS_NINE);
}
Integer number = 9 - count;
//获取上一次得分
Integer sum = learning.getSuccessNumber() + number;
//拼接上一次错误字段
learning.getErrorField();
StuBehaviorProfilingDTO stuBehaviorProfilingDTO = StuBehaviorProfilingDTO.builder().map(map).count(sum).build();
return stuBehaviorProfilingDTO;
}
}

@ -84,6 +84,7 @@ public class UserBehaviorProfilingAnaServiceImpl implements UserBehaviorProfilin
StuMachineLearningExample machineLearningExample = new StuMachineLearningExample();
machineLearningExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module);
List<StuMachineLearning> machineLearningList = machineLearningMapper.selectByExample(machineLearningExample);
//查询是否有数据
if (machineLearningList.isEmpty())
{
return new ResultEntity<>(HttpStatus.OK);
@ -103,6 +104,8 @@ public class UserBehaviorProfilingAnaServiceImpl implements UserBehaviorProfilin
@Override
public ResultEntity restartByTraining(String module, String userId) {
//删除做题记录 第二次成绩是否有效?
StuMachineLearningExample machineLearningExample = new StuMachineLearningExample();
machineLearningExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module);
machineLearningMapper.deleteByExample(machineLearningExample);

@ -37,10 +37,28 @@
<result column="step_nine_a" jdbcType="VARCHAR" property="stepNineA" />
<result column="step_nine_b" jdbcType="VARCHAR" property="stepNineB" />
<result column="step_nine_c" jdbcType="VARCHAR" property="stepNineC" />
<result column="error_number" jdbcType="INTEGER" property="errorNumber" />
<result column="success_number" jdbcType="INTEGER" property="successNumber" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="sub_state" jdbcType="INTEGER" property="subState" />
<result column="module" jdbcType="VARCHAR" property="module" />
<result column="one_sub_state" jdbcType="INTEGER" property="oneSubState" />
<result column="two_sub_state" jdbcType="INTEGER" property="twoSubState" />
<result column="three_sub_state" jdbcType="INTEGER" property="threeSubState" />
<result column="four_sub_state" jdbcType="INTEGER" property="fourSubState" />
<result column="five_sub_state" jdbcType="INTEGER" property="fiveSubState" />
<result column="six_sub_state" jdbcType="INTEGER" property="sixSubState" />
<result column="seven_sub_state" jdbcType="INTEGER" property="sevenSubState" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="step_nine_d" jdbcType="VARCHAR" property="stepNineD" />
<result column="step_ten_a" jdbcType="VARCHAR" property="stepTenA" />
<result column="step_ten_b" jdbcType="VARCHAR" property="stepTenB" />
<result column="step_ten_c" jdbcType="VARCHAR" property="stepTenC" />
<result column="step_ten_d" jdbcType="VARCHAR" property="stepTenD" />
<result column="step_eleven_a" jdbcType="VARCHAR" property="stepElevenA" />
<result column="step_eleven_b" jdbcType="VARCHAR" property="stepElevenB" />
<result column="step_eleven_c" jdbcType="VARCHAR" property="stepElevenC" />
<result column="error_field" jdbcType="VARCHAR" property="errorField" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -106,7 +124,10 @@
step_four_c, step_four_d, step_five_a, step_five_b, step_five_c, step_five_d, step_six_a,
step_six_b, step_six_c, step_six_d, step_seven_a, step_seven_b, step_seven_c, step_seven_d,
step_eight_a, step_eight_b, step_eight_c, step_eight_d, step_nine_a, step_nine_b,
step_nine_c, error_number, user_id, sub_state, module
step_nine_c, success_number, user_id, sub_state, module, one_sub_state, two_sub_state,
three_sub_state, four_sub_state, five_sub_state, six_sub_state, seven_sub_state,
create_time, update_time, step_nine_d, step_ten_a, step_ten_b, step_ten_c, step_ten_d,
step_eleven_a, step_eleven_b, step_eleven_c, error_field
</sql>
<select id="selectByExample" parameterType="com.sztzjy.marketing.entity.StuMachineLearningExample" resultMap="BaseResultMap">
select
@ -150,8 +171,14 @@
step_seven_a, step_seven_b, step_seven_c,
step_seven_d, step_eight_a, step_eight_b,
step_eight_c, step_eight_d, step_nine_a,
step_nine_b, step_nine_c, error_number,
user_id, sub_state, module
step_nine_b, step_nine_c, success_number,
user_id, sub_state, module,
one_sub_state, two_sub_state, three_sub_state,
four_sub_state, five_sub_state, six_sub_state,
seven_sub_state, create_time, update_time,
step_nine_d, step_ten_a, step_ten_b,
step_ten_c, step_ten_d, step_eleven_a,
step_eleven_b, step_eleven_c, error_field
)
values (#{id,jdbcType=INTEGER}, #{stepOneA,jdbcType=VARCHAR}, #{stepOneB,jdbcType=VARCHAR},
#{stepOneC,jdbcType=VARCHAR}, #{stepOneD,jdbcType=VARCHAR}, #{stepTwoA,jdbcType=VARCHAR},
@ -164,8 +191,14 @@
#{stepSevenA,jdbcType=VARCHAR}, #{stepSevenB,jdbcType=VARCHAR}, #{stepSevenC,jdbcType=VARCHAR},
#{stepSevenD,jdbcType=VARCHAR}, #{stepEightA,jdbcType=VARCHAR}, #{stepEightB,jdbcType=VARCHAR},
#{stepEightC,jdbcType=VARCHAR}, #{stepEightD,jdbcType=VARCHAR}, #{stepNineA,jdbcType=VARCHAR},
#{stepNineB,jdbcType=VARCHAR}, #{stepNineC,jdbcType=VARCHAR}, #{errorNumber,jdbcType=INTEGER},
#{userId,jdbcType=VARCHAR}, #{subState,jdbcType=INTEGER}, #{module,jdbcType=VARCHAR}
#{stepNineB,jdbcType=VARCHAR}, #{stepNineC,jdbcType=VARCHAR}, #{successNumber,jdbcType=INTEGER},
#{userId,jdbcType=VARCHAR}, #{subState,jdbcType=INTEGER}, #{module,jdbcType=VARCHAR},
#{oneSubState,jdbcType=INTEGER}, #{twoSubState,jdbcType=INTEGER}, #{threeSubState,jdbcType=INTEGER},
#{fourSubState,jdbcType=INTEGER}, #{fiveSubState,jdbcType=INTEGER}, #{sixSubState,jdbcType=INTEGER},
#{sevenSubState,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},
#{stepNineD,jdbcType=VARCHAR}, #{stepTenA,jdbcType=VARCHAR}, #{stepTenB,jdbcType=VARCHAR},
#{stepTenC,jdbcType=VARCHAR}, #{stepTenD,jdbcType=VARCHAR}, #{stepElevenA,jdbcType=VARCHAR},
#{stepElevenB,jdbcType=VARCHAR}, #{stepElevenC,jdbcType=VARCHAR}, #{errorField,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.marketing.entity.StuMachineLearning">
@ -276,8 +309,8 @@
<if test="stepNineC != null">
step_nine_c,
</if>
<if test="errorNumber != null">
error_number,
<if test="successNumber != null">
success_number,
</if>
<if test="userId != null">
user_id,
@ -288,6 +321,60 @@
<if test="module != null">
module,
</if>
<if test="oneSubState != null">
one_sub_state,
</if>
<if test="twoSubState != null">
two_sub_state,
</if>
<if test="threeSubState != null">
three_sub_state,
</if>
<if test="fourSubState != null">
four_sub_state,
</if>
<if test="fiveSubState != null">
five_sub_state,
</if>
<if test="sixSubState != null">
six_sub_state,
</if>
<if test="sevenSubState != null">
seven_sub_state,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="stepNineD != null">
step_nine_d,
</if>
<if test="stepTenA != null">
step_ten_a,
</if>
<if test="stepTenB != null">
step_ten_b,
</if>
<if test="stepTenC != null">
step_ten_c,
</if>
<if test="stepTenD != null">
step_ten_d,
</if>
<if test="stepElevenA != null">
step_eleven_a,
</if>
<if test="stepElevenB != null">
step_eleven_b,
</if>
<if test="stepElevenC != null">
step_eleven_c,
</if>
<if test="errorField != null">
error_field,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -395,8 +482,8 @@
<if test="stepNineC != null">
#{stepNineC,jdbcType=VARCHAR},
</if>
<if test="errorNumber != null">
#{errorNumber,jdbcType=INTEGER},
<if test="successNumber != null">
#{successNumber,jdbcType=INTEGER},
</if>
<if test="userId != null">
#{userId,jdbcType=VARCHAR},
@ -407,6 +494,60 @@
<if test="module != null">
#{module,jdbcType=VARCHAR},
</if>
<if test="oneSubState != null">
#{oneSubState,jdbcType=INTEGER},
</if>
<if test="twoSubState != null">
#{twoSubState,jdbcType=INTEGER},
</if>
<if test="threeSubState != null">
#{threeSubState,jdbcType=INTEGER},
</if>
<if test="fourSubState != null">
#{fourSubState,jdbcType=INTEGER},
</if>
<if test="fiveSubState != null">
#{fiveSubState,jdbcType=INTEGER},
</if>
<if test="sixSubState != null">
#{sixSubState,jdbcType=INTEGER},
</if>
<if test="sevenSubState != null">
#{sevenSubState,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="stepNineD != null">
#{stepNineD,jdbcType=VARCHAR},
</if>
<if test="stepTenA != null">
#{stepTenA,jdbcType=VARCHAR},
</if>
<if test="stepTenB != null">
#{stepTenB,jdbcType=VARCHAR},
</if>
<if test="stepTenC != null">
#{stepTenC,jdbcType=VARCHAR},
</if>
<if test="stepTenD != null">
#{stepTenD,jdbcType=VARCHAR},
</if>
<if test="stepElevenA != null">
#{stepElevenA,jdbcType=VARCHAR},
</if>
<if test="stepElevenB != null">
#{stepElevenB,jdbcType=VARCHAR},
</if>
<if test="stepElevenC != null">
#{stepElevenC,jdbcType=VARCHAR},
</if>
<if test="errorField != null">
#{errorField,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.sztzjy.marketing.entity.StuMachineLearningExample" resultType="java.lang.Long">
@ -523,8 +664,8 @@
<if test="record.stepNineC != null">
step_nine_c = #{record.stepNineC,jdbcType=VARCHAR},
</if>
<if test="record.errorNumber != null">
error_number = #{record.errorNumber,jdbcType=INTEGER},
<if test="record.successNumber != null">
success_number = #{record.successNumber,jdbcType=INTEGER},
</if>
<if test="record.userId != null">
user_id = #{record.userId,jdbcType=VARCHAR},
@ -535,6 +676,60 @@
<if test="record.module != null">
module = #{record.module,jdbcType=VARCHAR},
</if>
<if test="record.oneSubState != null">
one_sub_state = #{record.oneSubState,jdbcType=INTEGER},
</if>
<if test="record.twoSubState != null">
two_sub_state = #{record.twoSubState,jdbcType=INTEGER},
</if>
<if test="record.threeSubState != null">
three_sub_state = #{record.threeSubState,jdbcType=INTEGER},
</if>
<if test="record.fourSubState != null">
four_sub_state = #{record.fourSubState,jdbcType=INTEGER},
</if>
<if test="record.fiveSubState != null">
five_sub_state = #{record.fiveSubState,jdbcType=INTEGER},
</if>
<if test="record.sixSubState != null">
six_sub_state = #{record.sixSubState,jdbcType=INTEGER},
</if>
<if test="record.sevenSubState != null">
seven_sub_state = #{record.sevenSubState,jdbcType=INTEGER},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=TIMESTAMP},
</if>
<if test="record.updateTime != null">
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
</if>
<if test="record.stepNineD != null">
step_nine_d = #{record.stepNineD,jdbcType=VARCHAR},
</if>
<if test="record.stepTenA != null">
step_ten_a = #{record.stepTenA,jdbcType=VARCHAR},
</if>
<if test="record.stepTenB != null">
step_ten_b = #{record.stepTenB,jdbcType=VARCHAR},
</if>
<if test="record.stepTenC != null">
step_ten_c = #{record.stepTenC,jdbcType=VARCHAR},
</if>
<if test="record.stepTenD != null">
step_ten_d = #{record.stepTenD,jdbcType=VARCHAR},
</if>
<if test="record.stepElevenA != null">
step_eleven_a = #{record.stepElevenA,jdbcType=VARCHAR},
</if>
<if test="record.stepElevenB != null">
step_eleven_b = #{record.stepElevenB,jdbcType=VARCHAR},
</if>
<if test="record.stepElevenC != null">
step_eleven_c = #{record.stepElevenC,jdbcType=VARCHAR},
</if>
<if test="record.errorField != null">
error_field = #{record.errorField,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -577,10 +772,28 @@
step_nine_a = #{record.stepNineA,jdbcType=VARCHAR},
step_nine_b = #{record.stepNineB,jdbcType=VARCHAR},
step_nine_c = #{record.stepNineC,jdbcType=VARCHAR},
error_number = #{record.errorNumber,jdbcType=INTEGER},
success_number = #{record.successNumber,jdbcType=INTEGER},
user_id = #{record.userId,jdbcType=VARCHAR},
sub_state = #{record.subState,jdbcType=INTEGER},
module = #{record.module,jdbcType=VARCHAR}
module = #{record.module,jdbcType=VARCHAR},
one_sub_state = #{record.oneSubState,jdbcType=INTEGER},
two_sub_state = #{record.twoSubState,jdbcType=INTEGER},
three_sub_state = #{record.threeSubState,jdbcType=INTEGER},
four_sub_state = #{record.fourSubState,jdbcType=INTEGER},
five_sub_state = #{record.fiveSubState,jdbcType=INTEGER},
six_sub_state = #{record.sixSubState,jdbcType=INTEGER},
seven_sub_state = #{record.sevenSubState,jdbcType=INTEGER},
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
step_nine_d = #{record.stepNineD,jdbcType=VARCHAR},
step_ten_a = #{record.stepTenA,jdbcType=VARCHAR},
step_ten_b = #{record.stepTenB,jdbcType=VARCHAR},
step_ten_c = #{record.stepTenC,jdbcType=VARCHAR},
step_ten_d = #{record.stepTenD,jdbcType=VARCHAR},
step_eleven_a = #{record.stepElevenA,jdbcType=VARCHAR},
step_eleven_b = #{record.stepElevenB,jdbcType=VARCHAR},
step_eleven_c = #{record.stepElevenC,jdbcType=VARCHAR},
error_field = #{record.errorField,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -690,8 +903,8 @@
<if test="stepNineC != null">
step_nine_c = #{stepNineC,jdbcType=VARCHAR},
</if>
<if test="errorNumber != null">
error_number = #{errorNumber,jdbcType=INTEGER},
<if test="successNumber != null">
success_number = #{successNumber,jdbcType=INTEGER},
</if>
<if test="userId != null">
user_id = #{userId,jdbcType=VARCHAR},
@ -702,6 +915,60 @@
<if test="module != null">
module = #{module,jdbcType=VARCHAR},
</if>
<if test="oneSubState != null">
one_sub_state = #{oneSubState,jdbcType=INTEGER},
</if>
<if test="twoSubState != null">
two_sub_state = #{twoSubState,jdbcType=INTEGER},
</if>
<if test="threeSubState != null">
three_sub_state = #{threeSubState,jdbcType=INTEGER},
</if>
<if test="fourSubState != null">
four_sub_state = #{fourSubState,jdbcType=INTEGER},
</if>
<if test="fiveSubState != null">
five_sub_state = #{fiveSubState,jdbcType=INTEGER},
</if>
<if test="sixSubState != null">
six_sub_state = #{sixSubState,jdbcType=INTEGER},
</if>
<if test="sevenSubState != null">
seven_sub_state = #{sevenSubState,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="stepNineD != null">
step_nine_d = #{stepNineD,jdbcType=VARCHAR},
</if>
<if test="stepTenA != null">
step_ten_a = #{stepTenA,jdbcType=VARCHAR},
</if>
<if test="stepTenB != null">
step_ten_b = #{stepTenB,jdbcType=VARCHAR},
</if>
<if test="stepTenC != null">
step_ten_c = #{stepTenC,jdbcType=VARCHAR},
</if>
<if test="stepTenD != null">
step_ten_d = #{stepTenD,jdbcType=VARCHAR},
</if>
<if test="stepElevenA != null">
step_eleven_a = #{stepElevenA,jdbcType=VARCHAR},
</if>
<if test="stepElevenB != null">
step_eleven_b = #{stepElevenB,jdbcType=VARCHAR},
</if>
<if test="stepElevenC != null">
step_eleven_c = #{stepElevenC,jdbcType=VARCHAR},
</if>
<if test="errorField != null">
error_field = #{errorField,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
@ -741,10 +1008,28 @@
step_nine_a = #{stepNineA,jdbcType=VARCHAR},
step_nine_b = #{stepNineB,jdbcType=VARCHAR},
step_nine_c = #{stepNineC,jdbcType=VARCHAR},
error_number = #{errorNumber,jdbcType=INTEGER},
success_number = #{successNumber,jdbcType=INTEGER},
user_id = #{userId,jdbcType=VARCHAR},
sub_state = #{subState,jdbcType=INTEGER},
module = #{module,jdbcType=VARCHAR}
module = #{module,jdbcType=VARCHAR},
one_sub_state = #{oneSubState,jdbcType=INTEGER},
two_sub_state = #{twoSubState,jdbcType=INTEGER},
three_sub_state = #{threeSubState,jdbcType=INTEGER},
four_sub_state = #{fourSubState,jdbcType=INTEGER},
five_sub_state = #{fiveSubState,jdbcType=INTEGER},
six_sub_state = #{sixSubState,jdbcType=INTEGER},
seven_sub_state = #{sevenSubState,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
step_nine_d = #{stepNineD,jdbcType=VARCHAR},
step_ten_a = #{stepTenA,jdbcType=VARCHAR},
step_ten_b = #{stepTenB,jdbcType=VARCHAR},
step_ten_c = #{stepTenC,jdbcType=VARCHAR},
step_ten_d = #{stepTenD,jdbcType=VARCHAR},
step_eleven_a = #{stepElevenA,jdbcType=VARCHAR},
step_eleven_b = #{stepElevenB,jdbcType=VARCHAR},
step_eleven_c = #{stepElevenC,jdbcType=VARCHAR},
error_field = #{errorField,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>
Loading…
Cancel
Save