diff --git a/pom.xml b/pom.xml
index 87d0b7f..2959d26 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,7 +65,7 @@
org.springdoc
springdoc-openapi-starter-webmvc-ui
- 2.5.0
+ 2.8.16
com.github.pagehelper
diff --git a/src/main/java/edu/situ/stlserver/controller/CoachController.java b/src/main/java/edu/situ/stlserver/controller/CoachController.java
index 2db0612..df5d415 100644
--- a/src/main/java/edu/situ/stlserver/controller/CoachController.java
+++ b/src/main/java/edu/situ/stlserver/controller/CoachController.java
@@ -1,14 +1,13 @@
package edu.situ.stlserver.controller;
-import edu.situ.stlserver.dao.CoachMapper;
-import edu.situ.stlserver.model.entity.Coach;
+import edu.situ.stlserver.model.dto.CoachAddDTO;
+import edu.situ.stlserver.model.dto.CoachQueryDTO;
import edu.situ.stlserver.model.vo.HttpResult;
import edu.situ.stlserver.service.CoachService;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/coach")
@@ -19,8 +18,29 @@ public class CoachController {
@GetMapping
- public HttpResult getByPage(Integer page , Integer limit , Coach coach)
+ public HttpResult getByPage(Integer page , Integer limit , CoachQueryDTO coachQueryDTO)
{
- return HttpResult.success(coachService.getByPage( page,limit,coach));
+ return HttpResult.success(coachService.getByPage( page,limit, coachQueryDTO));
+ }
+
+ @PutMapping("/{id}/quit")
+ public HttpResult quit(@PathVariable Integer id)
+ {
+ coachService.quit(id);
+ return HttpResult.success();
+ }
+
+ @PutMapping("/{id}/rejoin")
+ public HttpResult rejoin(@PathVariable Integer id)
+ {
+ coachService.rejoin(id);
+ return HttpResult.success();
+ }
+
+ @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+ public HttpResult add(CoachAddDTO coachAddDTO)
+ {
+ coachService.add(coachAddDTO);
+ return HttpResult.success();
}
}
diff --git a/src/main/java/edu/situ/stlserver/dao/CoachMapper.java b/src/main/java/edu/situ/stlserver/dao/CoachMapper.java
index 8270c43..b91025d 100644
--- a/src/main/java/edu/situ/stlserver/dao/CoachMapper.java
+++ b/src/main/java/edu/situ/stlserver/dao/CoachMapper.java
@@ -3,11 +3,8 @@ package edu.situ.stlserver.dao;
import edu.situ.stlserver.model.entity.Coach;
-import edu.situ.stlserver.model.query.CoachQuery;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
+import edu.situ.stlserver.model.dto.CoachQueryDTO;
+import org.apache.ibatis.annotations.*;
import java.util.List;
@@ -32,8 +29,16 @@ public interface CoachMapper {
"",
""
})
- List select(CoachQuery coachQuery);
+ List select(CoachQueryDTO coachQueryDTO);
@Update(value = "UPDATE `coaches` SET `quit_date` = #{quitDate} WHERE `id` = #{id}")
void quit(@Param("id") Integer id,@Param("quitDate") String quitDate);
+
+
+ @Update(value = "UPDATE `coaches` SET `quit_date` = null WHERE `id` = #{id}")
+ void rejoin(Integer id);
+
+ @Insert(value = "INSERT INTO `coaches`(`name`, `sex`, `remark`, `avatar`) VALUES (#{name}, #{sex}, #{remark}, #{avatar})")
+ @Options(useGeneratedKeys = true, keyProperty = "id" , keyColumn = "id")
+ void insert(Coach coach);
}
diff --git a/src/main/java/edu/situ/stlserver/model/dto/CoachAddDTO.java b/src/main/java/edu/situ/stlserver/model/dto/CoachAddDTO.java
new file mode 100644
index 0000000..950ae17
--- /dev/null
+++ b/src/main/java/edu/situ/stlserver/model/dto/CoachAddDTO.java
@@ -0,0 +1,17 @@
+package edu.situ.stlserver.model.dto;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.web.multipart.MultipartFile;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class CoachAddDTO {
+ private String name;
+ private Integer sex;
+ private String remark;
+ private MultipartFile file;
+}
diff --git a/src/main/java/edu/situ/stlserver/model/dto/CoachQueryDTO.java b/src/main/java/edu/situ/stlserver/model/dto/CoachQueryDTO.java
new file mode 100644
index 0000000..437210b
--- /dev/null
+++ b/src/main/java/edu/situ/stlserver/model/dto/CoachQueryDTO.java
@@ -0,0 +1,16 @@
+package edu.situ.stlserver.model.dto;
+
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+
+@ToString
+@NoArgsConstructor
+@Data
+public class CoachQueryDTO {
+ private String name;
+ private Integer sex;
+ private Integer status;
+}
diff --git a/src/main/java/edu/situ/stlserver/service/CoachService.java b/src/main/java/edu/situ/stlserver/service/CoachService.java
index 6da5907..0d6d330 100644
--- a/src/main/java/edu/situ/stlserver/service/CoachService.java
+++ b/src/main/java/edu/situ/stlserver/service/CoachService.java
@@ -1,7 +1,9 @@
package edu.situ.stlserver.service;
import com.github.pagehelper.PageInfo;
+import edu.situ.stlserver.model.dto.CoachAddDTO;
import edu.situ.stlserver.model.entity.Coach;
+import edu.situ.stlserver.model.dto.CoachQueryDTO;
import java.util.List;
@@ -9,5 +11,8 @@ import java.util.List;
public interface CoachService {
List getAll();
- PageInfo getByPage(Integer page,Integer limit,Coach coach);
+ PageInfo getByPage(Integer page, Integer limit, CoachQueryDTO coachQueryDTO);
+ void quit(Integer id);
+ void rejoin(Integer id);
+ void add(CoachAddDTO coachAddDTO);
}
diff --git a/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java b/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java
index e2003b2..0a4f77c 100644
--- a/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java
+++ b/src/main/java/edu/situ/stlserver/service/impl/CoachServiceImpl.java
@@ -1,18 +1,30 @@
package edu.situ.stlserver.service.impl;
+import cn.hutool.core.date.DateUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import edu.situ.stlserver.dao.CoachMapper;
+import edu.situ.stlserver.model.dto.CoachAddDTO;
import edu.situ.stlserver.model.entity.Coach;
+import edu.situ.stlserver.model.dto.CoachQueryDTO;
import edu.situ.stlserver.service.CoachService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.File;
import java.util.List;
+import java.util.UUID;
@Service
public class CoachServiceImpl implements CoachService {
+ @Value("${upload.base-path}")
+ private String baseUploadPath;
+ @Value("${upload.image.coach}")
+ private String coachUploadPath;
+
@Autowired
private CoachMapper coachMapper;
@@ -22,10 +34,53 @@ public class CoachServiceImpl implements CoachService {
}
@Override
- public PageInfo getByPage(Integer page, Integer limit, Coach coach) {
+ public PageInfo getByPage(Integer page, Integer limit, CoachQueryDTO coachQueryDTO) {
if(page == null) page=1;
if(limit == null) limit=10;
PageHelper.startPage(page,limit);
- return new PageInfo<>(coachMapper.select(coach));
+ return new PageInfo<>(coachMapper.select(coachQueryDTO));
}
+
+ @Override
+ public void quit(Integer id) {
+ coachMapper.quit(id, DateUtil.today());
+ }
+
+ @Override
+ public void rejoin(Integer id) {
+ coachMapper.rejoin(id);
+ }
+
+ @Override
+ public void add(CoachAddDTO coachAddDTO) {
+ Coach coach = new Coach();
+ coach.setName(coachAddDTO.getName());
+ coach.setSex(coachAddDTO.getSex());
+ coach.setRemark(coachAddDTO.getRemark());
+ String avatar;
+ System.out.println(coachAddDTO.getFile());
+ if (coachAddDTO.getFile() != null && !coachAddDTO.getFile().isEmpty())
+ {
+ try {
+ avatar = saveAvatar(coachAddDTO.getFile());
+ coach.setAvatar(avatar);
+ } catch (Exception e)
+ {
+ throw new RuntimeException("保存头像失败");
+ }
+ }
+ coachMapper.insert(coach);
+
+ }
+
+ private String saveAvatar(MultipartFile file) throws Exception {
+ String originFilename = file.getOriginalFilename();
+ String suffix = originFilename.substring(originFilename.lastIndexOf("."));
+ String filename = UUID.randomUUID().toString() + suffix;
+ File dir = new File(baseUploadPath + coachUploadPath);
+ if (!dir.exists()) {dir.mkdirs();}
+ file.transferTo(new File(baseUploadPath + coachUploadPath + filename));
+ return coachUploadPath + filename;
+ }
+
}
diff --git a/src/main/resources/application-dev.yaml b/src/main/resources/application-dev.yaml
index 7060cb4..c3e088c 100644
--- a/src/main/resources/application-dev.yaml
+++ b/src/main/resources/application-dev.yaml
@@ -25,5 +25,8 @@ mybatis:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-file:
- path: ???
\ No newline at end of file
+upload:
+ base-path: D:/stl-static
+ image:
+ coach: /images/coach/
+ member: /imges/member/