master
shijie 4 years ago
parent 9c84f0e1d4
commit dbb7c5bcfb
  1. 31
      .gitignore
  2. 310
      mvnw
  3. 182
      mvnw.cmd
  4. 95
      pom.xml
  5. 15
      src/main/java/com/yipin/liuwanr/ProjectMaagementApplication.java
  6. 13
      src/main/java/com/yipin/liuwanr/ServletInitializer.java
  7. 27
      src/main/java/com/yipin/liuwanr/config/CORSConfig.java
  8. 45
      src/main/java/com/yipin/liuwanr/config/SwaggerConfig.java
  9. 344
      src/main/java/com/yipin/liuwanr/controller/Project_ManagementController.java
  10. 93
      src/main/java/com/yipin/liuwanr/entity/Judgment_Points.java
  11. 35
      src/main/java/com/yipin/liuwanr/entity/ManagementAndPointVo.java
  12. 31
      src/main/java/com/yipin/liuwanr/entity/PageResult.java
  13. 185
      src/main/java/com/yipin/liuwanr/entity/Project_Management.java
  14. 34
      src/main/java/com/yipin/liuwanr/entity/Response.java
  15. 56
      src/main/java/com/yipin/liuwanr/entity/Role.java
  16. 79
      src/main/java/com/yipin/liuwanr/entity/ScoreIndex.java
  17. 38
      src/main/java/com/yipin/liuwanr/helper/UserUtil.java
  18. 240
      src/main/java/com/yipin/liuwanr/mapper/Project_ManagementMapper.java
  19. 63
      src/main/java/com/yipin/liuwanr/mapper/ScoreIndexMapper.java
  20. 612
      src/main/java/com/yipin/liuwanr/service/Project_ManagementService.java
  21. 8
      src/main/resources/application.properties
  22. 0
      src/main/resources/application.yml

31
.gitignore vendored

@ -0,0 +1,31 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/

310
mvnw vendored

@ -0,0 +1,310 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

182
mvnw.cmd vendored

@ -0,0 +1,182 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.pdxm</groupId>
<artifactId>project_maagement-1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>project_maagement-1</name>
<description>我的第一个springboot程序</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
</dependencies>
<build>
<finalName>Projectmanagement</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,15 @@
package com.yipin.liuwanr;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(basePackages = {"com.yipin.liuwanr.mapper"})
public class ProjectMaagementApplication {
public static void main(String[] args) {
SpringApplication.run(ProjectMaagementApplication.class, args);
}
}

@ -0,0 +1,13 @@
package com.yipin.liuwanr;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ProjectMaagementApplication.class);
}
}

@ -0,0 +1,27 @@
package com.yipin.liuwanr.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @Description 跨域配置
* @Date 2019/2/27 13:31
**/
@Configuration
public class CORSConfig {
@Bean
public WebMvcConfigurer corsConfigurer(){
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedHeaders("*")
.allowedMethods("*")
.allowedOrigins("*");
}
};
}
}

@ -0,0 +1,45 @@
package com.yipin.liuwanr.config;
import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()//添加ApiOperiation注解的被扫描
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("项目管理").description("项目管理模块")
.version("1.0").build();
}
/*public ApiInfo createApi(){
return new ApiInfoBuilder().title("项目管理").
description("项目管理").
contact(new Contact("龚世杰","http://projestmgs.com","projestmgs@qq.com")).build();
}
@Bean //等价于 <bean>标签
public Docket createDoc(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(createApi()).select().
apis(RequestHandlerSelectors.basePackage("com.yipin.liuwanr.controller")).build();
}*/
}

@ -0,0 +1,344 @@
package com.yipin.liuwanr.controller;
import java.util.HashMap;
import java.util.List;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.yipin.liuwanr.entity.Judgment_Points;
import com.yipin.liuwanr.entity.ManagementAndPointVo;
import com.yipin.liuwanr.entity.Project_Management;
import com.yipin.liuwanr.entity.Response;
import com.yipin.liuwanr.entity.Role;
import com.yipin.liuwanr.service.Project_ManagementService;
@Api(value = "项目管理", tags = "项目管理相关方法")
@RestController
@RequestMapping("/ProjectManagement")
@CrossOrigin
public class Project_ManagementController {
@Autowired
private Project_ManagementService service;
/**
* 查询用户角色
* @param userId
* @return
*/
@ApiOperation(value = "查询角色", notes = "查询角色")
@GetMapping("/queryRole")
Response queryRole(Integer userId) {
Response resp = new Response();
HashMap<String, Object> ret = service.queryRole(userId);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 首页面查询
* @param projectPermissions:权限
* @param founder:创建人
* @param state:状态
* @param projectName:项目名称
* @param systemId
* @return
*/
@GetMapping("/queryAllManagements")
Response queryAllManagements(@RequestParam Integer projectPermissions,@RequestParam Integer founder,@RequestParam Integer state,@RequestParam String projectName,
@RequestParam Integer systemId,@RequestParam Integer userId,@RequestParam Integer pageNo,@RequestParam Integer pageSize){
Response resp = new Response();
Project_Management vo=new Project_Management();
if(null!=projectPermissions) {
vo.setProjectPermissions(projectPermissions);
}if(null!=founder) {
vo.setFounder(founder);
}if(null!=state) {
vo.setState(state);
}if(null!=systemId) {
vo.setSystemId(systemId);
}if(null!=projectName&&projectName!="") {
vo.setProjectName(projectName);
}if(null!=userId) {
vo.setUserId(userId);
}
HashMap<String, Object> ret = service.queryAllManagements(vo,pageNo,pageSize);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 批量删除
* @param point 项目id集合
* @return
*/
@PostMapping("/removeProjectManagement")
Response removeProjectManagement(@RequestBody List<Integer> point) {
Response resp = new Response();
HashMap<String, Object> ret = service.deleteProjectManagement(point);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 根据项目管理id查询对应信息
* @param projectId
* @return
*/
@GetMapping("/getProjectId")
Response getProjectId(Integer projectId) {
Response resp = new Response();
HashMap<String, Object> ret = service.getProjectId(projectId);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 添加点面板的数据展示+条件筛选
* @param judgmentPointsName 判分点名称
* @return
*/
@GetMapping("/queryAllJudgmentPoints")
Response queryAllJudgmentPoints(@RequestParam String judgmentPointsName,@RequestParam Integer systemId) {
Response resp = new Response();
Judgment_Points points=new Judgment_Points();
if(StringUtils.isEmpty(systemId)) {
resp.setStatus(300);
resp.setMessage("systemId cannot be empty");
}else {
if(!StringUtils.isEmpty(judgmentPointsName)) {
points.setJudgmentPointsName(judgmentPointsName);
}
points.setSystemId(systemId);
HashMap<String, Object> ret = service.queryAllJudgmentPoints(points);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
}
return resp;
}
/**
* 实验任务表格信息的展示根据判分点id和项目
* @param judgmentPointsIds 判分点id
* @return
*/
@GetMapping("/getByjudgmentPointsId")
Response getByjudgmentPointsId(@RequestParam List<Integer> judgmentPointsIds,Integer projectId,Integer userId) {
Response resp = new Response();
HashMap<String, Object> ret = service.getByjudgmentPointsId(judgmentPointsIds,projectId,userId);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 平均分配分值
* @param number 判分点数量
* @return
*/
@GetMapping("/avgValues")
Response avgValues(Integer number) {
Response resp = new Response();
HashMap<String, Object> ret = service.avgValues(number);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 添加角色
* @param role 角色
* @return
*/
@PostMapping("/addRole")
Response addRole(@RequestBody Role role) {
Response resp = new Response();
HashMap<String, Object> ret = service.insertRole(role);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 实验数据表格信息的展示根据角色id
* @param roleId 角色Id
* @return
*/
@GetMapping("/getByRoleId")
Response getByRoleId(@RequestParam List<Integer> roleId) {
Response resp = new Response();
HashMap<String, Object> ret = service.getByRoleId(roleId);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 开启/关闭实验数据
*/
/*@ApiOperation(value = "开启/关闭实验数据", notes = "开启/关闭实验数据")
@PostMapping("/startexperimentalSwitch")
Response startexperimentalSwitch(@RequestParam Integer isStartexperimental) {
}*/
/**
* 添加创建项目管理信息
* @param vo 项目管理信息
* @return
*/
@ApiOperation(value = "新增项目管理信息", notes = "新增项目管理信息")
@PostMapping("/addProjectManagement")
Response insertProjectManagement(@RequestBody ManagementAndPointVo vo) {
Response resp = new Response();
Project_Management pro = vo.getManagement();
List<Judgment_Points> points=vo.getPooints();
List<Integer> roles = vo.getRoleId();
if(StringUtils.isEmpty(pro)) {
resp.setStatus(300);
resp.setMessage("management cannot be empty");
return resp;
}
if(points.isEmpty()||points.size()<=0) {
resp.setStatus(300);
resp.setMessage("pooints cannot be empty");
return resp;
}
if (pro.getIsstartexperimental()==0){//开启实验数据
if(roles.isEmpty()||roles.size()<=0) {
resp.setStatus(300);
resp.setMessage("roleId cannot be empty");
return resp;
}
}
HashMap<String, Object> ret = service.insertProjectManagement(pro,points,roles);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
/**
* 修改项目管理信息
* @param vo
* @return
*/
@PostMapping("/updateProjectManagement")
Response updateProjectManagement(@RequestBody ManagementAndPointVo vo) {
Response resp = new Response();
Project_Management pro = vo.getManagement();
List<Judgment_Points> points=vo.getPooints();
List<Integer> roles = vo.getRoleId();
if(StringUtils.isEmpty(pro)) {
resp.setStatus(300);
resp.setMessage("management cannot be empty");
return resp;
}
if(points.isEmpty()||points.size()<=0) {
resp.setStatus(300);
resp.setMessage("pooints cannot be empty");
return resp;
}
if(roles.isEmpty()||roles.size()<=0) {
resp.setStatus(300);
resp.setMessage("roleId cannot be empty");
return resp;
}
HashMap<String, Object> ret = service.updateProjectManagement(pro,points,roles);
int status = (int) ret.get("retcode");
if (status == 200) {
resp.setStatus(status);
resp.setMessage(ret.get("retvalue"));
} else {
resp.setStatus(status);
resp.setErrmessage(ret.get("retvalue").toString());
}
return resp;
}
}

@ -0,0 +1,93 @@
package com.yipin.liuwanr.entity;
/**
* 判分表
*/
public class Judgment_Points {
private Integer judgmentPointsId;// 判分点主键Id
private String judgmentPointsName;// 判分点名称
private String experimentalRequirements;//实验要求
private String projectId;//绑定项目管理Id
private Integer judgmentPointsType;// 判分点类型(1、编程类 2、交易类 3、工具类 4、业务类)
private Integer isdel;// 是否删除(0、未删除 1、已删除)
private Integer systemId;
private Integer userId;
private Integer score;//判分点指标的分数
public Integer getSystemId() {
return systemId;
}
public void setSystemId(Integer systemId) {
this.systemId = systemId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public Integer getJudgmentPointsId() {
return judgmentPointsId;
}
public void setJudgmentPointsId(Integer judgmentPointsId) {
this.judgmentPointsId = judgmentPointsId;
}
public String getJudgmentPointsName() {
return judgmentPointsName;
}
public void setJudgmentPointsName(String judgmentPointsName) {
this.judgmentPointsName = judgmentPointsName;
}
public String getExperimentalRequirements() {
return experimentalRequirements;
}
public void setExperimentalRequirements(String experimentalRequirements) {
this.experimentalRequirements = experimentalRequirements;
}
public String getProjectId() {
return projectId;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public Integer getJudgmentPointsType() {
return judgmentPointsType;
}
public void setJudgmentPointsType(Integer judgmentPointsType) {
this.judgmentPointsType = judgmentPointsType;
}
public Integer getIsdel() {
return isdel;
}
public void setIsdel(Integer isdel) {
this.isdel = isdel;
}
}

@ -0,0 +1,35 @@
package com.yipin.liuwanr.entity;
import java.util.List;
public class ManagementAndPointVo {
private Project_Management management;//项目管理
private List<Judgment_Points> pooints;//判分点信息
private List<Integer> roleId;//存储角色id
public Project_Management getManagement() {
return management;
}
public void setManagement(Project_Management management) {
this.management = management;
}
public List<Judgment_Points> getPooints() {
return pooints;
}
public void setPooints(List<Judgment_Points> pooints) {
this.pooints = pooints;
}
public List<Integer> getRoleId() {
return roleId;
}
public void setRoleId(List<Integer> roleId) {
this.roleId = roleId;
}
}

@ -0,0 +1,31 @@
package com.yipin.liuwanr.entity;
import java.io.Serializable;
import java.util.List;
public class PageResult implements Serializable{
//总记录数
private Long total;
//总记录
private List<?> rows;
public PageResult(Long total, List<?> rows) {
this.total = total;
this.rows = rows;
}
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
public List<?> getRows() {
return rows;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
}

@ -0,0 +1,185 @@
package com.yipin.liuwanr.entity;
/**
* 项目管理
*
* @author 86151
*
*/
public class Project_Management {
private Integer projectId;// 项目主键ID
private String projectName;// 项目名称
private Integer projectPermissions;// 项目权限(0、练习 1、考核 2、竞赛)
private Integer founder;// 创建人(0、系统 1、老师)
private String creationTime;// 创建时间
private Integer state;// 状态(0、草稿箱 1、已发布)
private String experimentalGoal;// 实验目标
private String caseDescription; // 案例描述
private String experimentTask;// 实验任务
private String experimentalDataId;// 绑定实验数据ID
private String experimentSuggests; // 实验提示
private Integer systemId;// 绑定服务配置ID
private Integer isdel;
private Integer isShow;
private Integer isstartexperimental;//是否启用实验数据(0启用 1不启用)
private Integer isstartexperimentSuggests;
private Integer isExperiment;
private Integer isAttendance;
private Integer userId;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getIsstartexperimental() {
return isstartexperimental;
}
public void setIsstartexperimental(Integer isstartexperimental) {
this.isstartexperimental = isstartexperimental;
}
public Integer getIsstartexperimentSuggests() {
return isstartexperimentSuggests;
}
public void setIsstartexperimentSuggests(Integer isstartexperimentSuggests) {
this.isstartexperimentSuggests = isstartexperimentSuggests;
}
public Integer getProjectId() {
return projectId;
}
public void setProjectId(Integer projectId) {
this.projectId = projectId;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public Integer getProjectPermissions() {
return projectPermissions;
}
public void setProjectPermissions(Integer projectPermissions) {
this.projectPermissions = projectPermissions;
}
public Integer getFounder() {
return founder;
}
public void setFounder(Integer founder) {
this.founder = founder;
}
public String getCreationTime() {
return creationTime;
}
public void setCreationTime(String creationTime) {
this.creationTime = creationTime;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
public String getExperimentalGoal() {
return experimentalGoal;
}
public void setExperimentalGoal(String experimentalGoal) {
this.experimentalGoal = experimentalGoal;
}
public String getCaseDescription() {
return caseDescription;
}
public void setCaseDescription(String caseDescription) {
this.caseDescription = caseDescription;
}
public String getExperimentTask() {
return experimentTask;
}
public void setExperimentTask(String experimentTask) {
this.experimentTask = experimentTask;
}
public Integer getIsdel() {
return isdel;
}
public void setIsdel(Integer isdel) {
this.isdel = isdel;
}
public Integer getIsShow() {
return isShow;
}
public void setIsShow(Integer isShow) {
this.isShow = isShow;
}
public String getExperimentalDataId() {
return experimentalDataId;
}
public void setExperimentalDataId(String experimentalDataId) {
this.experimentalDataId = experimentalDataId;
}
public String getExperimentSuggests() {
return experimentSuggests;
}
public void setExperimentSuggests(String experimentSuggests) {
this.experimentSuggests = experimentSuggests;
}
public Integer getSystemId() {
return systemId;
}
public void setSystemId(Integer systemId) {
this.systemId = systemId;
}
public Integer getIsExperiment() {
return isExperiment;
}
public void setIsExperiment(Integer isExperiment) {
this.isExperiment = isExperiment;
}
public Integer getIsAttendance() {
return isAttendance;
}
public void setIsAttendance(Integer isAttendance) {
this.isAttendance = isAttendance;
}
}

@ -0,0 +1,34 @@
package com.yipin.liuwanr.entity;
public class Response {
private int status = 200;
private Object message;
private String errmessage;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Object getMessage() {
return message;
}
public void setMessage(Object message) {
this.message = message;
}
public String getErrmessage() {
return errmessage;
}
public void setErrmessage(String errmessage) {
this.errmessage = errmessage;
}
}

@ -0,0 +1,56 @@
package com.yipin.liuwanr.entity;
/**
* 角色表
* @author 86151
*
*/
public class Role {
private Integer roleId;// 角色ID
private String roleName;// 角色名称
private Integer roleNumber;// 角色数量
private Integer roleType;// 角色类型
private Integer roleAttribute;// 角色属性
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Integer getRoleNumber() {
return roleNumber;
}
public void setRoleNumber(Integer roleNumber) {
this.roleNumber = roleNumber;
}
public Integer getRoleType() {
return roleType;
}
public void setRoleType(Integer roleType) {
this.roleType = roleType;
}
public Integer getRoleAttribute() {
return roleAttribute;
}
public void setRoleAttribute(Integer roleAttribute) {
this.roleAttribute = roleAttribute;
}
}

@ -0,0 +1,79 @@
package com.yipin.liuwanr.entity;
/**
* 判分指标
*
* @author 或然
*
*/
public class ScoreIndex {
private Integer scoreindexId;//判分点指标id
private Integer score;//分数
private Integer judgmentPointsId;//判分点id
private Integer projectId;//项目id
private Integer isdel;//是否删除
private Integer userId;
public ScoreIndex( Integer score, Integer judgmentPointsId, Integer projectId,Integer userId) {
super();
this.score = score;
this.judgmentPointsId = judgmentPointsId;
this.projectId = projectId;
this.userId = userId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public ScoreIndex() {
super();
}
public Integer getProjectId() {
return projectId;
}
public void setProjectId(Integer projectId) {
this.projectId = projectId;
}
public Integer getIsdel() {
return isdel;
}
public void setIsdel(Integer isdel) {
this.isdel = isdel;
}
public Integer getScoreindexId() {
return scoreindexId;
}
public void setScoreindexId(Integer scoreindexId) {
this.scoreindexId = scoreindexId;
}
public Integer getScore() {
return score;
}
public void setScore(Integer score) {
this.score = score;
}
public Integer getJudgmentPointsId() {
return judgmentPointsId;
}
public void setJudgmentPointsId(Integer judgmentPointsId) {
this.judgmentPointsId = judgmentPointsId;
}
}

@ -0,0 +1,38 @@
package com.yipin.liuwanr.helper;
import java.util.ArrayList;
import java.util.List;
public class UserUtil {
/**
* 平均分配分值
* @param number 判分点数量
* @return
*/
public static List<Integer> averageValue(Integer number) {
Integer score=100/number;
Integer lastScore=score+100%number;
List<Integer> list=new ArrayList<Integer>();
for (int i = 0; i < number-1; i++) {
list.add(score);
}
list.add(lastScore);
return list;
}
/**
* 将string类型转成list集合
* @param str
* @return
*/
public static List<Integer> strToInteger(String str){
String[] strs = str.split(",");
List<Integer> list=new ArrayList<Integer>();
for (int i = 0; i < strs.length; i++) {
list.add(Integer.parseInt(strs[i]));
}
return list;
}
}

@ -0,0 +1,240 @@
package com.yipin.liuwanr.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.yipin.liuwanr.entity.Judgment_Points;
import com.yipin.liuwanr.entity.Project_Management;
import com.yipin.liuwanr.entity.Role;
/**
* 项目管理系统 项目管理表
*
* @author 86151
*
*/
public interface Project_ManagementMapper {
/**
* 查询项目名称
* @param projectName
* @return
*/
@Select("select count(*) from hr_project_management where projectName=#{projectName}")
Integer getByprojectName(String projectName);
/**
* 分页查询+条件查询
*
* @param management
* @return
*/
@Select({ "<script>",
"select projectId,projectName,projectPermissions,founder,creationTime,state from hr_project_management where isdel=0",
" <if test='projectPermissions!=null'> and projectPermissions=#{projectPermissions}</if>",
" <if test='founder!=null'> and founder=#{founder}</if>",
" <if test='state!=null'> and state=#{state}</if>",
" <if test='systemId!=null'> and systemId=#{systemId}</if>",
" <if test='userId!=null'> and userId=#{userId}</if>",
" <if test='projectName!=null'> and projectName like concat('%',#{projectName},'%')</if>",
" ORDER BY creationTime desc",
"</script>" })
List<Project_Management> queryManagements(Project_Management management);
/**
* 根据实验项目id查询信息
*
* @param projectId
* @return
*/
@Select("select projectId,projectName,projectPermissions,experimentalGoal,caseDescription,experimentSuggests,state,isstartexperimental,isstartexperimentSuggests,userId from hr_project_management where isdel=0 and projectId=#{projectId}")
Project_Management getProjectId(Integer projectId);
/**
* 批量删除
* @param projectId
*/
@Update("<script>" + "<foreach collection = 'point' item ='projectId' open='' close='' separator=';'>"
+ "update hr_project_management set isdel=1 where projectId=#{projectId}</foreach>"
+ "</script>")
void deleteProjectManagement(@Param("point") List<Integer> projectId);
/**
* 添加角色信息
*
* @param role
* @return
*/
@Insert("insert into hr_role (roleNumber,roleType,roleAttribute) VALUES (#{roleNumber},#{roleType},#{roleAttribute})")
@Options(useGeneratedKeys = true, keyProperty = "roleId", keyColumn = "roleId")
void insertRole(Role role);
/**
* 点击实验数据中单个角色后的编辑按钮,修改角色信息
*
* @param role
*/
@Update("update hr_role set roleNumber=#{roleNumber},roleType=#{roleType},roleAttribute=#{roleAttribute} where roleId=#{roleId}")
void updateRole(Role role);
/**
* 点击编辑或者创建项目管理页面的保存按钮后,
* 修改角色表中的对应数据的项目id
* @param ids
* @param projectId
*/
@Update("<script>" +
"<foreach collection = 'ids' item ='id' open='' close='' separator=';'>"
+ "update hr_role set projectId=#{projectId} where roleId=#{id}</foreach>"
+ "</script>")
void updateRoleProjectId(@Param("ids")List<Integer> ids,@Param("projectId")Integer projectId);
@Delete("delete from hr_role where projectId=#{projectId}")
void deleteRole(Integer projectId);
/**
* 添加角色信息后在创建编辑页面的角色信息展示
*
* @param role
* @return
*/
@Select({ "<script>",
"select roleId,roleNumber,roleType,roleAttribute from hr_role where roleId in",
"<foreach collection='role' item='ro' open='(' separator=',' close=')'>" + "#{ro} " + "</foreach> ",
"</script>" })
List<Role> getByRoleId(@Param("role") List<Integer> role);
/**
* 点击具体某个项目信息的编辑按钮,
* 跳转到编辑项目管理页面的实验数据的信息展示
* @param projectId
* @return
*/
@Select("select roleId,roleNumber,roleType,roleAttribute from hr_role where projectId=#{projectId}")
List<Role> queryProjectId(Integer projectId);
/**
* 添加判分点面板的判分信息展示
* @return
*/
@Select({ "<script>",
"select judgmentPointsId,judgmentPointsName from hr_judgment_points where isdel=0 and systemId=#{systemId}",
" <if test='judgmentPointsName!=null'> and judgmentPointsName like concat('%','${judgmentPointsName}','%')</if>",
"</script>" })
List<Judgment_Points> queryAllJudgmentPoints(Judgment_Points points);
/**
* 从判分点添加面板选择完数据后
* 创建项目管理页面的实验任务信息展示
* @param point
* @return
*/
@Select({ "<script>",
"select judgmentPointsId,judgmentPointsName,experimentalRequirements from hr_judgment_points where isdel=0 and judgmentPointsId in",
"<foreach collection='point' item='po' open='(' separator=',' close=')'>" + "#{po} " + "</foreach> ",
"</script>" })
List<Judgment_Points> getByjudgmentPointsIds(@Param("point") List<Integer> point);
/**
* 点击具体某个项目信息的编辑按钮,
* 跳转到编辑项目管理页面的实验任务的信息展示
* @param projectId
* @return
*/
@Select("select judgmentPointsId,judgmentPointsName,experimentalRequirements from hr_judgment_points where isdel=0 and FIND_IN_SET(#{projectId},projectId)>0")
List<Judgment_Points> getByProjectId(Integer projectId);
@Select("select judgmentPointsId,projectId from hr_judgment_points where isdel=0 and FIND_IN_SET(#{projectId},projectId)>0")
List<Judgment_Points> queryProjectIds(Integer projectId);
/**
* 取出判分点中的项目管理的id
* @param judgmentPointsId
* @return
*/
@Select("select projectId,experimentalRequirements from hr_judgment_points where judgmentPointsId=#{judgmentPointsId}")
Judgment_Points getByjudgmentPointsId(Integer judgmentPointsId);
/**
* 点击保存按按需要修改判分点表中对应的项目id,实验要求
* @param projectId
* @param judgmentPointsId
*/
@Update({"<script>",
"update hr_judgment_points set projectId=#{projectId}",
" <if test='experimentalRequirements!=null'>,experimentalRequirements=#{experimentalRequirements}</if>",
" where judgmentPointsId=#{judgmentPointsId}",
"</script>"})
void updateProject(String projectId,String experimentalRequirements,Integer judgmentPointsId);
/**
* 添加项目管理信息
*
* @param management
*/
@Insert("INSERT INTO hr_project_management(projectName,projectPermissions,experimentalGoal,caseDescription,experimentSuggests,state,founder,systemId,creationTime,isstartexperimental,isstartexperimentSuggests,userId,isExperiment,isAttendance,isdel)"
+ " VALUES (#{projectName},#{projectPermissions},#{experimentalGoal},#{caseDescription},#{experimentSuggests},#{state},1,#{systemId},now(),#{isstartexperimental},#{isstartexperimentSuggests},#{userId},0,0,0)")
@Options(useGeneratedKeys = true,keyProperty = "projectId",keyColumn = "projectId")
void insertProjectManagement(Project_Management management);
/**
* 修改项目管理信息
*
* @param management
*/
@Update("update hr_project_management set projectName=#{projectName},projectPermissions=#{projectPermissions},experimentalGoal=#{experimentalGoal},caseDescription=#{caseDescription},experimentSuggests=#{experimentSuggests},state=#{state},"
+ "isstartexperimental=#{isstartexperimental},isstartexperimentSuggests=#{isstartexperimentSuggests} where projectId=#{projectId}")
void updateProjectManagement(Project_Management management);
/**
* 根据项目id,查询出该项目所有的判分点id
* @param projectId
* @return
*/
@Select("select judgmentPointsId from hr_judgment_points where isdel=0 and FIND_IN_SET(#{projectId},projectId)>0")
List<Integer> getByPointProjectId(Integer projectId);
/**
* 根据项目id,查询出该项目所有的角色id
* @param projectId
* @return
*/
@Select("select roleId from hr_role where projectId=#{projectId}")
List<Integer> getByRoleProjectId(Integer projectId);
/**
* 查询用户角色
* @param userId
* @return
*/
@Select("SELECT ro.roleId FROM user us,role ro WHERE ro.roleId=us.accountRole AND us.userId=#{userId}")
Integer queryRole(Integer userId);
/**
* 查询用户角色
* @param userId
* @return
*/
@Select("SELECT accountRole FROM user WHERE userId=#{userId}")
Integer queryRoleId(Integer userId);
}

@ -0,0 +1,63 @@
package com.yipin.liuwanr.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.yipin.liuwanr.entity.ScoreIndex;
public interface ScoreIndexMapper {
/**
* 给判分指标添加分数
* @param scoreIndex
*/
@Insert("insert into hr_score_index (score,judgmentPointsId,projectId,userId,isdel) "
+ " values (#{score},#{judgmentPointsId},#{projectId},#{userId},0)")
@Options(useGeneratedKeys = true,keyProperty = "scoreindexId",keyColumn = "scoreindexId")
void addScoreIndex(ScoreIndex scoreIndex);
/**
* 修改分数
* @param scoreIndex
*/
@Update("update hr_score_index set score=#{score} where judgmentPointsId=#{judgmentPointsId} and projectId=#{projectId} and userId=#{userId} ")
void updateScore(ScoreIndex scoreIndex);
/**
* 删除分数
* @param scoreIndex
*/
@Delete("delete from hr_score_index where judgmentPointsId=#{judgmentPointsId} and projectId=#{projectId} and userId=#{userId}")
void removeScore(@Param("judgmentPointsId")Integer judgmentPointsId,@Param("projectId") Integer projectId,@Param("userId") Integer userId);
@Delete("delete from hr_score_index where projectId=#{projectId} ")
void removeAllprojectId(@Param("projectId") Integer projectId);
/**
* 根据判分点id和项目id查询具体分数
* @return
*/
@Select("select score from hr_score_index where isdel=0 and judgmentPointsId=#{judgmentPointsId} and projectId=#{projectId} and userId=#{userId}")
Integer getbyJudgmentPointsIdScore(@Param("judgmentPointsId")Integer judgmentPointsId,@Param("projectId") Integer projectId,@Param("userId") Integer userId);
/**
* 查询判分点id和分数
* @param judgmentPointsId:判分点id
* @param projectId:项目id
* @return
*/
@Select({"<script>",
"select score,judgmentPointsId from hr_score_index where isdel=0 and userId=#{userId} and projectId=#{projectId} and judgmentPointsId in",
"<foreach collection='ids' item='id' open='(' separator=',' close=')'>" + "#{id} " + "</foreach> ",
"</script>"})
List<ScoreIndex> queryScore(@Param("ids")List<Integer> judgmentPointsId,@Param("projectId")Integer projectId,@Param("userId") Integer userId);
}

@ -0,0 +1,612 @@
package com.yipin.liuwanr.service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yipin.liuwanr.entity.*;
import org.apache.commons.lang3.StringUtils;
import org.jboss.logging.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yipin.liuwanr.helper.UserUtil;
import com.yipin.liuwanr.mapper.Project_ManagementMapper;
import com.yipin.liuwanr.mapper.ScoreIndexMapper;
@Service
public class Project_ManagementService {
private static Logger logger = Logger.getLogger(Project_ManagementService.class);
@Autowired
private Project_ManagementMapper mapper;
@Autowired
private ScoreIndexMapper indexMapper;
/**
* 查询用户角色
*
* @param userId
* @return
*/
public HashMap<String, Object> queryRole(Integer userId) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
Integer roleId = mapper.queryRoleId(userId);
if (null != roleId) {
//角色为教师
if (roleId == 3) {
resp.put("retvalue", 1);
}
//角色为管理员
else if (roleId == 1 || roleId == 2) {
resp.put("retvalue", 0);
} else if (roleId == 4) {
resp.put("retcode", 300);
resp.put("retvalue", "Role does not meet the requirements");
return resp;
}
resp.put("retcode", 200);
} else {
resp.put("retcode", 300);
resp.put("retvalue", "user does not exist");
}
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Inquiry Failed");
return resp;
}
return resp;
}
/**
* 分页查询+条件查询
*
* @param vo
* @return
*/
public HashMap<String, Object> queryAllManagements(Project_Management vo, Integer pageNo, Integer pageSize) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
//获取用户的角色信息
Integer roleId = mapper.queryRoleId(vo.getUserId());
if (null != roleId) {
//角色不对(学生没有权限)
if (roleId == 4) {
resp.put("retcode", 300);
resp.put("retvalue", "Role does not meet the requirements");
return resp;
}
//角色等于管理员或者超级管理员
else if (roleId == 1 || roleId == 2) {
vo.setUserId(null);
}
}
PageHelper.startPage(pageNo, pageSize);
//条件查询
List<Project_Management> list = mapper.queryManagements(vo);
PageInfo<Project_Management> info = new PageInfo<Project_Management>(list);
resp.put("retvalue", new PageResult(info.getTotal(), list));
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Inquiry Failed");
return resp;
}
return resp;
}
/**
* 批量删除
*
* @param point项目管理id
* @return
*/
@Transactional
public HashMap<String, Object> deleteProjectManagement(List<Integer> point) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
for (Integer po : point) {
//判分点
List<Judgment_Points> points = mapper.queryProjectIds(po);
for (int i = 0; i < points.size(); i++) {
//判分点
Judgment_Points pos = points.get(i);
Integer pointId = pos.getJudgmentPointsId();//判分点id
String projectIds = pos.getProjectId();//项目id
//判分点中删除项目
if (!StringUtils.isEmpty(projectIds)) {
List<String> lists = Arrays.asList(projectIds.split(","));
List<String> obj = new ArrayList<String>(lists);
String prijectId = po.toString();
if (lists.contains(prijectId)) {
obj.remove(prijectId);
projectIds = StringUtils.strip(obj.toString(), "[]").replace(" ", "");
mapper.updateProject(projectIds, null, pointId);
}
}
}
//删除分数
indexMapper.removeAllprojectId(po);
mapper.deleteRole(po);
}
mapper.deleteProjectManagement(point);
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Delete Failed");
throw new RuntimeException();
}
return resp;
}
/**
* 根据项目管理id查询对应信息
*
* @param projectId
* @return
*/
public HashMap<String, Object> getProjectId(Integer projectId) {
HashMap<String, Object> resp = new HashMap<String, Object>();
List<Integer> judgmentPointsId = new ArrayList<Integer>();
List<Object> obj = new ArrayList<Object>();
List<Integer> indexs = new ArrayList<Integer>();
try {
// 项目信息
Project_Management management = mapper.getProjectId(projectId);
if (null != management) {
// 判分点信息
List<Judgment_Points> points = mapper.getByProjectId(projectId);
//判分点不为空
if (null != points && !points.isEmpty()) {
//存储判分点id
for (int i = 0; i < points.size(); i++) {
judgmentPointsId.add(points.get(i).getJudgmentPointsId());
}
//得到对应判分点的分数
List<ScoreIndex> scores = indexMapper.queryScore(judgmentPointsId, projectId, management.getUserId());
if (scores.size() > 0 && !scores.isEmpty()) {
//为有分数的赋值
for (int i = 0; i < points.size(); i++) {
Judgment_Points point = points.get(i);
for (int j = 0; j < scores.size(); j++) {
ScoreIndex score = scores.get(j);
if (point.getJudgmentPointsId().equals(score.getJudgmentPointsId())) {
point.setScore(score.getScore());
points.set(i, point);
indexs.add(i);
break;
}
}
}
//为没值的赋值
for (int i = 0; i < points.size(); i++) {
if (!indexs.contains(i)) {
Judgment_Points points3 = points.get(i);
points3.setScore(0);
points.set(i, points3);
}
}
} else {
for (int i = 0; i < points.size(); i++) {
Judgment_Points point = points.get(i);
//给分数赋值
point.setScore(0);
//修改该判分点
points.set(i, point);
}
}
}
// 角色信息
List<Role> roles = mapper.queryProjectId(projectId);
// 存数据
obj.add(management);
obj.add(points);
obj.add(roles);
}
resp.put("retvalue", obj);
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Inquiry Failed");
return resp;
}
return resp;
}
/**
* 添加判分点页面的判分点信息展示
*
* @return
*/
public HashMap<String, Object> queryAllJudgmentPoints(Judgment_Points points) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
resp.put("retvalue", mapper.queryAllJudgmentPoints(points));
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Add Failed");
return resp;
}
return resp;
}
/**
* 创建项目管理页面的判分点信息展示
*
* @param judgmentPointsId 判分点id
* @return
*/
public HashMap<String, Object> getByjudgmentPointsId(List<Integer> judgmentPointsId, Integer projectId, Integer userId) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
List<Judgment_Points> points = mapper.getByjudgmentPointsIds(judgmentPointsId);
List<ScoreIndex> scores = indexMapper.queryScore(judgmentPointsId, projectId, userId);
List<Integer> indexs = new ArrayList<Integer>();
//为新增项目时勾选判分点赋值
if (scores.size() <= 0) {
for (int i = 0; i < points.size(); i++) {
Judgment_Points points2 = points.get(i);
points2.setScore(0);
points.set(i, points2);
}
}
//为修改项目时勾选判分点赋值
else {
//为有分数的赋值
for (int i = 0; i < points.size(); i++) {
Judgment_Points point = points.get(i);
for (int j = 0; j < scores.size(); j++) {
ScoreIndex score = scores.get(j);
if (point.getJudgmentPointsId().equals(score.getJudgmentPointsId())) {
point.setScore(score.getScore());
points.set(i, point);
indexs.add(i);
break;
}
}
}
//为没值的赋值
for (int i = 0; i < points.size(); i++) {
if (!indexs.contains(i)) {
Judgment_Points points3 = points.get(i);
points3.setScore(0);
points.set(i, points3);
}
}
}
resp.put("retvalue", points);
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Inquiry Failed");
return resp;
}
return resp;
}
/**
* 平均分配分值
*
* @param number
* @return
*/
public HashMap<String, Object> avgValues(Integer number) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
resp.put("retvalue", UserUtil.averageValue(number));
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Calculation ERROR");
return resp;
}
return resp;
}
/**
* 添加完角色信息 角色信息展示
*
* @param roleId 角色ID
* @return
*/
public HashMap<String, Object> getByRoleId(List<Integer> roleId) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
resp.put("retvalue", mapper.getByRoleId(roleId));
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Inquiry Failed");
return resp;
}
return resp;
}
/**
* 修改角色信息
*
* @param role 角色信息
* @return
*/
public HashMap<String, Object> updateRole(Role role) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
mapper.updateRole(role);
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "UPDATE ERROR");
return resp;
}
return resp;
}
/**
* 添加角色信息
*
* @param role 角色信息
* @return
*/
public HashMap<String, Object> insertRole(Role role) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
mapper.insertRole(role);
Integer roleId = role.getRoleId();
resp.put("retvalue", roleId);
resp.put("retcode", 200);
} catch (Exception e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Add Failed");
return resp;
}
return resp;
}
/**
* 添加项目管理信息
*
* @return
*/
@Transactional
public HashMap<String, Object> insertProjectManagement(Project_Management pro, List<Judgment_Points> points,
List<Integer> roles) {
HashMap<String, Object> resp = new HashMap<String, Object>();
try {
String projectName = pro.getProjectName();
Integer count = mapper.getByprojectName(projectName);
if (count != null) {
projectName += projectName + (count + 1);
pro.setProjectName(projectName);
}
// 添加项目信息
mapper.insertProjectManagement(pro);
// 取出添加的项目信息的id
Integer projectId = pro.getProjectId();
for (int i = 0; i < points.size(); i++) {
//拼接判分点中的项目id
StringBuffer buff = new StringBuffer();
//判分点id
Integer pointId = points.get(i).getJudgmentPointsId();
//根据该判分点得到数据库存储的对应数据
Judgment_Points point = mapper.getByjudgmentPointsId(pointId);
//取出绑定的项目id
String projectIds = point.getProjectId();
//取出实验要求
String experimentalRequirements = point.getExperimentalRequirements();
//数据库中该判分点已绑定过别的项目id,并且该判分点没有绑定过此时前端传来的项目id
if (!StringUtils.isEmpty(projectIds)) {
List<String> lists = Arrays.asList(projectIds.split(","));
if (!lists.contains(projectId.toString())) {
buff.append(projectIds);
buff.append(",");
buff.append(projectId);
}
}
//数据库中该判分点未绑定任何项目id
else if (projectIds == null) {
buff.append(projectId);
}
//数据中实验要求不为空,且数据库中的实验要求与前端传来的实验要求信息一致
if (experimentalRequirements != null && !experimentalRequirements.equals("")
&& experimentalRequirements.equals(points.get(i).getExperimentalRequirements())) {
mapper.updateProject(new String(buff), null, pointId);
}
//数据库中的实验要求与前端传来的实验要求信息不一致
else if (!experimentalRequirements.equals(points.get(i).getExperimentalRequirements())) {
mapper.updateProject(new String(buff), points.get(i).getExperimentalRequirements(), pointId);
}
// 得到判分指标信息
ScoreIndex scoreIndex = new ScoreIndex(points.get(i).getScore(), pointId, projectId, pro.getUserId());
// 在判分指标中添加对应信息
indexMapper.addScoreIndex(scoreIndex);
}
// 修改角色信息中的项目管理id
if (roles != null && roles.size() > 0) {
mapper.updateRoleProjectId(roles, projectId);
}
resp.put("retcode", 200);
} catch (RuntimeException e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Add Failed");
throw new RuntimeException();
}
return resp;
}
/**
* 修改项目管理信息
*
* @return
*/
@Transactional
public HashMap<String, Object> updateProjectManagement(Project_Management pro, List<Judgment_Points> points,
List<Integer> roles) {
HashMap<String, Object> resp = new HashMap<String, Object>();
//项目id
Integer project = pro.getProjectId();
//用户id
Integer userId = pro.getUserId();
try {
// 取出该项目对应的判分点id
List<Integer> judgments = mapper.getByPointProjectId(project);
// 取出该项目对应的角色id
List<Integer> rolesIds = mapper.getByRoleProjectId(project);
for (int i = 0; i < points.size(); i++) {
//拼接判分点中的项目id
StringBuffer buff = new StringBuffer();
//前端传来的判分点id
Integer pointId = points.get(i).getJudgmentPointsId();
//前端传来的实验要求
String experimentalRequirements1 = points.get(i).getExperimentalRequirements();
//前端传来的分数
Integer score1 = points.get(i).getScore();
//判分点信息
Judgment_Points point = mapper.getByjudgmentPointsId(pointId);
String projectIds = point.getProjectId();
String experimentalRequirements2 = point.getExperimentalRequirements();
// 如果数据库中有,则取出分数,进行比较
if (judgments.contains(pointId)) {
//分数
Integer score2 = indexMapper.getbyJudgmentPointsIdScore(pointId, project, userId);
// 如果分数不一致,则修改分数表中的分数
if (score2 != null && score1 != score2) {
indexMapper.updateScore(new ScoreIndex(score1, pointId, project, userId));
}
// 如果数据库中该判分点分数为空,则添加分数
else if (score2 == null) {
indexMapper.addScoreIndex(new ScoreIndex(score1, pointId, project, pro.getUserId()));
}
//如果前端传来的实验要求与数据库中不一致,则修改数据库中的判分点信息
if (!experimentalRequirements2.equals(experimentalRequirements1)) {
mapper.updateProject(point.getProjectId(), experimentalRequirements1, pointId);
}
} else {
//数据库中该判分点已绑定过别的项目id,并且该判分点没有绑定过此时前端传来的项目id
if (!StringUtils.isEmpty(projectIds)) {
List<String> lists = Arrays.asList(projectIds.split(","));
if (!lists.contains(project.toString())) {
buff.append(projectIds);
buff.append(",");
buff.append(project);
}
}
//数据库中该判分点未绑定任何项目id
else if (projectIds == null) {
buff.append(project);
}
//数据中实验要求不为空,且数据库中的实验要求与前端传来的实验要求信息一致
if (experimentalRequirements2 != null && !experimentalRequirements2.equals("")
&& experimentalRequirements2.equals(experimentalRequirements1)) {
mapper.updateProject(new String(buff), null, pointId);
}
//数据库中的实验要求与前端传来的实验要求信息不一致
else if (!experimentalRequirements2.equals(experimentalRequirements1)) {
mapper.updateProject(new String(buff), experimentalRequirements1, pointId);
}
// 添加分数
indexMapper.addScoreIndex(new ScoreIndex(score1, pointId, project, pro.getUserId()));
}
judgments.remove(pointId);
}
// 从判分点id中删除该项目的id
for (int i = 0; i < judgments.size(); i++) {
Integer judgmentPointsId = judgments.get(i);
Judgment_Points point = mapper.getByjudgmentPointsId(judgmentPointsId);
String projectIds = point.getProjectId();
// 删除分数表中对应的判分点id+项目id数据
indexMapper.removeScore(judgmentPointsId, project, userId);
// 对取出的数据,删除该项目的id
List<String> str3 = Arrays.asList(projectIds.split(","));
if (str3.contains(project.toString())) {
List<String> arrayList = new ArrayList<String>(str3);
arrayList.remove(project.toString());
// 删除字符中项目id
projectIds = StringUtils.strip(arrayList.toString(), "[]").replace(" ", "");
// 修改判分点中的项目id
mapper.updateProject(projectIds, null, judgments.get(i));
}
}
// 用来存储需要修改的角色id
List<Integer> roleid = new ArrayList<Integer>();
// 遍历前端传来的新的角色id
for (int i = 0; i < roles.size(); i++) {
// 如果前端传来的数据,在数据库中没有,则存起来
if (!rolesIds.contains(roles.get(i))) {
roleid.add(roles.get(i));
}
}
if (roleid.size() > 0 && !roleid.isEmpty()) {
// 修改对应角色的项目id
mapper.updateRoleProjectId(roleid, project);
}
//项目名称去重
String projectName = pro.getProjectName();
Integer count = mapper.getByprojectName(projectName);
if (count != null) {
projectName += projectName + (count + 1);
pro.setProjectName(projectName);
}
//修改项目信息
mapper.updateProjectManagement(pro);
resp.put("retcode", 200);
} catch (RuntimeException e) {
logger.error(e.getMessage());
resp.put("retcode", 500);
resp.put("retvalue", "Update Failed");
throw new RuntimeException();
}
return resp;
}
}

@ -0,0 +1,8 @@
spring.datasource.url=jdbc:mysql://www.liuwanr.cn:3306/huoran?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true
spring.datasource.username=super
spring.datasource.password=huoran888
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jackson.default-property-inclusion=non-null
logging.level.com.yipin.liuwanr.mapper=debug
Loading…
Cancel
Save