From 1004f133677a95b5611da94b9323c440baf8ba49 Mon Sep 17 00:00:00 2001 From: Vindicator645 <45960487+Vindicator645@users.noreply.github.com> Date: Sat, 28 Mar 2020 14:05:19 +0800 Subject: [PATCH] Leaving --- .../component/json/request/UserLeaveAuth.java | 16 ++++++ .../json/request/UserLeaveRequest.java | 12 +++- .../ase/controller/LeavesController.java | 57 ++++++++++++++++--- .../codesdream/ase/model/leaves/Leave.java | 7 ++- .../ase/service/ILeavesService.java | 4 +- .../codesdream/ase/service/LeavesService.java | 13 ++++- 6 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java diff --git a/src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java new file mode 100644 index 0000000..92452c6 --- /dev/null +++ b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveAuth.java @@ -0,0 +1,16 @@ +package com.codesdream.ase.component.json.request; + +import lombok.Data; + +@Data +public class UserLeaveAuth { + /* + 备注 + */ + private int id; + private String Comment; + /* + 审核结果 + */ + private String newStat; +} diff --git a/src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java index 485c0ce..df05547 100644 --- a/src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java +++ b/src/main/java/com/codesdream/ase/component/json/request/UserLeaveRequest.java @@ -1,7 +1,15 @@ package com.codesdream.ase.component.json.request; +import lombok.Data; + +import java.util.Date; +@Data public class UserLeaveRequest { - - + private String UserId;//用户名 + private String Type;//请假类型 + private String Reason;//请假原因 + private String Addon;//附件 + private Date Starttime;//开始时间 + private Date EndTime;//结束时间 } diff --git a/src/main/java/com/codesdream/ase/controller/LeavesController.java b/src/main/java/com/codesdream/ase/controller/LeavesController.java index a415cf2..b4b3a65 100644 --- a/src/main/java/com/codesdream/ase/controller/LeavesController.java +++ b/src/main/java/com/codesdream/ase/controller/LeavesController.java @@ -2,8 +2,14 @@ package com.codesdream.ase.controller; import com.alibaba.fastjson.JSONObject; import com.codesdream.ase.component.datamanager.JSONParameter; +import com.codesdream.ase.component.datamanager.QuickJSONRespond; +import com.codesdream.ase.component.json.request.UserLeaveAuth; import com.codesdream.ase.component.json.request.UserLeaveRequest; +import com.codesdream.ase.component.json.request.UserLoginChecker; +import com.codesdream.ase.component.json.respond.JSONBaseRespondObject; +import com.codesdream.ase.component.json.respond.JSONStandardFailedRespond; import com.codesdream.ase.component.permission.ASEUsernameEncoder; +import com.codesdream.ase.model.leaves.Leave; import com.codesdream.ase.service.LeavesService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; @@ -14,6 +20,8 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Calendar; +import java.util.Date; import java.util.Optional; @@ -27,34 +35,67 @@ public class LeavesController { @Resource private JSONParameter jsonParameter; + @Resource + private QuickJSONRespond quickJSONRespond; + @Resource private LeavesService leavesService; @Resource private ASEUsernameEncoder usernameEncoder; - @RequestMapping(value = "/leave") + @RequestMapping(value = "/") String printLeave(Model model) { return "Leave"; } //提交请假申请 - @RequestMapping(value = "/leave/check", method = RequestMethod.POST) + @RequestMapping(value = "/Leave/check", method = RequestMethod.POST) @ResponseBody - String requestLeave(HttpServletRequest request){ + String leaveRequest(HttpServletRequest request){ // 检查是否为JSON Optional json = jsonParameter.getJSONByRequest(request); - // if(!json.isPresent()) return jsonParameter.getJSONString(new FailedSONRespond()); + if(!json.isPresent()) return jsonParameter.getJSONString(new JSONStandardFailedRespond()); + UserLeaveRequest userLeaveRequest=json.get().toJavaObject(UserLeaveRequest.class); + Leave newleave=new Leave(); + newleave.setUserFrom(userLeaveRequest.getUserId()); + newleave.setType(userLeaveRequest.getType()); + newleave.setReasonToLeave(userLeaveRequest.getReason()); + //newleave.set + newleave.setStartTime(userLeaveRequest.getStarttime()); + newleave.setEndTime(userLeaveRequest.getEndTime()); + Calendar calendar =Calendar.getInstance(); + Date time = calendar.getTime(); + newleave.setApplyTime(time); + leavesService.save(newleave); + //eturn quickJSONRespond.getRespond200(null, respond); - UserLeaveRequest LeaveChecker = json.get().toJavaObject(UserLeaveRequest.class); + return quickJSONRespond.getRespond200("申请已提交"); // 检查类型 - return jsonParameter.getJSONString(request); } - //列出某辅导员待审核名单 + String getLeaveAuth(HttpServletRequest request){ + + // 检查是否为JSON + Optional json = jsonParameter.getJSONByRequest(request); + if(!json.isPresent()) return jsonParameter.getJSONString(new JSONStandardFailedRespond()); + UserLeaveAuth userLeaveAuth=json.get().toJavaObject(UserLeaveAuth.class); + Optional leave =leavesService.findLeaveById(userLeaveAuth.getId()); + if(!leave.isPresent()){ + return quickJSONRespond.getRespond500("No such entry"); + } + Leave newLeave=leave.get(); + newLeave.setComment(userLeaveAuth.getComment()); + newLeave.setAuthentication(userLeaveAuth.getNewStat()); + return quickJSONRespond.getRespond200("Authentication status updated"); + } + String getLeavelist(HttpServletRequest request){ + Optional json = jsonParameter.getJSONByRequest(request); + if(!json.isPresent()) return jsonParameter.getJSONString(new JSONStandardFailedRespond()); + + } - //列出某人 } diff --git a/src/main/java/com/codesdream/ase/model/leaves/Leave.java b/src/main/java/com/codesdream/ase/model/leaves/Leave.java index e5ef606..5f65fc7 100644 --- a/src/main/java/com/codesdream/ase/model/leaves/Leave.java +++ b/src/main/java/com/codesdream/ase/model/leaves/Leave.java @@ -9,12 +9,13 @@ import javax.persistence.*; @Entity @Table(name = "leaves") public class Leave { + //请假的编号 @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; //发出人 - @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) - private User userFrom; + @Column + private String userFrom; //审批人容器 @ManyToMany(cascade = CascadeType.MERGE, fetch = FetchType.LAZY) private Set userTo; @@ -28,7 +29,7 @@ public class Leave { private String type; //批准状态 @Column(nullable = false) - private String authentication; + private String authentication="Pending"; //审核备注 @Column diff --git a/src/main/java/com/codesdream/ase/service/ILeavesService.java b/src/main/java/com/codesdream/ase/service/ILeavesService.java index 0d7b994..4f64f43 100644 --- a/src/main/java/com/codesdream/ase/service/ILeavesService.java +++ b/src/main/java/com/codesdream/ase/service/ILeavesService.java @@ -4,6 +4,7 @@ import com.codesdream.ase.model.leaves.Leave; import java.util.Optional; +import java.util.OptionalInt; public interface ILeavesService { //通过标题查找活动 @@ -12,6 +13,8 @@ public interface ILeavesService { //通过创建人姓名查找活动 Optional findLeaveByCreator(String creatorName); + OptionalfindLeaveById(int id); + //活动 Leave save(Leave leave); @@ -21,7 +24,6 @@ public interface ILeavesService { //请假信息更新 Leave update(Leave Leave); - //创建请假条目 Leave createLeave(Leave Leave); diff --git a/src/main/java/com/codesdream/ase/service/LeavesService.java b/src/main/java/com/codesdream/ase/service/LeavesService.java index a9c475d..0e58d35 100644 --- a/src/main/java/com/codesdream/ase/service/LeavesService.java +++ b/src/main/java/com/codesdream/ase/service/LeavesService.java @@ -8,7 +8,7 @@ import javax.annotation.Resource; import java.util.Optional; @Service -public class LeavesService implements ILeavesService { +public class LeavesService implements ILeavesService { @Resource private LeaveRepository leaveRepository; @@ -25,10 +25,16 @@ public class LeavesService implements ILeavesService { } @Override - public Leave save(Leave leave) { + public Leave save( Leave leave) { return leaveRepository.save(leave); } + @Override + public Optional findLeaveById(int id) { + return leaveRepository.findById(id); + } + + @Override public void delete(Leave leave) { @@ -45,7 +51,8 @@ public class LeavesService implements ILeavesService { return leaveRepository.save(leave); } - /*@Override + +/*@Override public Leave findActivitiesInTheCharge(User user) { }*/