diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..355ef1b
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+spring
\ No newline at end of file
diff --git a/.idea/Sport.iml b/.idea/Sport.iml
new file mode 100644
index 0000000..c02b99a
--- /dev/null
+++ b/.idea/Sport.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..652ff09
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..03d9549
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..fd27291
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..ebb13a4
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml
new file mode 100644
index 0000000..ff2ddb7
--- /dev/null
+++ b/.idea/sqldialects.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/webContexts.xml b/.idea/webContexts.xml
new file mode 100644
index 0000000..5b04347
--- /dev/null
+++ b/.idea/webContexts.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 824968f..0000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Sport
-
diff --git a/src/main/java/com/annotation/APPLoginUser.java b/src/main/java/com/annotation/APPLoginUser.java
new file mode 100644
index 0000000..21d41b9
--- /dev/null
+++ b/src/main/java/com/annotation/APPLoginUser.java
@@ -0,0 +1,15 @@
+package com.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 登录用户信息
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface APPLoginUser {
+
+}
diff --git a/src/main/java/com/annotation/IgnoreAuth.java b/src/main/java/com/annotation/IgnoreAuth.java
new file mode 100644
index 0000000..7c3cc55
--- /dev/null
+++ b/src/main/java/com/annotation/IgnoreAuth.java
@@ -0,0 +1,13 @@
+package com.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 忽略Token验证
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface IgnoreAuth {
+
+}
diff --git a/src/main/java/com/annotation/LoginUser.java b/src/main/java/com/annotation/LoginUser.java
new file mode 100644
index 0000000..3d808d3
--- /dev/null
+++ b/src/main/java/com/annotation/LoginUser.java
@@ -0,0 +1,15 @@
+package com.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 登录用户信息
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface LoginUser {
+
+}
diff --git a/src/main/java/com/config/MyMetaObjectHandler.java b/src/main/java/com/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..2f9e793
--- /dev/null
+++ b/src/main/java/com/config/MyMetaObjectHandler.java
@@ -0,0 +1,28 @@
+package com.config;
+
+import java.util.Date;
+
+import org.apache.ibatis.reflection.MetaObject;
+
+import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
+
+/**
+ * 自定义填充处理器
+ */
+public class MyMetaObjectHandler extends MetaObjectHandler {
+
+ @Override
+ public void insertFill(MetaObject metaObject) {
+ this.setFieldValByName("ctime", new Date(), metaObject);
+ }
+
+ @Override
+ public boolean openUpdateFill() {
+ return false;
+ }
+
+ @Override
+ public void updateFill(MetaObject metaObject) {
+ // 关闭更新填充、这里不执行
+ }
+}
diff --git a/src/main/java/com/controller/BisaibaomingController.java b/src/main/java/com/controller/BisaibaomingController.java
new file mode 100644
index 0000000..ba89cd9
--- /dev/null
+++ b/src/main/java/com/controller/BisaibaomingController.java
@@ -0,0 +1,215 @@
+package com.controller;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Date;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+
+import com.utils.ValidatorUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.annotation.IgnoreAuth;
+
+import com.entity.BisaibaomingEntity;
+import com.entity.view.BisaibaomingView;
+
+import com.service.BisaibaomingService;
+import com.service.TokenService;
+import com.utils.PageUtils;
+import com.utils.R;
+import com.utils.MD5Util;
+import com.utils.MPUtil;
+import com.utils.CommonUtil;
+
+
+/**
+ * 比赛报名
+ * 后端接口
+ * @author
+ * @email
+ * @date 2021-03-24 19:14:37
+ */
+@RestController
+@RequestMapping("/bisaibaoming")
+public class BisaibaomingController {
+ @Autowired
+ private BisaibaomingService bisaibaomingService;
+
+
+
+ /**
+ * 后端列表
+ */
+ @RequestMapping("/page")
+ public R page(@RequestParam Map params,BisaibaomingEntity bisaibaoming,
+ HttpServletRequest request){
+
+ String tableName = request.getSession().getAttribute("tableName").toString();
+ if(tableName.equals("duiyuan")) {
+ bisaibaoming.setDuiyuanzhanghao((String)request.getSession().getAttribute("username"));
+ }
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = bisaibaomingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaibaoming), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 前端列表
+ */
+ @RequestMapping("/list")
+ public R list(@RequestParam Map params,BisaibaomingEntity bisaibaoming, HttpServletRequest request){
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = bisaibaomingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaibaoming), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 列表
+ */
+ @RequestMapping("/lists")
+ public R list( BisaibaomingEntity bisaibaoming){
+ EntityWrapper ew = new EntityWrapper();
+ ew.allEq(MPUtil.allEQMapPre( bisaibaoming, "bisaibaoming"));
+ return R.ok().put("data", bisaibaomingService.selectListView(ew));
+ }
+
+ /**
+ * 查询
+ */
+ @RequestMapping("/query")
+ public R query(BisaibaomingEntity bisaibaoming){
+ EntityWrapper< BisaibaomingEntity> ew = new EntityWrapper< BisaibaomingEntity>();
+ ew.allEq(MPUtil.allEQMapPre( bisaibaoming, "bisaibaoming"));
+ BisaibaomingView bisaibaomingView = bisaibaomingService.selectView(ew);
+ return R.ok("查询比赛报名成功").put("data", bisaibaomingView);
+ }
+
+ /**
+ * 后端详情
+ */
+ @RequestMapping("/info/{id}")
+ public R info(@PathVariable("id") Long id){
+ BisaibaomingEntity bisaibaoming = bisaibaomingService.selectById(id);
+ return R.ok().put("data", bisaibaoming);
+ }
+
+ /**
+ * 前端详情
+ */
+ @RequestMapping("/detail/{id}")
+ public R detail(@PathVariable("id") Long id){
+ BisaibaomingEntity bisaibaoming = bisaibaomingService.selectById(id);
+ return R.ok().put("data", bisaibaoming);
+ }
+
+
+
+
+ /**
+ * 后端保存
+ */
+ @RequestMapping("/save")
+ public R save(@RequestBody BisaibaomingEntity bisaibaoming, HttpServletRequest request){
+ bisaibaoming.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(bisaibaoming);
+
+ bisaibaomingService.insert(bisaibaoming);
+ return R.ok();
+ }
+
+ /**
+ * 前端保存
+ */
+ @RequestMapping("/add")
+ public R add(@RequestBody BisaibaomingEntity bisaibaoming, HttpServletRequest request){
+ bisaibaoming.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(bisaibaoming);
+
+ bisaibaomingService.insert(bisaibaoming);
+ return R.ok();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping("/update")
+ public R update(@RequestBody BisaibaomingEntity bisaibaoming, HttpServletRequest request){
+ //ValidatorUtils.validateEntity(bisaibaoming);
+ bisaibaomingService.updateById(bisaibaoming);//全部更新
+ return R.ok();
+ }
+
+
+ /**
+ * 删除
+ */
+ @RequestMapping("/delete")
+ public R delete(@RequestBody Long[] ids){
+ bisaibaomingService.deleteBatchIds(Arrays.asList(ids));
+ return R.ok();
+ }
+
+ /**
+ * 提醒接口
+ */
+ @RequestMapping("/remind/{columnName}/{type}")
+ public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
+ @PathVariable("type") String type,@RequestParam Map map) {
+ map.put("column", columnName);
+ map.put("type", type);
+
+ if(type.equals("2")) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ Date remindStartDate = null;
+ Date remindEndDate = null;
+ if(map.get("remindstart")!=null) {
+ Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindStart);
+ remindStartDate = c.getTime();
+ map.put("remindstart", sdf.format(remindStartDate));
+ }
+ if(map.get("remindend")!=null) {
+ Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindEnd);
+ remindEndDate = c.getTime();
+ map.put("remindend", sdf.format(remindEndDate));
+ }
+ }
+
+ Wrapper wrapper = new EntityWrapper();
+ if(map.get("remindstart")!=null) {
+ wrapper.ge(columnName, map.get("remindstart"));
+ }
+ if(map.get("remindend")!=null) {
+ wrapper.le(columnName, map.get("remindend"));
+ }
+
+ String tableName = request.getSession().getAttribute("tableName").toString();
+ if(tableName.equals("duiyuan")) {
+ wrapper.eq("duiyuanzhanghao", (String)request.getSession().getAttribute("username"));
+ }
+
+ int count = bisaibaomingService.selectCount(wrapper);
+ return R.ok().put("count", count);
+ }
+
+
+
+}
diff --git a/src/main/java/com/controller/BisaixiangmuController.java b/src/main/java/com/controller/BisaixiangmuController.java
new file mode 100644
index 0000000..8ea9832
--- /dev/null
+++ b/src/main/java/com/controller/BisaixiangmuController.java
@@ -0,0 +1,207 @@
+package com.controller;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Date;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+
+import com.utils.ValidatorUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.annotation.IgnoreAuth;
+
+import com.entity.BisaixiangmuEntity;
+import com.entity.view.BisaixiangmuView;
+
+import com.service.BisaixiangmuService;
+import com.service.TokenService;
+import com.utils.PageUtils;
+import com.utils.R;
+import com.utils.MD5Util;
+import com.utils.MPUtil;
+import com.utils.CommonUtil;
+
+
+/**
+ * 比赛项目
+ * 后端接口
+ * @author
+ * @email
+ * @date 2021-03-24 19:14:37
+ */
+@RestController
+@RequestMapping("/bisaixiangmu")
+public class BisaixiangmuController {
+ @Autowired
+ private BisaixiangmuService bisaixiangmuService;
+
+
+
+ /**
+ * 后端列表
+ */
+ @RequestMapping("/page")
+ public R page(@RequestParam Map params,BisaixiangmuEntity bisaixiangmu,
+ HttpServletRequest request){
+
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = bisaixiangmuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixiangmu), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 前端列表
+ */
+ @RequestMapping("/list")
+ public R list(@RequestParam Map params,BisaixiangmuEntity bisaixiangmu, HttpServletRequest request){
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = bisaixiangmuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixiangmu), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 列表
+ */
+ @RequestMapping("/lists")
+ public R list( BisaixiangmuEntity bisaixiangmu){
+ EntityWrapper ew = new EntityWrapper();
+ ew.allEq(MPUtil.allEQMapPre( bisaixiangmu, "bisaixiangmu"));
+ return R.ok().put("data", bisaixiangmuService.selectListView(ew));
+ }
+
+ /**
+ * 查询
+ */
+ @RequestMapping("/query")
+ public R query(BisaixiangmuEntity bisaixiangmu){
+ EntityWrapper< BisaixiangmuEntity> ew = new EntityWrapper< BisaixiangmuEntity>();
+ ew.allEq(MPUtil.allEQMapPre( bisaixiangmu, "bisaixiangmu"));
+ BisaixiangmuView bisaixiangmuView = bisaixiangmuService.selectView(ew);
+ return R.ok("查询比赛项目成功").put("data", bisaixiangmuView);
+ }
+
+ /**
+ * 后端详情
+ */
+ @RequestMapping("/info/{id}")
+ public R info(@PathVariable("id") Long id){
+ BisaixiangmuEntity bisaixiangmu = bisaixiangmuService.selectById(id);
+ return R.ok().put("data", bisaixiangmu);
+ }
+
+ /**
+ * 前端详情
+ */
+ @RequestMapping("/detail/{id}")
+ public R detail(@PathVariable("id") Long id){
+ BisaixiangmuEntity bisaixiangmu = bisaixiangmuService.selectById(id);
+ return R.ok().put("data", bisaixiangmu);
+ }
+
+
+
+
+ /**
+ * 后端保存
+ */
+ @RequestMapping("/save")
+ public R save(@RequestBody BisaixiangmuEntity bisaixiangmu, HttpServletRequest request){
+ bisaixiangmu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(bisaixiangmu);
+
+ bisaixiangmuService.insert(bisaixiangmu);
+ return R.ok();
+ }
+
+ /**
+ * 前端保存
+ */
+ @RequestMapping("/add")
+ public R add(@RequestBody BisaixiangmuEntity bisaixiangmu, HttpServletRequest request){
+ bisaixiangmu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(bisaixiangmu);
+
+ bisaixiangmuService.insert(bisaixiangmu);
+ return R.ok();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping("/update")
+ public R update(@RequestBody BisaixiangmuEntity bisaixiangmu, HttpServletRequest request){
+ //ValidatorUtils.validateEntity(bisaixiangmu);
+ bisaixiangmuService.updateById(bisaixiangmu);//全部更新
+ return R.ok();
+ }
+
+
+ /**
+ * 删除
+ */
+ @RequestMapping("/delete")
+ public R delete(@RequestBody Long[] ids){
+ bisaixiangmuService.deleteBatchIds(Arrays.asList(ids));
+ return R.ok();
+ }
+
+ /**
+ * 提醒接口
+ */
+ @RequestMapping("/remind/{columnName}/{type}")
+ public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
+ @PathVariable("type") String type,@RequestParam Map map) {
+ map.put("column", columnName);
+ map.put("type", type);
+
+ if(type.equals("2")) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ Date remindStartDate = null;
+ Date remindEndDate = null;
+ if(map.get("remindstart")!=null) {
+ Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindStart);
+ remindStartDate = c.getTime();
+ map.put("remindstart", sdf.format(remindStartDate));
+ }
+ if(map.get("remindend")!=null) {
+ Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindEnd);
+ remindEndDate = c.getTime();
+ map.put("remindend", sdf.format(remindEndDate));
+ }
+ }
+
+ Wrapper wrapper = new EntityWrapper();
+ if(map.get("remindstart")!=null) {
+ wrapper.ge(columnName, map.get("remindstart"));
+ }
+ if(map.get("remindend")!=null) {
+ wrapper.le(columnName, map.get("remindend"));
+ }
+
+
+ int count = bisaixiangmuService.selectCount(wrapper);
+ return R.ok().put("count", count);
+ }
+
+
+
+}
diff --git a/src/main/java/com/controller/BisaixinxiController.java b/src/main/java/com/controller/BisaixinxiController.java
new file mode 100644
index 0000000..21a8a45
--- /dev/null
+++ b/src/main/java/com/controller/BisaixinxiController.java
@@ -0,0 +1,209 @@
+package com.controller;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Date;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+
+import com.utils.ValidatorUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.annotation.IgnoreAuth;
+
+import com.entity.BisaixinxiEntity;
+import com.entity.view.BisaixinxiView;
+
+import com.service.BisaixinxiService;
+import com.service.TokenService;
+import com.utils.PageUtils;
+import com.utils.R;
+import com.utils.MD5Util;
+import com.utils.MPUtil;
+import com.utils.CommonUtil;
+
+
+/**
+ * 比赛信息
+ * 后端接口
+ * @author
+ * @email
+ * @date 2021-03-24 19:14:37
+ */
+@RestController
+@RequestMapping("/bisaixinxi")
+public class BisaixinxiController {
+ @Autowired
+ private BisaixinxiService bisaixinxiService;
+
+
+
+ /**
+ * 后端列表
+ */
+ @RequestMapping("/page")
+ public R page(@RequestParam Map params,BisaixinxiEntity bisaixinxi,
+ HttpServletRequest request){
+
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = bisaixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixinxi), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 前端列表
+ */
+ @IgnoreAuth
+ @RequestMapping("/list")
+ public R list(@RequestParam Map params,BisaixinxiEntity bisaixinxi, HttpServletRequest request){
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = bisaixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bisaixinxi), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 列表
+ */
+ @RequestMapping("/lists")
+ public R list( BisaixinxiEntity bisaixinxi){
+ EntityWrapper ew = new EntityWrapper();
+ ew.allEq(MPUtil.allEQMapPre( bisaixinxi, "bisaixinxi"));
+ return R.ok().put("data", bisaixinxiService.selectListView(ew));
+ }
+
+ /**
+ * 查询
+ */
+ @RequestMapping("/query")
+ public R query(BisaixinxiEntity bisaixinxi){
+ EntityWrapper< BisaixinxiEntity> ew = new EntityWrapper< BisaixinxiEntity>();
+ ew.allEq(MPUtil.allEQMapPre( bisaixinxi, "bisaixinxi"));
+ BisaixinxiView bisaixinxiView = bisaixinxiService.selectView(ew);
+ return R.ok("查询比赛信息成功").put("data", bisaixinxiView);
+ }
+
+ /**
+ * 后端详情
+ */
+ @RequestMapping("/info/{id}")
+ public R info(@PathVariable("id") Long id){
+ BisaixinxiEntity bisaixinxi = bisaixinxiService.selectById(id);
+ return R.ok().put("data", bisaixinxi);
+ }
+
+ /**
+ * 前端详情
+ */
+ @IgnoreAuth
+ @RequestMapping("/detail/{id}")
+ public R detail(@PathVariable("id") Long id){
+ BisaixinxiEntity bisaixinxi = bisaixinxiService.selectById(id);
+ return R.ok().put("data", bisaixinxi);
+ }
+
+
+
+
+ /**
+ * 后端保存
+ */
+ @RequestMapping("/save")
+ public R save(@RequestBody BisaixinxiEntity bisaixinxi, HttpServletRequest request){
+ bisaixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(bisaixinxi);
+
+ bisaixinxiService.insert(bisaixinxi);
+ return R.ok();
+ }
+
+ /**
+ * 前端保存
+ */
+ @RequestMapping("/add")
+ public R add(@RequestBody BisaixinxiEntity bisaixinxi, HttpServletRequest request){
+ bisaixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(bisaixinxi);
+
+ bisaixinxiService.insert(bisaixinxi);
+ return R.ok();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping("/update")
+ public R update(@RequestBody BisaixinxiEntity bisaixinxi, HttpServletRequest request){
+ //ValidatorUtils.validateEntity(bisaixinxi);
+ bisaixinxiService.updateById(bisaixinxi);//全部更新
+ return R.ok();
+ }
+
+
+ /**
+ * 删除
+ */
+ @RequestMapping("/delete")
+ public R delete(@RequestBody Long[] ids){
+ bisaixinxiService.deleteBatchIds(Arrays.asList(ids));
+ return R.ok();
+ }
+
+ /**
+ * 提醒接口
+ */
+ @RequestMapping("/remind/{columnName}/{type}")
+ public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
+ @PathVariable("type") String type,@RequestParam Map map) {
+ map.put("column", columnName);
+ map.put("type", type);
+
+ if(type.equals("2")) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ Date remindStartDate = null;
+ Date remindEndDate = null;
+ if(map.get("remindstart")!=null) {
+ Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindStart);
+ remindStartDate = c.getTime();
+ map.put("remindstart", sdf.format(remindStartDate));
+ }
+ if(map.get("remindend")!=null) {
+ Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindEnd);
+ remindEndDate = c.getTime();
+ map.put("remindend", sdf.format(remindEndDate));
+ }
+ }
+
+ Wrapper wrapper = new EntityWrapper();
+ if(map.get("remindstart")!=null) {
+ wrapper.ge(columnName, map.get("remindstart"));
+ }
+ if(map.get("remindend")!=null) {
+ wrapper.le(columnName, map.get("remindend"));
+ }
+
+
+ int count = bisaixinxiService.selectCount(wrapper);
+ return R.ok().put("count", count);
+ }
+
+
+
+}
diff --git a/src/main/java/com/controller/CaipanyuanController.java b/src/main/java/com/controller/CaipanyuanController.java
new file mode 100644
index 0000000..1fd5bc3
--- /dev/null
+++ b/src/main/java/com/controller/CaipanyuanController.java
@@ -0,0 +1,284 @@
+package com.controller;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Date;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+
+import com.utils.ValidatorUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.annotation.IgnoreAuth;
+
+import com.entity.CaipanyuanEntity;
+import com.entity.view.CaipanyuanView;
+
+import com.service.CaipanyuanService;
+import com.service.TokenService;
+import com.utils.PageUtils;
+import com.utils.R;
+import com.utils.MD5Util;
+import com.utils.MPUtil;
+import com.utils.CommonUtil;
+
+
+/**
+ * 裁判员
+ * 后端接口
+ * @author
+ * @email
+ * @date 2021-03-24 19:14:37
+ */
+@RestController
+@RequestMapping("/caipanyuan")
+public class CaipanyuanController {
+ @Autowired
+ private CaipanyuanService caipanyuanService;
+
+ @Autowired
+ private TokenService tokenService;
+
+ /**
+ * 登录
+ */
+ @IgnoreAuth
+ @RequestMapping(value = "/login")
+ public R login(String username, String password, String captcha, HttpServletRequest request) {
+ CaipanyuanEntity user = caipanyuanService.selectOne(new EntityWrapper().eq("zhanghao", username));
+ if(user==null || !user.getMima().equals(password)) {
+ return R.error("账号或密码不正确");
+ }
+ String token = tokenService.generateToken(user.getId(), username,"caipanyuan", "裁判员" );
+ return R.ok().put("token", token);
+ }
+
+ /**
+ * 注册
+ */
+ @IgnoreAuth
+ @RequestMapping("/register")
+ public R register(@RequestBody CaipanyuanEntity caipanyuan){
+ //ValidatorUtils.validateEntity(caipanyuan);
+ CaipanyuanEntity user = caipanyuanService.selectOne(new EntityWrapper().eq("zhanghao", caipanyuan.getZhanghao()));
+ if(user!=null) {
+ return R.error("注册用户已存在");
+ }
+ Long uId = new Date().getTime();
+ caipanyuan.setId(uId);
+ caipanyuanService.insert(caipanyuan);
+ return R.ok();
+ }
+
+ /**
+ * 退出
+ */
+ @RequestMapping("/logout")
+ public R logout(HttpServletRequest request) {
+ request.getSession().invalidate();
+ return R.ok("退出成功");
+ }
+
+ /**
+ * 获取用户的session用户信息
+ */
+ @RequestMapping("/session")
+ public R getCurrUser(HttpServletRequest request){
+ Long id = (Long)request.getSession().getAttribute("userId");
+ CaipanyuanEntity user = caipanyuanService.selectById(id);
+ return R.ok().put("data", user);
+ }
+
+ /**
+ * 密码重置
+ */
+ @IgnoreAuth
+ @RequestMapping(value = "/resetPass")
+ public R resetPass(String username, HttpServletRequest request){
+ CaipanyuanEntity user = caipanyuanService.selectOne(new EntityWrapper().eq("zhanghao", username));
+ if(user==null) {
+ return R.error("账号不存在");
+ }
+ user.setMima("123456");
+ caipanyuanService.updateById(user);
+ return R.ok("密码已重置为:123456");
+ }
+
+
+ /**
+ * 后端列表
+ */
+ @RequestMapping("/page")
+ public R page(@RequestParam Map params,CaipanyuanEntity caipanyuan,
+ HttpServletRequest request){
+
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = caipanyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, caipanyuan), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 前端列表
+ */
+ @RequestMapping("/list")
+ public R list(@RequestParam Map params,CaipanyuanEntity caipanyuan, HttpServletRequest request){
+ EntityWrapper ew = new EntityWrapper();
+ PageUtils page = caipanyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, caipanyuan), params), params));
+ return R.ok().put("data", page);
+ }
+
+ /**
+ * 列表
+ */
+ @RequestMapping("/lists")
+ public R list( CaipanyuanEntity caipanyuan){
+ EntityWrapper ew = new EntityWrapper();
+ ew.allEq(MPUtil.allEQMapPre( caipanyuan, "caipanyuan"));
+ return R.ok().put("data", caipanyuanService.selectListView(ew));
+ }
+
+ /**
+ * 查询
+ */
+ @RequestMapping("/query")
+ public R query(CaipanyuanEntity caipanyuan){
+ EntityWrapper< CaipanyuanEntity> ew = new EntityWrapper< CaipanyuanEntity>();
+ ew.allEq(MPUtil.allEQMapPre( caipanyuan, "caipanyuan"));
+ CaipanyuanView caipanyuanView = caipanyuanService.selectView(ew);
+ return R.ok("查询裁判员成功").put("data", caipanyuanView);
+ }
+
+ /**
+ * 后端详情
+ */
+ @RequestMapping("/info/{id}")
+ public R info(@PathVariable("id") Long id){
+ CaipanyuanEntity caipanyuan = caipanyuanService.selectById(id);
+ return R.ok().put("data", caipanyuan);
+ }
+
+ /**
+ * 前端详情
+ */
+ @RequestMapping("/detail/{id}")
+ public R detail(@PathVariable("id") Long id){
+ CaipanyuanEntity caipanyuan = caipanyuanService.selectById(id);
+ return R.ok().put("data", caipanyuan);
+ }
+
+
+
+
+ /**
+ * 后端保存
+ */
+ @RequestMapping("/save")
+ public R save(@RequestBody CaipanyuanEntity caipanyuan, HttpServletRequest request){
+ caipanyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(caipanyuan);
+ CaipanyuanEntity user = caipanyuanService.selectOne(new EntityWrapper().eq("zhanghao", caipanyuan.getZhanghao()));
+ if(user!=null) {
+ return R.error("用户已存在");
+ }
+
+ caipanyuan.setId(new Date().getTime());
+ caipanyuanService.insert(caipanyuan);
+ return R.ok();
+ }
+
+ /**
+ * 前端保存
+ */
+ @RequestMapping("/add")
+ public R add(@RequestBody CaipanyuanEntity caipanyuan, HttpServletRequest request){
+ caipanyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
+ //ValidatorUtils.validateEntity(caipanyuan);
+ CaipanyuanEntity user = caipanyuanService.selectOne(new EntityWrapper().eq("zhanghao", caipanyuan.getZhanghao()));
+ if(user!=null) {
+ return R.error("用户已存在");
+ }
+
+ caipanyuan.setId(new Date().getTime());
+ caipanyuanService.insert(caipanyuan);
+ return R.ok();
+ }
+
+ /**
+ * 修改
+ */
+ @RequestMapping("/update")
+ public R update(@RequestBody CaipanyuanEntity caipanyuan, HttpServletRequest request){
+ //ValidatorUtils.validateEntity(caipanyuan);
+ caipanyuanService.updateById(caipanyuan);//全部更新
+ return R.ok();
+ }
+
+
+ /**
+ * 删除
+ */
+ @RequestMapping("/delete")
+ public R delete(@RequestBody Long[] ids){
+ caipanyuanService.deleteBatchIds(Arrays.asList(ids));
+ return R.ok();
+ }
+
+ /**
+ * 提醒接口
+ */
+ @RequestMapping("/remind/{columnName}/{type}")
+ public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
+ @PathVariable("type") String type,@RequestParam Map map) {
+ map.put("column", columnName);
+ map.put("type", type);
+
+ if(type.equals("2")) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ Date remindStartDate = null;
+ Date remindEndDate = null;
+ if(map.get("remindstart")!=null) {
+ Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindStart);
+ remindStartDate = c.getTime();
+ map.put("remindstart", sdf.format(remindStartDate));
+ }
+ if(map.get("remindend")!=null) {
+ Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindEnd);
+ remindEndDate = c.getTime();
+ map.put("remindend", sdf.format(remindEndDate));
+ }
+ }
+
+ Wrapper wrapper = new EntityWrapper();
+ if(map.get("remindstart")!=null) {
+ wrapper.ge(columnName, map.get("remindstart"));
+ }
+ if(map.get("remindend")!=null) {
+ wrapper.le(columnName, map.get("remindend"));
+ }
+
+
+ int count = caipanyuanService.selectCount(wrapper);
+ return R.ok().put("count", count);
+ }
+
+
+
+}
diff --git a/src/main/java/com/controller/CommonController.java b/src/main/java/com/controller/CommonController.java
new file mode 100644
index 0000000..d237d77
--- /dev/null
+++ b/src/main/java/com/controller/CommonController.java
@@ -0,0 +1,258 @@
+package com.controller;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.lang3.StringUtils;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ResourceUtils;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.annotation.IgnoreAuth;
+import com.baidu.aip.face.AipFace;
+import com.baidu.aip.face.MatchRequest;
+import com.baidu.aip.util.Base64Util;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.entity.ConfigEntity;
+import com.service.CommonService;
+import com.service.ConfigService;
+import com.utils.BaiduUtil;
+import com.utils.FileUtil;
+import com.utils.R;
+
+/**
+ * 通用接口
+ */
+@RestController
+public class CommonController{
+ @Autowired
+ private CommonService commonService;
+
+ @Autowired
+ private ConfigService configService;
+
+ private static AipFace client = null;
+
+ private static String BAIDU_DITU_AK = null;
+
+ @RequestMapping("/location")
+ public R location(String lng,String lat) {
+ if(BAIDU_DITU_AK==null) {
+ BAIDU_DITU_AK = configService.selectOne(new EntityWrapper().eq("name", "baidu_ditu_ak")).getValue();
+ if(BAIDU_DITU_AK==null) {
+ return R.error("请在配置管理中正确配置baidu_ditu_ak");
+ }
+ }
+ Map map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
+ return R.ok().put("data", map);
+ }
+
+ /**
+ * 人脸比对
+ *
+ * @param face1 人脸1
+ * @param face2 人脸2
+ * @return
+ */
+ @RequestMapping("/matchFace")
+ public R matchFace(String face1, String face2,HttpServletRequest request) {
+ if(client==null) {
+ /*String AppID = configService.selectOne(new EntityWrapper().eq("name", "AppID")).getValue();*/
+ String APIKey = configService.selectOne(new EntityWrapper().eq("name", "APIKey")).getValue();
+ String SecretKey = configService.selectOne(new EntityWrapper().eq("name", "SecretKey")).getValue();
+ String token = BaiduUtil.getAuth(APIKey, SecretKey);
+ if(token==null) {
+ return R.error("请在配置管理中正确配置APIKey和SecretKey");
+ }
+ client = new AipFace(null, APIKey, SecretKey);
+ client.setConnectionTimeoutInMillis(2000);
+ client.setSocketTimeoutInMillis(60000);
+ }
+ JSONObject res = null;
+ try {
+ File file1 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face1);
+ File file2 = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+face2);
+ String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
+ String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
+ MatchRequest req1 = new MatchRequest(img1, "BASE64");
+ MatchRequest req2 = new MatchRequest(img2, "BASE64");
+ ArrayList requests = new ArrayList();
+ requests.add(req1);
+ requests.add(req2);
+ res = client.match(requests);
+ System.out.println(res.get("result"));
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ return R.error("文件不存在");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
+ }
+
+ /**
+ * 获取table表中的column列表(联动接口)
+ * @param table
+ * @param column
+ * @return
+ */
+ @IgnoreAuth
+ @RequestMapping("/option/{tableName}/{columnName}")
+ public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ if(StringUtils.isNotBlank(level)) {
+ params.put("level", level);
+ }
+ if(StringUtils.isNotBlank(parent)) {
+ params.put("parent", parent);
+ }
+ List data = commonService.getOption(params);
+ return R.ok().put("data", data);
+ }
+
+ /**
+ * 根据table中的column获取单条记录
+ * @param table
+ * @param column
+ * @return
+ */
+ @IgnoreAuth
+ @RequestMapping("/follow/{tableName}/{columnName}")
+ public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ params.put("columnValue", columnValue);
+ Map result = commonService.getFollowByOption(params);
+ return R.ok().put("data", result);
+ }
+
+ /**
+ * 修改table表的sfsh状态
+ * @param table
+ * @param map
+ * @return
+ */
+ @RequestMapping("/sh/{tableName}")
+ public R sh(@PathVariable("tableName") String tableName, @RequestBody Map map) {
+ map.put("table", tableName);
+ commonService.sh(map);
+ return R.ok();
+ }
+
+ /**
+ * 获取需要提醒的记录数
+ * @param tableName
+ * @param columnName
+ * @param type 1:数字 2:日期
+ * @param map
+ * @return
+ */
+ @IgnoreAuth
+ @RequestMapping("/remind/{tableName}/{columnName}/{type}")
+ public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,
+ @PathVariable("type") String type,@RequestParam Map map) {
+ map.put("table", tableName);
+ map.put("column", columnName);
+ map.put("type", type);
+
+ if(type.equals("2")) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Calendar c = Calendar.getInstance();
+ Date remindStartDate = null;
+ Date remindEndDate = null;
+ if(map.get("remindstart")!=null) {
+ Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindStart);
+ remindStartDate = c.getTime();
+ map.put("remindstart", sdf.format(remindStartDate));
+ }
+ if(map.get("remindend")!=null) {
+ Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
+ c.setTime(new Date());
+ c.add(Calendar.DAY_OF_MONTH,remindEnd);
+ remindEndDate = c.getTime();
+ map.put("remindend", sdf.format(remindEndDate));
+ }
+ }
+
+ int count = commonService.remindCount(map);
+ return R.ok().put("count", count);
+ }
+
+ /**
+ * 单列求和
+ */
+ @IgnoreAuth
+ @RequestMapping("/cal/{tableName}/{columnName}")
+ public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ Map result = commonService.selectCal(params);
+ return R.ok().put("data", result);
+ }
+
+ /**
+ * 分组统计
+ */
+ @IgnoreAuth
+ @RequestMapping("/group/{tableName}/{columnName}")
+ public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
+ Map params = new HashMap();
+ params.put("table", tableName);
+ params.put("column", columnName);
+ List