From 5a42872af44012a768af82f7ad0d91018eb44ad9 Mon Sep 17 00:00:00 2001
From: whb <17803890193@163.com>
Date: Sun, 28 Apr 2024 16:19:17 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BC=81=E4=B8=9A?=
 =?UTF-8?q?=E5=BE=81=E4=BF=A1=E6=88=90=E7=BB=A9=E6=80=BB=E6=88=90=E7=BB=A9?=
 =?UTF-8?q?=E8=AE=A1=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/StuRateController.java         |   2 +
 .../controller/StuUserPortraitController.java |   3 +
 .../StuOperationAssetAnalysisModule.java      |   3 +-
 .../sztzjy/digital_credit/entity/StuUser.java |   2 +-
 .../digital_credit/mapper/StuUserMapper.java  |   6 +-
 .../service/StuRateService.java               |   3 +
 .../StuUserPortraitControllerService.java     |   7 +
 .../StuEnterPriseByInfoEntryServiceImpl.java  |  51 +-
 ...StuExperimentTrainByCreditServiceImpl.java |   7 +-
 .../StuFinancialEarlyWarningServiceImpl.java  |  17 +-
 .../service/impl/StuRateServiceImpl.java      | 142 +++-
 .../StuUserPortraitControllerServiceImpl.java |  24 +
 .../sztzjy/digital_credit/util/SealUtil.java  | 136 ++--
 .../StuOperationAssetAnalysisModuleMapper.xml |  22 +-
 src/main/resources/mappers/StuUserMapper.xml  | 716 ++++++++++++++++++
 15 files changed, 1037 insertions(+), 104 deletions(-)
 create mode 100644 src/main/resources/mappers/StuUserMapper.xml

diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuRateController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuRateController.java
index 6f69a6d..77a405c 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/StuRateController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuRateController.java
@@ -105,4 +105,6 @@ private StuRateService rateService;
 
 
 
+
+
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java
index 24ee449..075f704 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java
@@ -42,4 +42,7 @@ public class StuUserPortraitController {
 
 
 
+
+
+
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuOperationAssetAnalysisModule.java b/src/main/java/com/sztzjy/digital_credit/entity/StuOperationAssetAnalysisModule.java
index 8e6cd47..33b0e81 100644
--- a/src/main/java/com/sztzjy/digital_credit/entity/StuOperationAssetAnalysisModule.java
+++ b/src/main/java/com/sztzjy/digital_credit/entity/StuOperationAssetAnalysisModule.java
@@ -4,9 +4,10 @@ import java.util.Date;
 
 import io.swagger.annotations.ApiModelProperty;
 /**
+ * 企业营运资产分析模型
  *
  * @author whb
- * stu_operation_asset_analysis module
+ * stu_operation_asset_analysis_module
  */
 public class StuOperationAssetAnalysisModule {
     @ApiModelProperty("id")
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java b/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java
index 9f06793..0504c22 100644
--- a/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java
+++ b/src/main/java/com/sztzjy/digital_credit/entity/StuUser.java
@@ -5,7 +5,7 @@ import java.math.BigDecimal;
 import io.swagger.annotations.ApiModelProperty;
 /**
  *
- * @author tz
+ * @author whb
  * stu_user
  */
 public class StuUser {
diff --git a/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java b/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java
index 0fe4954..d53056d 100644
--- a/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java
+++ b/src/main/java/com/sztzjy/digital_credit/mapper/StuUserMapper.java
@@ -3,10 +3,8 @@ package com.sztzjy.digital_credit.mapper;
 import com.sztzjy.digital_credit.entity.StuUser;
 import com.sztzjy.digital_credit.entity.StuUserExample;
 import java.util.List;
-
-import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-@Mapper
+
 public interface StuUserMapper {
     long countByExample(StuUserExample example);
 
@@ -29,4 +27,6 @@ public interface StuUserMapper {
     int updateByPrimaryKeySelective(StuUser record);
 
     int updateByPrimaryKey(StuUser record);
+
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuRateService.java b/src/main/java/com/sztzjy/digital_credit/service/StuRateService.java
index 3e5af0d..23d1061 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/StuRateService.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/StuRateService.java
@@ -77,4 +77,7 @@ public interface StuRateService {
 
     //企业征信完成状态
     Boolean completionStatusOfEnterprise(String userId);
+
+
+    void enterScoreWriteUserByUserId(Object obj,String module,String userId);
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java b/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java
index 663c00a..ba7ff08 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java
@@ -17,5 +17,12 @@ public interface StuUserPortraitControllerService {
     ResultEntity userPortraitByModuleSave(StuUserPortrait userPortrait);
 
 
+    /**
+        * 用户画像提交状态
+        * @param userId
+        * @return
+    */
+
+    Boolean userPortraitSubState(String userId);
 
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java
index c2c5ac3..f431a2e 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java
@@ -19,6 +19,7 @@ import com.sztzjy.digital_credit.entity.*;
 import com.sztzjy.digital_credit.entity.dto.StuFinancialIndexDTO;
 import com.sztzjy.digital_credit.mapper.*;
 import com.sztzjy.digital_credit.service.StuEnterPriseByInfoEntryService;
+import com.sztzjy.digital_credit.service.StuRateService;
 import com.sztzjy.digital_credit.util.ConvertUtil;
 import com.sztzjy.digital_credit.util.MyExcelListener;
 import com.sztzjy.digital_credit.util.ResultEntity;
@@ -31,10 +32,13 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
+
+
 @Service
 public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoEntryService {
 
@@ -66,6 +70,12 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
     @Autowired
     private StuSolvencyMapper solvencyMapper;
 
+    @Autowired
+    private StuUserMapper userMapper;
+
+    @Autowired
+    private StuRateService stuRateService;
+
     /**
      * 基本信息查询
      * @param userId
@@ -184,8 +194,10 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             stuBaseInfo.setId(stuBaseInfoList.get(0).getId());
             stuBaseInfoMapper.updateByPrimaryKeySelective(stuBaseInfo);
 
-            return new ResultEntity<>(HttpStatus.OK,"保存成功!",stuBaseInfo.getErrorNumber());
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(stuBaseInfo,"基本信息",stuBaseInfo.getUserId());
 
+            return new ResultEntity<>(HttpStatus.OK,"保存成功!",stuBaseInfo.getErrorNumber());
 
         }else {
             //首次提交判断输入数据是否则正确
@@ -196,6 +208,7 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             //插入数据库
             stuBaseInfoMapper.insertSelective(stuBaseInfo);
 
+            stuRateService.enterScoreWriteUserByUserId(stuBaseInfo,"基本信息",stuBaseInfo.getUserId());
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",stuBaseInfo.getErrorNumber());
         }
@@ -298,6 +311,11 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
                 creditRecords.setId(stuCreditRecordsList.get(0).getId());
                 creditRecords.setUpdateTime(new Date());
                 creditRecordsMapper.updateByPrimaryKeySelective(creditRecords);
+
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(creditRecords,"信贷记录",creditRecords.getUserId());
+
+
                 return new ResultEntity<>(HttpStatus.OK,"保存成功!",creditRecords.getErrorNumber());
 
         }else {
@@ -308,6 +326,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             creditRecords.setId(IdUtil.simpleUUID());
             creditRecords.setCreateTime(new Date());
             creditRecordsMapper.insertSelective(creditRecords);
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(creditRecords,"信贷记录",creditRecords.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",creditRecords.getErrorNumber());
 
         }
@@ -468,6 +488,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             profitAbility =   FinancialProfitAbilityCheck(profitAbility);
             profitAbility.setId(profitAbilityList.get(0).getId());
             profitAbilityMapper.updateByPrimaryKeySelective(profitAbility);
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(profitAbility,"盈利能力",profitAbility.getUserId());
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",profitAbility.getErrorNumber());
 
@@ -479,7 +501,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
 
             //插入数据库
             profitAbilityMapper.insertSelective(profitAbility);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(profitAbility,"盈利能力",profitAbility.getUserId());
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",profitAbility.getErrorNumber());
         }
@@ -552,6 +575,10 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             solvency =   resultCheckByFinancialSolvency(solvency);
             solvency.setId(stuSolvencyList.get(0).getId());
             solvencyMapper.updateByPrimaryKeySelective(solvency);
+
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(solvency,"偿债能力",solvency.getUserId());
+
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",solvency.getErrorNumber());
 
         }else {
@@ -561,6 +588,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
 
 
             solvencyMapper.insertSelective(solvency);
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(solvency,"偿债能力",solvency.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",solvency.getErrorNumber());
 
         }
@@ -633,7 +662,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             operatingCapacity =  financialOperatingCapacityCheck(operatingCapacity);
             operatingCapacity.setId(operatingCapacityList.get(0).getId());
             operatingCapacityMapper.updateByPrimaryKeySelective(operatingCapacity);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(operatingCapacity,"营运能力",operatingCapacity.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",operatingCapacity.getErrorNumber());
 
 
@@ -644,7 +674,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
 
             //插入数据库
             operatingCapacityMapper.insertSelective(operatingCapacity);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(operatingCapacity,"营运能力",operatingCapacity.getUserId());
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",operatingCapacity.getErrorNumber());
         }
@@ -723,6 +754,9 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             growthAbility.setId(growthAbilityList.get(0).getId());
             growthAbilityMapper.updateByPrimaryKeySelective(growthAbility);
 
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(growthAbility,"成长能力",growthAbility.getUserId());
+
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",growthAbility.getErrorNumber());
 
 
@@ -732,7 +766,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
 
             //插入数据库
             growthAbilityMapper.insertSelective(growthAbility);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(growthAbility,"成长能力",growthAbility.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",growthAbility.getErrorNumber());
         }
     }
@@ -808,7 +843,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
             duPontAnalysis =  financialDuPontAnalysisCheck(duPontAnalysis);
             duPontAnalysis.setId(duPontAnalysisList.get(0).getId());
             duPontAnalysisMapper.updateByPrimaryKeySelective(duPontAnalysis);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(duPontAnalysis,"杜邦分析",duPontAnalysis.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",duPontAnalysis.getErrorNumber());
 
 
@@ -818,7 +854,8 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
 
             //插入数据库
             duPontAnalysisMapper.insertSelective(duPontAnalysis);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(duPontAnalysis,"杜邦分析",duPontAnalysis.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",duPontAnalysis.getErrorNumber());
         }
     }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java
index 8b3d436..45caf37 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java
@@ -38,6 +38,12 @@ public class StuExperimentTrainByCreditServiceImpl implements StuExperimentTrain
         List<StuMachineLearning> machineLearningList = machineLearningMapper.selectByExample(machineLearningExample);
 
         if (!machineLearningList.isEmpty()) {
+
+            if (machineLearningList.get(0).getSubState() == 1)
+            {
+                return new ResultEntity<>(HttpStatus.OK,"保存成功!");
+            }
+
                 //已经有数据
             StuMachineLearning machineLearning = machineLearningList.get(0);
 
@@ -59,7 +65,6 @@ public class StuExperimentTrainByCreditServiceImpl implements StuExperimentTrain
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!");
 
-
         }
 
     }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java
index df9ef7a..7a4baf8 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuFinancialEarlyWarningServiceImpl.java
@@ -10,6 +10,7 @@ import com.sztzjy.digital_credit.entity.*;
 import com.sztzjy.digital_credit.mapper.StuOperationAssetAnalysisModuleMapper;
 import com.sztzjy.digital_credit.mapper.StuScoreModuleMapper;
 import com.sztzjy.digital_credit.service.StuFinancialEarlyWarningService;
+import com.sztzjy.digital_credit.service.StuRateService;
 import com.sztzjy.digital_credit.util.ResultEntity;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +30,10 @@ public class StuFinancialEarlyWarningServiceImpl implements StuFinancialEarlyWar
     @Autowired
     private StuOperationAssetAnalysisModuleMapper operationAssetAnalysisModuleMapper;
 
+
+    @Autowired
+    private StuRateService stuRateService;
+
     /**
         * Z计分模型
         * @param userId
@@ -140,6 +145,10 @@ public class StuFinancialEarlyWarningServiceImpl implements StuFinancialEarlyWar
             scoreModule.setId(scoreModuleList.get(0).getId());
             scoreModuleMapper.updateByPrimaryKeySelective(scoreModule);
 
+
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(scoreModule,"Z计分模型",scoreModule.getUserId());
+
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",scoreModule.getErrorNumber());
 
 
@@ -151,6 +160,8 @@ public class StuFinancialEarlyWarningServiceImpl implements StuFinancialEarlyWar
 
             //插入数据库
             scoreModuleMapper.insertSelective(scoreModule);
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(scoreModule,"Z计分模型",scoreModule.getUserId());
 
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",scoreModule.getErrorNumber());
@@ -263,7 +274,8 @@ public class StuFinancialEarlyWarningServiceImpl implements StuFinancialEarlyWar
             analysisModule.setUpdateTime(new Date());
             analysisModule.setId(moduleList.get(0).getId());
             operationAssetAnalysisModuleMapper.updateByPrimaryKeySelective(analysisModule);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(analysisModule,"营运资产分析模型",analysisModule.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",analysisModule.getErrorNumber());
 
 
@@ -275,7 +287,8 @@ public class StuFinancialEarlyWarningServiceImpl implements StuFinancialEarlyWar
 
             //插入数据库
             operationAssetAnalysisModuleMapper.insertSelective(analysisModule);
-
+            //计算分数写入用户表
+            stuRateService.enterScoreWriteUserByUserId(analysisModule,"营运资产分析模型",analysisModule.getUserId());
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",analysisModule.getErrorNumber());
         }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java
index 3b5e5c1..5390d56 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java
@@ -3,6 +3,7 @@ package com.sztzjy.digital_credit.service.impl;/**
  * @date 2024-04-17 10:33
  */
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.IdUtil;
 import com.sztzjy.digital_credit.entity.*;
 import com.sztzjy.digital_credit.mapper.*;
@@ -14,9 +15,9 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.lang.reflect.Field;
+import java.math.BigDecimal;
+import java.util.*;
 
 @Service
 public class StuRateServiceImpl implements StuRateService {
@@ -61,6 +62,11 @@ public class StuRateServiceImpl implements StuRateService {
     @Autowired
     private StuSolvencyMapper  solvencyMapper;
 
+    @Autowired
+    StuUserMapper userMapper;
+
+
+
 
 
 
@@ -168,7 +174,8 @@ public class StuRateServiceImpl implements StuRateService {
             ratingModel.setUpdateTime(new Date());
             ratingModel.setId(stuRatingModelList.get(0).getId());
             ratingModelMapper.updateByPrimaryKeySelective(ratingModel);
-
+            //计算分数写入用户表
+           enterScoreWriteUserByUserId(ratingModel,"评级模型",ratingModel.getUserId());
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",ratingModel.getErrorNumber());
 
 
@@ -180,7 +187,8 @@ public class StuRateServiceImpl implements StuRateService {
 
             //插入数据库
             ratingModelMapper.insertSelective(ratingModel);
-
+            //计算分数写入用户表
+            enterScoreWriteUserByUserId(ratingModel,"评级模型",ratingModel.getUserId());
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功!",ratingModel.getErrorNumber());
         }
@@ -288,13 +296,13 @@ public class StuRateServiceImpl implements StuRateService {
                 }
 
                 //用户已经有了数据只能更新不能插入
-
                 //首次提交判断输入数据是否则正确
             ratingResult =   resultCheckByrateResult(ratingResult);
             ratingResult.setUpdateTime(new Date());
             ratingResult.setId(ratingResultList.get(0).getId());
             resultMapper.updateByPrimaryKeySelective(ratingResult);
-
+            //计算分数写入用户表
+            enterScoreWriteUserByUserId(ratingResult,"评级结果",ratingResult.getUserId());
                 return new ResultEntity<>(HttpStatus.OK,"保存成功!",ratingResult.getErrorNumber());
 
 
@@ -306,9 +314,10 @@ public class StuRateServiceImpl implements StuRateService {
 
                 //插入数据库
             resultMapper.insertSelective(ratingResult);
+            //计算分数写入用户表
+           enterScoreWriteUserByUserId(ratingResult,"评级结果",ratingResult.getUserId());
+            return new ResultEntity<>(HttpStatus.OK,"保存成功!",ratingResult.getErrorNumber());
 
-
-                return new ResultEntity<>(HttpStatus.OK,"保存成功!",ratingResult.getErrorNumber());
             }
 
     }
@@ -337,8 +346,8 @@ public class StuRateServiceImpl implements StuRateService {
 
             creditEnhanceMeasureList.get(0).setEnchancePlan(enhanceMeasure.getEnchancePlan());
 
-            //   智能评分
-            int scoreByAuto = enchancePlanAutoScore(enhanceMeasure.getEnchancePlan().length());
+            //   智能评分  //插入user表企业征信主观成绩数据
+            int scoreByAuto = enchancePlanAutoScore(enhanceMeasure.getEnchancePlan().length(),enhanceMeasure.getUserId(),enhanceMeasure.getModule());
 
             creditEnhanceMeasureList.get(0).setSysScore(scoreByAuto);
 
@@ -346,6 +355,7 @@ public class StuRateServiceImpl implements StuRateService {
 
             creditEnhanceMeasureList.get(0).setErrorNumber(20-scoreByAuto);
 
+
             creditEnhanceMeasureMapper.updateByPrimaryKeySelective(creditEnhanceMeasureList.get(0));
 
             return new ResultEntity<>(HttpStatus.OK,"保存成功",scoreByAuto);
@@ -357,7 +367,7 @@ public class StuRateServiceImpl implements StuRateService {
         int length = enhanceMeasure.getEnchancePlan().length();
 
         // TODO: 2024/4/17  智能评分
-        int scoreByAuto = enchancePlanAutoScore(length);
+        int scoreByAuto = enchancePlanAutoScore(length,enhanceMeasure.getUserId(),enhanceMeasure.getModule());
 
         enhanceMeasure.setSysScore(scoreByAuto);
 
@@ -609,12 +619,30 @@ public class StuRateServiceImpl implements StuRateService {
     }
 
     //增信措施自动评分
-    private int enchancePlanAutoScore(int length) {
+    private int enchancePlanAutoScore(int length,String userId,String module) {
 
         //50字以内5分,每多10个字多1分,上限20分
         int baseScore = 5;
         int additionalScore = (length > 50) ? (length - 50) / 10 : 0;
         int score = baseScore + additionalScore;
+        int min = Math.min(score, 20);
+
+        StuUserExample userExample = new StuUserExample();
+        userExample.createCriteria().andUserIdEqualTo(userId);
+        List<StuUser> stuUsers = userMapper.selectByExample(userExample);
+        if (!stuUsers.isEmpty()){
+            //将自动评分成绩写入对应成绩
+            if ("个人征信".equals(module)){
+                stuUsers.get(0).setCasePersonalCreditScore(BigDecimal.valueOf(min));
+            }
+            if ("企业征信".equals(module)){
+                stuUsers.get(0).setCaseCorporateCreditSubScore(BigDecimal.valueOf(min));
+            }
+
+            userMapper.updateByPrimaryKeySelective(stuUsers.get(0));
+        }
+
+
         return Math.min(score, 20); // 上限20分
     }
 
@@ -687,4 +715,92 @@ public class StuRateServiceImpl implements StuRateService {
     }
 
 
+
+    //企业征信将成绩写入用户表,计算总成绩
+    public  void enterScoreWriteUserByUserId(Object obj,String module,String userId) {
+
+
+        Class<?> aClass = obj.getClass();
+
+
+        try {
+            //判断提交状态是否为1
+            Field subState = aClass.getDeclaredField("subState");
+            subState.setAccessible(true);
+
+            Object state = subState.get(obj);
+            //不为1返回
+            if (!state.equals(1)){
+                return ;
+            }
+
+
+            // 获取错误次数的属性
+            Field field = aClass.getDeclaredField("errorNumber");
+            // 设置访问权限,允许访问私有属性
+            field.setAccessible(true);
+            //获取错误次数
+            Object errorCount = field.get(obj);
+
+
+            HashMap<String, Integer> map = new HashMap<>();
+            map.put("基本信息",24);
+            map.put("信贷记录",16);
+            map.put("盈利能力",7);
+            map.put("偿债能力",7);
+            map.put("营运能力",8);
+            map.put("成长能力",1);
+            map.put("杜邦分析",4);
+            map.put("Z计分模型",12);
+            map.put("营运资产分析模型",10);
+            map.put("评级模型",35);
+            map.put("评级结果",6);
+
+
+
+
+            Integer currentCount = map.get(module);
+
+            //获取正确得分
+            Integer info =  currentCount - Convert.toInt(errorCount);
+            if (info<= 0 )
+            {
+                info = 0;
+            }
+
+
+
+            StuUser user =  userMapper.selectByPrimaryKey(userId);
+            //获取用户企业征信客观成绩
+            BigDecimal caseCorporateCreditObjScore = user.getCaseCorporateCreditObjScore();
+            if (user.getCaseCorporateCreditObjScore() == null){
+                caseCorporateCreditObjScore   = BigDecimal.valueOf(0);
+            }
+
+            caseCorporateCreditObjScore =  caseCorporateCreditObjScore.add(BigDecimal.valueOf(info));
+            //赋值企业征信客观成绩
+            user.setCaseCorporateCreditObjScore(caseCorporateCreditObjScore);
+            //获取企业征信客观总成绩
+            BigDecimal caseCorporateCreditScore = user.getCaseCorporateCreditScore();
+            if (caseCorporateCreditScore == null){
+                caseCorporateCreditScore   = BigDecimal.valueOf(0);
+            }
+            //赋值企业征信客观总的成绩
+            user.setCaseCorporateCreditScore(caseCorporateCreditScore.add(BigDecimal.valueOf(info)));
+
+            userMapper.updateByPrimaryKeySelective(user);
+
+
+
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
+
+    }
+
+
+
+
+
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java
index 2f5354a..d8af9b1 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java
@@ -92,6 +92,30 @@ public class StuUserPortraitControllerServiceImpl implements StuUserPortraitCont
 
     }
 
+    /**
+        * 用户画像提交状态
+        * @param userId
+        * @return
+    */
+
+    @Override
+    public Boolean userPortraitSubState(String userId) {
+
+        StuUserPortraitExample portraitExample = new StuUserPortraitExample();
+        portraitExample.createCriteria().andUserIdEqualTo(userId);
+        List<StuUserPortrait> userPortraitList = userPortraitMapper.selectByExample(portraitExample);
+        if (!userPortraitList.isEmpty()) {
+            if (userPortraitList.size() == 7 )
+            {
+                return true;
+            }
+
+            return false;
+
+        }
+
+        return false;
+    }
 
 
     //将分数保存到用户表,如果重新实训将用户表数据删除
diff --git a/src/main/java/com/sztzjy/digital_credit/util/SealUtil.java b/src/main/java/com/sztzjy/digital_credit/util/SealUtil.java
index c6f8374..232c44f 100644
--- a/src/main/java/com/sztzjy/digital_credit/util/SealUtil.java
+++ b/src/main/java/com/sztzjy/digital_credit/util/SealUtil.java
@@ -1,65 +1,71 @@
-//package com.sztzjy.digital_credit.util;
-//
-//import cn.hutool.core.util.IdUtil;
-//import com.sztzjy.digital_credit.util.file.LocalFileUtil;
-//import com.sztzjy.digital_credit.util.seal.SealCircle;
-//import com.sztzjy.digital_credit.util.seal.SealFont;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.stereotype.Component;
-//
-//import javax.annotation.Resource;
-//import java.io.File;
-//
-///**
-// * @author 17803
-// * @date 2023-12-05 15:11
-// */
-//
-//@Component
-//public class SealUtil {
-//
-//    @Resource
-//    LocalFileUtil localFileUtil;
-//
-//    @Value("${file.path}")
-//    private String filePath;
-//
-//    public  String genertSealB(String name) throws Exception{
-//        String file = filePath+"/seal/";
-//        // 创建 File 对象
-//                File infoFile = new File(file);
-//                if (!infoFile.exists()) {
-//                    infoFile.mkdir();
-//                }
-//        String s = IdUtil.fastSimpleUUID();
-//        com.sztzjy.digital_credit.util.seal.SealUtil.builder()
-//                .size(200)
-//                .borderCircle(SealCircle.builder().line(4).width(95).height(95).build())
-//                .mainFont(SealFont.builder().text(name+"有限公司").size(22).space(30.0).margin(4).build())
-//                .centerFont(SealFont.builder().text("★").size(60).build())
-//                .titleFont(SealFont.builder().text("电子签章").size(16).space(8.0).margin(54).build())
-//                .build()
-//                .draw(filePath+"/seal/"+ s +".png");
-//        System.out.println(name+"公章已生成");
-//       return s;
-//    }
-//    public  String genertSealA(String name) throws Exception{
-//        String file = filePath+"/seal/";
-//        // 创建 File 对象
-//        File infoFile = new File(file);
-//        if (!infoFile.exists()) {
-//            infoFile.mkdir();
-//        }
-//        String s = IdUtil.fastSimpleUUID();
-//        com.sztzjy.digital_credit.util.seal.SealUtil.builder()
-//                .size(200)
-//                .borderCircle(SealCircle.builder().line(4).width(95).height(95).build())
-//                .mainFont(SealFont.builder().text(name).size(22).space(30.0).margin(4).build())
-//                .centerFont(SealFont.builder().text("★").size(60).build())
-//                .titleFont(SealFont.builder().text("电子签章").size(16).space(8.0).margin(54).build())
-//                .build()
-//                .draw(filePath+"/seal/"+ s +".png");
-//        System.out.println(name+"公章已生成");
-//        return s;
-//    }
-//}
+package com.sztzjy.digital_credit.util;
+
+import cn.hutool.core.util.IdUtil;
+
+import com.sztzjy.digital_credit.util.file.LocalFileUtil;
+import com.sztzjy.digital_credit.util.seal.SealCircle;
+import com.sztzjy.digital_credit.util.seal.SealFont;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.File;
+
+/**
+ * @author 17803
+ * @date 2023-12-05 15:11
+ */
+
+@Component
+public class SealUtil {
+
+    @Resource
+    LocalFileUtil localFileUtil;
+
+    @Value("${file.path}")
+    private String filePath;
+
+    public  String genertSealB(String name) throws Exception{
+        String file = filePath+"/seal/";
+        // 创建 File 对象
+                File infoFile = new File(file);
+                if (!infoFile.exists()) {
+                    infoFile.mkdir();
+                }
+        String s = IdUtil.fastSimpleUUID();
+        com.sztzjy.digital_credit.util.seal.SealUtil.builder()
+                .size(200)
+                .borderCircle(SealCircle.builder().line(4).width(95).height(95).build())
+                .mainFont(SealFont.builder().text(name+"有限公司").size(22).space(30.0).margin(4).build())
+                .centerFont(SealFont.builder().text("★").size(60).build())
+                .titleFont(SealFont.builder().text("电子签章").size(16).space(8.0).margin(54).build())
+                .build()
+                .draw(filePath+"/seal/"+ s +".png");
+        System.out.println(name+"公章已生成");
+       return s;
+    }
+    public  String genertSealA(String name) throws Exception{
+        String file = "D:/home/"+"seal/";
+        //String file = filePath+"/seal/";
+
+        // 创建 File 对象
+        File infoFile = new File(file);
+        if (!infoFile.exists()) {
+            infoFile.mkdir();
+        }
+        String s = IdUtil.fastSimpleUUID();
+        com.sztzjy.digital_credit.util.seal.SealUtil.builder()
+                .size(200)
+                .borderCircle(SealCircle.builder().line(4).width(95).height(95).build())
+                .mainFont(SealFont.builder().text(name).size(22).space(30.0).margin(4).build())
+                .centerFont(SealFont.builder().text("★").size(60).build())
+                .titleFont(SealFont.builder().text("电子签章").size(16).space(8.0).margin(54).build())
+                .build()
+                .draw(filePath+"/seal/"+ s +".png");
+        System.out.println(name+"公章已生成");
+        return s;
+    }
+
+
+
+}
diff --git a/src/main/resources/mappers/StuOperationAssetAnalysisModuleMapper.xml b/src/main/resources/mappers/StuOperationAssetAnalysisModuleMapper.xml
index 31fcc02..2e293d0 100644
--- a/src/main/resources/mappers/StuOperationAssetAnalysisModuleMapper.xml
+++ b/src/main/resources/mappers/StuOperationAssetAnalysisModuleMapper.xml
@@ -87,7 +87,7 @@
       distinct
     </if>
     <include refid="Base_Column_List" />
-    from "stu_operation_asset_analysis module"
+    from stu_operation_asset_analysis_module
     <if test="_parameter != null">
       <include refid="Example_Where_Clause" />
     </if>
@@ -98,21 +98,21 @@
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
     select 
     <include refid="Base_Column_List" />
-    from "stu_operation_asset_analysis module"
+    from stu_operation_asset_analysis_module
     where id = #{id,jdbcType=VARCHAR}
   </select>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
-    delete from "stu_operation_asset_analysis module"
+    delete from stu_operation_asset_analysis_module
     where id = #{id,jdbcType=VARCHAR}
   </delete>
   <delete id="deleteByExample" parameterType="com.sztzjy.digital_credit.entity.StuOperationAssetAnalysisModuleExample">
-    delete from "stu_operation_asset_analysis module"
+    delete from stu_operation_asset_analysis_module
     <if test="_parameter != null">
       <include refid="Example_Where_Clause" />
     </if>
   </delete>
   <insert id="insert" parameterType="com.sztzjy.digital_credit.entity.StuOperationAssetAnalysisModule">
-    insert into "stu_operation_asset_analysis module" (id, operat_asset, work_capital, 
+    insert into stu_operation_asset_analysis_module (id, operat_asset, work_capital, 
       current_ratio, quick_ratio, short_term_debt_to_equity_ratio, 
       equity_ratio, evaluation_value, credit_limit, 
       error_number, sub_state, state, 
@@ -126,7 +126,7 @@
       )
   </insert>
   <insert id="insertSelective" parameterType="com.sztzjy.digital_credit.entity.StuOperationAssetAnalysisModule">
-    insert into "stu_operation_asset_analysis module"
+    insert into stu_operation_asset_analysis_module
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
@@ -223,13 +223,13 @@
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.sztzjy.digital_credit.entity.StuOperationAssetAnalysisModuleExample" resultType="java.lang.Long">
-    select count(*) from "stu_operation_asset_analysis module"
+    select count(*) from stu_operation_asset_analysis_module
     <if test="_parameter != null">
       <include refid="Example_Where_Clause" />
     </if>
   </select>
   <update id="updateByExampleSelective" parameterType="map">
-    update "stu_operation_asset_analysis module"
+    update stu_operation_asset_analysis_module
     <set>
       <if test="record.id != null">
         id = #{record.id,jdbcType=VARCHAR},
@@ -282,7 +282,7 @@
     </if>
   </update>
   <update id="updateByExample" parameterType="map">
-    update "stu_operation_asset_analysis module"
+    update stu_operation_asset_analysis_module
     set id = #{record.id,jdbcType=VARCHAR},
       operat_asset = #{record.operatAsset,jdbcType=VARCHAR},
       work_capital = #{record.workCapital,jdbcType=VARCHAR},
@@ -303,7 +303,7 @@
     </if>
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.digital_credit.entity.StuOperationAssetAnalysisModule">
-    update "stu_operation_asset_analysis module"
+    update stu_operation_asset_analysis_module
     <set>
       <if test="operatAsset != null">
         operat_asset = #{operatAsset,jdbcType=VARCHAR},
@@ -351,7 +351,7 @@
     where id = #{id,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.sztzjy.digital_credit.entity.StuOperationAssetAnalysisModule">
-    update "stu_operation_asset_analysis module"
+    update stu_operation_asset_analysis_module
     set operat_asset = #{operatAsset,jdbcType=VARCHAR},
       work_capital = #{workCapital,jdbcType=VARCHAR},
       current_ratio = #{currentRatio,jdbcType=VARCHAR},
diff --git a/src/main/resources/mappers/StuUserMapper.xml b/src/main/resources/mappers/StuUserMapper.xml
new file mode 100644
index 0000000..55b80fd
--- /dev/null
+++ b/src/main/resources/mappers/StuUserMapper.xml
@@ -0,0 +1,716 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sztzjy.digital_credit.mapper.StuUserMapper">
+  <resultMap id="BaseResultMap" type="com.sztzjy.digital_credit.entity.StuUser">
+    <id column="user_id" jdbcType="VARCHAR" property="userId" />
+    <result column="student_id" jdbcType="VARCHAR" property="studentId" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="password" jdbcType="VARCHAR" property="password" />
+    <result column="role_id" jdbcType="INTEGER" property="roleId" />
+    <result column="class_id" jdbcType="VARCHAR" property="classId" />
+    <result column="class_name" jdbcType="VARCHAR" property="className" />
+    <result column="major" jdbcType="VARCHAR" property="major" />
+    <result column="school_id" jdbcType="VARCHAR" property="schoolId" />
+    <result column="school_name" jdbcType="VARCHAR" property="schoolName" />
+    <result column="loan_cases_score" jdbcType="DECIMAL" property="loanCasesScore" />
+    <result column="per_situation_score" jdbcType="DECIMAL" property="perSituationScore" />
+    <result column="repayment_behavior_score" jdbcType="DECIMAL" property="repaymentBehaviorScore" />
+    <result column="per_influence_factor_score" jdbcType="DECIMAL" property="perInfluenceFactorScore" />
+    <result column="per_credit_optimization_socre" jdbcType="DECIMAL" property="perCreditOptimizationSocre" />
+    <result column="per_credit_rating_socre" jdbcType="DECIMAL" property="perCreditRatingSocre" />
+    <result column="ent_influence_factor_socre" jdbcType="DECIMAL" property="entInfluenceFactorSocre" />
+    <result column="ent_credit_optimization_socre" jdbcType="DECIMAL" property="entCreditOptimizationSocre" />
+    <result column="ent_credit_rating_socre" jdbcType="DECIMAL" property="entCreditRatingSocre" />
+    <result column="case_user_profile_socre" jdbcType="DECIMAL" property="caseUserProfileSocre" />
+    <result column="case_personal_credit_score" jdbcType="DECIMAL" property="casePersonalCreditScore" />
+    <result column="case_corporate_credit_score" jdbcType="DECIMAL" property="caseCorporateCreditScore" />
+    <result column="case_corporate_credit_sub_score" jdbcType="DECIMAL" property="caseCorporateCreditSubScore" />
+    <result column="case_corporate_credit_obj_score" jdbcType="DECIMAL" property="caseCorporateCreditObjScore" />
+    <result column="case_personal_credit_sub_score" jdbcType="DECIMAL" property="casePersonalCreditSubScore" />
+    <result column="case_personal_credit_obj_score" jdbcType="DECIMAL" property="casePersonalCreditObjScore" />
+    <result column="credit_portrait_score" jdbcType="DECIMAL" property="creditPortraitScore" />
+    <result column="credit_portrait_rank" jdbcType="INTEGER" property="creditPortraitRank" />
+    <result column="personal_credit_score" jdbcType="DECIMAL" property="personalCreditScore" />
+    <result column="personal_credit_rank" jdbcType="INTEGER" property="personalCreditRank" />
+    <result column="corporate_credit_score" jdbcType="DECIMAL" property="corporateCreditScore" />
+    <result column="corporate_credit_rank" jdbcType="INTEGER" property="corporateCreditRank" />
+    <result column="comprehensive_case_score" jdbcType="DECIMAL" property="comprehensiveCaseScore" />
+    <result column="comprehensive_case_rank" jdbcType="INTEGER" property="comprehensiveCaseRank" />
+    <result column="total_rank" jdbcType="INTEGER" property="totalRank" />
+    <result column="total_score" jdbcType="DECIMAL" property="totalScore" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    user_id, student_id, name, password, role_id, class_id, class_name, major, school_id, 
+    school_name, loan_cases_score, per_situation_score, repayment_behavior_score, per_influence_factor_score, 
+    per_credit_optimization_socre, per_credit_rating_socre, ent_influence_factor_socre, 
+    ent_credit_optimization_socre, ent_credit_rating_socre, case_user_profile_socre, 
+    case_personal_credit_score, case_corporate_credit_score, case_corporate_credit_sub_score, 
+    case_corporate_credit_obj_score, case_personal_credit_sub_score, case_personal_credit_obj_score, 
+    credit_portrait_score, credit_portrait_rank, personal_credit_score, personal_credit_rank, 
+    corporate_credit_score, corporate_credit_rank, comprehensive_case_score, comprehensive_case_rank, 
+    total_rank, total_score
+  </sql>
+  <select id="selectByExample" parameterType="com.sztzjy.digital_credit.entity.StuUserExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from stu_user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from stu_user
+    where user_id = #{userId,jdbcType=VARCHAR}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from stu_user
+    where user_id = #{userId,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.sztzjy.digital_credit.entity.StuUserExample">
+    delete from stu_user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.sztzjy.digital_credit.entity.StuUser">
+    insert into stu_user (user_id, student_id, name, 
+      password, role_id, class_id, 
+      class_name, major, school_id, 
+      school_name, loan_cases_score, per_situation_score, 
+      repayment_behavior_score, per_influence_factor_score, 
+      per_credit_optimization_socre, per_credit_rating_socre, 
+      ent_influence_factor_socre, ent_credit_optimization_socre, 
+      ent_credit_rating_socre, case_user_profile_socre, 
+      case_personal_credit_score, case_corporate_credit_score, 
+      case_corporate_credit_sub_score, case_corporate_credit_obj_score, 
+      case_personal_credit_sub_score, case_personal_credit_obj_score, 
+      credit_portrait_score, credit_portrait_rank, 
+      personal_credit_score, personal_credit_rank, 
+      corporate_credit_score, corporate_credit_rank, 
+      comprehensive_case_score, comprehensive_case_rank, 
+      total_rank, total_score)
+    values (#{userId,jdbcType=VARCHAR}, #{studentId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, 
+      #{password,jdbcType=VARCHAR}, #{roleId,jdbcType=INTEGER}, #{classId,jdbcType=VARCHAR}, 
+      #{className,jdbcType=VARCHAR}, #{major,jdbcType=VARCHAR}, #{schoolId,jdbcType=VARCHAR}, 
+      #{schoolName,jdbcType=VARCHAR}, #{loanCasesScore,jdbcType=DECIMAL}, #{perSituationScore,jdbcType=DECIMAL}, 
+      #{repaymentBehaviorScore,jdbcType=DECIMAL}, #{perInfluenceFactorScore,jdbcType=DECIMAL}, 
+      #{perCreditOptimizationSocre,jdbcType=DECIMAL}, #{perCreditRatingSocre,jdbcType=DECIMAL}, 
+      #{entInfluenceFactorSocre,jdbcType=DECIMAL}, #{entCreditOptimizationSocre,jdbcType=DECIMAL}, 
+      #{entCreditRatingSocre,jdbcType=DECIMAL}, #{caseUserProfileSocre,jdbcType=DECIMAL}, 
+      #{casePersonalCreditScore,jdbcType=DECIMAL}, #{caseCorporateCreditScore,jdbcType=DECIMAL}, 
+      #{caseCorporateCreditSubScore,jdbcType=DECIMAL}, #{caseCorporateCreditObjScore,jdbcType=DECIMAL}, 
+      #{casePersonalCreditSubScore,jdbcType=DECIMAL}, #{casePersonalCreditObjScore,jdbcType=DECIMAL}, 
+      #{creditPortraitScore,jdbcType=DECIMAL}, #{creditPortraitRank,jdbcType=INTEGER}, 
+      #{personalCreditScore,jdbcType=DECIMAL}, #{personalCreditRank,jdbcType=INTEGER}, 
+      #{corporateCreditScore,jdbcType=DECIMAL}, #{corporateCreditRank,jdbcType=INTEGER}, 
+      #{comprehensiveCaseScore,jdbcType=DECIMAL}, #{comprehensiveCaseRank,jdbcType=INTEGER}, 
+      #{totalRank,jdbcType=INTEGER}, #{totalScore,jdbcType=DECIMAL})
+  </insert>
+  <insert id="insertSelective" parameterType="com.sztzjy.digital_credit.entity.StuUser">
+    insert into stu_user
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="userId != null">
+        user_id,
+      </if>
+      <if test="studentId != null">
+        student_id,
+      </if>
+      <if test="name != null">
+        name,
+      </if>
+      <if test="password != null">
+        password,
+      </if>
+      <if test="roleId != null">
+        role_id,
+      </if>
+      <if test="classId != null">
+        class_id,
+      </if>
+      <if test="className != null">
+        class_name,
+      </if>
+      <if test="major != null">
+        major,
+      </if>
+      <if test="schoolId != null">
+        school_id,
+      </if>
+      <if test="schoolName != null">
+        school_name,
+      </if>
+      <if test="loanCasesScore != null">
+        loan_cases_score,
+      </if>
+      <if test="perSituationScore != null">
+        per_situation_score,
+      </if>
+      <if test="repaymentBehaviorScore != null">
+        repayment_behavior_score,
+      </if>
+      <if test="perInfluenceFactorScore != null">
+        per_influence_factor_score,
+      </if>
+      <if test="perCreditOptimizationSocre != null">
+        per_credit_optimization_socre,
+      </if>
+      <if test="perCreditRatingSocre != null">
+        per_credit_rating_socre,
+      </if>
+      <if test="entInfluenceFactorSocre != null">
+        ent_influence_factor_socre,
+      </if>
+      <if test="entCreditOptimizationSocre != null">
+        ent_credit_optimization_socre,
+      </if>
+      <if test="entCreditRatingSocre != null">
+        ent_credit_rating_socre,
+      </if>
+      <if test="caseUserProfileSocre != null">
+        case_user_profile_socre,
+      </if>
+      <if test="casePersonalCreditScore != null">
+        case_personal_credit_score,
+      </if>
+      <if test="caseCorporateCreditScore != null">
+        case_corporate_credit_score,
+      </if>
+      <if test="caseCorporateCreditSubScore != null">
+        case_corporate_credit_sub_score,
+      </if>
+      <if test="caseCorporateCreditObjScore != null">
+        case_corporate_credit_obj_score,
+      </if>
+      <if test="casePersonalCreditSubScore != null">
+        case_personal_credit_sub_score,
+      </if>
+      <if test="casePersonalCreditObjScore != null">
+        case_personal_credit_obj_score,
+      </if>
+      <if test="creditPortraitScore != null">
+        credit_portrait_score,
+      </if>
+      <if test="creditPortraitRank != null">
+        credit_portrait_rank,
+      </if>
+      <if test="personalCreditScore != null">
+        personal_credit_score,
+      </if>
+      <if test="personalCreditRank != null">
+        personal_credit_rank,
+      </if>
+      <if test="corporateCreditScore != null">
+        corporate_credit_score,
+      </if>
+      <if test="corporateCreditRank != null">
+        corporate_credit_rank,
+      </if>
+      <if test="comprehensiveCaseScore != null">
+        comprehensive_case_score,
+      </if>
+      <if test="comprehensiveCaseRank != null">
+        comprehensive_case_rank,
+      </if>
+      <if test="totalRank != null">
+        total_rank,
+      </if>
+      <if test="totalScore != null">
+        total_score,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="userId != null">
+        #{userId,jdbcType=VARCHAR},
+      </if>
+      <if test="studentId != null">
+        #{studentId,jdbcType=VARCHAR},
+      </if>
+      <if test="name != null">
+        #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="password != null">
+        #{password,jdbcType=VARCHAR},
+      </if>
+      <if test="roleId != null">
+        #{roleId,jdbcType=INTEGER},
+      </if>
+      <if test="classId != null">
+        #{classId,jdbcType=VARCHAR},
+      </if>
+      <if test="className != null">
+        #{className,jdbcType=VARCHAR},
+      </if>
+      <if test="major != null">
+        #{major,jdbcType=VARCHAR},
+      </if>
+      <if test="schoolId != null">
+        #{schoolId,jdbcType=VARCHAR},
+      </if>
+      <if test="schoolName != null">
+        #{schoolName,jdbcType=VARCHAR},
+      </if>
+      <if test="loanCasesScore != null">
+        #{loanCasesScore,jdbcType=DECIMAL},
+      </if>
+      <if test="perSituationScore != null">
+        #{perSituationScore,jdbcType=DECIMAL},
+      </if>
+      <if test="repaymentBehaviorScore != null">
+        #{repaymentBehaviorScore,jdbcType=DECIMAL},
+      </if>
+      <if test="perInfluenceFactorScore != null">
+        #{perInfluenceFactorScore,jdbcType=DECIMAL},
+      </if>
+      <if test="perCreditOptimizationSocre != null">
+        #{perCreditOptimizationSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="perCreditRatingSocre != null">
+        #{perCreditRatingSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="entInfluenceFactorSocre != null">
+        #{entInfluenceFactorSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="entCreditOptimizationSocre != null">
+        #{entCreditOptimizationSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="entCreditRatingSocre != null">
+        #{entCreditRatingSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="caseUserProfileSocre != null">
+        #{caseUserProfileSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="casePersonalCreditScore != null">
+        #{casePersonalCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="caseCorporateCreditScore != null">
+        #{caseCorporateCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="caseCorporateCreditSubScore != null">
+        #{caseCorporateCreditSubScore,jdbcType=DECIMAL},
+      </if>
+      <if test="caseCorporateCreditObjScore != null">
+        #{caseCorporateCreditObjScore,jdbcType=DECIMAL},
+      </if>
+      <if test="casePersonalCreditSubScore != null">
+        #{casePersonalCreditSubScore,jdbcType=DECIMAL},
+      </if>
+      <if test="casePersonalCreditObjScore != null">
+        #{casePersonalCreditObjScore,jdbcType=DECIMAL},
+      </if>
+      <if test="creditPortraitScore != null">
+        #{creditPortraitScore,jdbcType=DECIMAL},
+      </if>
+      <if test="creditPortraitRank != null">
+        #{creditPortraitRank,jdbcType=INTEGER},
+      </if>
+      <if test="personalCreditScore != null">
+        #{personalCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="personalCreditRank != null">
+        #{personalCreditRank,jdbcType=INTEGER},
+      </if>
+      <if test="corporateCreditScore != null">
+        #{corporateCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="corporateCreditRank != null">
+        #{corporateCreditRank,jdbcType=INTEGER},
+      </if>
+      <if test="comprehensiveCaseScore != null">
+        #{comprehensiveCaseScore,jdbcType=DECIMAL},
+      </if>
+      <if test="comprehensiveCaseRank != null">
+        #{comprehensiveCaseRank,jdbcType=INTEGER},
+      </if>
+      <if test="totalRank != null">
+        #{totalRank,jdbcType=INTEGER},
+      </if>
+      <if test="totalScore != null">
+        #{totalScore,jdbcType=DECIMAL},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.sztzjy.digital_credit.entity.StuUserExample" resultType="java.lang.Long">
+    select count(*) from stu_user
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+
+    <update id="updateByExampleSelective" parameterType="map">
+    update stu_user
+    <set>
+      <if test="record.userId != null">
+        user_id = #{record.userId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.studentId != null">
+        student_id = #{record.studentId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.name != null">
+        name = #{record.name,jdbcType=VARCHAR},
+      </if>
+      <if test="record.password != null">
+        password = #{record.password,jdbcType=VARCHAR},
+      </if>
+      <if test="record.roleId != null">
+        role_id = #{record.roleId,jdbcType=INTEGER},
+      </if>
+      <if test="record.classId != null">
+        class_id = #{record.classId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.className != null">
+        class_name = #{record.className,jdbcType=VARCHAR},
+      </if>
+      <if test="record.major != null">
+        major = #{record.major,jdbcType=VARCHAR},
+      </if>
+      <if test="record.schoolId != null">
+        school_id = #{record.schoolId,jdbcType=VARCHAR},
+      </if>
+      <if test="record.schoolName != null">
+        school_name = #{record.schoolName,jdbcType=VARCHAR},
+      </if>
+      <if test="record.loanCasesScore != null">
+        loan_cases_score = #{record.loanCasesScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.perSituationScore != null">
+        per_situation_score = #{record.perSituationScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.repaymentBehaviorScore != null">
+        repayment_behavior_score = #{record.repaymentBehaviorScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.perInfluenceFactorScore != null">
+        per_influence_factor_score = #{record.perInfluenceFactorScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.perCreditOptimizationSocre != null">
+        per_credit_optimization_socre = #{record.perCreditOptimizationSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="record.perCreditRatingSocre != null">
+        per_credit_rating_socre = #{record.perCreditRatingSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="record.entInfluenceFactorSocre != null">
+        ent_influence_factor_socre = #{record.entInfluenceFactorSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="record.entCreditOptimizationSocre != null">
+        ent_credit_optimization_socre = #{record.entCreditOptimizationSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="record.entCreditRatingSocre != null">
+        ent_credit_rating_socre = #{record.entCreditRatingSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="record.caseUserProfileSocre != null">
+        case_user_profile_socre = #{record.caseUserProfileSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="record.casePersonalCreditScore != null">
+        case_personal_credit_score = #{record.casePersonalCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.caseCorporateCreditScore != null">
+        case_corporate_credit_score = #{record.caseCorporateCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.caseCorporateCreditSubScore != null">
+        case_corporate_credit_sub_score = #{record.caseCorporateCreditSubScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.caseCorporateCreditObjScore != null">
+        case_corporate_credit_obj_score = #{record.caseCorporateCreditObjScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.casePersonalCreditSubScore != null">
+        case_personal_credit_sub_score = #{record.casePersonalCreditSubScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.casePersonalCreditObjScore != null">
+        case_personal_credit_obj_score = #{record.casePersonalCreditObjScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.creditPortraitScore != null">
+        credit_portrait_score = #{record.creditPortraitScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.creditPortraitRank != null">
+        credit_portrait_rank = #{record.creditPortraitRank,jdbcType=INTEGER},
+      </if>
+      <if test="record.personalCreditScore != null">
+        personal_credit_score = #{record.personalCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.personalCreditRank != null">
+        personal_credit_rank = #{record.personalCreditRank,jdbcType=INTEGER},
+      </if>
+      <if test="record.corporateCreditScore != null">
+        corporate_credit_score = #{record.corporateCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.corporateCreditRank != null">
+        corporate_credit_rank = #{record.corporateCreditRank,jdbcType=INTEGER},
+      </if>
+      <if test="record.comprehensiveCaseScore != null">
+        comprehensive_case_score = #{record.comprehensiveCaseScore,jdbcType=DECIMAL},
+      </if>
+      <if test="record.comprehensiveCaseRank != null">
+        comprehensive_case_rank = #{record.comprehensiveCaseRank,jdbcType=INTEGER},
+      </if>
+      <if test="record.totalRank != null">
+        total_rank = #{record.totalRank,jdbcType=INTEGER},
+      </if>
+      <if test="record.totalScore != null">
+        total_score = #{record.totalScore,jdbcType=DECIMAL},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update stu_user
+    set user_id = #{record.userId,jdbcType=VARCHAR},
+      student_id = #{record.studentId,jdbcType=VARCHAR},
+      name = #{record.name,jdbcType=VARCHAR},
+      password = #{record.password,jdbcType=VARCHAR},
+      role_id = #{record.roleId,jdbcType=INTEGER},
+      class_id = #{record.classId,jdbcType=VARCHAR},
+      class_name = #{record.className,jdbcType=VARCHAR},
+      major = #{record.major,jdbcType=VARCHAR},
+      school_id = #{record.schoolId,jdbcType=VARCHAR},
+      school_name = #{record.schoolName,jdbcType=VARCHAR},
+      loan_cases_score = #{record.loanCasesScore,jdbcType=DECIMAL},
+      per_situation_score = #{record.perSituationScore,jdbcType=DECIMAL},
+      repayment_behavior_score = #{record.repaymentBehaviorScore,jdbcType=DECIMAL},
+      per_influence_factor_score = #{record.perInfluenceFactorScore,jdbcType=DECIMAL},
+      per_credit_optimization_socre = #{record.perCreditOptimizationSocre,jdbcType=DECIMAL},
+      per_credit_rating_socre = #{record.perCreditRatingSocre,jdbcType=DECIMAL},
+      ent_influence_factor_socre = #{record.entInfluenceFactorSocre,jdbcType=DECIMAL},
+      ent_credit_optimization_socre = #{record.entCreditOptimizationSocre,jdbcType=DECIMAL},
+      ent_credit_rating_socre = #{record.entCreditRatingSocre,jdbcType=DECIMAL},
+      case_user_profile_socre = #{record.caseUserProfileSocre,jdbcType=DECIMAL},
+      case_personal_credit_score = #{record.casePersonalCreditScore,jdbcType=DECIMAL},
+      case_corporate_credit_score = #{record.caseCorporateCreditScore,jdbcType=DECIMAL},
+      case_corporate_credit_sub_score = #{record.caseCorporateCreditSubScore,jdbcType=DECIMAL},
+      case_corporate_credit_obj_score = #{record.caseCorporateCreditObjScore,jdbcType=DECIMAL},
+      case_personal_credit_sub_score = #{record.casePersonalCreditSubScore,jdbcType=DECIMAL},
+      case_personal_credit_obj_score = #{record.casePersonalCreditObjScore,jdbcType=DECIMAL},
+      credit_portrait_score = #{record.creditPortraitScore,jdbcType=DECIMAL},
+      credit_portrait_rank = #{record.creditPortraitRank,jdbcType=INTEGER},
+      personal_credit_score = #{record.personalCreditScore,jdbcType=DECIMAL},
+      personal_credit_rank = #{record.personalCreditRank,jdbcType=INTEGER},
+      corporate_credit_score = #{record.corporateCreditScore,jdbcType=DECIMAL},
+      corporate_credit_rank = #{record.corporateCreditRank,jdbcType=INTEGER},
+      comprehensive_case_score = #{record.comprehensiveCaseScore,jdbcType=DECIMAL},
+      comprehensive_case_rank = #{record.comprehensiveCaseRank,jdbcType=INTEGER},
+      total_rank = #{record.totalRank,jdbcType=INTEGER},
+      total_score = #{record.totalScore,jdbcType=DECIMAL}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.digital_credit.entity.StuUser">
+    update stu_user
+    <set>
+      <if test="studentId != null">
+        student_id = #{studentId,jdbcType=VARCHAR},
+      </if>
+      <if test="name != null">
+        name = #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="password != null">
+        password = #{password,jdbcType=VARCHAR},
+      </if>
+      <if test="roleId != null">
+        role_id = #{roleId,jdbcType=INTEGER},
+      </if>
+      <if test="classId != null">
+        class_id = #{classId,jdbcType=VARCHAR},
+      </if>
+      <if test="className != null">
+        class_name = #{className,jdbcType=VARCHAR},
+      </if>
+      <if test="major != null">
+        major = #{major,jdbcType=VARCHAR},
+      </if>
+      <if test="schoolId != null">
+        school_id = #{schoolId,jdbcType=VARCHAR},
+      </if>
+      <if test="schoolName != null">
+        school_name = #{schoolName,jdbcType=VARCHAR},
+      </if>
+      <if test="loanCasesScore != null">
+        loan_cases_score = #{loanCasesScore,jdbcType=DECIMAL},
+      </if>
+      <if test="perSituationScore != null">
+        per_situation_score = #{perSituationScore,jdbcType=DECIMAL},
+      </if>
+      <if test="repaymentBehaviorScore != null">
+        repayment_behavior_score = #{repaymentBehaviorScore,jdbcType=DECIMAL},
+      </if>
+      <if test="perInfluenceFactorScore != null">
+        per_influence_factor_score = #{perInfluenceFactorScore,jdbcType=DECIMAL},
+      </if>
+      <if test="perCreditOptimizationSocre != null">
+        per_credit_optimization_socre = #{perCreditOptimizationSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="perCreditRatingSocre != null">
+        per_credit_rating_socre = #{perCreditRatingSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="entInfluenceFactorSocre != null">
+        ent_influence_factor_socre = #{entInfluenceFactorSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="entCreditOptimizationSocre != null">
+        ent_credit_optimization_socre = #{entCreditOptimizationSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="entCreditRatingSocre != null">
+        ent_credit_rating_socre = #{entCreditRatingSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="caseUserProfileSocre != null">
+        case_user_profile_socre = #{caseUserProfileSocre,jdbcType=DECIMAL},
+      </if>
+      <if test="casePersonalCreditScore != null">
+        case_personal_credit_score = #{casePersonalCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="caseCorporateCreditScore != null">
+        case_corporate_credit_score = #{caseCorporateCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="caseCorporateCreditSubScore != null">
+        case_corporate_credit_sub_score = #{caseCorporateCreditSubScore,jdbcType=DECIMAL},
+      </if>
+      <if test="caseCorporateCreditObjScore != null">
+        case_corporate_credit_obj_score = #{caseCorporateCreditObjScore,jdbcType=DECIMAL},
+      </if>
+      <if test="casePersonalCreditSubScore != null">
+        case_personal_credit_sub_score = #{casePersonalCreditSubScore,jdbcType=DECIMAL},
+      </if>
+      <if test="casePersonalCreditObjScore != null">
+        case_personal_credit_obj_score = #{casePersonalCreditObjScore,jdbcType=DECIMAL},
+      </if>
+      <if test="creditPortraitScore != null">
+        credit_portrait_score = #{creditPortraitScore,jdbcType=DECIMAL},
+      </if>
+      <if test="creditPortraitRank != null">
+        credit_portrait_rank = #{creditPortraitRank,jdbcType=INTEGER},
+      </if>
+      <if test="personalCreditScore != null">
+        personal_credit_score = #{personalCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="personalCreditRank != null">
+        personal_credit_rank = #{personalCreditRank,jdbcType=INTEGER},
+      </if>
+      <if test="corporateCreditScore != null">
+        corporate_credit_score = #{corporateCreditScore,jdbcType=DECIMAL},
+      </if>
+      <if test="corporateCreditRank != null">
+        corporate_credit_rank = #{corporateCreditRank,jdbcType=INTEGER},
+      </if>
+      <if test="comprehensiveCaseScore != null">
+        comprehensive_case_score = #{comprehensiveCaseScore,jdbcType=DECIMAL},
+      </if>
+      <if test="comprehensiveCaseRank != null">
+        comprehensive_case_rank = #{comprehensiveCaseRank,jdbcType=INTEGER},
+      </if>
+      <if test="totalRank != null">
+        total_rank = #{totalRank,jdbcType=INTEGER},
+      </if>
+      <if test="totalScore != null">
+        total_score = #{totalScore,jdbcType=DECIMAL},
+      </if>
+    </set>
+    where user_id = #{userId,jdbcType=VARCHAR}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.sztzjy.digital_credit.entity.StuUser">
+    update stu_user
+    set student_id = #{studentId,jdbcType=VARCHAR},
+      name = #{name,jdbcType=VARCHAR},
+      password = #{password,jdbcType=VARCHAR},
+      role_id = #{roleId,jdbcType=INTEGER},
+      class_id = #{classId,jdbcType=VARCHAR},
+      class_name = #{className,jdbcType=VARCHAR},
+      major = #{major,jdbcType=VARCHAR},
+      school_id = #{schoolId,jdbcType=VARCHAR},
+      school_name = #{schoolName,jdbcType=VARCHAR},
+      loan_cases_score = #{loanCasesScore,jdbcType=DECIMAL},
+      per_situation_score = #{perSituationScore,jdbcType=DECIMAL},
+      repayment_behavior_score = #{repaymentBehaviorScore,jdbcType=DECIMAL},
+      per_influence_factor_score = #{perInfluenceFactorScore,jdbcType=DECIMAL},
+      per_credit_optimization_socre = #{perCreditOptimizationSocre,jdbcType=DECIMAL},
+      per_credit_rating_socre = #{perCreditRatingSocre,jdbcType=DECIMAL},
+      ent_influence_factor_socre = #{entInfluenceFactorSocre,jdbcType=DECIMAL},
+      ent_credit_optimization_socre = #{entCreditOptimizationSocre,jdbcType=DECIMAL},
+      ent_credit_rating_socre = #{entCreditRatingSocre,jdbcType=DECIMAL},
+      case_user_profile_socre = #{caseUserProfileSocre,jdbcType=DECIMAL},
+      case_personal_credit_score = #{casePersonalCreditScore,jdbcType=DECIMAL},
+      case_corporate_credit_score = #{caseCorporateCreditScore,jdbcType=DECIMAL},
+      case_corporate_credit_sub_score = #{caseCorporateCreditSubScore,jdbcType=DECIMAL},
+      case_corporate_credit_obj_score = #{caseCorporateCreditObjScore,jdbcType=DECIMAL},
+      case_personal_credit_sub_score = #{casePersonalCreditSubScore,jdbcType=DECIMAL},
+      case_personal_credit_obj_score = #{casePersonalCreditObjScore,jdbcType=DECIMAL},
+      credit_portrait_score = #{creditPortraitScore,jdbcType=DECIMAL},
+      credit_portrait_rank = #{creditPortraitRank,jdbcType=INTEGER},
+      personal_credit_score = #{personalCreditScore,jdbcType=DECIMAL},
+      personal_credit_rank = #{personalCreditRank,jdbcType=INTEGER},
+      corporate_credit_score = #{corporateCreditScore,jdbcType=DECIMAL},
+      corporate_credit_rank = #{corporateCreditRank,jdbcType=INTEGER},
+      comprehensive_case_score = #{comprehensiveCaseScore,jdbcType=DECIMAL},
+      comprehensive_case_rank = #{comprehensiveCaseRank,jdbcType=INTEGER},
+      total_rank = #{totalRank,jdbcType=INTEGER},
+      total_score = #{totalScore,jdbcType=DECIMAL}
+    where user_id = #{userId,jdbcType=VARCHAR}
+  </update>
+
+
+
+</mapper>
\ No newline at end of file

From 4d93232ee0a03502ec4ceb4202af317d3d47348b Mon Sep 17 00:00:00 2001
From: whb <17803890193@163.com>
Date: Mon, 29 Apr 2024 10:54:22 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E5=AE=8C=E6=88=90=E8=B4=9F=E5=80=BA?=
 =?UTF-8?q?=E4=BF=A1=E6=81=AF,=E5=AF=B9=E5=A4=96=E6=8B=85=E4=BF=9D,?=
 =?UTF-8?q?=E7=BA=B3=E7=A8=8E=E6=83=85=E5=86=B5,=E5=8F=82=E4=BF=9D?=
 =?UTF-8?q?=E6=83=85=E5=86=B5=E5=AE=9E=E9=AA=8C=E5=AE=9E=E8=AE=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../StuExperimentTrainByCreditController.java | 53 +++++++++++++++++--
 1 file changed, 49 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java
index 386f01c..96398cf 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java
@@ -4,15 +4,24 @@ import com.sztzjy.digital_credit.annotation.AnonymousAccess;
 import com.sztzjy.digital_credit.entity.StuMachineLearning;
 import com.sztzjy.digital_credit.service.StuExperimentTrainByCreditService;
 import com.sztzjy.digital_credit.util.ResultEntity;
+import com.sztzjy.digital_credit.util.file.IFileUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 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;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotBlank;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.List;
 
 /**
  * @author 17803
@@ -30,6 +39,13 @@ public class StuExperimentTrainByCreditController {
     private StuExperimentTrainByCreditService experimentTrainByCreditService;
 
 
+
+    @Value("${file.path}")
+    private String filePath;
+
+    @Resource
+    IFileUtil iFileUtil;
+
     @ApiOperation("前端校验数据(自动保存接口)")
     @AnonymousAccess
     @PostMapping("/trainByPublicSave")
@@ -41,10 +57,39 @@ public class StuExperimentTrainByCreditController {
 
 
 
+    @ApiOperation("查看统一功能")
+    @GetMapping("/preAllView")
+    @AnonymousAccess
+    public ResponseEntity<byte[]> preViewByContract(
+            @RequestParam(required = true,name = "name")@NotBlank @ApiParam("文件类型名如:负债信息概要/参保信息样板") String name) throws IOException {
+
+
+        HashMap<String, String> map = new HashMap<>();
+        map.put("负债信息概要","/credit/**");
+        map.put("参保信息样板","/credit/**");
+
+
+        String fileUrl = map.get(name);
+
+        // 模拟加载公章图片的数据(假设在硬盘上的某个路径下)
+            String imagePath = filePath + fileUrl;
+            // 替换为你的实际路径
+            byte[] sealBytes = Files.readAllBytes(Paths.get(imagePath));
 
+            // 构建HTTP响应,设置Content-Type为image/png
+            return ResponseEntity.ok().contentType(MediaType.IMAGE_PNG).body(sealBytes);
 
+        }
 
 
 
+//    担保协议书
+
+    @PostMapping("/downloadDoc")
+    @AnonymousAccess
+    @ApiOperation("下载担保协议书")
+    public void download(HttpServletResponse response){
+        iFileUtil.download(response,"/credit/**");
+    }
 
 }