Commit 65538c24 by 涂亚平

第一个版本

1 parent 36ea1093
Showing with 445 additions and 1849 deletions
......@@ -7,16 +7,16 @@
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="electron" />
<module name="zhongzhi" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="electron" target="1.8" />
<module name="zhongzhi" target="1.8" />
</bytecodeTargetLevel>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="electron" options="-parameters" />
<module name="zhongzhi" options="-parameters" />
</option>
</component>
</project>
\ No newline at end of file
<component name="libraryTable">
<library name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.6.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/dynamic-datasource-spring-boot-starter/3.6.1/dynamic-datasource-spring-boot-starter-3.6.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/dynamic-datasource-spring-boot-starter/3.6.1/dynamic-datasource-spring-boot-starter-3.6.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/baomidou/dynamic-datasource-spring-boot-starter/3.6.1/dynamic-datasource-spring-boot-starter-3.6.1-sources.jar!/" />
</SOURCES>
</library>
</component>
\ No newline at end of file
......@@ -7,5 +7,5 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="false" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>
\ No newline at end of file
......@@ -2,7 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/electron.iml" filepath="$PROJECT_DIR$/electron.iml" />
<module fileurl="file://$PROJECT_DIR$/zhongzhi.iml" filepath="$PROJECT_DIR$/zhongzhi.iml" />
</modules>
</component>
</project>
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
......@@ -95,12 +95,6 @@
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
......@@ -204,7 +198,7 @@
</repositories>
<build>
<finalName>electron</finalName>
<finalName>lixin</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
......
package com.zhongzhi.common.configure;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
@Aspect
@Order(-10) // 保证该 AOP 在 @Transactional 之前执行
@Component
public class DataSourceAspect {
@Before("@annotation(com.zhongzhi.common.configure.DataSourceSwitch) || @within(com.zhongzhi.common.configure.DataSourceSwitch)")
public void before(JoinPoint point) {
Class<?> targetClass = point.getTarget().getClass();
DataSourceSwitch classDataSource = targetClass.getAnnotation(DataSourceSwitch.class);
// 默认使用类上的数据源配置
String dsName = "master";
if (classDataSource != null) {
dsName = classDataSource.value();
}
// 方法上的数据源配置会覆盖类上的配置
MethodSignature signature = (MethodSignature) point.getSignature();
Method method = signature.getMethod();
DataSourceSwitch methodDataSource = method.getAnnotation(DataSourceSwitch.class);
if (methodDataSource != null) {
dsName = methodDataSource.value();
}
// 切换数据源
DynamicDataSourceContextHolder.push(dsName);
}
@After("@annotation(com.zhongzhi.common.configure.DataSourceSwitch) || @within(com.zhongzhi.common.configure.DataSourceSwitch)")
public void after(JoinPoint point) {
// 清除数据源,避免线程复用导致的问题
DynamicDataSourceContextHolder.poll();
}
}
\ No newline at end of file
package com.zhongzhi.common.configure;
import java.lang.annotation.*;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataSourceSwitch {
String value() default "db2"; // 默认使用主数据源
}
\ No newline at end of file
package com.zhongzhi.common.configure;
import com.zhongzhi.common.constant.DBTypeEnum;
public class DbContextHolder {
private static final ThreadLocal contextHolder = new ThreadLocal<>();
/**
* 设置数据源
* @param dbTypeEnum
*/
public static void setDbType(DBTypeEnum dbTypeEnum) {
contextHolder.set(dbTypeEnum.getValue());
}
/**
* 取得当前数据源
* @return
*/
public static String getDbType() {
return (String) contextHolder.get();
}
/**
* 清除上下文数据
*/
public static void clearDbType() {
contextHolder.remove();
}
}
package com.zhongzhi.common.configure;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class DynamicDataSource extends AbstractRoutingDataSource {
@Override
protected Object determineCurrentLookupKey() {
return DbContextHolder.getDbType();
}
}
package com.zhongzhi.common.configure;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.config.GlobalConfig;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import com.zhongzhi.common.constant.DBTypeEnum;
import com.zhongzhi.common.handler.MetaHandler;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.type.JdbcType;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class MybatisPlusConfig {
......@@ -39,79 +24,13 @@ public class MybatisPlusConfig {
/**
* 自动填充功能
* ConfigurationProperties 设置多数据源下逻辑删除等全局配置失效
*
* @return
*/
@Bean
@ConfigurationProperties(prefix = "mybatis-plus.global-config")
public GlobalConfig globalConfig() {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setSqlInjector(new DefaultSqlInjector());
globalConfig.setMetaObjectHandler(new MetaHandler());
return globalConfig;
}
/**
* 配置多数据源
*/
@Bean(name = "db1")
@ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db1")
public DataSource db1() {
return DruidDataSourceBuilder.create().build();
}
@Bean(name = "db2")
@ConfigurationProperties(prefix = "spring.datasource.dynamic.datasource.db2")
public DataSource db2() {
return DruidDataSourceBuilder.create().build();
}
@Bean
@Primary
public DataSource multipleDataSource(@Qualifier("db1") DataSource db1, @Qualifier("db2") DataSource db2) {
DynamicDataSource dynamicDataSource = new DynamicDataSource();
Map<Object, Object> dataSource = new HashMap<>();
dataSource.put(DBTypeEnum.db1.getValue(), db1);
dataSource.put(DBTypeEnum.db2.getValue(), db2);
dynamicDataSource.setTargetDataSources(dataSource);
dynamicDataSource.setDefaultTargetDataSource(db2);
return dynamicDataSource;
}
@Bean("sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory() throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(multipleDataSource(db1(), db2()));
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/*.xml"));
MybatisConfiguration configuration = new MybatisConfiguration();
configuration.setJdbcTypeForNull(JdbcType.NULL);
configuration.setMapUnderscoreToCamelCase(true);
configuration.setCacheEnabled(false);
sqlSessionFactory.setConfiguration(configuration);
sqlSessionFactory.setPlugins(paginationInterceptor());
sqlSessionFactory.setGlobalConfig(globalConfig());
return sqlSessionFactory.getObject();
}
// @Bean(name = "sqlSessionFactory1")
// public SqlSessionFactory sqlSessionFactory1(@Qualifier("db1") DataSource dataSource) throws Exception {
// MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
// bean.setDataSource(dataSource);
// bean.setMapperLocations(new PathMatchingResourcePatternResolver()
// .getResources("classpath:mapper/*.xml"));
// MybatisConfiguration configuration = new MybatisConfiguration();
// configuration.setJdbcTypeForNull(JdbcType.NULL);
// configuration.setMapUnderscoreToCamelCase(true);
// configuration.setCacheEnabled(false);
// bean.setConfiguration(configuration);
// bean.setPlugins(paginationInterceptor());
// bean.setGlobalConfig(globalConfig());
// return bean.getObject();
// }
}
\ No newline at end of file
......@@ -30,7 +30,7 @@ public class SwaggerConfig {
.paths(PathSelectors.any())
.build()
.apiInfo(new ApiInfoBuilder()
.title("中职双创系统")
.title("国泰君安")
.description("接口文档")
.version("1.0")
.build());
......
......@@ -19,7 +19,7 @@ public enum Code {
TOKEN_VERIFICATION_FAILED(1012, "令牌验证失败"),
OSS_ERROR(1013, "OSS文件上传异常"),
Network_ERROR(9000, "网络请求失败"),
SERVER_INTERNAL_ERROR(99999, "功能维护,请联系技术支持人员"),
SERVER_INTERNAL_ERROR(99999, "服务器内部错误"),
;
private final Integer code;
......
package com.zhongzhi.common.constant;
public enum DBTypeEnum {
db1("db1"), //自己库
db2("db2"); //中间库
private String value;
DBTypeEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
\ No newline at end of file
package com.zhongzhi.common.constant;
public class OpenStatus {
public static final String DOING = "进行中";
public static final String DONE = "已结束";
public static final String TODO = "待开始";
}
......@@ -8,17 +8,13 @@ import java.util.stream.Collectors;
public class PDFCheckBox {
public static String getType(String type, String projectGroup,String themeName) {
public static String getType(String type, String projectGroup) {
if (StringUtils.isBlank(type) &&
projectGroup.equals(ProjectType.TECHNOLOGY_INNOVATION_GROUP)) {
return "□方案设计类 □模型创意类 □虚拟演示类";
} else if (StringUtils.isBlank(type) &&
projectGroup.equals(ProjectType.CULTURAL_CREATIVE_GROUP)) {
if ("创意让生活更美好".equals(themeName)){
return themeName+"\n"+"□服装与服饰类设计 □视觉传达类 □产品设计类";
}else {
return themeName+"\n"+"□插画类 □文创产品类";
}
return "□服装与服饰类设计 □视觉传达类 □产品设计类";
}
String[] typeT = {"方案设计类", "模型创意类", "虚拟演示类"};
......@@ -35,22 +31,14 @@ public class PDFCheckBox {
}
return typeValue;
} else if (projectGroup.equals(ProjectType.CULTURAL_CREATIVE_GROUP)) {
if ("创意让生活更美好".equals(themeName)){
if (type.equals("服装与服饰类设计")) {
return themeName+"\n"+"■服装与服饰类设计 □视觉传达类 □产品设计类";
} else if (type.equals("视觉传达类")) {
return themeName+"\n"+"□服装与服饰类设计 ■视觉传达类 □产品设计类";
} else if (type.equals("产品设计类")) {
return themeName+"\n"+"□服装与服饰类设计 □视觉传达类 ■产品设计类";
} else {
return themeName+"\n"+"□服装与服饰类设计 □视觉传达类 □产品设计类";
}
}else {
if (type.equals("插画类")) {
return themeName+"\n"+"■插画类 □文创产品类";
} else {
return themeName+"\n"+"□插画类 ■文创产品类";
}
if (type.equals("服装与服饰类设计")) {
return "■服装与服饰类设计 □视觉传达类 □产品设计类";
} else if (type.equals("视觉传达类")) {
return "□服装与服饰类设计 ■视觉传达类 □产品设计类";
} else if (type.equals("产品设计类")) {
return "□服装与服饰类设计 □视觉传达类 ■产品设计类";
} else {
return "□服装与服饰类设计 □视觉传达类 □产品设计类";
}
}
return "";
......
package com.zhongzhi.common.constant;
public class ProjectAssignStatus {
public static final String NO_ASSIGNED = "未分配";
public static final String ASSIGNED = "已分配";
}
......@@ -3,10 +3,10 @@ package com.zhongzhi.common.constant;
import lombok.Data;
@Data
public class RoleType {
public class ProjectAssigned {
public static final String TEAMLEADER = "组长";
public static final String ASSIGN_ED = "已分配";
public static final String TEAMMEMBER = "组员";
public static final String UN_ASSIGN = "未分配";
}
......@@ -6,4 +6,10 @@ public class ProjectProgress {
public static final String UNREGISTERED = "创意设计阶段";
public static final String CHUANGYI = "创意组";
public static final String CHUCHUANG = "初创组";
public static final String CHENGZHANGZU = "成长组";
}
......@@ -16,8 +16,6 @@ public class ProjectSchedule {
// 校内赛
public static final String SCHOOL_REVIEW = "校级申请项目";
// public static final String PRELIMINARY_REVIEW = "市级初赛项目";
public static final String SEMI_FINAL_REVIEW = "市级复赛项目";
public static final String FINAL_REVIEW = "市级决赛项目";
......
......@@ -10,10 +10,10 @@ package com.zhongzhi.common.constant;
*/
public class ProjectStatus {
// public static final String TO_REVIEW = "";
public static final String UN_SUBMITTED = "填写中";
public static final String TO_CHECK = "待评审";
public static final String WITHDRAWN = "已撤回";
public static final String SCHOOL_NOT_PASSED = "不予提交市级复赛";
......@@ -22,11 +22,13 @@ public class ProjectStatus {
public static final String PRELIMINARY_NOT_PASSED = "不予提交市级初赛";
public static final String REMATCH_WINNING_AWARD = "市级优胜奖";
public static final String REMATCH_WINNING_AWARD = "优胜奖";
public static final String REMATCH_SILVER_AWARD = "二等奖";
public static final String REMATCH_SILVER_AWARD = "市级银奖";
public static final String REMATCH_BRONZE_AWARD = "三等奖";
public static final String REMATCH_BRONZE_AWARD = "市级铜奖";
public static final String REMATCH_FINALS_GOLD_AWARD = "一等奖";
public static final String REMATCH_FINALS_GOLD_AWARD = "市级金奖";
public static final String ABANDON = "未通过";
}
......@@ -17,11 +17,7 @@ public class ProjectType {
public static final String SEED_TRACK = "种子赛道";
public static final String VOCATIONAL = "职教赛道";
public static final String HONGLV = "红旅赛道";
public static final String INTERNATIONAL = "国际合作";
// public static final String VOCATIONAL = "职教赛道";
/**
* 组别
......
package com.zhongzhi.common.constant;
import lombok.Data;
@Data
public class SubmitStatus {
public static final String DONE = "已提交";
public static final String TEMP = "暂存";
public static final String GIVEUP = "弃权";
}
package com.zhongzhi.common.constant;
import lombok.Data;
@Data
public class TeachType {
public static final String INDUSTRY = "行业专家";
public static final String TEACH = "教学专家";
}
......@@ -113,7 +113,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)
public ResponseVO<T> serverInternalError(Exception e, HttpServletRequest request) {
String url = request.getRequestURI();
e.printStackTrace();
e.printStackTrace();
return ResponseData.generateCreatedResponse(Code.SERVER_INTERNAL_ERROR.getCode(), Code.SERVER_INTERNAL_ERROR.getMessage(), url);
}
}
\ No newline at end of file
......@@ -85,7 +85,7 @@ public class CodeGenerator {
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setEntity("model");
pc.setMapper("com/zhongzhi/dao/mapper");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 自定义配置
......
package com.zhongzhi.common.interceptor;
import com.auth0.jwt.interfaces.Claim;
import com.zhongzhi.common.configure.DbContextHolder;
import com.zhongzhi.common.constant.Code;
import com.zhongzhi.common.constant.DBTypeEnum;
import com.zhongzhi.common.constant.SmsCode;
import com.zhongzhi.common.exception.HttpException;
import com.zhongzhi.common.utils.JwtUtil;
import com.zhongzhi.common.utils.Localstorage;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.model.*;
import com.zhongzhi.service.*;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.CollegesDictDO;
import com.zhongzhi.model.ProjectJudgeDO;
import com.zhongzhi.model.StudentDO;
import com.zhongzhi.service.AdministerService;
import com.zhongzhi.service.CollegesDictService;
import com.zhongzhi.service.ProjectJudgeService;
import com.zhongzhi.service.StudentService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -77,9 +81,6 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
if (role.length > 0) {
if (Arrays.asList(role).contains(type)) {
if (SmsCode.student.equals(type)) {
DbContextHolder.setDbType(DBTypeEnum.db2);
StudentDO studentDO = studentService.getById(claimMap.get("id").asLong());
if (studentDO != null) {
Localstorage.setUser(studentDO, type);
......@@ -89,9 +90,6 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
throw new HttpException(Code.USERNAMENOTFOUND.getCode(), Code.USERNAMENOTFOUND.getMessage());
}
} else if (SmsCode.center.equals(type)) {
DbContextHolder.setDbType(DBTypeEnum.db2);
AdministerDO administerDO = administerService.getById(claimMap.get("id").asLong());
if (administerDO != null) {
Localstorage.setUser(administerDO, type);
......@@ -101,8 +99,6 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
throw new HttpException(Code.USERNAMENOTFOUND.getCode(), Code.USERNAMENOTFOUND.getMessage());
}
} else if (SmsCode.school.equals(type)) {
DbContextHolder.setDbType(DBTypeEnum.db2);
CollegesDictDO collegesDictDO = collegesDictService.getById(claimMap.get("id").asLong());
if (collegesDictDO != null) {
Localstorage.setUser(collegesDictDO, type);
......@@ -112,8 +108,6 @@ public class AuthenticationInterceptor implements HandlerInterceptor {
throw new HttpException(Code.USERNAMENOTFOUND.getCode(), Code.USERNAMENOTFOUND.getMessage());
}
} else if (SmsCode.review.equals(type)) {
DbContextHolder.setDbType(DBTypeEnum.db2);
ProjectJudgeDO projectJudgeDO = projectJudgeService.getById(claimMap.get("id").asLong());
if (projectJudgeDO != null) {
Localstorage.setUser(projectJudgeDO, type);
......
......@@ -63,9 +63,9 @@ public class AliyunSmsUtil {
//必填:待发送手机号
request.setPhoneNumbers(phone);
//必填:短信签名-可在短信控制台中找到
request.setSignName("双创平台");
request.setSignName("有课互联");
//必填:短信模板-可在短信控制台中找到
request.setTemplateCode("SMS_229640297");
request.setTemplateCode("SMS_484075307");
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
request.setTemplateParam("{\"code\":\"" + code + "\"}");
......@@ -87,33 +87,33 @@ public class AliyunSmsUtil {
}
// /**
// * 三网平台短信
// * @param msg
// * @param phone
// * @param templateId
// */
// public void sendTemplateMsg(String msg, String phone, String templateId) {
// Map<String, Object> map = new HashMap<>();
// try {
// map.put("cpcode", aliyunSmsProperties.getCpcode());
// map.put("msg", msg);
// map.put("mobiles", phone);
// map.put("excode", aliyunSmsProperties.getExcode());
// map.put("templetid", templateId);
// String md5source = aliyunSmsProperties.getCpcode() + msg + phone + aliyunSmsProperties.getExcode() + templateId + aliyunSmsProperties.getKey();
// map.put("sign", makeMD5(new String(md5source.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)).toLowerCase());
// RestTemplate restTemplate = new RestTemplate();
// ResponseEntity<String> responseEntity = restTemplate.postForEntity(aliyunSmsProperties.getRcsapi(), map, String.class);
// String body = responseEntity.getBody();
// JSONObject object = JSON.parseObject(body);
// if (Integer.valueOf(object.get("resultcode").toString()) != 0) {
// log.error(object.get("resultmsg").toString());
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
/**
* 三网平台短信
* @param msg
* @param phone
* @param templateId
*/
public void sendTemplateMsg(String msg, String phone, String templateId) {
Map<String, Object> map = new HashMap<>();
try {
map.put("cpcode", aliyunSmsProperties.getCpcode());
map.put("msg", msg);
map.put("mobiles", phone);
map.put("excode", aliyunSmsProperties.getExcode());
map.put("templetid", templateId);
String md5source = aliyunSmsProperties.getCpcode() + msg + phone + aliyunSmsProperties.getExcode() + templateId + aliyunSmsProperties.getKey();
map.put("sign", makeMD5(new String(md5source.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)).toLowerCase());
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.postForEntity(aliyunSmsProperties.getRcsapi(), map, String.class);
String body = responseEntity.getBody();
JSONObject object = JSON.parseObject(body);
if (Integer.valueOf(object.get("resultcode").toString()) != 0) {
log.error(object.get("resultmsg").toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
// /**
// * 三网平台短信 新版本 https://flaginfo-cloud.yuque.com/staff-rozzgq/ofcpak
......
package com.zhongzhi.common.utils;
/**
* 枚举类
*/
public class ConstantUtils {
public static final String DELETE_SUCCESS = "删除成功";
public static final String UPLOAD_FAIL = "上传失败";
public static final String ADD_SUCCESS = "新增成功";
public static final String COMMIT_SUCCESS = "提交成功";
public static final String SUCCESS_SEND_OUT = "发送成功";
public static final String FAIL_SEND_OUT = "发送失败";
public static final String SAVE_SUCCESS = "保存成功";
public static final String SHARE_SUCCESS = "共享成功";
public static final String SUBMIT_SUCCESS = "提交成功";
public static final String SUCCESS_UPDATE = "更新成功";
public static final String FAIL_UPDATE = "更新失败";
public static final String SET_SUCCESS = "设置成功";
public static final String SUCCESS_VERIFY = "验证成功";
public static final String FAIL_VERIFY = "验证失败";
public static final String COMPANY_NAME = "TeachAI";
public static final String ALREADY_DONE = "已完成";
public static final String ALREADY_RECOMMEND = "已推荐";
public static final String VERIFY_NAME = "有课互联";
public static final String NOTICE_NAME = "有课进度通知";
public static final String TECH_NAME = "有课互联学习平台";
public static final String SUCCESS_REJECT = "驳回成功";
public static final String SUCCESS_CHECK = "审批成功";
/**
* 短信模板---验证模板
*/
public static final String TEMPLATE_CODE = "SMS_190945394";
/**
* 短信 地域ID
*/
public static final String REGION_ID = "cn-hangzhou";
/**
* 短信 RAM账号AccessKey ID
*/
public static final String ACCESS_KEY_ID = "LTAI5tLUBG4B6QxhHrhddc7p";
/**
* 短信 RAM账号AccessKey Secret
*/
public static final String SECRET = "eber38QGHZixTQ6bFfrd80kbg67jIP";
/**
* 腾讯云点播视频转码模板
*/
public static final Long TEMPLATE_VOD = 100030L;
/**
* 手机端token
*/
public static final String MOBILE_TERMINATE = "mobile";
public static final String ADMINISTER_TERMINATE = "administer";
/**
* API密钥--微信参数
*/
public static final String SECRET_ID = "AKIDOcePHvZ2C5VeYHQGSO5aqtlNxJQLqfz2";
public static final String SECRET_KEY = "vjHYRmrfDbw0rWxA7oFcj7F8lDPKCm8E";
/**
* 图形验证码
*/
public static final Long CAPTCHAAPP_ID = 2013197365L;
public static final String APP_SECRET_KEY = "04ABoF0ZVuMje8NP84DE5Sg**";
public static final Long BUSINESS_ID = 1L;
public static final String UTF8 = "UTF-8";
/**
* 保利威视
*/
public static final String POLYV_VIEWLOG_2 = "http://api.polyv.net/live/v1/statistics/{channelId}/viewlog";
/**
* 推送人社局图片格式
*/
public static final String IMAGE_FORMAT = "?x-oss-process=image/auto-orient,1/resize,m_pad,w_500,h_500/quality,Q_100/format,jpg";
}
package com.zhongzhi.common.utils;
import com.alibaba.druid.support.json.JSONUtils;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
......
package com.zhongzhi.common.utils;
import com.alibaba.fastjson.JSON;
import com.zhongzhi.common.exception.HttpException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.HmacAlgorithms;
import org.apache.commons.codec.digest.HmacUtils;
......@@ -10,6 +9,7 @@ import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.fluent.Request;
import org.apache.http.entity.ContentType;
import springfox.documentation.service.ApiKey;
import java.io.IOException;
import java.util.*;
......@@ -79,18 +79,9 @@ public class SMSSendUtils {
*/
public static HttpResponse send(String templateCode, LinkedList<String> params, String ... phones) throws IOException {
//手机号先去重,然后再转换
try {
return sendBatch(templateCode,params!=null&&!params.isEmpty()?JSON.toJSONString(params):null,Arrays.stream(phones).collect(Collectors.toSet()).stream().collect(Collectors.joining(",")), false);
}catch (Exception e){
throw new HttpException(10026);
}
return sendBatch(templateCode,params!=null&&!params.isEmpty()?JSON.toJSONString(params):null,Arrays.stream(phones).collect(Collectors.toSet()).stream().collect(Collectors.joining(",")), false);
}
public static void main(String[] args) throws Exception{
LinkedList<String> a = new LinkedList<>();
a.add("012121");
send("1008072673404706816",a,"18201963812");
}
/**
* 短信发送
......
package com.zhongzhi.common.utils;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class SmsUtils {
// API接口信息
// 账号:SHP10016-N2
// apiKey:01b0312e7d016d2af41a47e5ba2c2748
// AccessKey:bd985a3772ca3b362f8b049a3017b6edac604815e34be96631513e29afbcac47
public static void main(String[] args) {
String info = null;
try{
HttpClient httpclient = new HttpClient();
PostMethod post = new PostMethod("https://opassapi.infocloud.cc/sms/Api/SendGBK.do");//
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"gb2312");
post.addParameter("SpCode", "333665");//替换企业真实数据
post.addParameter("LoginName", "tangyining");//替换企业真实数据
post.addParameter("Password", "Vq9542055#");//替换企业真实数据
post.addParameter("MessageContent", "1008072673404706816");//替换企业真实数据
post.addParameter("UserNumber", "18201963812");//替换企业真实数据
// post.addParameter("SerialNumber", "");
post.addParameter("f", "111111");
httpclient.executeMethod(post);
info = new String(post.getResponseBody(),"gbk");
System.out.println(info);
}catch (Exception e) {
e.printStackTrace();
}
}
public static String getByteString( byte[] buff_out )
{
StringBuffer strBuf = new StringBuffer(buff_out.length * 3);
strBuf.append("Length[");
strBuf.append(buff_out.length);
strBuf.append("];Content[");
for ( int i = 0 ; i < buff_out.length ; ++i ) {
int l = buff_out[i] & 0x0F;
int h = (buff_out[i] & 0xF0) >> 4;
char ll = (char) (l > 9 ? 'a' + l - 10 : '0' + l);
char hh = (char) (h > 9 ? 'a' + h - 10 : '0' + h);
strBuf.append(hh);
strBuf.append(ll);
strBuf.append(" ");
}
strBuf.append("]");
return strBuf.toString().toUpperCase();
}
}
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.administer.AdministerPageDTO;
import com.zhongzhi.dto.administer.CreateAdministerDTO;
import com.zhongzhi.dto.administer.LoginDTO;
import com.zhongzhi.model.AdministerDO;
import com.zhongzhi.model.AdministerPermissionDO;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.zhongzhi.service.AdministerPermissionService;
import com.zhongzhi.service.AdministerService;
import com.zhongzhi.service.AdministerTrackMappingService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -16,6 +22,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 中心管理账户表 前端控制器
......@@ -32,6 +40,12 @@ public class AdministerController {
@Autowired
private AdministerService administerService;
@Autowired
private AdministerTrackMappingService administerTrackMappingService;
@Autowired
private AdministerPermissionService administerPermissionService;
@PostMapping(value = "/login")
@ApiOperation("中心端 --- 登录:手机号/telephone, code/验证码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
......@@ -39,33 +53,80 @@ public class AdministerController {
}
@PostMapping(value = "/getAdministerPage")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 成员管理分页查询:listItem/角色、 username/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
@ApiOperation("[立信]中心端 --- 成员管理分页查询:listItem/角色、 username/搜索名称、pageNo/当前页数、pageSize/每页显示条数")
public ResponseVO getAdministerPage(@RequestBody AdministerPageDTO administerPageDTO) {
return ResponseData.generateCreatedResponse(0, administerService.getAdministerPage(administerPageDTO));
}
@PostMapping(value = "/createAdminister")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 新增成员:username/名称、telephone/手机号、avatar/头像、role/角色")
public ResponseVO createAdminister(@RequestBody AdministerDO administerDO) {
administerService.save(administerDO);
@ApiOperation("[立信]中心端 --- 新增成员:username/名称、telephone/手机号、avatar/头像、role/角色 trackIds[] 赛道ids permissionIds[] 权限ids")
public ResponseVO createAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) {
administerService.save(createAdministerDTO);
List<Long> trackIds = createAdministerDTO.getTrackIds();
if (null != trackIds){
for (Long id : trackIds){
AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
administerTrackMappingDO.setTrackId(id);
administerTrackMappingService.save(administerTrackMappingDO);
}
}
List<Long> permissionIds = createAdministerDTO.getPermissionIds();
if (null != permissionIds){
for (Long id : permissionIds){
AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
administerPermissionDO.setAdministerId(createAdministerDTO.getId());
administerPermissionDO.setPermissionId(id);
administerPermissionService.save(administerPermissionDO);
}
}
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateAdminister")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 编辑成员:id/成员ID、username/名称、telephone/手机号、avatar/头像、role/角色")
public ResponseVO updateAdminister(@RequestBody AdministerDO administerDO) {
administerService.updateById(administerDO);
@ApiOperation("[立信]中心端 --- 编辑成员:id/成员ID、username/名称、telephone/手机号、avatar/头像、role/角色 trackIds[] 赛道ids permissionIds[] 权限ids")
public ResponseVO updateAdminister(@RequestBody CreateAdministerDTO createAdministerDTO) {
administerService.updateAdminister(createAdministerDTO);
List<Long> trackIds = createAdministerDTO.getTrackIds();
if (null != trackIds){
administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
.lambda()
.eq(AdministerTrackMappingDO::getAdministerId,createAdministerDTO.getId()));
for (Long id : trackIds){
AdministerTrackMappingDO administerTrackMappingDO = new AdministerTrackMappingDO();
administerTrackMappingDO.setAdministerId(createAdministerDTO.getId());
administerTrackMappingDO.setTrackId(id);
administerTrackMappingService.save(administerTrackMappingDO);
}
}
List<Long> permissionIds = createAdministerDTO.getPermissionIds();
if (null != permissionIds) {
administerPermissionService.remove(new QueryWrapper<AdministerPermissionDO>()
.lambda()
.eq(AdministerPermissionDO::getAdministerId,createAdministerDTO.getId()));
for (Long id : permissionIds){
AdministerPermissionDO administerPermissionDO = new AdministerPermissionDO();
administerPermissionDO.setAdministerId(createAdministerDTO.getId());
administerPermissionDO.setPermissionId(id);
administerPermissionService.save(administerPermissionDO);
}
}
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/deleteById")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 删除成员:id/成员ID")
@ApiOperation("[立信]中心端 --- 删除成员:id/成员ID")
public ResponseVO delete(@RequestBody AdministerDO administerDO) {
administerService.removeById(administerDO.getId());
administerTrackMappingService.remove(new QueryWrapper<AdministerTrackMappingDO>()
.lambda()
.eq(AdministerTrackMappingDO::getAdministerId,administerDO.getId()));
return ResponseData.generateCreatedResponse(0);
}
}
package com.zhongzhi.controller;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.administer.AdministerTracksDTO;
import com.zhongzhi.service.AdministerTrackMappingService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 赛道管理员映射表 前端控制器
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@RestController
@RequestMapping("/administerTrackMapping")
@Api("管理员赛道")
public class AdministerTrackMappingController {
@Autowired
private AdministerTrackMappingService administerTrackMappingService;
@PostMapping("administerTracks")
@ApiOperation("[立信]管理员的赛道 userId")
public ResponseVO administerTracks(@RequestBody AdministerTracksDTO administerTracksDTO){
return ResponseData.generateCreatedResponse(0,administerTrackMappingService.administerTracks(administerTracksDTO));
}
}
......@@ -3,8 +3,6 @@ package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.configure.DbContextHolder;
import com.zhongzhi.common.constant.DBTypeEnum;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
......@@ -42,9 +40,8 @@ public class CollegesDictController {
public CollegesDictService collegesDictService;
@PostMapping(value = "/getCollegesListNew")
@ApiOperation("查询所有就读院校: name/院校名称, education/学历")
@ApiOperation("####查询所有就读院校: name/院校名称, education/学历")
public ResponseVO getCollegesList(@RequestBody CollegesDictDTO collegesDictDTO) {
DbContextHolder.setDbType(DBTypeEnum.db2);
QueryWrapper<CollegesDictDO> queryWrapper = new QueryWrapper();
if (StringUtils.isNotBlank(collegesDictDTO.getEducation())) {
if ("中职".equals(collegesDictDTO.getEducation())){
......@@ -62,17 +59,11 @@ public class CollegesDictController {
}
@PostMapping("getCollegeInfo")
@ApiOperation("返回院校基本信息 sceneId name")
@ApiOperation("[立信]返回院校基本信息 name")
public ResponseVO getCollegeInfo(@RequestBody GetCollegesListDTO getCollegesListDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.getCollegeInfo(getCollegesListDTO));
}
@PostMapping("getSceneCollegeInfo")
@ApiOperation("返回院校基本信息 sceneId name")
public ResponseVO getSceneCollegeInfo(@RequestBody GetCollegesListDTO getCollegesListDTO){
return ResponseData.generateCreatedResponse(0,collegesDictService.getSceneCollegeInfo(getCollegesListDTO));
}
@PostMapping(value = "/login")
@ApiOperation("院校端 --- 登录: account/账户, password/密码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
......@@ -80,8 +71,8 @@ public class CollegesDictController {
}
@PostMapping(value = "updateCollegeById")
@LoginRequired({Platform.center})
@ApiOperation("院校端 --- 更新院校信息: id/ID, account/账户,code/代码, name/名称, password/密码")
@LoginRequired({Platform.center,Platform.school})
@ApiOperation("####院校端,中心端 --- 更新院校信息: id/ID, account/账户,code/代码, name/名称, password/密码")
public ResponseVO updateCollegeById(@RequestBody CollegesDictDO collegesDictDO) {
collegesDictService.updateById(collegesDictDO);
return ResponseData.generateCreatedResponse(0);
......@@ -209,14 +200,14 @@ public class CollegesDictController {
@PostMapping(value = "/getCollegesPage")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 院校名录分页查询: name/搜索名称, pageNo/当前页数, pageSize/每页显示条数")
@ApiOperation("####中心端 --- 院校名录分页查询: name/搜索名称, pageNo/当前页数, pageSize/每页显示条数")
public ResponseVO getCollegesPage(@RequestBody CollegesPageDTO collegesPageDTO) {
return ResponseData.generateCreatedResponse(0, collegesDictService.getCollegesPage(collegesPageDTO));
}
@PostMapping(value = "/createColleges")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 新建院校: name/搜索名称, code/院校代码、 phone/手机号")
@ApiOperation("####中心端 --- 新建院校: name/搜索名称, code/院校代码、 phone/手机号")
public ResponseVO createColleges(@RequestBody CollegesDictDO collegesDictDO) {
collegesDictService.createColleges(collegesDictDO);
return ResponseData.generateCreatedResponse(0);
......@@ -224,7 +215,7 @@ public class CollegesDictController {
@PostMapping(value = "/delete")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 删除院校: id/院校ID")
@ApiOperation("####中心端 --- 删除院校: id/院校ID")
public ResponseVO delete(@RequestBody CollegesDictDO collegesDictDO) {
collegesDictService.removeById(collegesDictDO.getId());
return ResponseData.generateCreatedResponse(0);
......@@ -261,7 +252,7 @@ public class CollegesDictController {
@PostMapping(value = "/exportCollege")
@LoginRequired(Platform.center)
@ApiOperation("导出院校名录")
@ApiOperation("####导出院校名录")
public ResponseVO exportCollege() {
collegesDictService.exportCollege();
return ResponseData.generateCreatedResponse(0);
......
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.model.DrawLotGroupDictDO;
import com.zhongzhi.model.DrawLotsGroupJudgesDO;
import com.zhongzhi.service.DrawLotGroupDictService;
import com.zhongzhi.service.DrawLotsGroupJudgesService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@RestController
@RequestMapping("/drawLotGroupDict")
@Api("小组字典表")
public class DrawLotGroupDictController {
@Autowired
private DrawLotGroupDictService drawLotGroupDictService;
@PostMapping("allGroups")
@ApiOperation("所有组别 sceneId ")
public ResponseVO allGroups(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO) {
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.allGroups(drawLotGroupDictDO));
}
@PostMapping("addGroup")
@ApiOperation("新建组别 sceneId projectCnt fieldCnt teachCnt")
public ResponseVO addGroup(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.addGroup(drawLotGroupDictDO));
}
@PostMapping("updateGroup")
@ApiOperation("修改组别 id sceneId projectCnt fieldCnt teachCnt")
public ResponseVO updateGroup(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.updateGroup(drawLotGroupDictDO));
}
@PostMapping("deleteGroup")
@ApiOperation("移除组别 id")
public ResponseVO deleteGroup(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.deleteGroup(drawLotGroupDictDO));
}
@PostMapping("sceneGroups")
@ApiOperation("查看某现场的组别 sceneId")
public ResponseVO sceneGroups(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotGroupDictService.sceneGroups(drawLotGroupDictDO));
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.drawlots.AddProjectToSceneDTO;
import com.zhongzhi.dto.drawlots.AllGroupItemsDTO;
import com.zhongzhi.dto.drawlots.CollegeProjectsDTO;
import com.zhongzhi.dto.drawlots.MatchProjectsDTO;
import com.zhongzhi.model.DrawLotsGroupItemsDO;
import com.zhongzhi.service.DrawLotsGroupItemsService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@RestController
@RequestMapping("/drawLotsGroupItems")
@Api("小组项目")
public class DrawLotsGroupItemsController {
@Autowired
private DrawLotsGroupItemsService drawLotsGroupItemsService;
@PostMapping("allGroupItems")
@ApiOperation("查看所有小组项目 pageSize pageNum sceneId projectName college")
public ResponseVO allGroupItems(@RequestBody AllGroupItemsDTO allGroupItemsDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.allGroupItems(allGroupItemsDTO));
}
@PostMapping("deleteGroupItem")
@ApiOperation("删除小组项目 id")
public ResponseVO deleteGroupItem(@RequestBody DrawLotsGroupItemsDO drawLotsGroupItemsDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.deleteGroupItem(drawLotsGroupItemsDO));
}
@PostMapping("matchProjects")
@ApiOperation("项目名单含赛段筛选(除去这一届已经选中的) matchId projectSchedule")
public ResponseVO matchProjects(@RequestBody MatchProjectsDTO matchProjectsDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.matchProjects(matchProjectsDTO));
}
@PostMapping("collegeProjects")
@ApiOperation("选择院校下这一届的项目(除去已经分配的) college matchId sceneId")
public ResponseVO collegeProjects(@RequestBody CollegeProjectsDTO collegeProjectsDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.collegeProjects(collegeProjectsDTO));
}
@PostMapping("addProjectToScene")
@ApiOperation("添加项目到现场 sceneId projectIds")
public ResponseVO addProjectToScene(@RequestBody AddProjectToSceneDTO addProjectToSceneDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.addProjectToScene(addProjectToSceneDTO));
}
@PostMapping("drawlots")
@ApiOperation("学生--项目抽签 返回组别+编号 sceneId projectId (映射id)")
public ResponseVO drawlots(@RequestBody DrawLotsGroupItemsDO drawLotsGroupItemsDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.drawlots(drawLotsGroupItemsDO));
}
@PostMapping("groupProjectScreen")
@ApiOperation("项目抽签大屏 sceneId")
public ResponseVO groupProjectScreen(@RequestBody DrawLotsGroupItemsDO drawLotsGroupItemsDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupItemsService.groupProjectScreen(drawLotsGroupItemsDO));
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.drawlots.AddJudgeDTO;
import com.zhongzhi.dto.drawlots.AddProjectToSceneDTO;
import com.zhongzhi.dto.drawlots.DrawLoginDTO;
import com.zhongzhi.dto.drawlots.JudgeScoreScreenDTO;
import com.zhongzhi.dto.judge.MatchJudgesDTO;
import com.zhongzhi.model.DrawLotGroupDictDO;
import com.zhongzhi.model.DrawLotsGroupItemsDO;
import com.zhongzhi.model.DrawLotsGroupJudgesDO;
import com.zhongzhi.model.DrawLotsJudgeNumDO;
import com.zhongzhi.service.DrawLotsGroupJudgesService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 赛组评委表 前端控制器
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@RestController
@RequestMapping("/drawLotsGroupJudges")
@Api("评委表")
public class DrawLotsGroupJudgesController {
@Autowired
private DrawLotsGroupJudgesService drawLotsGroupJudgesService;
@PostMapping("matchJudges")
@ApiOperation("某赛道的所有评委 pageSize pageNum sceneId userName expectorType roleType ")
public ResponseVO matchJudges(@RequestBody MatchJudgesDTO matchJudgesDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.matchJudges(matchJudgesDTO));
}
@PostMapping("selectJudges")
@ApiOperation("选择没有被选择过的评委 pageSize pageNum sceneId userName ")
public ResponseVO selectJudges(@RequestBody MatchJudgesDTO matchJudgesDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.selectJudges(matchJudgesDTO));
}
@PostMapping("removeJudge")
@ApiOperation("移除评委 matchJudges返回的id")
public ResponseVO removeJudge(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.removeJudge(drawLotsGroupJudgesDO));
}
@PostMapping("updateJudge")
@ApiOperation("编辑评委 id expectorType roleType groupId")
public ResponseVO updateJudge(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.updateJudge(drawLotsGroupJudgesDO));
}
@PostMapping("addJudge")
@ApiOperation("新加评委 judgeIds sceneId")
public ResponseVO addJudge(@RequestBody AddJudgeDTO addJudgeDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.addJudge(addJudgeDTO));
}
@PostMapping("assignJudge")
@ApiOperation("批量分配评委 ids expectorType roleType")
public ResponseVO assignJudge(@RequestBody AddJudgeDTO addJudgeDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.assignJudge(addJudgeDTO));
}
@PostMapping("selectNoDrawLotsJudge")
@ApiOperation("选择现场还没有抽过签的评委 roleType 组长/组员 sceneId")
public ResponseVO selectNoDrawLotsJudge(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.selectNoDrawLotsJudge(drawLotsGroupJudgesDO));
}
@PostMapping("drawlots")
@ApiOperation("评审-项目抽签 返回组别+评委编号 sceneId judgeId roleType")
public ResponseVO drawlots(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.drawlots(drawLotsGroupJudgesDO));
}
@PostMapping("judgeScreen")
@ApiOperation("评委抽签大屏 sceneId")
public ResponseVO judgeScreen(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.judgeScreen(drawLotsGroupJudgesDO));
}
@PostMapping("login")
@ApiOperation("评委登录 name 评委编号")
public ResponseVO login(@RequestBody DrawLoginDTO drawLoginDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.login(drawLoginDTO));
}
@PostMapping("judgeScoreScreen")
@ApiOperation("评委分数大屏 groupId groupNums[] ")
public ResponseVO judgeScoreScreen(@RequestBody JudgeScoreScreenDTO judgeScoreScreenDTO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.judgeScoreScreen(judgeScoreScreenDTO));
}
@PostMapping("leaderFull")
@ApiOperation("组长是否已满 sceneId")
public ResponseVO leaderFull(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.leaderFull(drawLotGroupDictDO));
}
@PostMapping("judgeInfo")
@ApiOperation("评委信息 groupId groupNum")
public ResponseVO judgeFullInfo(@RequestBody DrawLotsJudgeNumDO drawLotsJudgeNumDO){
return ResponseData.generateCreatedResponse(0,drawLotsGroupJudgesService.judgeInfo(drawLotsJudgeNumDO));
}
}
package com.zhongzhi.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2025-07-10
*/
@RestController
@RequestMapping("/draw-lots-judge-num-do")
public class DrawLotsJudgeNumController {
}
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.model.DrawLotsScenesDO;
import com.zhongzhi.service.DrawLotsScenesService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@RestController
@RequestMapping("/drawLotsScenes")
@Api("现场赛事")
public class DrawLotsScenesController {
@Autowired
private DrawLotsScenesService drawLotsScenesService;
@PostMapping("allMatchScenes")
@ApiOperation("查看某一赛道的所有现场 matchId")
public ResponseVO allMatchScenes(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.allMatchScenes(drawLotsScenesDO));
}
@PostMapping("addMatchScene")
@ApiOperation("添加某一赛道的所有现场 matchId sceneName openStatus ")
public ResponseVO addMatchScene(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.addMatchScene(drawLotsScenesDO));
}
@PostMapping("updateMatchScene")
@ApiOperation("修改某一个赛道现场 id matchId sceneName openStatus ")
public ResponseVO updateMatchScene(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.updateMatchScene(drawLotsScenesDO));
}
@PostMapping("deleteMatchScene")
@ApiOperation("删除某一个赛道现场 id matchId sceneName projectCnt groupCnt judgeCnt rankCnt openStatus ")
public ResponseVO deleteMatchScene(@RequestBody DrawLotsScenesDO drawLotsScenesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScenesService.deleteMatchScene(drawLotsScenesDO));
}
}
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.drawlots.GroupScoresDTO;
import com.zhongzhi.model.*;
import com.zhongzhi.service.DrawLotsScenesService;
import com.zhongzhi.service.DrawLotsScoresService;
import com.zhongzhi.vo.ResponseVO;
import com.zhongzhi.vo.drawlots.RankListVO;
import com.zhongzhi.vo.drawlots.RankVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2025-07-04
*/
@RestController
@RequestMapping("/drawLotsScores")
@Api(tags = "评分")
public class DrawLotsScoresController {
@Autowired
private DrawLotsScoresService drawLotsScoresService;
@PostMapping("groupScores")
@ApiOperation("小组评分 sceneId ")
public ResponseVO groupScores(@RequestBody GroupScoresDTO groupScoresDTO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.groupScores(groupScoresDTO));
}
@PostMapping("queryItems")
@ApiOperation("查询某评委可以看到的项目 judgeId")
public ResponseVO queryItems(@RequestBody DrawLotsGroupJudgesDO drawLotsGroupJudgesDO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.queryItems(drawLotsGroupJudgesDO));
}
@PostMapping("submit")
@ApiOperation("暂存/提交 sceneId groupId judgeId projectId submitStatus :暂存/已提交 score")
public ResponseVO submit(@RequestBody DrawLotsScoresDO drawLotsScoresDO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.submit(drawLotsScoresDO));
}
@PostMapping("groupRank")
@ApiOperation("某个组别的排行 groupId")
public ResponseVO groupRank(@RequestBody DrawLotsGroupItemsDO drawLotsGroupItemsDO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.groupRank(drawLotsGroupItemsDO));
}
@PostMapping("rankList")
@ApiOperation("排位赛抽签(前四名展示) 查询 sceneId ")
public ResponseVO rankList(@RequestBody DrawLotGroupDictDO drawLotGroupDictDO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.rankList(drawLotGroupDictDO));
}
@PostMapping("rank")
@ApiOperation("排位赛抽签(随机排序,每个现场只能查一次) sceneId groupId projectName ")
public ResponseVO rank(@RequestBody RankVO rankVO){
return ResponseData.generateCreatedResponse(0,drawLotsScoresService.rank(rankVO));
}
// @PostMapping("rankItems")
// @ApiOperation("排位项目查询 sceneId groupId projectName ")
// public ResponseVO rankItems(@RequestBody RankVO rankVO){
// return ResponseData.generateCreatedResponse(0,drawLotsScoresService.rankItems(rankVO));
// }
}
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.model.MajorDictDO;
import com.zhongzhi.service.MajorDictService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -29,9 +33,13 @@ public class MajorDictController {
private MajorDictService majorDictService;
@PostMapping(value = "/getMajorList")
@ApiOperation("查询全部就读专业: major/专业名称、education/学历、code/院校代码")
@ApiOperation("[立信]####查询全部就读专业: major/专业名称、education/学历、code/院校代码")
public ResponseVO getMajorList(@RequestBody MajorDictDO majorDictDO) {
return ResponseData.generateCreatedResponse(0, majorDictService.getMajorList(majorDictDO));
return ResponseData.generateCreatedResponse(0, majorDictService.list(new QueryWrapper<MajorDictDO>()
.lambda()
.eq(StringUtils.isNotBlank(majorDictDO.getEducation()), MajorDictDO::getEducation, majorDictDO.getEducation())
.eq(StringUtils.isNotBlank(majorDictDO.getCode()), MajorDictDO::getCode, majorDictDO.getCode())
.like(StringUtils.isNotBlank(majorDictDO.getMajor()), MajorDictDO::getMajor, majorDictDO.getMajor())));
}
}
package com.zhongzhi.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2025-06-10
*/
@RestController
@RequestMapping("/match-college-count-do")
public class MatchCollegeCountController {
}
......@@ -2,15 +2,12 @@ package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.common.configure.DbContextHolder;
import com.zhongzhi.common.constant.DBTypeEnum;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.constant.ProjectType;
import com.zhongzhi.common.utils.LoginRequired;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.dto.match.MatchDictDTO;
import com.zhongzhi.dto.match.SelectListPageDTO;
import com.zhongzhi.dto.project.ProjectListPageDTO;
import com.zhongzhi.model.MatchDictDO;
import com.zhongzhi.service.MatchDictService;
import com.zhongzhi.vo.ResponseVO;
......@@ -38,14 +35,6 @@ public class MatchDictController {
@Autowired
private MatchDictService matchDictService;
@PostMapping(value = "/getMainMatch")
@LoginRequired({Platform.school, Platform.center, Platform.student})
@ApiOperation("查询主赛道启用赛事年份")
public ResponseVO getAllMatch() {
return ResponseData.generateCreatedResponse(0, matchDictService.getAllMatch());
}
@PostMapping(value = "/getMainTrackMatch")
@LoginRequired({Platform.school, Platform.center, Platform.student})
@ApiOperation("查询主赛道启用赛事年份")
......@@ -97,17 +86,12 @@ public class MatchDictController {
}
@PostMapping(value = "/getSeedTrackMatchPage")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端/院校端 ---分页查询种子赛道赛事年份:pageNo、pageSize")
public ResponseVO getSeedTrackMatchPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getSeedTrackMatchPage(selectListPageDTO));
}
@PostMapping(value = "/getSeedTrackMatchPageCity")
@ApiOperation("院校端 ---分页查询种子赛道赛事年份:pageNo、pageSize")
public ResponseVO getSeedTrackMatchPageCity(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getSeedTrackMatchPageCity(selectListPageDTO));
}
@PostMapping(value = "/createMainTrackMatch")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---创建主赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
......@@ -119,6 +103,7 @@ public class MatchDictController {
}
@PostMapping(value = "/createSeedTrackMatch")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---创建种子赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
"schedule:[{ scheduleTime/时间安排、explains/说明 }]")
public ResponseVO createSeedTrackMatch(@RequestBody MatchDictDTO matchDictDTO) {
......@@ -128,36 +113,16 @@ public class MatchDictController {
}
@PostMapping(value = "/createVocationalMatch")
@ApiOperation("中心端 ---创建职教赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
@ApiOperation("####中心端 ---创建职教赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
"schedule:[{ scheduleTime/时间安排、explains/说明 }]")
public ResponseVO createVocationalMatch(@RequestBody MatchDictDTO matchDictDTO) {
matchDictDTO.setMatchType(ProjectType.VOCATIONAL);
matchDictService.createMatch(matchDictDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/createHonglvMatch")
@ApiOperation("中心端 ---创建职教赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
"schedule:[{ scheduleTime/时间安排、explains/说明 }]")
public ResponseVO createHonglvMatch(@RequestBody MatchDictDTO matchDictDTO) {
matchDictDTO.setMatchType(ProjectType.HONGLV);
matchDictService.createMatch(matchDictDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/createInternationalMatch")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---创建职教赛道赛事年份:matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、" +
"schedule:[{ scheduleTime/时间安排、explains/说明 }]")
public ResponseVO createInternationalMatch(@RequestBody MatchDictDTO matchDictDTO) {
matchDictDTO.setMatchType(ProjectType.INTERNATIONAL);
matchDictService.createMatch(matchDictDTO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateMatch")
@ApiOperation("中心端 ---编辑赛事年份:id/ID、matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、status/状态(1:启动,0:暂停)" +
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---编辑赛事年份:id/ID、matchName/名称、matchDate/年份、startTime/报名起始时间、endTime/报名结束时间、status/状态(1:启动,0:暂停)" +
"schedule:[{ id/时间安排ID、scheduleTime/时间安排、explains/说明 }]")
public ResponseVO updateMatch(@RequestBody MatchDictDTO matchDictDTO) {
matchDictService.updateMatch(matchDictDTO);
......@@ -166,7 +131,7 @@ public class MatchDictController {
@PostMapping(value = "/delete")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---删除赛事年份:id/ID")
@ApiOperation("[立信]中心端 ---删除赛事年份:id/ID")
public ResponseVO delete(@RequestBody MatchDictDO matchDictDO) {
matchDictService.removeById(matchDictDO.getId());
return ResponseData.generateCreatedResponse(0);
......@@ -185,62 +150,25 @@ public class MatchDictController {
@LoginRequired({Platform.center, Platform.school, Platform.student, Platform.review})
@ApiOperation("中心端/学生端/院校端/审批端 ---查询全部种子赛道赛事年份")
public ResponseVO getSeedTrackMatchAll() {
return ResponseData.generateCreatedResponse(0, matchDictService.getSeedTrackMatchAll());
return ResponseData.generateCreatedResponse(0, matchDictService.list(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchType, ProjectType.SEED_TRACK)));
}
@PostMapping(value = "/getVocationalMatchAll")
@LoginRequired({Platform.center, Platform.school, Platform.student, Platform.review})
@ApiOperation("中心端/学生端/院校端/审批端 ---查询全部职教赛道赛事年份")
@ApiOperation("[立信]中心端/学生端/院校端/审批端 ---查询全部职教赛道赛事年份")
public ResponseVO getVocationalMatchAll() {
return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalMatchAll());
}
@PostMapping(value = "/getHonglvMatchAll")
@LoginRequired({Platform.center, Platform.school, Platform.student, Platform.review})
@ApiOperation("中心端/学生端/院校端/审批端 ---查询全部职教赛道赛事年份")
public ResponseVO getHonglvMatchAll() {
return ResponseData.generateCreatedResponse(0, matchDictService.getHonglvMatchAll());
}
@PostMapping(value = "/getInternationalMatchAll")
@LoginRequired({Platform.center, Platform.school, Platform.student, Platform.review})
@ApiOperation("中心端/学生端/院校端/审批端 ---查询全部职教赛道赛事年份")
public ResponseVO getInternationalMatchAll() {
return ResponseData.generateCreatedResponse(0, matchDictService.list(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getMatchType, ProjectType.INTERNATIONAL)));
return ResponseData.generateCreatedResponse(0, matchDictService.list(null));
}
/* 职教管理端 */
@PostMapping(value = "/getVocationalPage")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
@ApiOperation("[立信]中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
public ResponseVO getVocationalPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalPage(selectListPageDTO));
}
/* 职教管理端 */
@PostMapping(value = "/getHonglvPage")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
public ResponseVO getHonglvPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getHonglvPage(selectListPageDTO));
}
/* 职教管理端 */
@PostMapping(value = "/getVocationalPageCity")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
public ResponseVO getVocationalPageCity(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getVocationalPageCity(selectListPageDTO));
}
/* 职教管理端 */
@PostMapping(value = "/getInternationalPage")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端/院校端 ---分页查询职教赛道赛事年份:pageNo、pageSize")
public ResponseVO getInternationalPage(@RequestBody SelectListPageDTO selectListPageDTO) {
return ResponseData.generateCreatedResponse(0, matchDictService.getInternationalPage(selectListPageDTO));
}
}
\ No newline at end of file
......@@ -45,31 +45,27 @@ public class MatchScheduleController {
@LoginRequired({Platform.student})
@ApiOperation("学生端 ---种子赛道查看时间安排:matchId/赛事年份ID")
public ResponseVO getMatchSchedule(@RequestBody MatchScheduleDO matchScheduleDO) {
return ResponseData.generateCreatedResponse(0, matchScheduleService.getMatchSchedule(matchScheduleDO));
MatchDictDO matchDictDO = matchDictService.getOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getId, matchScheduleDO.getMatchId())
.eq(MatchDictDO::getMatchType, ProjectType.SEED_TRACK)
.eq(MatchDictDO::getStatus, 1));
List<MatchScheduleDO> list = new ArrayList<>();
if (matchDictDO != null) {
list = matchScheduleService.list(new QueryWrapper<MatchScheduleDO>()
.lambda()
.eq(MatchScheduleDO::getMatchId, matchDictDO.getId()));
}
return ResponseData.generateCreatedResponse(0, list);
}
@PostMapping(value = "getVocationalMatchSchedule")
@LoginRequired({Platform.student})
@ApiOperation("学生端 ---职教赛道查看时间安排:matchId/赛事年份ID")
public ResponseVO getVocationalMatchSchedule(@RequestBody MatchScheduleDO matchScheduleDO) {
return ResponseData.generateCreatedResponse(0, matchScheduleService.getVocationalMatchSchedule(matchScheduleDO));
}
@PostMapping(value = "getHonglvMatchSchedule")
@LoginRequired({Platform.student})
@ApiOperation("学生端 ---职教赛道查看时间安排:matchId/赛事年份ID")
public ResponseVO getHonglvMatchSchedule(@RequestBody MatchScheduleDO matchScheduleDO) {
return ResponseData.generateCreatedResponse(0, matchScheduleService.getHonglvMatchSchedule(matchScheduleDO));
}
@PostMapping(value = "getInternationalMatchSchedule")
@LoginRequired({Platform.student})
@ApiOperation("学生端 ---职教赛道查看时间安排:matchId/赛事年份ID")
public ResponseVO getInternationalMatchSchedule(@RequestBody MatchScheduleDO matchScheduleDO) {
MatchDictDO matchDictDO = matchDictService.getOne(new QueryWrapper<MatchDictDO>()
.lambda()
.eq(MatchDictDO::getId, matchScheduleDO.getMatchId())
.eq(MatchDictDO::getMatchType, ProjectType.INTERNATIONAL)
.eq(MatchDictDO::getStatus, 1));
List<MatchScheduleDO> list = new ArrayList<>();
if (matchDictDO != null) {
......
package com.zhongzhi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhongzhi.common.configure.DbContextHolder;
import com.zhongzhi.common.constant.DBTypeEnum;
import com.zhongzhi.common.constant.Platform;
import com.zhongzhi.common.utils.DateFormatUtil;
import com.zhongzhi.common.utils.Localstorage;
......@@ -45,11 +43,8 @@ public class MessageController {
private MessageService messageService;
@PostMapping(value = "/getMessage")
@ApiOperation("查询通知")
@ApiOperation("[立信]查询通知")
public ResponseVO getMessage() {
DbContextHolder.setDbType(DBTypeEnum.db2);
List<MessageVO> messages = new ArrayList();
List<MessageDO> list = messageService.list(new QueryWrapper<MessageDO>()
......@@ -66,38 +61,37 @@ public class MessageController {
@PostMapping(value = "/getMessageById")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 根据ID查询详情:id/ID")
@ApiOperation("[立信]中心端 --- 根据ID查询详情:id/ID")
public ResponseVO getMessageById(@RequestBody MessageDO messageDO) {
DbContextHolder.setDbType(DBTypeEnum.db2);
return ResponseData.generateCreatedResponse(0, messageService.getById(messageDO.getId()));
}
@PostMapping(value = "/getMessagePage")
@ApiOperation("中心端 ---分页查询通知: pageNo/当前页数, pageSize/每页显示条数")
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---分页查询通知: pageNo/当前页数, pageSize/每页显示条数")
public ResponseVO getMessagePage(@RequestBody MessagePageDTO messagePageDTO) {
return ResponseData.generateCreatedResponse(0, messageService.getMessagePage(messagePageDTO));
}
@PostMapping(value = "/createMessage")
@LoginRequired({Platform.center,Platform.school})
@ApiOperation("中心端 ---创建通知: title/标题, content/内容, attachmentUrl/附件地址, releaseTime/发布时间, attachmentName/附件名称, attachmentType/附件类型")
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---创建通知: title/标题, content/内容, attachmentUrl/附件地址, releaseTime/发布时间, attachmentName/附件名称, attachmentType/附件类型")
public ResponseVO createMessage(@RequestBody MessageDO messageDO) {
messageService.createMessage(messageDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateMessage")
@LoginRequired({Platform.center,Platform.school})
@ApiOperation("中心端 ---编辑通知: id/ID, title/标题, content/内容, attachmentUrl/附件地址, attachmentName/附件名称, attachmentType/附件类型")
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---编辑通知: id/ID, title/标题, content/内容, attachmentUrl/附件地址, attachmentName/附件名称, attachmentType/附件类型")
public ResponseVO updateMessage(@RequestBody MessageDO messageDO) {
DbContextHolder.setDbType(DBTypeEnum.db2);
messageService.updateById(messageDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/delete")
@LoginRequired({Platform.center,Platform.school})
@ApiOperation("中心端 ---删除通知: id/ID, ")
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---删除通知: id/ID, ")
public ResponseVO delete(@RequestBody MessageDO messageDO) {
messageService.removeById(messageDO.getId());
return ResponseData.generateCreatedResponse(0);
......
......@@ -181,6 +181,7 @@ public class OssController {
// 完成分片上传。
CompleteMultipartUploadResult completeMultipartUploadResult = ossClient.completeMultipartUpload(completeMultipartUploadRequest);
uploadFileVO.setUrl(completeMultipartUploadResult.getLocation().replace("http","https"));
uploadFileVO.setRequestId(completeMultipartUploadResult.getRequestId());
System.out.println(completeMultipartUploadResult.getLocation());
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
......@@ -189,11 +190,13 @@ public class OssController {
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
oe.printStackTrace();
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
ce.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
......
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.service.PermissionsService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -17,4 +23,14 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/permissions")
public class PermissionsController {
@Autowired
private PermissionsService permissionsService;
@PostMapping("allPermissions")
@ApiOperation("[立信]所有权限")
public ResponseVO allPermissions(){
return ResponseData.generateCreatedResponse(0,permissionsService.allPermissions());
}
}
......@@ -34,63 +34,67 @@ public class ProjectJudgeController {
private ProjectJudgeService projectJudgeService;
@PostMapping(value = "/login")
@ApiOperation("评审端 --- 登录:telephone/手机号、code/验证码")
@ApiOperation("评审端 --- 登录:accountName password")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.login(loginDTO));
}
@PostMapping(value = "/getProjectJudgePage")
@ApiOperation("中心端 ---评委列表:username/姓名、status/状态、pageNo/当前页数、 pageSize/每页显示条数")
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---评委列表:username/姓名、status/状态、pageNo/当前页数、 pageSize/每页显示条数")
public ResponseVO getProjectJudgePage(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.getProjectJudgePage(projectJudgePageDTO));
}
@PostMapping(value = "/createProjectJudge")
@LoginRequired({Platform.school})
@ApiOperation("中心端 ---添加评委:username/姓名、telephone/手机号、 position/职位、unit/单位")
@LoginRequired({Platform.center})
public ResponseVO createProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.createProjectJudge(projectJudgeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/updateProjectJudge")
@ApiOperation("中心端 ---编辑评委:id/ID、username/姓名、telephone/手机号、 position/职位、unit/单位, status/状态(1:启用,0:禁用)")
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---编辑评委:id/ID、username/姓名、telephone/手机号、 position/职位、unit/单位, status/状态(1:启用,0:禁用)")
public ResponseVO updateProjectJudge(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.updateProjectJudge(projectJudgeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/delete")
@ApiOperation("中心端 ---删除评委:id/ID")
@LoginRequired({Platform.center})
@ApiOperation("[立信]中心端 ---删除评委:id/ID")
public ResponseVO delete(@RequestBody ProjectJudgeDO projectJudgeDO) {
projectJudgeService.removeJudge(projectJudgeDO);
projectJudgeService.removeById(projectJudgeDO.getId());
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/projectJudgesAssigned")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---已分配项目评委列表: matchId/赛事ID、projectGroup/组别、projectSchedule/进度")
public ResponseVO projectJudgesAssigned(@RequestBody ProjectJudgePageDTO projectJudgePageDTO) {
return ResponseData.generateCreatedResponse(0, projectJudgeService.projectJudgesAssigned(projectJudgePageDTO));
}
@PostMapping(value = "/downloadJudgeTemplate")
@ApiOperation("中心端 ---下载导入评委模板")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---下载导入评委模板")
public ResponseVO downloadJudgeTemplate() {
projectJudgeService.downloadTemplate();
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/importJudge")
@LoginRequired({Platform.school})
@ApiOperation("中心端 ---导入评委:file/文件(数据格式:Form-Data)")
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---导入评委:file/文件(数据格式:Form-Data)")
public ResponseVO importJudge(MultipartFile file) {
projectJudgeService.importJudge(file);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/exportProjectJudge")
@ApiOperation("中心端 ---导出评委")
@LoginRequired({Platform.school})
@LoginRequired({Platform.center})
@ApiOperation("####中心端 ---导出评委")
public void exportProjectJudge() {
projectJudgeService.exportProjectJudge();
}
......
......@@ -35,6 +35,7 @@ public class ProjectReviewController {
private ProjectReviewService projectReviewService;
@PostMapping(value = "/setReview")
@LoginRequired({Platform.center})
@ApiOperation("中心端 ---分配评审:[{projectId}]/项目ID、[{judgeId}]/评委ID、smsMessage/是否发送短信通知(0:不发送,1:发送)")
public ResponseVO setReview(@RequestBody SetReviewDTO setReviewDTO) {
projectReviewService.setReview(setReviewDTO);
......@@ -42,6 +43,7 @@ public class ProjectReviewController {
}
@PostMapping(value = "/sendNotice")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 发送通知评审:id/评委ID, matchId/赛事ID")
public ResponseVO sendNotice(@RequestBody SendNoticeVO sendNoticeVO) {
projectReviewService.sendNotice(sendNoticeVO);
......@@ -49,6 +51,7 @@ public class ProjectReviewController {
}
@PostMapping(value = "/cancelReview")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 撤销分配:projectId/项目ID、[{judgeId}]/评委ID、smsMessage/是否发送短信通知(0:不发送,1:发送)")
public ResponseVO cancelReview(@RequestBody CancelReviewDTO cancelReviewVO) {
projectReviewService.cancelReview(cancelReviewVO);
......@@ -56,6 +59,7 @@ public class ProjectReviewController {
}
@PostMapping(value = "/getProjectReview")
@LoginRequired({Platform.center})
@ApiOperation("中心端 --- 已分配项目评审员:projectId/项目ID")
public ResponseVO getProjectReview(@RequestBody ProjectReviewDTO projectReviewDTO) {
return ResponseData.generateCreatedResponse(0, projectReviewService.getProjectReview(projectReviewDTO));
......
......@@ -32,21 +32,12 @@ public class ProjectReviewPeriodController {
private ProjectReviewPeriodService projectReviewPeriodService;
@PostMapping(value = "/getProjectReviewPeriod")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)")
@ApiOperation("[立信]中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)")
public ResponseVO getProjectReviewPeriod(@RequestBody ProjectReviewPeriodDTO projectReviewPeriodDTO) {
return ResponseData.generateCreatedResponse(0, projectReviewPeriodService.getProjectReviewPeriod(projectReviewPeriodDTO));
}
@PostMapping(value = "/getProjectReviewPeriodCity")
@LoginRequired({Platform.center, Platform.school, Platform.review})
@ApiOperation("中心端(种子赛道、职教赛道) --- 查询评审时间:matchId/赛事年份ID、projectGroup/项目组别(科技创新组、红色文创组、高职、中职)、projectSchedule/项目进度(市级初赛、市级复赛、市级决赛)")
public ResponseVO getProjectReviewPeriodCity(@RequestBody ProjectReviewPeriodDTO projectReviewPeriodDTO) {
return ResponseData.generateCreatedResponse(0, projectReviewPeriodService.getProjectReviewPeriodCity(projectReviewPeriodDTO));
}
@PostMapping(value = "/updateProjectReviewPeriod")
@LoginRequired(Platform.center)
@ApiOperation("中心端 --- 修改评审时间:id/ID、matchId/赛事ID、projectGroup/项目组别、projectSchedule/项目进度、startTime/开始时间、endTime/结束时间")
public ResponseVO updateProjectReviewPeriod(@RequestBody ProjectReviewPeriodDO projectReviewPeriodDO) {
projectReviewPeriodService.updateProjectReviewPeriod(projectReviewPeriodDO);
......
package com.zhongzhi.controller;
import com.zhongzhi.common.utils.ResponseData;
import com.zhongzhi.service.ProjectTrackService;
import com.zhongzhi.vo.ResponseVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 赛道字典表 前端控制器
* </p>
* @author DengMin
* @since 2025-03-28
*/
@RestController
@RequestMapping("/projectTrack")
@Api(tags = "赛道")
public class ProjectTrackController {
@Autowired
private ProjectTrackService projectTrackService;
@PostMapping("allTracks")
@ApiOperation("[立信]查询所有赛道 ")
public ResponseVO allTracks(){
return ResponseData.generateCreatedResponse(0,projectTrackService.list());
}
}
......@@ -32,29 +32,29 @@ public class SmsCodeController {
private SmsCodeService smsCodeService;
@PostMapping(value = "/sendRegisterCode")
@ApiOperation("学生端 ---注册验证码:telephone/手机号")
public ResponseVO sendRegisterCode(@RequestBody SmsCodeDO smsCodeDO)throws Exception {
@ApiOperation("[立信]学生端 ---注册验证码:telephone/手机号")
public ResponseVO sendRegisterCode(@RequestBody SmsCodeDO smsCodeDO) {
smsCodeService.sendRegisterCode(smsCodeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendStudentLoginCode")
@ApiOperation("学生端 ---登陆验证码:telephone/手机号")
public ResponseVO sendStudentLoginCode(@RequestBody SmsCodeDO smsCodeDO)throws Exception {
@ApiOperation("[立信]学生端 ---登陆验证码:telephone/手机号")
public ResponseVO sendStudentLoginCode(@RequestBody SmsCodeDO smsCodeDO) {
smsCodeService.sendStudentLoginCode(smsCodeDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendAdministerLoginCode")
@ApiOperation("中心端 --- 中心端登陆验证码:telephone/手机号")
public ResponseVO sendAdministerLoginCode(@RequestBody AdministerDO administerDO) throws Exception{
public ResponseVO sendAdministerLoginCode(@RequestBody AdministerDO administerDO) {
smsCodeService.sendAdministerLoginCode(administerDO);
return ResponseData.generateCreatedResponse(0);
}
@PostMapping(value = "/sendJudgeLoginCode")
@ApiOperation("评审端 ---登陆验证码:telephone/手机号")
public ResponseVO sendJudgeLoginCode(@RequestBody SmsCodeDO smsCodeDO) throws Exception{
public ResponseVO sendJudgeLoginCode(@RequestBody SmsCodeDO smsCodeDO) {
smsCodeService.sendJudgeLoginCode(smsCodeDO);
return ResponseData.generateCreatedResponse(0);
}
......
......@@ -35,7 +35,7 @@ public class SmsNoticeController {
@PostMapping(value = "batchSend")
@LoginRequired({Platform.center})
@ApiOperation("管理端 -- 批量发送短信:matchId/赛事年份ID、projectGroup/组别、projectSchedule/阶段、projectStatus/状态、name/搜索名称")
@ApiOperation("####管理端 -- 批量发送短信:matchId/赛事年份ID、projectGroup/组别、projectSchedule/阶段、projectStatus/状态、name/搜索名称")
public ResponseVO batchSend(@RequestBody SmsNoticeDTO smsNoticeDTO) {
smsNoticeService.batchSend(smsNoticeDTO);
return ResponseData.generateCreatedResponse(0);
......@@ -43,7 +43,7 @@ public class SmsNoticeController {
@PostMapping(value = "send")
@LoginRequired({Platform.center})
@ApiOperation("管理端 -- 发送短信:ids/项目ID(数组)")
@ApiOperation("####管理端 -- 发送短信:ids/项目ID(数组)")
public ResponseVO send(@RequestBody SmsNoticeDTO smsNoticeDTO) {
smsNoticeService.send(smsNoticeDTO);
return ResponseData.generateCreatedResponse(0);
......@@ -51,7 +51,7 @@ public class SmsNoticeController {
@PostMapping(value = "getListByPage")
@LoginRequired({Platform.center})
@ApiOperation("管理端 -- 发送短信记录:date/日期、name/搜索名称、pageNo、pageSize")
@ApiOperation("####管理端 -- 发送短信记录:date/日期、name/搜索名称、pageNo、pageSize")
public ResponseVO getListByPage(@RequestBody SmsNoticePageDTO smsNoticePageDTO) {
return ResponseData.generateCreatedResponse(0, smsNoticeService.getListByPage(smsNoticePageDTO));
}
......
......@@ -33,14 +33,14 @@ public class StudentController {
private StudentService studentService;
@PostMapping(value = "/register")
@ApiOperation("注册:name/真实姓名, idCard/身份证, telephone/手机号, code/验证码, " +
"education/学历层次, school/就读院校, major/就读专业, enrollmentDate/入学年份, graduateDate/毕业年份 sex")
@ApiOperation("[立信]注册:name/真实姓名, idCard/身份证, telephone/手机号, code/验证码, " +
"education/学历层次, school/就读院校, major/就读专业, enrollmentDate/入学年份, graduateDate/毕业年份")
public ResponseVO register(@RequestBody RegisterDTO registerDTO) {
return ResponseData.generateCreatedResponse(0, studentService.register(registerDTO));
}
@PostMapping(value = "/login")
@ApiOperation("登陆:telephone/手机号, code/验证码")
@ApiOperation("####登陆:telephone/手机号, code/验证码")
public ResponseVO login(@RequestBody LoginDTO loginDTO) {
return ResponseData.generateCreatedResponse(0, studentService.login(loginDTO));
}
......@@ -52,5 +52,4 @@ public class StudentController {
studentService.updateStudentInfo(studentDO);
return ResponseData.generateCreatedResponse(0);
}
}
......@@ -31,7 +31,7 @@ public class YearDictController {
private YearDictService yearDictService;
@PostMapping("queryYears")
@ApiOperation("查询年份")
@ApiOperation("####查询年份")
public ResponseVO queryYears(){
return ResponseData.generateCreatedResponse(0,yearDictService.queryYears());
}
......
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.model.AdministerDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.administer.GetAdministerPageVO;
import org.springframework.stereotype.Repository;
/**
......@@ -15,4 +17,8 @@ import org.springframework.stereotype.Repository;
@Repository
public interface AdministerDAO extends BaseMapper<AdministerDO> {
IPage<GetAdministerPageVO> getAdministerPage(IPage iPage, String listItem, String username);
void updateAdminister(AdministerDO administerDO);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.DrawLotsJudgeNumDO;
import com.zhongzhi.model.AdministerTrackMappingDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.model.ProjectTrackDO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-07-10
*/
* <p>
* 赛道管理员映射表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
@Repository
public interface DrawLotsJudgeNumMapper extends BaseMapper<DrawLotsJudgeNumDO> {
public interface AdministerTrackMappingDAO extends BaseMapper<AdministerTrackMappingDO> {
List<ProjectTrackDO> administerTracks(Long userId);
}
}
......@@ -2,6 +2,7 @@ package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.dto.college.ExportCollegeDTO;
import com.zhongzhi.model.CollegesDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.college.AwardedListVO;
......@@ -28,8 +29,6 @@ public interface CollegesDictDAO extends BaseMapper<CollegesDictDO> {
List<AwardedListVO> getAwardedListAll();
List<GetCollegeInfoVO> getCollegeInfo(String name,String education,Long sceneId);
List<GetCollegeInfoVO> getSceneCollegeInfo(String name,String education,Long sceneId);
List<GetCollegeInfoVO> getCollegeInfo(String name);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.DrawLotGroupDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.drawlots.GroupJudgesVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@Repository
public interface DrawLotGroupDictMapper extends BaseMapper<DrawLotGroupDictDO> {
/**
* 组别下的成员
*/
List<GroupJudgesVO> groupJudges(Long groupId, String roleType);
/**
* 查看组别下的编号
*/
List<Integer> groupNums(Long groupId);
}
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.model.DrawLotGroupDictDO;
import com.zhongzhi.model.DrawLotsGroupItemsDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.drawlots.AllGroupItemsVO;
import com.zhongzhi.vo.drawlots.CollegeProjectsVO;
import com.zhongzhi.vo.drawlots.GroupProjectInfoVO;
import com.zhongzhi.vo.drawlots.MatchProjectsVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@Repository
public interface DrawLotsGroupItemsMapper extends BaseMapper<DrawLotsGroupItemsDO> {
IPage<AllGroupItemsVO> allGroupItems(IPage page,Long sceneId, String projectName,String college);
/**
* 某赛道 没有被选的项目
*/
List<MatchProjectsVO> matchProjects(Long matchId, String projectSchedule);
/**
* 还没有坑位的项目
*/
IPage<CollegeProjectsVO> collegeProjects(IPage iPage,Long sceneId, String college, String projectSchedule, String projectProgress);
/**
* 还没有满的坑位
*/
List<DrawLotGroupDictDO> noFullGroup(Long sceneId,String college,Integer count);
/**
* 查看该组别下的项目
*/
List<GroupProjectInfoVO> groupProjectInfo(Long groupId);
/**
* 某组别已经存在的编码
*/
List<Integer> existNum(Long groupId);
/**
* 某现场某院校组别最小的数量
*/
Integer sceneCollege(Long sceneId,String college);
}
package com.zhongzhi.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhongzhi.model.DrawLotGroupDictDO;
import com.zhongzhi.model.DrawLotsGroupJudgesDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.drawlots.*;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* 赛组评委表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@Repository
public interface DrawLotsGroupJudgesMapper extends BaseMapper<DrawLotsGroupJudgesDO> {
IPage<MatchJudgesVO> matchJudges(IPage page,Long sceneId, String userName, String expectorType, String roleType);
/**
* 选择评委
*/
IPage<SelectJudgesVO> selectJudges(IPage page,Long sceneId,String userName);
/**
* 某组别已经存在的编码
*/
List<Integer> allNum(Long groupId);
/**
* 某组别已经随机到的编码
*/
List<Integer> existNum(Long groupId);
/**
* 当前组的组长
*/
Integer currentGroupLeaderCnt(Long groupId);
/**
* 评委信息
*/
List<DrawJudgeInfoVO> drawJudgeInfo(Long groupId);
/**
* 没有组长的组
*/
List<DrawLotGroupDictDO> noLeaderGroup(Long sceneId);
/**
* 某个类别(行业专家,教育专家)没有满的组员
*/
List<DrawLotGroupDictDO> noMemberGroup(Long sceneId,String teachType);
LoginVO login(String name);
List<ScoreScreenVO> judgeScoreScreen(Long groupId, Integer groupNum);
JudgeFullInfoVO judgeInfo(Long groupId,Integer groupNum);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.DrawLotsScenesDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.project.AllMatchScenesVO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-06-19
*/
@Repository
public interface DrawLotsScenesMapper extends BaseMapper<DrawLotsScenesDO> {
/**
* 某赛道所有现场
*/
List<AllMatchScenesVO> allMatchScenes(Long matchId, String openStatus);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.DrawLotsGroupItemsDO;
import com.zhongzhi.model.DrawLotsScoresDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.drawlots.*;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-07-04
*/
@Repository
public interface DrawLotsScoresMapper extends BaseMapper<DrawLotsScoresDO> {
/**
* 评分--项目列表
*/
List<GroupScoresVO> groupScores(Long sceneId,String projectName,Long groupId);
/**
* 评分--列表里每个角色的评分详情
*/
List<GroupJudgeScoresVO> groupJudgeScores(Long groupId, Long projectId);
/**
* 某评委的评分列表
*/
List<QueryItemsVO> queryItems(Long judgeId);
/**
* 排序
*/
List<GroupRankVO> groupRank(Long groupId);
/**
* 最初前4
*/
List<RankListVO> beforeHand4Project(Long groupId);
/**
* 前4
*/
List<DrawLotsGroupItemsDO> hand4Project(Long groupId);
/**
* 负责人
*/
String groupLeader(Long groupId);
/**
* 最终排位结果
*/
List<RankListVO> rank(Long sceneId,Long groupId,String projectName);
}
......@@ -21,19 +21,7 @@ import java.util.List;
@Repository
public interface MatchDictDAO extends BaseMapper<MatchDictDO> {
IPage<MatchDictVO> getSeedTrackMatchPage(Page page, String matchType);
IPage<MatchDictVO> getSeedTrackMatchPage(Page page);
List<MatchDictDO> getList(@Param("projectType") String projectType, @Param("projectGroup") String projectGroup);
/**
* 职教
*/
MatchDictDO getVocationalCurrentMatch(Long memberId,String progress);
/**
* 种子
* @return
*/
MatchDictDO getSeedCurrentMatch(Long memberId,String progress);
}
......@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhongzhi.model.ProjectDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzhi.vo.project.*;
import com.zhongzhi.vo.student.JudgeThemeDoneVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -22,21 +21,19 @@ import java.util.List;
@Repository
public interface ProjectDAO extends BaseMapper<ProjectDO> {
IPage<ProjectPageVO> getListPage(Page page, Long matchId, Long proposerId, String projectType);
IPage<ProjectPageVO> getListPage(Page page, Long matchId, Long proposerId);
IPage<MainTrackProjectPageVO> getMainTrackProjectPage(Page page, Long matchId, String projectGroup, @Param("type") String type, @Param("projectType") String projectType,
String projectSchedule,
String projectStatus, String itemField, @Param("name") String name);
IPage<SeedTrackProjectPageVO> getSeedTrackProjectPage(Page page, Long matchId, String projectGroup, @Param("type") String type, @Param("projectType") String projectType,
IPage<SeedTrackProjectPageVO> getSeedTrackProjectPage(Page page, Long matchId, String projectGroup,String projectTrack, @Param("type") String type,
@Param("school") String school, String projectSchedule,
String projectStatus, String itemField, @Param("name") String name,@Param("projectProgress") String projectProgress,@Param("themeName")String themeName);
String projectStatus, String itemField, @Param("name") String name,@Param("projectProgress") String projectProgress,Long userId,String college,String projectType,String xueyuan);
IPage<SeedTrackProjectPageVO> getSeedTrackProjectPageCity(Page page, Long matchId, String projectGroup, @Param("type") String type, @Param("projectType") String projectType,
@Param("school") String school, String projectSchedule,
String projectStatus, String itemField, @Param("name") String name,@Param("projectProgress") String projectProgress,@Param("themeName")String themeName);
IPage<ReviewListVO> getReviewList(Page page, String projectName, String projectGroup, String schoolReview, Long matchId, String projectStatus, String schoolAssigned,String projectProgress);
IPage<ReviewListVO> getReviewList(Page page, String projectName, String projectGroup, String projectReview, Long matchId, String projectSchedule,
String projectAssigned,String projectProgress,String projectTrack,Long userId,String college,
String xueyuan,String projectType);
IPage<ProjectPageVO> getProjectReviewPage(Page page, Long judgeId, Long matchId, String projectName, String projectSchedule, String projectReview, String projectGroup,String projectProgress);
......@@ -44,7 +41,7 @@ public interface ProjectDAO extends BaseMapper<ProjectDO> {
List<ProjectDO> getProjectByCollege(Long matchId, @Param("name") String name, String projectProgress);
List<ProjectDO> getSeedTrackProjectList(Long matchId, String projectGroup, @Param("name") String name,@Param("projectProgress")String projectProgress);
List<ProjectDO> getSeedTrackProjectList(Long matchId, String projectGroup, @Param("name") String name,@Param("projectProgress")String projectProgress,Long userId,String college);
List<ProjectDO> selectListByCollege(String projectType, String projectGroup, @Param("name") String name);
......@@ -58,11 +55,19 @@ public interface ProjectDAO extends BaseMapper<ProjectDO> {
List<ProjectDO> projects(Long matchId,Long collegeId,String college);
Integer attendCount(Long userId,String matchDate);
Integer collegeNum();
List<ProjectDO> getVocationalReviewNum(Long userId,Long matchId,String college);
List<ProjectDO> getVocationalAssignNum(Long userId,Long matchId,String college);
List<ProjectDO> exportProjectReview(Long userId,Long matchId,String projectSchedule,String college);
List<GetDataDListVO> getDateList(Long matchId);
List<JudgeThemeDoneVO> judgeThemeDone(Long studentId, Long matchId);
List<Long> collegeProjects(String xueyuan,String major,Long matchId);
ProjectDO existProject(Long studentId,Long matchId,String projectGroup,String themeName,String projectStatus,String progress);
Integer projectMembers(Long project,String type);
ProjectDO existVocationalProject(Long studentId,Long matchId,String projectGroup,String themeName,String projectStatus);
ProjectProgressCntVO projectProgressCnt(List<Long> projectIds);
}
......@@ -19,7 +19,7 @@ import org.springframework.stereotype.Repository;
@Repository
public interface ProjectJudgeDAO extends BaseMapper<ProjectJudgeDO> {
IPage<ProjectJudgePageVO> getProjectJudgePage(Page page, String username, Integer status);
IPage<ProjectJudgePageVO> getProjectJudgePage(Page page, String username, Integer status,String projectTrack);
IPage<ProjectJudgePageVO> projectJudgesAssigned(Page page, @Param("matchId") Long matchId, @Param("projectGroup") String projectGroup, @Param("projectSchedule") String projectSchedule);
}
package com.zhongzhi.dao;
import com.zhongzhi.model.MatchCollegeCountDO;
import com.zhongzhi.model.ProjectTrackDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-06-10
*/
@Repository
public interface MatchCollegeCountDAO extends BaseMapper<MatchCollegeCountDO> {
* <p>
* 赛道字典表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2025-03-28
*/
public interface ProjectTrackDAO extends BaseMapper<ProjectTrackDO> {
}
}
package com.zhongzhi.dto.project;
package com.zhongzhi.dto.administer;
import lombok.Data;
@Data
public class AttendCountDTO {
public class AdministerTracksDTO {
private Long userId;
private String matchDate;
private Long matchId;
}
package com.zhongzhi.dto.administer;
import com.zhongzhi.model.AdministerDO;
import lombok.Data;
import java.util.List;
@Data
public class CreateAdministerDTO extends AdministerDO {
private List<Long> trackIds;
private List<Long> permissionIds;
}
......@@ -8,4 +8,9 @@ public class LoginDTO {
private String telephone;
private String code;
private String accountName;
private String password;
}
......@@ -11,7 +11,4 @@ public class GetCollegesListDTO {
private String name;
private String education;
private Long sceneId;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
import java.util.List;
@Data
public class AddJudgeDTO {
private List<Long> judgeIds;
private Long sceneId;
/**
* 专家类型
*/
private String expectorType;
/**
* 角色类型
*/
private String roleType;
private List<Long> ids;
private Long groupId;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
import java.util.List;
@Data
public class AddProjectToSceneDTO {
private List<Long> projectIds;
private Long sceneId;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
@Data
public class AllGroupItemsDTO {
private Long sceneId;
private String projectName;
private String college;
private Integer pageSize;
private Integer pageNum;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
@Data
public class CollegeProjectsDTO {
private Long matchId;
private Long sceneId;
private String college;
private Integer pageSize;
private Integer pageNum;
private String projectProgress;
private String projectSchedule;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
@Data
public class DrawLoginDTO {
private String name;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
@Data
public class GroupScoresDTO {
private Long sceneId;
private String projectName;
private Long groupId;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
import java.util.List;
@Data
public class JudgeScoreScreenDTO {
private Long groupId;
private List<Integer> groupNums;
}
package com.zhongzhi.dto.drawlots;
import lombok.Data;
@Data
public class MatchProjectsDTO {
private Long matchId;
private Long sceneId;
private String projectSchedule;
}
package com.zhongzhi.dto.judge;
import lombok.Data;
@Data
public class MatchJudgesDTO {
private Long sceneId;
private Long matchId;
private String userName;
private String expectorType;
private String roleType;
private Integer pageSize;
private Integer pageNum;
}
......@@ -9,6 +9,8 @@ public class ProjectJudgePageDTO {
private String projectGroup;
private String projectTrack;
private String projectSchedule;
private String username;
......
package com.zhongzhi.dto.match;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhongzhi.model.MatchScheduleDO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
......@@ -24,11 +26,13 @@ public class MatchDictDTO {
/**
* 报名开始时间
*/
@JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
private Date startTime;
/**
* 报名结束时间
*/
@JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", timezone = "GMT+8")
private Date endTime;
/**
......
......@@ -9,8 +9,6 @@ public class CreateProjectMemberDTO {
private Long id;
private String themeName;
/**
* 姓名
*/
......@@ -31,10 +29,6 @@ public class CreateProjectMemberDTO {
*/
private String idCard;
/**
* 证件类型
*/
private String idCardType;
/**
* 就读专业
......@@ -61,8 +55,6 @@ public class CreateProjectMemberDTO {
*/
private String email;
private String studyCountry;
/**
* 团队成员
*/
......@@ -85,6 +77,4 @@ public class CreateProjectMemberDTO {
private String fiveYears;
private String nation;
}
......@@ -36,6 +36,4 @@ public class MentorDTO {
* 身份证号
*/
private String idCard;
private String nation;
}
......@@ -38,11 +38,6 @@ public class TeamMemberDTO {
private String idCard;
/**
* 证件类型
*/
private String idCardType;
/**
* 学籍号
*/
private String studentNo;
......@@ -51,12 +46,4 @@ public class TeamMemberDTO {
* 手机号
*/
private String teamTelephone;
private String email;
private String contractMethod;
private String nation;
private String studyCountry;
}
......@@ -133,11 +133,8 @@ public class CreateMainTrackProjectDTO {
*/
private String materialsName;
/**
* 地址
*/
private String materialsUrl;
private String languageType;
}
......@@ -8,8 +8,6 @@ import java.util.List;
@Data
public class CreateSeedTrackProjectDTO {
private String themeName;
private String projectName;
/**
......
......@@ -6,156 +6,11 @@ import lombok.Data;
import java.util.List;
@Data
public class CreateVocationalProjectDTO {
public class CreateVocationalProjectDTO extends ProjectDO {
private Long id;
/**
* 所属领域
*/
private String itemField;
/**
* 项目LOGO
*/
private String logoUri;
/**
* 项目名称
*/
private String projectName;
/**
* 项目概述
*/
private String projectIntro;
/**
* 国家级重大、重点科研项目的科研成果转化项目
*/
private String projectTransform;
/**
* 学校科技成果转化
*/
private String resultTransfer;
/**
* 参赛申报人为科技成果的完成人或所有人
*/
private String competitionOwner;
/**
* 参赛申报人为科技成果的第一完成人或所有人
*/
private String competitionFirst;
/**
* 师生共创
*/
private String bothInvention;
/**
* 项目进展
*/
private String projectProgress;
/**
* 隐私设置
*/
private String privacySetting;
/**
* 类型
*/
private String materialsType;
/**
* 大小
*/
private String materialsSize;
/**
* 名称
*/
private String materialsName;
private String languageType;
/**
* 地址
*/
private String materialsUrl;
/**
* 项目PPT地址
*/
private String projectPptUrl;
/**
* 项目PPT类型
*/
private String projectPptType;
private String projectPptTypeEn;
private String projectStage;
// 公司信息
/**
* 公司名称
*/
private String companyName;
/**
* 法人姓名
*/
private String legalPersonName;
/**
* 职务
*/
private String position;
/**
* 注册资金
*/
private String registerFund;
/**
* 注册时间
*/
private String registerDate;
/**
* 注册省份
*/
private String registerProvince;
/**
* 注册地址
*/
private String registerAddress;
/**
* 统一社会信用代码
*/
private String unifyCode;
/**
* 财务报表
*/
private String financialStatement;
/**
* 项目是否获得投资
*/
private String investment;
private String vodUrl;
/**
* 股权结构
*/
private List<ProjectOwnershipStructureDO> ownership;
......@@ -189,20 +44,4 @@ public class CreateVocationalProjectDTO {
* 商标
*/
private List<ProjectTrademarkDO> trademark;
private String projectPptUrlEn;
private String projectPptNameEn;
private String projectNameEn;
/**
* 项目PPT名称
*/
private String projectPptName;
private List<ProjectMaterialsDO> projectMaterialsEn;
private List<ProjectMaterialsDO> projectMaterialsCn;
}
......@@ -8,4 +8,6 @@ public class DataOverviewDTO {
private String projectGroup;
private String projectType;
private Long matchId;
}
package com.zhongzhi.dto.project;
import lombok.Data;
@Data
public class DownloadCulturalPDFDTO {
private String themeName;
}
......@@ -6,44 +6,48 @@ import lombok.Data;
@Data
public class ExportProjectDTO {
@ExcelColumn(col = 1, value = "序号")
private String id;
@ExcelColumn(col = 2, value = "届数")
@ExcelColumn(col = 1, value = "届数")
private String matchName;
@ExcelColumn(col = 3, value = "项目名称")
@ExcelColumn(col = 2, value = "项目名称")
private String projectName;
@ExcelColumn(col = 3, value = "项目简介")
private String projectIntro;
@ExcelColumn(col = 4, value = "组别")
private String projectProgress;
private String projectGroup;
@ExcelColumn(col = 5, value = "项目类型")
private String projectType;
@ExcelColumn(col = 6, value = "所属行业")
private String classification;
@ExcelColumn(col = 5, value = "负责人")
@ExcelColumn(col = 7, value = "负责人")
private String name;
@ExcelColumn(col = 6, value = "院校")
// @ExcelColumn(col = 8, value = "院校")
private String college;
@ExcelColumn(col = 7, value = "学籍号")
private String studentNo;
@ExcelColumn(col = 8, value = "学院")
private String xueyuan;
@ExcelColumn(col = 8, value = "专业")
@ExcelColumn(col = 9, value = "专业")
private String major;
@ExcelColumn(col = 9, value = "手机号")
@ExcelColumn(col = 10, value = "手机号")
private String telephone;
@ExcelColumn(col = 10, value = "团队成员")
@ExcelColumn(col = 11, value = "团队成员")
private String teamMembers;
@ExcelColumn(col = 11, value = "指导老师")
@ExcelColumn(col = 12, value = "指导老师")
private String teachers;
@ExcelColumn(col = 12, value = "项目阶段")
@ExcelColumn(col = 13, value = "项目阶段")
private String projectSchedule;
@ExcelColumn(col = 13, value = "项目状态")
@ExcelColumn(col = 14, value = "项目状态")
private String projectStatus;
}
......@@ -12,6 +12,4 @@ public class PrintAttachmentDTO {
private String printAttachmentName;
private String projectGroup;
private String themeName;
}
This diff could not be displayed because it is too large.
This file is too large to display.
No preview for this file type
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!